Ordem de execução para upscale e interpolação de vídeo
Aprenda a ordem correta do pipeline para upscale, interpolar e finalizar vídeo gerado por IA sem tremores nem artefatos.
On this page
Ordem de execução para upscale e interpolação de vídeo com IA
Quando você gera vídeo com AnimateDiff ou ferramentas parecidas, a saída crua geralmente precisa de upscale e de suavização de quadra antes de ficar pronto para produção. A sequência em que executa esses passos define se o clip final tremora, perde coerência temporal ou introduce fantasma. Este artigo separa a ordem do pipeline verificada, as ferramentas envolvidas e os erros comuns que criam artefatos.
TL;DR
- Gere movimento primeiro, faça upscale depois, combine por último. O módulo de movimento do AnimateDiff constrói coerência temporal no espaço latente; o upscale depois da geração preserva essa estrutura quadro por quadro.
- VideoCombine é um muxer, não um interpolador. O nó VHS
VideoCombinecombina quadros em um contêiner de vídeo em uma quadra-alvo — ele não cria novos quadros entre sí. - Tremores são uma limitação documentada do AnimateDiff. O README v3 lista visivelmente tremores em configurações texto-para-vídeo gerais, e nenhuma fonte primária quantifica uma passada de mitigação.
Qual é a ordem correta do pipeline?
O workflow RTFKT publicado no Civitai sequencia os nós nesta ordem:
ADE_AnimateDiffLoaderWithContext— carrega o módulo de movimento (ex.:temporaldiff-v1-animatediff.ckpt)KSampler(30 passos, cfg 7.5, dpmpp_2m, karras) — gera os latents animadosVAEDecode— decodifica latents em quadros no espaço de pixels na resolução base (576×1024)UpscaleModelLoader+ImageUpscaleWithModel— upscale com4x-AnimeSharp.pthpara 1080×1920VHS_VideoCombine— combine frames em ProRes MOV e h264 MP4 em 24 fps
Fonte: anexo de JSON do workflow da Civitai.
Por que a geração de movimento vem antes do upscale
O AnimateDiff injeta um módulo de movimento pré-treinado em um modelo de texto-para-imagem base. Cada quadro gerado já codifica o prior de movimento que o módulo aprendeu do vídeo do mundo real. O upscale depois da geração preserva essa estrutura quadro por quadro.
Evidência: o workflow RTFKT coloca loader do AnimateDiff → KSampler → VAEDecode → UpscaleModelLoader → ImageUpscaleWithModel → VHS_VideoCombine. A arquitetura do módulo de movimento está descrita no papel do AnimateDiff, arXiv:2307.04725.
VideoCombine faz interpolação de quadros?
Não. O workflow baixado (Fictiverse_QR_Vid2Vid.json) não contém nenhum nó de interpolação. O nó terminal é VHS_VideoCombine, que o README do VideoHelperSuite descreve como uma ferramenta que "combina uma série de imagens em um vídeo de saída" com parâmetros frame_rate, loop_count, format, pingpong e save_output. Ele não síntesiza novos quadros via fluxo óptico, FILM ou RIFE.
Se precisar de interpolação temporal real — criando quadros entre si — você deve adicionar um nó de interpolação dedicado entre o upscale e o combine final.
Evidência: o README do VideoHelperSuite não lista função de interpolação para VideoCombine; a lista de nós do workflow extraída do anexo 2354 não mostra nó de mistura de quadros.
O que causa tremores na saída do AnimateDiff?
O README v3 do AnimateDiff lista "Small fickering is noticable" como uma limitação conhecida em configurações texto-para-vídeo gerais. Nem o README nem o papel do arXiv quantificam um orçamento de tremores ou recomendam uma passada de mitigação específica.
Evidência: em "Limitations": "Small fickering is noticable;" — https://github.com/guoyww/AnimateDiff/blob/main/README.md
O que o VideoCombine faz na prática?
O README do VideoHelperSuite documenta VideoCombine com estes parâmetros obrigatórios: images (quadros de entrada), frame_rate (quadros por segundo), loop_count, filename_prefix, format (suporta image/gif, image/webp e formatos baseados em ffmpeg como video/h264-mp4 e video/ProRes), pingpong e save_output. Aceita também uma entrada opcional audio. O workflow RTFKT usa dois nós VideoCombine — um com saída ProRes MOV, outro com h264 MP4 — ambos em 24 fps com qualidade CRF 20.
Evidência: "required": {"images": ..., "frame_rate": ..., "loop_count": ..., "filename_prefix": ..., "format": ..., "pingpong": ..., "save_output": ...} — https://raw.githubusercontent.com/Kosinkadink/ComfyUI-VideoHelperSuite/master/README.md
O que é o "QRcode Monster" na verdade?
O nome aparece apenas como o nome do arquivo do checkpoint do ControlNet: control_v1p_sd15_qrcode_monster.safetensors, carregado via ControlNetLoaderAdvanced no workflow RTFKT. Nenhum repositório GitHub, modelo Hugging Face ou página de produto documenta uma entidade chamada "QRcode Monster" fora deste anexo da Civitai.
Evidência: a configuração do nó do workflow mostra "ControlNetLoaderAdvanced ['control_v1p_sd15_qrcode_monster.safetensors']".
O setget.js é obrigatório para workflows de vídeo?
O artigo 2354 diz "You will need setget.js" e dá o caminho ComfyUI/web/extensions/diffus3. O arquivo real fica em ComfyUI-extensions/main/setget/setget.js em um repositório separado — é uma extensão standalone que registra diffus3.SetNode e diffus3.GetNode para conexões de tunel. O JSON do workflow 2354 não contém instâncias de diffus3.SetNode ou diffus3.GetNode.
Evidência: a fonte crua setget.js mostra estrutura de extensão standalone; a extração de tipos de nó de Fictiverse_QR_Vid2Vid.json não mostra nós set/get.
Erros comuns e soluções
| Sintoma | Causa | Solução | Fonte |
|---|---|---|---|
| O título do artigo promete interpolação, mas o workflow não tem | "Interpolação" usado de forma solta para muxagem final | Adicione um nó de interpolação temporal dedicado (FILM/RIFE) entre upscale e combine se precisar de síntese real de quadros | https://raw.githubusercontent.com/Kosinkadink/ComfyUI-VideoHelperSuite/master/README.md |
| setget.js falta no workflow, mesmo com o artigo dizendo que é obrigatório | O artigo pode referenciar uma versão diferente do workflow ou uma utilitário opcional | Verifique contra o JSON específico do workflow; instale setget apenas se o gráfico esperar diffus3.SetNode/GetNode | https://civitai.com/api/download/attachments/208 |
| "QRcode Monster" tratado como nome de produto | O nome é apenas o arquivo do checkpoint | Referencie como o checkpoint do ControlNet control_v1p_sd15_qrcode_monster.safetensors | https://civitai.com/api/download/attachments/16044 |
| Frase de "animação quadro a quadro" com AnimateDiff | AnimateDiff é geração texto-para-vídeo, não edição manual por quadro | Refaça como "geração de prior de movimento com AnimateDiff" | https://github.com/guoyww/AnimateDiff/blob/main/README.md |
O que ainda não sabemos
Tudo que não foi possível verificar, sem rodeios e completo. O escritor está proibido de preencher esses itens.
- Nenhum nó de interpolação foi encontrado em nenhum dos workflows baixados. O ecossistema ComfyUI tem nós FILM e RIFE, mas a ordem de integração relativa ao upscale não está documentada em fontes primárias.
- Origem do QRcode Monster não foi verificada além do fato de ser um arquivo de checkpoint do ControlNet em anexos da Civitai. Nenhuma página GitHub ou HuggingFace foi encontrada nas fontes abertas.
- Ordem upscale primeiro versus interpolação primeiro para redução de artefatos não tem dados de benchmark.
- Mitigação de tremores: o README v3 do AnimateDiff nota a limitação, mas não dá direção quantitativa.
- Métricas de saída: nenhum PSNR, SSIM, LPIPS ou dado de estudo de observadores das artigos ou documentos abertos.
- Números de VRAM e latência para o pipeline completo ausentes.
- Ferramentas alternativas: nenhuma fonte aberta compara contêineres de vídeo, codecs ou approaches de interpolação diferentes.
- Tratamento de sincronia áudio/vídeo em
VideoCombineestá documentado como parâmetro de entradaaudio, mas não é discutido em nenhum dos artigos fontes.
FAQ
VideoCombine faz interpolação de quadros ou é só um muxer?
É um muxer. O README do VideoHelperSuite descreve-o como combinando imagens em um contêiner de vídeo com controles de codec e quadra; nenhuma função de interpolação é listada.
Onde na pipeline o upscale deve ocorrer em relação à geração de movimento?
Depois da geração de movimento e da decodificação VAE. O workflow RTFKT sequencia AnimateDiff → KSampler → VAEDecode → UpscaleModelLoader → ImageUpscaleWithModel → VideoCombine.
Há alguma técnica documentada para reduzir tremores na saída do AnimateDiff?
O README v3 lista tremores visíveis como uma limitação conhecida, mas não quantifica a mitigação. Nenhuma fonte primária aberta documenta uma passada de redução de tremores vinculada à ordem do pipeline.
Para que serve a extensão diffus3/setget e é obrigatória?
Ela fornece SetNode/GetNode para conexões de tunel em gráficos ComfyUI. O JSON do workflow 2354 não inclui esses nós; a afirmação "obrigatório" é única e não verificada para esse workflow.
QRcode Monster é um produto ou só um nome de checkpoint?
Só um nome de arquivo do checkpoint: control_v1p_sd15_qrcode_monster.safetensors carregado via ControlNetLoaderAdvanced. Nenhuma documentação de produto separada foi encontrada nas fontes abertas.
Posso fazer upscale antes de rodar o AnimateDiff para economizar tempo?
O workflow publicado faz o oposto. Fazer upscale antes da geração de movimento reprocessaria quadros base e poderia degradar as características latentes que o módulo de movimento depende, embora nenhum benchmark quantifique a penalidade.
Qual é a quadra nativa de saída do AnimateDiff?
O README do VideoHelperSuite sugere manter frame_rate em 8 para o AnimateDiff, correspondendo à saída nativa do modelo. O workflow RTFKT então combine em 24 fps via VideoCombine.
Existem nós de interpolação alternativos no ComfyUI?
Sim — as implementações FILM e RIFE existem como nós personalizados, mas sua posição ideal em relação ao upscale não está coberta nas fontes primárias abertas.