AnimateDiff Video-to-Video: Flicker y ControlNet
Prepara clips de origen, suprime el flicker entre fotogramas y ensambla el stack de ControlNet para movimiento legible.
On this page
- TL;DR
- ¿Cómo preparas un clip de origen para AnimateDiff video a video?
- ¿Qué ajustes reducen el flicker entre fotogramas?
- ¿Cómo configuro AnimateDiff con poca VRAM (RTX 3060 / 8 GB)?
- ¿Es AnimateDiff Lightning más rápido para video a video?
- ¿Cómo extiendo la duración y cambio el contenido?
- Errores comunes y soluciones
- FAQ
AnimateDiff Video-to-Video: Flicker y ControlNet
Convertir un clip existente en una animación estilizada con AnimateDiff se resume en tres decisiones técnicas: cómo preparas el clip de origen, cómo suprimes el flicker entre fotogramas y qué stack de ControlNet mantiene el movimiento legible. Esta guía recorre cada capa con ajustes verificados contra el repositorio oficial de AnimateDiff [https://github.com/guoyww/AnimateDiff], la model card de Lightning de ByteDance [https://huggingface.co/ByteDance/AnimateDiff-Lightning], la documentación de ControlNet [https://github.com/lllyasviel/ControlNet] y los workflows de la comunidad publicados en Civitai. Para más contexto, consulta nuestra Guía completa de ControlNet y la Guía de Stable Diffusion con poca VRAM. Vuelve al inicio.
TL;DR
- Prepara el clip: recorta a ≤512×768 (o 576×1024 para Lightning) [https://huggingface.co/ByteDance/AnimateDiff-Lightning], haz un loop limpio con LoopMaker [https://github.com/markuryy/LoopMaker] y mantenlo por debajo de 8 segundos.
- Elimina el flicker: pon el multiplicador de ruido a 0 en Mov2Mov [https://civitai.com/articles/1961], combina lineart_realistic con
control_v11p_sd15_lineartcon peso 0.6, y ejecuta DPM++ 2M Karras con 20 pasos, CFG 11 y denoise 0.6. - Apila ControlNet: capa lineart para la estructura, OpenPose o Depth para la pose y, opcionalmente, IP-Adapter para la coherencia del rostro; el checkpoint AnimateDiff ControlNet [https://huggingface.co/crishhh/animatediff_controlnet] gestiona la segunda pasada k-sampler en los workflows de Lightning. Aprende más sobre la arquitectura subyacente en ControlNet explicado.
¿Cómo preparas un clip de origen para AnimateDiff video a video?
La resolución y la duración son las restricciones duras. El workflow de la comunidad para poca VRAM (RTX 3060, 8 GB) recomienda 512×768 como máximo; generar más grande "may lead to errors, no matter how much VRAM you have" [https://civitai.com/articles/3518]. El equipo de AnimateDiff-Lightning probó con 576×1024, 8 segundos, 30 fps y advierte: "video shouldn't be too long or too high resolution" [https://huggingface.co/ByteDance/AnimateDiff-Lightning]. Mantén el clip por debajo de 8 segundos y haz coincidir el aspect ratio con tu resolución objetivo.
Si el origen ya no es un loop sin costuras, pásalo por LoopMaker [https://github.com/markuryy/LoopMaker], una app de Python y un cuaderno de Colab que "automatically identify and create looping segments from video files." Para más contexto, consulta Preprocesado de vídeo para animación.
¿Qué ajustes reducen el flicker entre fotogramas?
El flicker viene de que se inyecta ruido distinto en el latente de cada fotograma. El workflow de Mov2Mov indica: "We can leave the Noise multiplier to 0 to reduce flickering" [https://civitai.com/articles/1961].
El mismo workflow combina ruido cero con un stack de ControlNet lineart.
| Ajuste | Valor | Source |
|---|---|---|
| Preprocesador | lineart_realistic | Civitai article 1961 |
| Modelo ControlNet | control_v11p_sd15_lineart | Civitai article 1961 |
| Control weight | 0.6 | Civitai article 1961 |
| Control mode | Balanced | Civitai article 1961 |
| Resize mode | Just resize | Civitai article 1961 |
| Sampling method | DPM++ 2M Karras | Civitai article 1961 |
| Steps | 20 | Civitai article 1961 |
| CFG scale | 11 | Civitai article 1961 |
| Denoising strength | 0.6 | Civitai article 1961 |
| Noise multiplier | 0 | Civitai article 1961 |
El preprocesador lineart extrae los bordes; el modelo ControlNet condiciona la difusión para que esas aristas se sigan a un peso 0.6. ControlNet es composable: "more than one ControlNet can be easily composed to multi-condition control" [https://github.com/lllyasviel/ControlNet]. Una stack práctica para video a video:
- Lineart (
control_v11p_sd15_lineart) — bordes del fotograma, peso ~0.6. - OpenPose (
control_v11p_sd15_openpose) o Depth — pose del cuerpo y disposición espacial. El workflow v2v de Lightning enva OpenPose [https://huggingface.co/ByteDance/AnimateDiff-Lightning]. - IP-Adapter (opcional) — coherencia del rostro entre fotogramas. Los tips de Lightning mencionan "IP-Adapter for improved face consistency" [https://huggingface.co/ByteDance/AnimateDiff-Lightning].
- Checkpoint AnimateDiff ControlNet (
crishhh/animatediff_controlnet) [https://huggingface.co/crishhh/animatediff_controlnet] — usado en la segunda pasada k-sampler del workflow ComfyUI de Lightning para coherencia temporal.
ControlNet copia los bloques de la red en una copia bloqueada (preservando el modelo) y una copia entrenable (aprende la señal de control). Las zero convolutions —convoluciones 1x1 con pesos y sesgo inicializados a cero— arrancan neutras y suben durante el entrenamiento [https://github.com/lllyasviel/ControlNet].
¿Cómo configuro AnimateDiff con poca VRAM (RTX 3060 / 8 GB)?
La guía de la comunidad para tarjetas por debajo de una 4090 usa estas marcas en webui-user.bat [https://civitai.com/articles/3518]:
set COMMANDLINE_ARGS=--xformers --upcast-sampling --lowvram
set CUDA_MODULE_LOADING=LAZY
set PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.6,max_split_size_mb:32
--xformersreduce el consumo de memoria y aumenta la velocidad [https://civitai.com/articles/3518].--lowvramreduce el uso de memoria de la GPU pero reduce mucho la velocidad de generación: la GPU guarda solo lo necesario para cada paso, transfiriendo datos a la RAM entre pasos (22.9 GB de RAM del sistema en la prueba de 16 fotogramas de la guía) [https://civitai.com/articles/3518].--upcast-samplingcorrige el error "Upcast cross attention layer to float32" que puede aparecer con xformers [https://civitai.com/articles/3518].
Con más de 6 GB de VRAM, cambia --lowvram a --medvram tras la primera ejecución [https://civitai.com/articles/3518].
La generación a 512×768, 16 fotogramas, 8 fps tarda aproximadamente una hora en una RTX 3060 [https://civitai.com/articles/3518].
¿Es AnimateDiff Lightning más rápido para video a video?
AnimateDiff-Lightning de ByteDance destila el módulo de movimiento original en checkpoints de 1, 2, 4 y 8 pasos [https://huggingface.co/ByteDance/AnimateDiff-Lightning]. El variante de 8 pasos (animatediff_lightning_8step_comfyui.safetensors) ofrece la mejor calidad; los de 2 y 4 pasos entregan inferencia más rápida a menor calidad.
Ajustes recomendados para Lightning:
| Parámetro | Valor | Source |
|---|---|---|
| Sampler | Euler | Civitai article 4769 |
| Scheduler | SGM uniform | Civitai article 4769 |
| CFG scale | 2 (1 elimina el prompt negativo) | Civitai article 4769 |
| Motion module | animatediff_lightning_8step_comfyui.safetensors | AnimateDiff-Lightning |
| Base model | checkpoints estilizados compatibles con 1.5 | AnimateDiff-Lightning |
| Motion LoRA strength | 0.7–0.8 | AnimateDiff-Lightning |
| Frames for test | 32 | Civitai article 4769 |
| Frames for final | 300 | Civitai article 4769 |
El flujo de trabajo v2v de Lightning añade ControlNet OpenPose (control_v11p_sd15_openpose.pth) y el checkpoint AnimateDiff ControlNet [https://huggingface.co/crishhh/animatediff_controlnet] para el segundo pase.
¿Cómo extiendo la duración y cambio el contenido?
- Interpolación de frames: habilita la interpolación FILM de Deforum en
Interp X = 10para ralentizar el video 10× (30 frames a 30 fps → 10 segundos) [https://civitai.com/articles/3518]. - Loop: usa LoopMaker [https://github.com/markuryy/LoopMaker] para crear un clip de origen sin costuras y activa Closed loop de AnimateDiff con modo
R+P.
Errores comunes y soluciones
| Síntoma | Causa | Corrección |
|---|---|---|
| Falta la pestaña Mov2Mov después de instalar la extensión | WebUI no reiniciado | Cierra Stable Diffusion y relanza webui-user.bat [https://civitai.com/articles/1961] |
| No aparece la sección AnimateDiff | No se clicó "Apply and restart UI" | Extensions → Installed → Apply and restart UI [https://civitai.com/articles/3518] |
| Deforum instalado pero inutilizable | Segundo reinicio omitido | Vuelve a ejecutar webui-user.bat tras instalar Deforum [https://civitai.com/articles/3518] |
| Errores de generación por encima de 512×768 | Agotamiento de VRAM | Mantén la resolución ≤ 512×768 (o 576×1024 para Lightning) [https://civitai.com/articles/3518] |
| Conflicto AnimateDiff + ADetailer | Ambas extensiones compiten por el control por paso | Desactiva ADetailer durante la generación de vídeo [https://civitai.com/articles/3518] |
FAQ
¿Cómo reduzco el flicker en AnimateDiff video a video?
Pon el multiplicador de ruido a 0 en Mov2Mov, usa el ControlNet de lineart con peso 0.6 (modo Balanced) y ejecuta DPM++ 2M Karras con 20 pasos, CFG 11 y denoise 0.6 [https://civitai.com/articles/1961].
¿Qué modelo ControlNet funciona mejor con AnimateDiff para animar vídeo?
control_v11p_sd15_lineart para los bordes, control_v11p_sd15_openpose para la pose y el checkpoint AnimateDiff ControlNet [https://huggingface.co/crishhh/animatediff_controlnet] para la segunda pasada k-sampler de los workflows de Lightning. Apílalos: ControlNet es composable por diseño [https://github.com/lllyasviel/ControlNet].
¿Cómo configuro AnimateDiff en una GPU con poca VRAM (por ejemplo, RTX 3060)?
Añade --xformers --upcast-sampling --lowvram a webui-user.bat, más CUDA_MODULE_LOADING=LAZY y PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.6,max_split_size_mb:32 [https://civitai.com/articles/3518]. Espera aproximadamente una hora por 16 fotogramas a 512×768. Cambia a --medvram con más de 6 GB de VRAM [https://civitai.com/articles/3518].
¿Cuál es la diferencia entre AnimateDiff v14 y v15 del motion module?
Terminología de la comunidad: la v14 se describe como "más estable" y la v15 como "más grande". El repositorio oficial no versiona los módulos así; el archivo estándar es mm_sd_v15_v2.ckpt [https://civitai.com/articles/3518]. Para Lightning, usa el checkpoint de 8 pasos dedicado de ByteDance [https://huggingface.co/ByteDance/AnimateDiff-Lightning].
¿Puedo usar AnimateDiff Lightning para video a video?
Sí. El repositorio de Lightning ofrece un workflow v2v de ComfyUI con ControlNet OpenPose y el checkpoint AnimateDiff ControlNet [https://huggingface.co/crishhh/animatediff_controlnet]. Probado a 576×1024, 8 segundos, 30 fps [https://huggingface.co/ByteDance/AnimateDiff-Lightning]. Usa el sampler Euler, el scheduler SGM uniform, CFG 2 y el módulo de movimiento de 8 pasos.
¿Cómo hago que el vídeo de salida haga loop sin costuras?
Usa LoopMaker [https://github.com/markuryy/LoopMaker] para extraer un segmento que haga loop de la fuente y después activa "Closed loop" de AnimateDiff con el modo R+P.
¿Qué resolución debe tener mi clip de origen?
Máximo 512×768 para el workflow estándar de WebUI [https://civitai.com/articles/3518]; 576×1024 para AnimateDiff-Lightning [https://huggingface.co/ByteDance/AnimateDiff-Lightning]. Resoluciones mayores provocan errores sin tener en cuenta la VRAM [https://civitai.com/articles/3518].