Tammy adalah proyek sumber terbuka berbasis Python/Pytorch yang menggunakan model pembelajaran mendalam untuk menghasilkan video musik asli. Hal ini memungkinkan pengguna untuk secara otomatis menghasilkan video berdasarkan transisi teks cepat yang disinkronkan dengan berbagai aspek lagu , seperti BPM atau pola pianonya. Proyek ini menggunakan model pembelajaran mendalam di berbagai tahap proses pembuatan video, termasuk pemisahan sumber audio dengan LSTM, pembuatan bingkai dengan GAN, peningkatan spasial dengan model resolusi super, dan peningkatan sampel temporal dengan model interpolasi bingkai. Tujuan dari proyek ini adalah untuk menyediakan kerangka kerja yang mudah digunakan untuk membangun saluran model khusus untuk membuat video musik yang unik.
Fitur
Mulai cepat
Aliran Data dan Struktur Kode
Pengaturan Generasi
Contoh Lainnya
Berkontribusi
Untuk memulai dengan cepat:
sudo apt-get install ffmpeg libsndfile1
dan git-lfs.pip install .
python run_tammy.py
yang akan menggunakan pengaturan default di settingssettings_cpu.yaml
dan lagu default thoughtsarebeings_clip.wav
. Paket tammy
dapat dengan mudah digunakan dalam skrip Anda sendiri atau file pengaturan lainnya dan file audio dapat digunakan dengan skrip run_tammy.py
yang ada dengan menjalankan python run_tammy.py --settings_file
.
tammy.prompthandler
menghasilkan pengaturan untuk setiap frame yang akan dihasilkan (misalnya terjemahan atau prompt teks) berdasarkan deskripsi yang lebih ringkas dari pengaturan pembuatan.tammy.sequence_maker
memiliki generator
yang menghasilkan urutan gambar berdasarkan petunjuk teks. Saat ini model yang didukung adalah VQGAN-CLIP dan Stable-Diffusiontammy.upscaling
meningkatkan gambar yang dihasilkan dengan resolusi super. Saat ini satu-satunya model yang didukung adalah SwinIR .tammy.superslowmo
menginterpolasi gambar yang dihasilkan (opsional ditingkatkan) untuk meningkatkan FPS tanpa perlu membuat setiap frame dengan sequence_maker
. Saat ini satu-satunya model yang didukung adalah SuperSloMo . Pembuatan video memiliki banyak pengaturan konfigurasi yang ditentukan dalam file
. Beberapa contoh file pengaturan, yang sebagian besar digunakan untuk pengujian, dapat ditemukan di folder settings
. Sebagian besar nama pengaturan (kunci di settings.yaml
) sudah cukup jelas. Untuk lebih jelasnya, beberapa pengaturan dijelaskan di bawah ini.
Instrumen digunakan untuk mengarahkan transisi bingkai, khususnya: memperbesar mode Animation_2d dan mempercepat kecepatan transisi dalam mode Interpolasi. tammy
memiliki dua opsi untuk menyediakan instrumen:
do_spleet: True
dan berikan instrument:
zoom_instrument:
dan beri nama file: file_name_fps.txt
di mana fps
harus sesuai dengan nilai fps
di sequence_settings.initial_fps
. Keyframe dapat dibuat secara manual dengan misalnya https://www.chigozie.co.uk/audio-keyframe-generator/ Pengaturan sequence_settings.initial_fps
menentukan jumlah frame yang dihasilkan, berdasarkan panjang klip audio. Dengan menggunakan interpolasi bingkai, kecepatan bingkai dapat ditingkatkan ke target dengan menyetel do_slowmo: True
dan memberikan target_fps
yang harus merupakan kelipatan dari initial_fps
. Hal ini memungkinkan untuk menghasilkan video dengan kecepatan bingkai tinggi lebih cepat dibandingkan dengan menghasilkan semua bingkai dari awal dengan generator
.
Jika diinginkan, jumlah frame yang dihasilkan dapat dibatasi dengan menyediakan sequence_settings.max_frames
. Dalam hal ini, panjang video yang dihasilkan akan lebih pendek dari klip audio yang disediakan dan akan menjadi: max_frames
/ initial_fps
.
Video dihasilkan menggunakan mode VQGAN-CLIP dan Animation_2d dari tammy
.
Video lengkap (tonton dalam 4K untuk pengalaman terbaik!: https://www.youtube.com/watch?v=T_bii9VLDk0
Video dihasilkan menggunakan mode Difusi dan Interpolasi Stabil dari tammy
.
.pytest
.pre-commit install
.