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
.
tammy.prompthandler
генерирует настройки для каждого генерируемого кадра (например, перевод или текстовую подсказку) на основе более краткого описания настроек генерации.tammy.sequence_maker
имеет generator
, который генерирует последовательность изображений на основе текстовых подсказок. В настоящее время поддерживаются модели VQGAN-CLIP и Stable-Diffusion.tammy.upscaling
увеличивает сгенерированные изображения до сверхвысокого разрешения. На данный момент единственной поддерживаемой моделью является SwinIR .tammy.superslowmo
интерполирует сгенерированные (при необходимости масштабированные) изображения для увеличения FPS без необходимости генерировать каждый кадр с помощью sequence_maker
. На данный момент поддерживается единственная модель SuperSloMo . Генерация видео имеет множество параметров конфигурации, которые указаны в файле
. Некоторые примеры файлов настроек, которые в основном используются для тестирования, можно найти в папке settings
. Названия большинства настроек (ключи в файле settings.yaml
) не требуют пояснений. Для ясности некоторые настройки описаны ниже.
Для управления переходами кадров используются инструменты, в частности: масштабирование в режиме Animation_2d и подсказка скорости перехода в режиме интерполяции. У tammy
есть два варианта предоставления инструментов:
do_spleet: True
и укажите instrument:
zoom_instrument:
и назовите файл: 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
.
.pytest
.pre-commit install
.