Tammy 是一个基于 Python/Pytorch 的开源项目,使用深度学习模型生成原创音乐视频。它允许用户根据文本提示转换自动生成视频,这些视频与歌曲的各个方面(例如 BPM 或钢琴模式)同步。该项目在视频生成过程的各个阶段利用深度学习模型,包括使用 LSTM 进行音频源分离、使用 GAN 进行帧生成、使用超分辨率模型进行空间升级,以及使用帧插值模型进行时间上采样。该项目的目的是提供一个易于使用的框架来构建自定义模型管道以创建独特的音乐视频。
特征
快速启动
数据流和代码结构
生成设置
更多示例
贡献
快速开始:
sudo apt-get install ffmpeg libsndfile1
和 git-lfs。pip install .
python run_tammy.py
它将使用settingssettings_cpu.yaml
中的默认设置和默认歌曲thoughtsarebeings_clip.wav
。 tammy
包可以轻松地在您自己的脚本或其他设置文件中使用,并且音频文件可以通过运行python run_tammy.py --settings_file
与现有的run_tammy.py
脚本一起使用python run_tammy.py --settings_file
.
tammy.prompthandler
根据生成设置的更简洁描述来生成每个要生成的帧的设置(例如翻译或文本提示)。tammy.sequence_maker
有一个generator
,可以根据文本提示生成图像序列。目前支持的模型有VQGAN-CLIP和Stable-Diffusiontammy.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
应与sequence_settings.initial_fps
中的fps
值相对应。关键帧可以手动生成,例如 https://www.chigozie.co.uk/audio-keyframe-generator/设置sequence_settings.initial_fps
确定在给定音频剪辑长度的情况下生成的帧数。通过使用帧插值,可以通过设置do_slowmo: True
并提供target_fps
来将帧速率增加到目标,该 target_fps 必须是initial_fps
的倍数。与使用generator
从头开始生成所有帧相比,这可以更快地生成高帧率视频。
如果需要,可以通过提供sequence_settings.max_frames
来限制生成的帧的数量。在这种情况下,生成的视频长度将比提供的音频剪辑短,并且为: max_frames
/ initial_fps
。
使用tammy
的 VQGAN-CLIP 和 Animation_2d 模式生成的视频。
完整视频(以 4K 观看以获得最佳体验!:https://www.youtube.com/watch?v=T_bii9VLDk0
使用tammy
的稳定扩散和插值模式生成的视频。
的新分支中添加您的功能和随附的测试。pytest
确保所有测试都通过。pre-commit install
。