Repositori ini adalah implementasi resmi AnimateDiff [ICLR2024 Spotlight]. Ini adalah modul plug-and-play yang mengubah sebagian besar model teks-ke-gambar komunitas menjadi generator animasi, tanpa memerlukan pelatihan tambahan.
AnimateDiff: Menganimasikan Model Difusi Teks-ke-Gambar Personalisasi Anda tanpa Penyetelan Khusus
Yuwei Guo, Ceyuan Yang✝, Anyi Rao, Zhengyang Liang, Yaohui Wang, Yu Qiao, Maneesh Agrawala, Dahua Lin, Bo Dai (✝Penulis Koresponden)
Catatan: Cabang main
adalah untuk Difusi Stabil V1.5; untuk Difusi Stabil XL, silakan lihat cabang sdxl-beta
.
Hasil selengkapnya dapat ditemukan di Galeri. Beberapa di antaranya merupakan sumbangan dari masyarakat.
Model:ToonYou
Model:Visi Realistis V2.0
Catatan: AnimateDiff juga secara resmi didukung oleh Diffusers. Kunjungi Tutorial AnimateDiff Diffusers untuk lebih jelasnya. Petunjuk berikut ini untuk bekerja dengan repositori ini .
Catatan: Untuk semua skrip, pengunduhan checkpoint akan ditangani secara otomatis , sehingga skrip yang berjalan mungkin memerlukan waktu lebih lama saat pertama kali dijalankan.
git clone https://github.com/guoyww/AnimateDiff.git
cd AnimateDiff
pip install -r requirements.txt
Sampel yang dihasilkan dapat ditemukan di folder samples/
.
python -m scripts.animate --config configs/prompts/1_animate/1_1_animate_RealisticVision.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_2_animate_FilmVelvia.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_3_animate_ToonYou.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_4_animate_MajicMix.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_5_animate_RcnzCartoon.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_6_animate_Lyriel.yaml
python -m scripts.animate --config configs/prompts/1_animate/1_7_animate_Tusun.yaml
python -m scripts.animate --config configs/prompts/2_motionlora/2_motionlora_RealisticVision.yaml
python -m scripts.animate --config configs/prompts/3_sparsectrl/3_1_sparsectrl_i2v.yaml
python -m scripts.animate --config configs/prompts/3_sparsectrl/3_2_sparsectrl_rgb_RealisticVision.yaml
python -m scripts.animate --config configs/prompts/3_sparsectrl/3_3_sparsectrl_sketch_RealisticVision.yaml
Kami membuat demo Gradio untuk membuat AnimateDiff lebih mudah digunakan. Secara default, demo akan dijalankan di localhost:7860
.
python -u app.py
AnimateDiff bertujuan untuk mempelajari prior gerakan yang dapat diterapkan pada varian lain dari keluarga Difusi Stabil. Untuk mencapai tujuan ini, kami merancang alur pelatihan berikut yang terdiri dari tiga tahap.
Pada tahap 1. Mengurangi Efek Negatif , kami melatih adaptor domain , misalnya v3_sd15_adapter.ckpt
, agar sesuai dengan aritfakta visual yang rusak (misalnya, tanda air) dalam kumpulan data pelatihan. Hal ini juga dapat bermanfaat bagi pembelajaran gerak dan penampilan spasial. Secara default, adaptor dapat dihapus pada inferensi. Ini juga dapat diintegrasikan ke dalam model dan efeknya dapat disesuaikan dengan lora scaler.
Pada tahap 2. Pelajari Motion Priors , kami melatih modul gerak , misalnya v3_sd15_mm.ckpt
, untuk mempelajari pola gerakan dunia nyata dari video.
Dalam tahap 3. (opsional) Adaptasi ke Pola Baru , kami melatih MotionLoRA , misalnya, v2_lora_ZoomIn.ckpt
, untuk mengadaptasi modul gerakan secara efisien untuk pola gerakan tertentu (zoom kamera, rolling, dll.).
SparseCtrl bertujuan untuk menambahkan lebih banyak kontrol pada model teks-ke-video dengan mengadopsi beberapa input sparse (misalnya, beberapa gambar RGB atau input sketsa). Detail teknisnya dapat ditemukan di makalah berikut:
SparseCtrl: Menambahkan Kontrol Jarang ke Model Difusi Teks-ke-Video
Yuwei Guo, Ceyuan Yang✝, Anyi Rao, Maneesh Agrawala, Dahua Lin, Bo Dai (✝Penulis Koresponden)
Dalam versi ini, kami menggunakan Domain Adapter LoRA untuk menyempurnakan model gambar, yang memberikan lebih banyak fleksibilitas dalam inferensi. Kami juga mengimplementasikan dua encoder SparseCtrl (gambar/coretan RGB), yang dapat mengambil sejumlah peta kondisi untuk mengontrol konten animasi.
Nama | Memeluk Wajah | Jenis | Penyimpanan | Keterangan |
---|---|---|---|---|
v3_adapter_sd_v15.ckpt | Link | Adaptor Domain | 97,4 MB | |
v3_sd15_mm.ckpt.ckpt | Link | Modul Gerak | 1,56 GB | |
v3_sd15_sparsectrl_scribble.ckpt | Link | Encoder SparseCtrl | 1,86 GB | kondisi coretan |
v3_sd15_sparsectrl_rgb.ckpt | Link | Encoder SparseCtrl | 1,85GB | Kondisi gambar RGB |
Masukan (oleh RealisticVision) | Animasi | Masukan | Animasi |
Masukan Coretan | Keluaran | Masukan Coretan | Keluaran |
Rilis Modul Gerak (versi beta) di SDXL, tersedia di Google Drive / HuggingFace / CivitAI. Video resolusi tinggi (yaitu, bingkai 1024x1024x16 dengan berbagai rasio aspek) dapat diproduksi dengan/tanpa model yang dipersonalisasi. Inferensi biasanya memerlukan ~13GB VRAM dan hyperparameter yang disesuaikan (misalnya, langkah pengambilan sampel), bergantung pada model personalisasi yang dipilih.
Checkout ke cabang sdxl untuk detail inferensi lebih lanjut.
Nama | Memeluk Wajah | Jenis | Ruang Penyimpanan |
---|---|---|---|
mm_sdxl_v10_beta.ckpt | Link | Modul Gerak | 950 MB |
SDXL asli | Komunitas SDXL | Komunitas SDXL |
Dalam versi ini, modul gerak mm_sd_v15_v2.ckpt
(Google Drive / HuggingFace / CivitAI) dilatih berdasarkan resolusi dan ukuran batch yang lebih besar. Kami menemukan bahwa pelatihan peningkatan secara signifikan membantu meningkatkan kualitas dan keragaman gerakan.
Kami juga mendukung MotionLoRA dari delapan gerakan dasar kamera. Pos pemeriksaan MotionLoRA hanya menggunakan penyimpanan 77 MB per model , dan tersedia di Google Drive / HuggingFace / CivitAI.
Nama | Memeluk Wajah | Jenis | Parameter | Penyimpanan |
---|---|---|---|---|
mm_sd_v15_v2.ckpt | Link | Modul Gerak | 453 M | 1,7 GB |
v2_lora_ZoomIn.ckpt | Link | GerakLoRA | 19M | 74 MB |
v2_lora_ZoomOut.ckpt | Link | GerakLoRA | 19M | 74 MB |
v2_lora_PanLeft.ckpt | Link | GerakLoRA | 19M | 74 MB |
v2_lora_PanRight.ckpt | Link | GerakLoRA | 19M | 74 MB |
v2_lora_TiltUp.ckpt | Link | GerakLoRA | 19M | 74 MB |
v2_lora_TiltDown.ckpt | Link | GerakLoRA | 19M | 74MB |
v2_lora_RollingClockwise.ckpt | Link | GerakLoRA | 19M | 74 MB |
v2_lora_RollingAnticlockwise.ckpt | Link | GerakLoRA | 19M | 74 MB |
Perbesar | Perkecil | Perbesar Geser ke Kiri | Perbesar Geser ke Kanan | ||||
Miringkan ke Atas | Miringkan ke Bawah | Bergulir Berlawanan Arah Jarum Jam | Bergulir Searah Jarum Jam | ||||
Berikut perbandingan antara mm_sd_v15.ckpt
(kiri) dan mm_sd_v15_v2.ckpt
yang ditingkatkan (kanan).
Versi pertama AnimateDiff!
Nama | Memeluk Wajah | Parameter | Ruang Penyimpanan |
---|---|---|---|
mm_sd_v14.ckpt | Link | 417 M | 1,6 GB |
mm_sd_v15.ckpt | Link | 417 M | 1,6 GB |
Silakan periksa Langkah-Langkah Pelatihan untuk detailnya.
AnimateDiff untuk WebUI Difusi Stabil: sd-webui-animatediff (oleh @continue-revolution)
AnimateDiff untuk ComfyUI: ComfyUI-AnimateDiff-Evolved (oleh @Kosinkadink)
Google Colab: Colab (oleh @camenduru)
Proyek ini dirilis untuk penggunaan akademis. Kami melepaskan tanggung jawab atas konten buatan pengguna. Selain itu, harap diperhatikan bahwa satu-satunya situs web resmi kami adalah https://github.com/guoyww/AnimateDiff dan https://animatediff.github.io, dan semua situs web lainnya TIDAK terkait dengan kami di AnimateDiff.
Yuwei Guo: [email protected]
Ceyuan Yang: [email protected]
Bo Dai: [email protected]
@article{guo2023animatediff,
title={AnimateDiff: Animate Your Personalized Text-to-Image Diffusion Models without Specific Tuning},
author={Guo, Yuwei and Yang, Ceyuan and Rao, Anyi and Liang, Zhengyang and Wang, Yaohui and Qiao, Yu and Agrawala, Maneesh and Lin, Dahua and Dai, Bo},
journal={International Conference on Learning Representations},
year={2024}
}
@article{guo2023sparsectrl,
title={SparseCtrl: Adding Sparse Controls to Text-to-Video Diffusion Models},
author={Guo, Yuwei and Yang, Ceyuan and Rao, Anyi and Agrawala, Maneesh and Lin, Dahua and Dai, Bo},
journal={arXiv preprint arXiv:2311.16933},
year={2023}
}
Basis kode dibangun berdasarkan Tune-a-Video.