AnimateDiff Video-to-Video: Flicker e ControlNet
Prepare clipes de origem, suprima o flicker entre quadros e monte a pilha de ControlNet para movimento legível na geração video-to-video com AnimateDiff.
On this page
AnimateDiff Video-to-Video: Flicker e ControlNet
Transformar um clipe existente em uma animação estilizada com AnimateDiff se resume a três decisões técnicas: como você prepara o clipe de origem, como suprime o flicker entre quadros e qual pilha de ControlNet mantém o movimento legível. Este guia do ArtificialGuyBR percorre cada camada com configurações verificadas contra o repositório oficial do AnimateDiff [https://github.com/guoyww/AnimateDiff], o model card do Lightning da ByteDance [https://huggingface.co/ByteDance/AnimateDiff-Lightning], a documentação do ControlNet [https://github.com/lllyasviel/ControlNet] e os fluxos de trabalho da comunidade publicados no Civitai. Para contexto relacionado, veja nosso Guia Completo de ControlNet e o Guia de Stable Diffusion para VRAM Baixa.
TL;DR
- Prepare o clipe: recorte para ≤512×768 (ou 576×1024 para Lightning) [https://huggingface.co/ByteDance/AnimateDiff-Lightning], faça um loop limpo com o LoopMaker [https://github.com/markuryy/LoopMaker] e mantenha abaixo de 8 segundos.
- Elimine o flicker: defina o multiplicador de ruído como 0 no Mov2Mov [https://civitai.com/articles/1961], combine lineart_realistic com
control_v11p_sd15_lineartno peso 0.6 e rode DPM++ 2M Karras com 20 passos, CFG 11 e denoise 0.6. - Empilhe ControlNet: camada de lineart para estrutura, OpenPose ou Depth para pose e, opcionalmente, IP-Adapter para consistência facial; o checkpoint AnimateDiff ControlNet [https://huggingface.co/crishhh/animatediff_controlnet] cuida da segunda passagem do k-sampler nos fluxos Lightning. Saiba mais sobre a arquitetura em ControlNet Explicado.
Como Preparar um Clipe de Origem para Vídeo-Vídeo com AnimateDiff?
Resolução e duração são as restrições rígidas. O fluxo da comunidade para VRAM baixa (RTX 3060, 8 GB) recomenda 512×768 no máximo; gerar maior "pode levar a erros, não importa quanta VRAM você tenha" [https://civitai.com/articles/3518]. A equipe do AnimateDiff-Lightning testou em 576×1024, 8 segundos, 30 fps e avisa: "o vídeo não deve ser muito longo nem de resolução muito alta" [https://huggingface.co/ByteDance/AnimateDiff-Lightning]. Mantenha o clipe abaixo de 8 segundos e na proporção da resolução de destino.
Se a origem ainda não é um loop contínuo, rode no LoopMaker [https://github.com/markuryy/LoopMaker], um app Python e notebook Colab que "identifica e cria automaticamente segmentos em loop a partir de arquivos de vídeo". Para contexto mais amplo, veja Pré-processamento de Vídeo para Animação.
Quais Configurações Reduzem o Flicker Entre Quadros?
O flicker vem de ruído diferente injetado no latente de cada quadro. O fluxo Mov2Mov afirma: "Podemos deixar o Noise multiplier em 0 para reduzir o flickering" [https://civitai.com/articles/1961].
O mesmo fluxo combina ruído zero com uma pilha ControlNet de lineart:
| Configuração | Valor |
|---|---|
| Pré-processador | lineart_realistic |
| Modelo ControlNet | control_v11p_sd15_lineart |
| Peso do controle | 0.6 |
| Modo de controle | Balanced |
| Modo de redimensionamento | Just resize |
| Método de amostragem | DPM++ 2M Karras |
| Passos | 20 |
| CFG | 11 |
| Força de denoise | 0.6 |
| Multiplicador de ruído | 0 |
O pré-processador lineart extrai bordas; o modelo ControlNet condiciona a difusão a seguir essas bordas no peso 0.6.
ControlNet é composável: "mais de um ControlNet pode ser facilmente composto para controle multi-condição" [https://github.com/lllyasviel/ControlNet]. Uma pilha prática de vídeo-vídeo empilha:
- Lineart (
control_v11p_sd15_lineart) — bordas do quadro, peso ~0.6. - OpenPose (
control_v11p_sd15_openpose) ou Depth — pose do corpo e layout espacial. O fluxo v2v do Lightning já vem com OpenPose [https://huggingface.co/ByteDance/AnimateDiff-Lightning]. - IP-Adapter (opcional) — consistência facial entre quadros. As dicas do Lightning mencionam "IP-Adapter para melhor consistência facial" [https://huggingface.co/ByteDance/AnimateDiff-Lightning].
- Checkpoint AnimateDiff ControlNet (
crishhh/animatediff_controlnet) [https://huggingface.co/crishhh/animatediff_controlnet] — usado na segunda passagem do k-sampler do fluxo ComfyUI do Lightning para coerência temporal.
ControlNet copia blocos de rede em uma cópia bloqueada (preservando o modelo) e uma cópia treinável (aprendendo o sinal de controle). Convoluções zero — convoluções 1×1 com pesos e viés inicializados como zeros — começam neutras e aumentam durante o treinamento [https://github.com/lllyasviel/ControlNet].
Configuração para VRAM Baixa (RTX 3060 / 8 GB)
O guia da comunidade para placas abaixo da 4090 usa estas flags no 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
--xformersreduz o consumo de memória e aumenta a velocidade [https://civitai.com/articles/3518].--lowvramreduz o uso de memória da GPU, mas reduz muito a velocidade de geração: a GPU armazena apenas o necessário para cada passo, transferindo dados para a RAM entre passos (22,9 GB de RAM do sistema no teste de 16 quadros do guia) [https://civitai.com/articles/3518].--upcast-samplingcorrige o erro "Upcast cross attention layer to float32" que pode aparecer com xformers [https://civitai.com/articles/3518].
Com >6 GB de VRAM, troque --lowvram por --medvram após a primeira execução [https://civitai.com/articles/3518].
Geração em 512×768, 16 quadros, 8 fps leva aproximadamente uma hora numa RTX 3060 [https://civitai.com/articles/3518].
AnimateDiff Lightning: Vídeo-Vídeo Mais Rápido
O AnimateDiff-Lightning da ByteDance destila o módulo de movimento original em checkpoints de 1, 2, 4 e 8 passos [https://huggingface.co/ByteDance/AnimateDiff-Lightning]. A variante de 8 passos (animatediff_lightning_8step_comfyui.safetensors) entrega a melhor qualidade; as variantes de 2 e 4 passos entregam inferência mais rápida com qualidade menor.
Configurações recomendadas do Lightning:
| Parâmetro | Valor | Fonte |
|---|---|---|
| Sampler | Euler | Civitai article 4769 |
| Scheduler | SGM uniform | Civitai article 4769 |
| CFG | 2 (1 remove prompt negativo) | Civitai article 4769 |
| Módulo de movimento | animatediff_lightning_8step_comfyui.safetensors | AnimateDiff-Lightning |
| Modelo base | Checkpoints estilizados compatíveis com 1.5 | AnimateDiff-Lightning |
| Força do LoRA de movimento | 0.7–0.8 | AnimateDiff-Lightning |
| Quadros para teste | 32 | Civitai article 4769 |
| Quadros para final | 300 |
O fluxo v2v do Lightning adiciona ControlNet OpenPose (control_v11p_sd15_openpose.pth) e o checkpoint AnimateDiff ControlNet [https://huggingface.co/crishhh/animatediff_controlnet] para a segunda passagem.
Estendendo a Duração e Mudando o Conteúdo
- Interpolação de quadros: Ative a interpolação FILM do Deforum em
Interp X = 10para desacelerar o vídeo 10× (30 quadros a 30 fps → 10 segundos) [https://civitai.com/articles/3518]. - Looping: Use o LoopMaker [https://github.com/markuryy/LoopMaker] para criar um clipe de origem contínuo, depois ative o Closed loop do AnimateDiff com modo
R+P.
Common Errors and Fixes
| Sintoma | Causa | Correção |
|---|---|---|
| Aba Mov2Mov ausente após instalar extensão | WebUI não reiniciado | Feche o Stable Diffusion e reabra webui-user.bat [https://civitai.com/articles/1961] |
| Seção AnimateDiff não aparece | "Apply and restart UI" não clicado | Extensions → Installed → Apply and restart UI [https://civitai.com/articles/3518] |
| Deforum instalado mas inutilizável | Segundo reinício pulado | Rode webui-user.bat novamente após instalar Deforum [https://civitai.com/articles/3518] |
| Erros de geração acima de 512×768 | Esgotamento de VRAM | Mantenha resolução ≤ 512×768 (ou 576×1024 para Lightning) [https://civitai.com/articles/3518] |
| Conflito AnimateDiff + ADetailer | Ambas extensões disputam controle por passo | Desative ADetailer durante geração de vídeo [https://civitai.com/articles/3518] |
FAQ
Como reduzir o flicker no AnimateDiff vídeo-vídeo?
Defina o multiplicador de ruído como 0 no Mov2Mov, use o ControlNet lineart no peso 0.6 (modo Balanced) e rode DPM++ 2M Karras com 20 passos, CFG 11 e denoise 0.6 [https://civitai.com/articles/1961].
Qual modelo ControlNet funciona melhor com AnimateDiff para animar vídeo?
control_v11p_sd15_lineart para bordas, control_v11p_sd15_openpose para pose e o checkpoint AnimateDiff ControlNet [https://huggingface.co/crishhh/animatediff_controlnet] para a segunda passagem do k-sampler nos fluxos Lightning. Empilhe-os — ControlNet é composável por design [https://github.com/lllyasviel/ControlNet].
Como configurar o AnimateDiff numa GPU de VRAM baixa (ex.: RTX 3060)?
Adicione --xformers --upcast-sampling --lowvram ao webui-user.bat, mais CUDA_MODULE_LOADING=LAZY e PYTORCH_CUDA_ALLOC_CONF=garbage_collection_threshold:0.6,max_split_size_mb:32 [https://civitai.com/articles/3518]. Espere cerca de uma hora para 16 quadros em 512×768. Troque para --medvram com >6 GB de VRAM [https://civitai.com/articles/3518].
Qual a diferença entre o módulo de movimento AnimateDiff v14 e v15?
Terminologia da comunidade: v14 é descrito como "mais estável", v15 como "maior". O repositório oficial não versiona módulos dessa forma; o arquivo padrão é mm_sd_v15_v2.ckpt [https://civitai.com/articles/3518]. Para Lightning, use o checkpoint dedicado de 8 passos da ByteDance [https://huggingface.co/ByteDance/AnimateDiff-Lightning].
Posso usar o AnimateDiff Lightning para vídeo-vídeo?
Sim. O repositório do Lightning fornece um fluxo ComfyUI v2v usando ControlNet OpenPose e o checkpoint AnimateDiff ControlNet [https://huggingface.co/crishhh/animatediff_controlnet]. Testado em 576×1024, 8 segundos, 30 fps [https://huggingface.co/ByteDance/AnimateDiff-Lightning]. Use sampler Euler, scheduler SGM uniform, CFG 2 e o módulo de movimento de 8 passos.
Como fazer o vídeo de saída dar loop contínuo?
Use o LoopMaker [https://github.com/markuryy/LoopMaker] para extrair um segmento em loop da origem, depois ative o "Closed loop" do AnimateDiff com modo R+P.
Qual resolução meu clipe de origem deve ter?
512×768 no máximo para o fluxo padrão do WebUI [https://civitai.com/articles/3518]; 576×1024 para AnimateDiff-Lightning [https://huggingface.co/ByteDance/AnimateDiff-Lightning]. Resoluções maiores causam erros independentemente da VRAM [https://civitai.com/articles/3518].