Blog de geração de vídeos longos: Como lançamos o SVI em produção

Na Parte 1, analisamos seis abordagens para a geração de vídeos longos — TTT, LoL, Self Forcing, Self Forcing++, Infinite Talk e Helios — e concluímos que o SVI é o único caminho disponível hoje sem a necessidade de retreinar um modelo de 14B. Este post é sobre como foi o processo de desenvolvimento: como funciona o loop de costura de clipes, por que a Reciclagem de Erros (Error-Recycling) é importante e os números de produção da nossa primeira implementação no TurboWan.

A escolha: SVI (Stable Video Infinity)

A filosofia central do SVI é transformar a geração de duração infinita na costura de um número finito de clipes curtos com transferência de memória cuidadosamente projetada. Isso parece modesto até perceber que resolve a maioria dos problemas de engenharia de uma só vez: sem retreinamento do modelo base (apenas um pequeno LoRA montado sobre o TurboWan), VRAM constante, compatível com destilação de velocidade existente e pesos LoRA oficiais públicos.

image8.png

O modelo mental do SVI. (a) Modelos generativos de vídeo padrão possuem uma lacuna entre treino e teste — eles treinam com entradas limpas, mas enfrentam entradas ruidosas com acúmulo de erros na inferência. (b) Modelos de restauração de imagem são robustos a erros, mas não conseguem gerar conteúdo novo. (c) O Fine-Tuning com Reciclagem de Erros do SVI une ambos — usando erros autogerados como sinais de supervisão para que o modelo aprenda ativamente a identificar e corrigir seus próprios erros de geração.

Como funciona a costura de clipes

Cada clipe tem 81 quadros (5s a 16fps). A geração é apenas um loop: condicionar o próximo clipe a uma âncora de identidade global e a uma ponte de movimento de curto prazo do clipe anterior, e então concatenar.

Clipe 1. Entradas: imagem de referência + memória de movimento vazia. Saída: um clipe de 5s. Extrair memória de movimento: o latente dos últimos 4 quadros. Clipe 2. Entradas: imagem de referência + memória de movimento do clipe 1. Saída: um clipe de 5s. Extrair memória de movimento do seu final. ... Repetir para N clipes, depois concatenar clipe 1 + clipe 2 + … + clipe N no vídeo longo.

A parte limpa é que não é necessária nenhuma modificação de atenção DiT. O contexto histórico é concatenado no nível da entrada como latentes, e um pequeno LoRA ensina o modelo a usar esse prefixo.

Latente de âncora. Imagem de referência fornecida pelo usuário, codificada pelo VAE → mantém a aparência do assunto/personagem globalmente consistente. Latente de movimento. Latente dos últimos 4 / 8 / 12 quadros do clipe anterior → diz ao modelo como o último segmento terminou. Padding (Preenchimento). Alinha o formato da entrada para que o DiT veja uma sequência concatenada organizada: âncora + movimento + padding.

Fine-Tuning com Reciclagem de Erros (Error-Recycling)

O detalhe que faz o SVI se sustentar ao longo de muitos clipes é como seu LoRA é treinado. A inferência padrão sempre começa o denoising a partir de ruído gaussiano puro — mas na costura de vídeos longos, erros de clipes anteriores contaminam o condicionamento para clipes posteriores. Se você treinar apenas com entradas de referência limpas, você terá embutido a lacuna entre treino e inferência.

Treinamento padrão: as entradas de referência de cada clipe são verdades fundamentais (ground truth) limpas → o modelo nunca vê o tipo de contexto histórico ruidoso que ele realmente enfrenta na inferência, e descontinuidades se acumulam.

Reciclagem de Erros: durante o treinamento, injete deliberadamente os erros passados do próprio modelo nas entradas de referência, para que o LoRA aprenda explicitamente a operar em um contexto histórico ruidoso. As descontinuidades visuais nas fronteiras dos clipes caem drasticamente.

image9.png

O SVI identifica dois tipos principais de erro. (a) Error-Free Flow Matching é a trajetória durante o treinamento. (b) Erro Preditivo de Clipe Único — o desvio por clipe entre o caminho de denoising e a trajetória ideal. (c) Erro Condicional entre Clipes — imagens de referência contaminadas por erros causam desvio em cascata entre os clipes. A Reciclagem de Erros injeta ambos explicitamente.

image10.png

Estrutura de treinamento SVI. (a) Injetar erros autogerados do DiT no espaço latente para quebrar a suposição de ausência de erro. (b) Calcular eficientemente erros bidirecionais via integração de um passo para frente/trás. (c) Armazenar erros em uma Memória de Replay e reamostrar dinamicamente para reutilização, formando um ciclo de supervisão de erro em malha fechada.

