Repo ini berisi implementasi resmi PyTorch untuk Pembuatan Audio-ke-Video yang Beragam dan Selaras melalui Adaptasi Model Teks-ke-Video
Kami mempertimbangkan tugas menghasilkan video yang beragam dan realistis yang dipandu oleh sampel audio alami dari berbagai kelas semantik. Untuk tugas ini, video harus diselaraskan secara global dan temporal dengan audio masukan: secara global, audio masukan dikaitkan secara semantik dengan seluruh video keluaran, dan secara sementara, setiap segmen audio masukan dikaitkan dengan segmen yang sesuai dari audio masukan. video itu. Kami menggunakan model pembuatan video berkondisi teks yang sudah ada dan model encoder audio terlatih. Metode yang diusulkan didasarkan pada jaringan adaptor ringan, yang belajar memetakan representasi berbasis audio ke representasi masukan yang diharapkan oleh model pembuatan teks-ke-video. Dengan demikian, ini juga memungkinkan pembuatan video yang dikondisikan pada teks, audio, dan, untuk pertama kalinya sejauh yang kami dapat pastikan, pada teks dan audio. Kami memvalidasi metode kami secara ekstensif pada tiga kumpulan data yang menunjukkan keragaman semantik yang signifikan dari sampel audio-video dan selanjutnya mengusulkan metrik evaluasi baru (AV-Align) untuk menilai keselarasan video yang dihasilkan dengan sampel audio masukan. AV-Align didasarkan pada deteksi dan perbandingan puncak energi di kedua modalitas. Dibandingkan dengan pendekatan canggih terkini, metode kami menghasilkan video yang lebih selaras dengan suara masukan, baik dalam kaitannya dengan konten maupun sumbu temporal. Kami juga menunjukkan bahwa video yang dihasilkan dengan metode kami menghadirkan kualitas visual yang lebih tinggi dan lebih beragam.
git clone [email protected]:guyyariv/TempoTokens.git cd TempoTokens pip install -r requirements.txt
Dan inisialisasi lingkungan Akselerasi dengan:
accelerate config
Unduh model terlatih BEAT
mkdir -p models/BEATs/ && wget -P models/BEATs/ -O "models/BEATs/BEATs_iter3_plus_AS2M_finetuned_on_AS2M_cpt2.pt" "https://valle.blob.core.windows.net/share/BEATs/BEATs_iter3_plus_AS2M_finetuned_on_AS2M_cpt2.pt?sv=2020-08-04&st=2023-03-01T07%3A51%3A05Z&se=2033-03-02T07%3A51%3A00Z&sr=c&sp=rl&sig=QJXmSJG9DbMKf48UDIU1MfzIro8HQOf3sqlNXiflY1I%3D"
Jalankan perintah yang relevan untuk setiap kumpulan data yang telah kita latih, termasuk VGGSound, Landscape, dan AudioSet-Drum.
accelerate launch train.py --config configs/v2/vggsound.yaml
accelerate launch train.py --config configs/v2/landscape.yaml
accelerate launch train.py --config configs/v2/audioset_drum.yaml
Kami sangat menyarankan untuk meninjau file konfigurasi dan menyesuaikan parameter sesuai dengan preferensi Anda.
Dapatkan bobot terlatih untuk tiga kumpulan data yang kami latih dengan mengunjungi tautan berikut: https://drive.google.com/drive/folders/10pRWoq0m5torvMXILmIQd7j9fLPEeHtS Kami menyarankan Anda untuk menyimpan folder di direktori dengan nama "models/. "
Skrip inference.py
berfungsi untuk menghasilkan video menggunakan pos pemeriksaan terlatih. Setelah Anda menyelesaikan pelatihan model menggunakan perintah yang disediakan (atau memilih model terlatih kami), Anda dapat dengan mudah membuat video dari kumpulan data yang kami gunakan untuk pelatihan, seperti VGGSound, Landscape, dan AudioSet-Drum.
accelerate launch inference.py --mapper_weights models/vggsound/learned_embeds.pth --testset vggsound
accelerate launch inference.py --mapper_weights models/landscape/learned_embeds.pth --testset landscape
accelerate launch inference.py --mapper_weights models/audioset_drum/learned_embeds.pth --testset audioset_drum
Selain itu, Anda memiliki kemampuan untuk menghasilkan video dari audio Anda sendiri, seperti yang ditunjukkan di bawah ini:
accelerate launch inference.py --mapper_weights models/vggsound/learned_embeds.pth --audio_path /audio/path
> python inference.py --help usage: inference.py [-h] -m MODEL -p PROMPT [-n NEGATIVE_PROMPT] [-o OUTPUT_DIR] [-B BATCH_SIZE] [-W WIDTH] [-H HEIGHT] [-T NUM_FRAMES] [-WS WINDOW_SIZE] [-VB VAE_BATCH_SIZE] [-s NUM_STEPS] [-g GUIDANCE_SCALE] [-i INIT_VIDEO] [-iw INIT_WEIGHT] [-f FPS] [-d DEVICE] [-x] [-S] [-lP LORA_PATH] [-lR LORA_RANK] [-rw] options: -h, --help show this help message and exit -m MODEL, --model MODEL HuggingFace repository or path to model checkpoint directory -p PROMPT, --prompt PROMPT Text prompt to condition on -n NEGATIVE_PROMPT, --negative-prompt NEGATIVE_PROMPT Text prompt to condition against -o OUTPUT_DIR, --output-dir OUTPUT_DIR Directory to save output video to -B BATCH_SIZE, --batch-size BATCH_SIZE Batch size for inference -W WIDTH, --width WIDTH Width of output video -H HEIGHT, --height HEIGHT Height of output video -T NUM_FRAMES, --num-frames NUM_FRAMES Total number of frames to generate -WS WINDOW_SIZE, --window-size WINDOW_SIZE Number of frames to process at once (defaults to full sequence). When less than num_frames, a round robin diffusion process is used to denoise the full sequence iteratively one window at a time. Must be divide num_frames exactly! -VB VAE_BATCH_SIZE, --vae-batch-size VAE_BATCH_SIZE Batch size for VAE encoding/decoding to/from latents (higher values = faster inference, but more memory usage). -s NUM_STEPS, --num-steps NUM_STEPS Number of diffusion steps to run per frame. -g GUIDANCE_SCALE, --guidance-scale GUIDANCE_SCALE Scale for guidance loss (higher values = more guidance, but possibly more artifacts). -i INIT_VIDEO, --init-video INIT_VIDEO Path to video to initialize diffusion from (will be resized to the specified num_frames, height, and width). -iw INIT_WEIGHT, --init-weight INIT_WEIGHT Strength of visual effect of init_video on the output (lower values adhere more closely to the text prompt, but have a less recognizable init_video). -f FPS, --fps FPS FPS of output video -d DEVICE, --device DEVICE Device to run inference on (defaults to cuda). -x, --xformers Use XFormers attnetion, a memory-efficient attention implementation (requires `pip install xformers`). -S, --sdp Use SDP attention, PyTorch's built-in memory-efficient attention implementation. -lP LORA_PATH, --lora_path LORA_PATH Path to Low Rank Adaptation checkpoint file (defaults to empty string, which uses no LoRA). -lR LORA_RANK, --lora_rank LORA_RANK Size of the LoRA checkpoint's projection matrix (defaults to 64). -rw, --remove-watermark Post-process the videos with LAMA to inpaint ModelScope's common watermarks.
Kode kami sebagian dibuat berdasarkan Penyempurnaan Teks-Ke-Video
Jika Anda menggunakan karya kami dalam penelitian Anda, harap mengutip makalah berikut:
@misc{yariv2023diverse, title={Diverse and Aligned Audio-to-Video Generation via Text-to-Video Model Adaptation}, author={Guy Yariv and Itai Gat and Sagie Benaim and Lior Wolf and Idan Schwartz and Yossi Adi}, year={2023}, eprint={2309.16429}, archivePrefix={arXiv}, primaryClass={cs.LG} }
Repositori ini dirilis di bawah lisensi MIT seperti yang terdapat dalam file LICENSE.