Tammy — это проект с открытым исходным кодом на основе Python/Pytorch, который использует модели глубокого обучения для создания оригинальных музыкальных клипов. Он позволяет пользователям автоматически создавать видео на основе переходов текстовых подсказок, которые синхронизируются с различными аспектами песни , такими как ее темп или рисунок фортепиано. В проекте используются модели глубокого обучения на различных этапах процесса генерации видео, включая разделение источников звука с помощью LSTM, генерацию кадров с помощью GAN, пространственное масштабирование с моделями сверхвысокого разрешения и временную повышающую дискретизацию с моделями интерполяции кадров. Цель этого проекта — предоставить простую в использовании платформу для создания конвейеров пользовательских моделей для создания уникальных музыкальных клипов.
Функции
Быстрый старт
Поток данных и структура кода
Настройки генерации
Больше примеров
Содействие
Для быстрого старта:
sudo apt-get install ffmpeg libsndfile1
и git-lfs.pip install .
python run_tammy.py
, который будет использовать настройки по умолчанию в settingssettings_cpu.yaml
и песни по умолчанию thoughtsarebeings_clip.wav
. Пакет tammy
можно легко использовать в вашем собственном скрипте или других файлах настроек, а аудиофайлы можно использовать с существующим скриптом run_tammy.py
, запустив python run_tammy.py --settings_file <your_settings.yaml> --audio_path <your_audio_file.mp3/wav>
.
tammy.prompthandler
генерирует настройки для каждого генерируемого кадра (например, перевод или текстовую подсказку) на основе более краткого описания настроек генерации.tammy.sequence_maker
имеет generator
, который генерирует последовательность изображений на основе текстовых подсказок. В настоящее время поддерживаются модели VQGAN-CLIP и Stable-Diffusion.tammy.upscaling
увеличивает сгенерированные изображения до сверхвысокого разрешения. На данный момент единственной поддерживаемой моделью является SwinIR .tammy.superslowmo
интерполирует сгенерированные (при необходимости масштабированные) изображения для увеличения FPS без необходимости генерировать каждый кадр с помощью sequence_maker
. На данный момент поддерживается единственная модель — SuperSloMo . Генерация видео имеет множество параметров конфигурации, которые указаны в файле <settings_file_name>.yaml
. Некоторые примеры файлов настроек, которые в основном используются для тестирования, можно найти в папке settings
. Названия большинства настроек (ключи в файле settings.yaml
) не требуют пояснений. Для ясности некоторые настройки описаны ниже.
Для управления переходами кадров используются инструменты, в частности: масштабирование в режиме Animation_2d и подсказка скорости перехода в режиме интерполяции. У tammy
есть два варианта предоставления инструментов:
do_spleet: True
и укажите instrument: <instrument name>
zoom_instrument: <file_name>
и назовите файл: file_name_fps.txt
, где fps
должно соответствовать значению fps
в sequence_settings.initial_fps
. Ключевые кадры можно создавать вручную, например, https://www.chigozie.co.uk/audio-keyframe-generator/. Параметр sequence_settings.initial_fps
определяет количество генерируемых кадров, учитывая длину аудиоклипа. Используя интерполяцию кадров, частоту кадров можно увеличить до целевого значения, установив do_slowmo: True
и указав target_fps
, который должен быть кратен initial_fps
. Это позволяет создавать видео с высокой частотой кадров быстрее, чем при создании всех кадров с нуля с помощью generator
.
При желании количество генерируемых кадров можно ограничить, sequence_settings.max_frames
. В этом случае длина сгенерированного видео будет короче предоставленного аудиоклипа и составит: max_frames
/ initial_fps
.
Видео создано с использованием режима VQGAN-CLIP и Animation_2d от tammy
.
Полное видео (для удобства смотрите в 4K!: https://www.youtube.com/watch?v=T_bii9VLDk0).
Видео создано с использованием режима Stable Diffusion и Interpolation от tammy
.
<your_name><feature>
.pytest
.pre-commit install
.