O SVI separa dois tipos de erro. O Erro Preditivo de Clipe Único é o desvio por clipe entre o caminho de denoising e a trajetória ideal. O Erro Condicional entre Clipes é o desvio em cascata causado quando imagens de referência contaminadas por erros fluem para o próximo clipe. A Reciclagem de Erros injeta ambos, para que o LoRA aprenda tolerância a erros explícita.

Variantes LoRA

O SVI oferece três variantes — SVI-Shot para imagem estática → clipe curto, SVI-Dance para movimento humano (também pode aceitar entrada de sequência de pose) e SVI-Film para vídeos longos de várias tomadas/transições de cena. Hiperparâmetros: 81 quadros por clipe, num_motion_frames ∈ {4, 8, 12}, rank do LoRA tipicamente entre 16–64.

Empilhando no TurboWan

Montamos o LoRA do SVI sobre o TurboWan (uma versão do Wan otimizada para velocidade pela Atlas), e mantemos nosso LoRA especializado na pilha para controle de estilo. Na inferência, vários pesos LoRA são sobrepostos ao mesmo tempo.

Base. TurboWan LoRA 1. LoRA especializado — controle de conteúdo/estilo. LoRA 2. LoRA SVI — consistência de vídeo longo. Combinado. Velocidade TurboWan + continuidade de vídeo longo SVI + estilo picante, tudo em uma única passagem de inferência.

O fluxo completo de inferência é direto: codifique a referência em um latente de âncora, concatene-o com o latente de movimento do clipe anterior e o padding, execute o denoising do TurboWan, decodifique, anexe e atualize o latente de movimento a partir do final do clipe recém-gerado. Após N iterações, concatene tudo em um vídeo.

1. Codifique a imagem de referência → latente de âncora.

2. y = concat(latente de âncora, latente de movimento, padding).

3. Execute o denoising de 5 passos do TurboWan condicionado a y e ao embedding de texto.

4. Decodifique o VAE do clipe e anexe à lista de saída.

5. Defina o latente de movimento = final (últimos num_motion_frames) do clipe recém-gerado.

6. Repita para N clipes, depois concatene todos.

Alguns números de produção

Teste padrão: uma única imagem de referência e 3 prompts, gerando ~15s de saída (3 clipes × 5s):

MétricaValor
Duração gerada15s (3 clipes)
Tempo de inferência por clipe~14s (TurboWan fp8, GPU única)
Tempo total de inferência~42s
Consistência do assuntoBoa

Um exemplo prático: Aventura do Gato

Para tornar o comportamento entre clipes concreto, executamos um caso de 15 segundos com uma referência e três tomadas. O prompt de estilo fixou um visual Pixar com iluminação quente; o personagem era um gatinho malhado laranja com olhos grandes e curiosos; as três tomadas levaram-no do parapeito da janela para a calçada, até encontrar um golden retriever, cada uma com sua própria direção de câmera.

image11.png

Clipe 1 (0–5s): o gatinho laranja estilo Pixar no parapeito da janela, com a câmera recuando lentamente de um close-up. O estilo e o personagem permanecem estáveis entre os quadros.

image12.png

Clipe 2 (5–10s) na fronteira de transição: a aparência do gatinho corresponde ao Clipe 1, então ele vira e muda a postura ao pular para baixo. O latente de movimento carregou o estado do movimento através da fronteira.

image13.png

Clipe 3 (10–15s): um golden retriever é introduzido e a cena transita para uma fronteira interno/externo. O estilo Pixar do gatinho permanece estável nos três clipes.

Métricas agregadas para a execução:

MétricaValor
Duração total15s (3 clipes × 5s)
Quadros totais240 quadros (16fps)
Tempo total de inferência33s (TurboWan, GPU única)
Taxa tempo-por-vídeo2.2 s/s
Consistência do assuntoGatinho laranja Pixar estável durante todo o vídeo
Descontinuidade na fronteiraSem cortes bruscos óbvios

Isso é um vídeo de 15 segundos em 33 segundos em uma única GPU, com consistência de assunto entre os clipes — bem dentro da espera de ≤ 60s que definimos como nossa meta. Em um conjunto de teste interno de 14 casos, 9 casos retornaram sem problemas óbvios (taxa de aprovação de 64%).

A observação honesta final é que, na geração de vídeo, velocidade, duração e qualidade são três cantos de um triângulo de ferro. Nenhuma abordagem única hoje lidera nos três ao mesmo tempo. O trabalho interessante está em escolher de qual canto você pode abrir mão, considerando o hardware de hoje e seu orçamento de treinamento. O SVI abre mão de um pouco de duração e um pouco de qualidade nas fronteiras — e, em troca, entregamos vídeo longo com fidelidade de classe Wan2.2, em uma única GPU, hoje.

Modelos relacionados

Mais de 300 Modelos, Comece Agora,

Explorar Todos os Modelos

Join our Discord community

Join the Discord community for the latest model updates, prompts, and support.