Este repositorio es la implementación oficial de AnimateDiff [ICLR2024 Spotlight]. Es un módulo plug-and-play que convierte la mayoría de los modelos comunitarios de texto a imagen en generadores de animación, sin necesidad de capacitación adicional.
AnimateDiff: anime sus modelos personalizados de difusión de texto a imagen sin ajustes específicos
Yuwei Guo, Ceyuan Yang✝, Anyi Rao, Zhengyang Liang, Yaohui Wang, Yu Qiao, Maneesh Agrawala, Dahua Lin, Bo Dai (✝Autor correspondiente)
Nota: La rama main
es para Stable Diffusion V1.5; para Stable Diffusion XL, consulte la rama sdxl-beta
.
Se pueden encontrar más resultados en la Galería. Algunos de ellos son aportados por la comunidad.
Modelo: ToonYou
Modelo: Visión realista V2.0
Nota: AnimateDiff también cuenta con el soporte oficial de Difusores. Visite el tutorial sobre difusores AnimateDiff para obtener más detalles. Las siguientes instrucciones son para trabajar con este repositorio .
Nota: Para todos los scripts, la descarga del punto de control se gestionará automáticamente , por lo que la ejecución del script puede tardar más tiempo cuando se ejecuta por primera vez.
git clone https://github.com/guoyww/AnimateDiff.git
cd AnimateDiff
pip install -r requirements.txt
Las muestras generadas se pueden encontrar en la carpeta 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
Creamos una demostración de Gradio para que AnimateDiff sea más fácil de usar. De forma predeterminada, la demostración se ejecutará en localhost:7860
.
python -u app.py
AnimateDiff tiene como objetivo aprender antecedentes de movimiento transferibles que puedan aplicarse a otras variantes de la familia Stable Diffusion. Para ello diseñamos el siguiente pipeline formativo que consta de tres etapas.
En la etapa 1. Aliviar efectos negativos , entrenamos el adaptador de dominio , por ejemplo, v3_sd15_adapter.ckpt
, para que se ajuste a artefactos visuales defectuosos (por ejemplo, marcas de agua) en el conjunto de datos de entrenamiento. Esto también puede beneficiar el aprendizaje desenredado del movimiento y la apariencia espacial. De forma predeterminada, el adaptador se puede quitar por inferencia. También se puede integrar en el modelo y sus efectos se pueden ajustar mediante un escalador lora.
En la etapa 2. Aprender Motion Priors , entrenamos el módulo de movimiento , por ejemplo, v3_sd15_mm.ckpt
, para aprender los patrones de movimiento del mundo real a partir de videos.
En la etapa 3. (opcional) Adaptarse a nuevos patrones , entrenamos MotionLoRA , por ejemplo, v2_lora_ZoomIn.ckpt
, para adaptar eficientemente el módulo de movimiento a patrones de movimiento específicos (zoom de la cámara, desplazamiento, etc.).
SparseCtrl tiene como objetivo agregar más control a los modelos de texto a video mediante la adopción de algunas entradas escasas (por ejemplo, pocas imágenes RGB o entradas de bocetos). Sus detalles técnicos se pueden encontrar en el siguiente artículo:
SparseCtrl: Agregar controles dispersos a modelos de difusión de texto a video
Yuwei Guo, Ceyuan Yang✝, Anyi Rao, Maneesh Agrawala, Dahua Lin, Bo Dai (✝Autor correspondiente)
En esta versión, utilizamos el Adaptador de dominio LoRA para el ajuste del modelo de imagen, lo que proporciona más flexibilidad en la inferencia. También implementamos dos codificadores SparseCtrl (imagen RGB/garabatos), que pueden tomar un número arbitrario de mapas de condiciones para controlar el contenido de la animación.
Nombre | AbrazosCara | Tipo | Almacenamiento | Descripción |
---|---|---|---|---|
v3_adapter_sd_v15.ckpt | Enlace | Adaptador de dominio | 97,4MB | |
v3_sd15_mm.ckpt.ckpt | Enlace | Módulo de movimiento | 1,56GB | |
v3_sd15_sparsectrl_scribble.ckpt | Enlace | Codificador SparseCtrl | 1,86GB | condición de garabato |
v3_sd15_sparsectrl_rgb.ckpt | Enlace | Codificador SparseCtrl | 1,85GB | Condición de imagen RGB |
Entrada (por RealisticVision) | Animación | Aporte | Animación |
Garabato de entrada | Producción | Garabatos de entrada | Producción |
Lanzar el Motion Module (versión beta) en SDXL, disponible en Google Drive/HuggingFace/CivitAI. Se podrían producir vídeos de alta resolución (es decir, 1024x1024x16 fotogramas con varias relaciones de aspecto) con o sin modelos personalizados. La inferencia generalmente requiere ~13 GB de VRAM e hiperparámetros ajustados (por ejemplo, pasos de muestreo), según los modelos personalizados elegidos.
Visite la sucursal sdxl para obtener más detalles de la inferencia.
Nombre | AbrazosCara | Tipo | Espacio de almacenamiento |
---|---|---|---|
mm_sdxl_v10_beta.ckpt | Enlace | Módulo de movimiento | 950 megas |
SDXL originales | Comunidad SDXL | Comunidad SDXL |
En esta versión, el módulo de movimiento mm_sd_v15_v2.ckpt
(Google Drive/HuggingFace/CivitAI) está entrenado con una resolución y un tamaño de lote mayores. Descubrimos que la capacitación ampliada ayuda significativamente a mejorar la calidad y la diversidad del movimiento.
También admitimos MotionLoRA de ocho movimientos básicos de la cámara. Los puntos de control MotionLoRA ocupan solo 77 MB de almacenamiento por modelo y están disponibles en Google Drive/HuggingFace/CivitAI.
Nombre | AbrazosCara | Tipo | Parámetro | Almacenamiento |
---|---|---|---|---|
mm_sd_v15_v2.ckpt | Enlace | Módulo de movimiento | 453 millones | 1,7 GB |
v2_lora_ZoomIn.ckpt | Enlace | movimientoLoRA | 19 meses | 74 megas |
v2_lora_ZoomOut.ckpt | Enlace | movimientoLoRA | 19 meses | 74 megas |
v2_lora_PanLeft.ckpt | Enlace | movimientoLoRA | 19 meses | 74 megas |
v2_lora_PanRight.ckpt | Enlace | movimientoLoRA | 19 meses | 74 megas |
v2_lora_TiltUp.ckpt | Enlace | movimientoLoRA | 19 meses | 74 megas |
v2_lora_TiltDown.ckpt | Enlace | movimientoLoRA | 19 meses | 74 megas |
v2_lora_RollingClockwise.ckpt | Enlace | movimientoLoRA | 19 meses | 74 megas |
v2_lora_RollingAnticlockwise.ckpt | Enlace | movimientoLoRA | 19 meses | 74 megas |
Dar un golpe de zoom | Alejar | Zoom Panorámica hacia la izquierda | Ampliar panorámica hacia la derecha | ||||
inclinar hacia arriba | Inclinar hacia abajo | Rodando en sentido antihorario | Rodando en el sentido de las agujas del reloj | ||||
Aquí hay una comparación entre mm_sd_v15.ckpt
(izquierda) y mm_sd_v15_v2.ckpt
mejorado (derecha).
¡La primera versión de AnimateDiff!
Nombre | AbrazosCara | Parámetro | Espacio de almacenamiento |
---|---|---|---|
mm_sd_v14.ckpt | Enlace | 417 millones | 1,6GB |
mm_sd_v15.ckpt | Enlace | 417 millones | 1,6GB |
Consulte los Pasos para la capacitación para obtener más detalles.
AnimateDiff para WebUI de difusión estable: sd-webui-animatediff (por @continue-revolution)
AnimateDiff para ComfyUI: ComfyUI-AnimateDiff-Evolved (por @Kosinkadink)
Google Colab: Colab (por @camenduru)
Este proyecto está lanzado para uso académico. Renunciamos a toda responsabilidad por el contenido generado por el usuario. Además, tenga en cuenta que nuestro único sitio web oficial es https://github.com/guoyww/AnimateDiff y https://animatediff.github.io, y todos los demás sitios web NO están asociados con nosotros en 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}
}
Base de código basada en Tune-a-Video.