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
。