Dieses Repository ist die offizielle Implementierung von AnimateDiff [ICLR2024 Spotlight]. Es handelt sich um ein Plug-and-Play-Modul, das die meisten Text-zu-Bild-Modelle der Community in Animationsgeneratoren verwandelt, ohne dass zusätzliche Schulung erforderlich ist.
AnimateDiff: Animieren Sie Ihre personalisierten Text-zu-Bild-Diffusionsmodelle ohne spezifische Abstimmung
Yuwei Guo, Ceyuan Yang✝, Anyi Rao, Zhengyang Liang, Yaohui Wang, Yu Qiao, Maneesh Agrawala, Dahua Lin, Bo Dai (✝Korrespondierender Autor)
Hinweis: Der main
ist für Stable Diffusion V1.5; Informationen zu Stable Diffusion XL finden Sie im sdxl-beta
Zweig.
Weitere Ergebnisse finden Sie in der Galerie. Einige davon werden von der Community beigesteuert.
Modell: ToonYou
Modell: Realistic Vision V2.0
Hinweis: AnimateDiff wird auch offiziell von Diffusers unterstützt. Weitere Informationen finden Sie im Tutorial zu AnimateDiff-Diffusoren. Die folgenden Anweisungen beziehen sich auf die Arbeit mit diesem Repository .
Hinweis: Bei allen Skripten wird der Checkpoint-Download automatisch durchgeführt, daher kann die Ausführung des Skripts bei der ersten Ausführung länger dauern.
git clone https://github.com/guoyww/AnimateDiff.git
cd AnimateDiff
pip install -r requirements.txt
Die generierten Samples finden Sie im Ordner 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
Wir haben eine Gradio-Demo erstellt, um die Verwendung von AnimateDiff zu vereinfachen. Standardmäßig wird die Demo unter localhost:7860
ausgeführt.
python -u app.py
AnimateDiff zielt darauf ab, übertragbare Bewegungsprioritäten zu lernen, die auf andere Varianten der Stable Diffusion-Familie angewendet werden können. Zu diesem Zweck entwerfen wir die folgende Trainingspipeline, die aus drei Stufen besteht.
In der ersten Phase „Negative Effekte lindern“ trainieren wir den Domänenadapter , z. B. v3_sd15_adapter.ckpt
, um fehlerhafte visuelle Merkmale (z. B. Wasserzeichen) in den Trainingsdatensatz einzupassen. Dies kann auch dem entwirrenden Erlernen von Bewegung und räumlicher Erscheinung zugute kommen. Standardmäßig kann der Adapter beim Rückschluss entfernt werden. Es kann auch in das Modell integriert werden und seine Effekte können durch einen Lora-Scaler angepasst werden.
In der Phase 2. Bewegungsprioritäten lernen trainieren wir das Bewegungsmodul , z. B. v3_sd15_mm.ckpt
, um die realen Bewegungsmuster aus Videos zu lernen.
In der 3. (optionalen) Phase „An neue Muster anpassen“ trainieren wir MotionLoRA , z. B. v2_lora_ZoomIn.ckpt
, um das Bewegungsmodul effizient an bestimmte Bewegungsmuster (Kamerazoomen, Rollen usw.) anzupassen.
SparseCtrl zielt darauf ab, Text-zu-Video-Modellen durch die Übernahme einiger spärlicher Eingaben (z. B. wenige RGB-Bilder oder Skizzeneingaben) mehr Kontrolle zu verleihen. Die technischen Details finden Sie im folgenden Dokument:
SparseCtrl: Hinzufügen spärlicher Steuerelemente zu Text-zu-Video-Diffusionsmodellen
Yuwei Guo, Ceyuan Yang✝, Anyi Rao, Maneesh Agrawala, Dahua Lin, Bo Dai (✝Korrespondierender Autor)
In dieser Version verwenden wir den Domänenadapter LoRA für die Feinabstimmung des Bildmodells, was mehr Flexibilität bei der Inferenz bietet. Wir implementieren außerdem zwei SparseCtrl-Encoder (RGB-Bild/Scribble), die eine beliebige Anzahl von Bedingungskarten zur Steuerung des Animationsinhalts verwenden können.
Name | Umarmendes Gesicht | Typ | Lagerung | Beschreibung |
---|---|---|---|---|
v3_adapter_sd_v15.ckpt | Link | Domänenadapter | 97,4 MB | |
v3_sd15_mm.ckpt.ckpt | Link | Bewegungsmodul | 1,56 GB | |
v3_sd15_sparsectrl_scribble.ckpt | Link | SparseCtrl-Encoder | 1,86 GB | Scribble-Zustand |
v3_sd15_sparsectrl_rgb.ckpt | Link | SparseCtrl-Encoder | 1,85 GB | RGB-Bildzustand |
Eingabe (von RealisticVision) | Animation | Eingang | Animation |
Geben Sie Scribble ein | Ausgabe | Geben Sie Kritzeleien ein | Ausgabe |
Veröffentlichen Sie das Motion Module (Betaversion) auf SDXL, verfügbar unter Google Drive / HuggingFace / CivitAI. Hochauflösende Videos (dh 1024 x 1024 x 16 Bilder mit verschiedenen Seitenverhältnissen) könnten mit/ohne personalisierte Modelle produziert werden. Die Inferenz erfordert in der Regel ca. 13 GB VRAM und abgestimmte Hyperparameter (z. B. Sampling-Schritte), abhängig von den gewählten personalisierten Modellen.
Weitere Informationen zur Schlussfolgerung finden Sie im Zweig sdxl.
Name | Umarmendes Gesicht | Typ | Stauraum |
---|---|---|---|
mm_sdxl_v10_beta.ckpt | Link | Bewegungsmodul | 950 MB |
Original SDXL | Community-SDXL | Community-SDXL |
In dieser Version ist das Bewegungsmodul mm_sd_v15_v2.ckpt
(Google Drive / HuggingFace / CivitAI) auf eine größere Auflösung und Stapelgröße trainiert. Wir haben festgestellt, dass das Scale-up-Training erheblich zur Verbesserung der Bewegungsqualität und -vielfalt beiträgt.
Wir unterstützen auch MotionLoRA mit acht grundlegenden Kamerabewegungen. MotionLoRA-Kontrollpunkte beanspruchen nur 77 MB Speicherplatz pro Modell und sind unter Google Drive / HuggingFace / CivitAI verfügbar.
Name | Umarmendes Gesicht | Typ | Parameter | Lagerung |
---|---|---|---|---|
mm_sd_v15_v2.ckpt | Link | Bewegungsmodul | 453 Mio | 1,7 GB |
v2_lora_ZoomIn.ckpt | Link | MotionLoRA | 19 M | 74 MB |
v2_lora_ZoomOut.ckpt | Link | MotionLoRA | 19 M | 74 MB |
v2_lora_PanLeft.ckpt | Link | MotionLoRA | 19 M | 74 MB |
v2_lora_PanRight.ckpt | Link | MotionLoRA | 19 M | 74 MB |
v2_lora_TiltUp.ckpt | Link | MotionLoRA | 19 M | 74 MB |
v2_lora_TiltDown.ckpt | Link | MotionLoRA | 19 M | 74 MB |
v2_lora_RollingClockwise.ckpt | Link | MotionLoRA | 19 M | 74 MB |
v2_lora_RollingAnticlockwise.ckpt | Link | MotionLoRA | 19 M | 74 MB |
Vergrößern | Herauszoomen | Zoomen, Schwenken nach links | Zoomen und nach rechts schwenken | ||||
Nach oben kippen | Nach unten kippen | Rollen gegen den Uhrzeigersinn | Im Uhrzeigersinn rollen | ||||
Hier ist ein Vergleich zwischen mm_sd_v15.ckpt
(links) und dem verbesserten mm_sd_v15_v2.ckpt
(rechts).
Die erste Version von AnimateDiff!
Name | Umarmendes Gesicht | Parameter | Stauraum |
---|---|---|---|
mm_sd_v14.ckpt | Link | 417 Mio | 1,6 GB |
mm_sd_v15.ckpt | Link | 417 Mio | 1,6 GB |
Weitere Informationen finden Sie unter „Schritte für die Schulung“.
AnimateDiff für stabile Diffusion WebUI: sd-webui-animatediff (von @continue-revolution)
AnimateDiff für ComfyUI: ComfyUI-AnimateDiff-Evolved (von @Kosinkadink)
Google Colab: Colab (von @camenduru)
Dieses Projekt ist für den akademischen Gebrauch freigegeben. Wir übernehmen keine Haftung für benutzergenerierte Inhalte. Bitte beachten Sie außerdem, dass unsere einzigen offiziellen Websites https://github.com/guoyww/AnimateDiff und https://animatediff.github.io sind und alle anderen Websites NICHT mit uns bei AnimateDiff verbunden sind.
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}
}
Codebasis basierend auf Tune-a-Video.