Uma coisa importante para começar: modelos como o Seedance 2.0, o Veo, o Sora, o Kling ou o Wan normalmente nĂŁo sĂŁo apenas uma "LLM que gera vĂdeo". Na verdade, eles sĂŁo sistemas multimodais compostos por vĂĄrios modelos especializados trabalhando juntos. A LLM participa principalmente da compreensĂŁo do prompt, mas a geração visual em si costuma ser realizada por arquiteturas de difusĂŁo, transformers multimodais e mĂłdulos temporais especĂficos para vĂdeo.
O que o Seedance 2.0 Ă© por baixo, Ă© um Video Diffusion Transformer (similar ao DiT) com geração conjunta de ĂĄudio+vĂdeo. Para replicar algo nesse nĂvel vocĂȘ precisaria de:
- ~50.000â500.000 horas de vĂdeo rotulado de alta qualidade
- Clusters de A100/H100 por semanas ou meses
- Time de dezenas de pesquisadores
- Orçamento estimado: $5Mâ$50M sĂł em compute
Isso estĂĄ fora do alcance de uma pessoa ou equipe pequena, antes de qualquer cĂłdigo: VocĂȘ nĂŁo pode criar um modelo "baseado no Seedance 2.0" â os pesos, arquitetura interna e dados de treinamento sĂŁo propriedade fechada do ByteDance. NĂŁo hĂĄ como clonar, fazer fine-tune ou destilação do Seedance 2.0 legalmente, porque os pesos nunca foram publicados.
O que vocĂȘ realmente quer Ă© provavelmente isso: rodar um modelo de geração de vĂdeo open-source de graça, no seu prĂłprio servidor, sem pagar API nenhuma. Isso Ă© totalmente viĂĄvel. Os melhores candidatos hoje:
| Modelo | Qualidade | VRAM mĂnima | Licença |
|---|---|---|---|
| Wan 2.1 (Alibaba) | âââââ | 8 GB | Apache 2.0 â |
| HunyuanVideo (Tencent) | âââââ | 24 GB | Open â |
| CogVideoX-5B (Zhipu) | ââââ | 16 GB | Apache 2.0 â |
| Open-Sora | âââ | 12 GB | Apache 2.0 â |
O Wan 2.1 Ă© o mais prĂłximo em qualidade do Seedance 2.0 e roda em GPUs acessĂveis (RTX 3080/4070). Ă viĂĄvel construir a mesma aplicação FastAPI + React, mas apontando para o Wan 2.1 rodando 100% local, sem nenhuma API externa.
âDiffusersâ pode significar duas coisas dependendo do contexto, mas na prĂĄtica moderna de IA quase sempre se refere Ă biblioteca da Hugging Face chamada Diffusers, que Ă© um framework open-source para construir, treinar e usar modelos de difusĂŁo.
Para entender isso de forma direta, pense que âdiffusion modelâ Ă© a ideia matemĂĄtica e algorĂtmica (o processo de adicionar e remover ruĂdo), enquanto âdiffusersâ Ă© a implementação prĂĄtica disso em cĂłdigo, como uma espĂ©cie de kit de ferramentas pronto para vocĂȘ montar, rodar e modificar esses modelos sem ter que reescrever toda a matemĂĄtica e infraestrutura do zero.
A biblioteca Diffusers da Hugging Face organiza os modelos de difusĂŁo como blocos reutilizĂĄveis. Em vez de vocĂȘ lidar manualmente com todo o pipeline â scheduler de ruĂdo, rede neural de denoising, encoder de texto, VAE de compressĂŁo e decodificação â ela separa tudo em componentes bem definidos. Por exemplo, o âschedulerâ controla como o ruĂdo Ă© removido passo a passo (existem vĂĄrias estratĂ©gias diferentes disso), o âmodelâ geralmente Ă© a rede neural que aprende a prever o ruĂdo ou a imagem limpa (U-Net, Transformer ou hĂbridos), e o âpipelineâ Ă© o encaixe final que conecta texto â ruĂdo â imagem/vĂdeo final.
EntĂŁo quando alguĂ©m fala âestou usando diffusersâ, normalmente quer dizer que estĂĄ usando essa biblioteca para rodar modelos como Stable Diffusion, Stable Video Diffusion, ou variantes de geração de imagem e vĂdeo baseadas em difusĂŁo. Ela virou um padrĂŁo de facto porque simplifica muito a experimentação: vocĂȘ consegue trocar componentes, ajustar schedulers, testar checkpoints diferentes e atĂ© treinar ou fine-tunar modelos sem precisar reconstruir toda a arquitetura do zero.
Agora, se vocĂȘ estiver pensando no sentido mais teĂłrico da palavra âdiffusersâ (no plural, como conceito), algumas pessoas usam informalmente para se referir aos prĂłprios modelos de difusĂŁo em si, como âdiffusion modelsâ, mas isso Ă© mais gĂria do que termo tĂ©cnico formal. O termo correto mesmo continua sendo âdiffusion modelsâ, enquanto âDiffusersâ com D maiĂșsculo geralmente aponta para a biblioteca da Hugging Face.
!pip install diffusers==0.11.1O ponto importante Ă© que âdiffusersâ nĂŁo Ă© um tipo de modelo novo nem uma arquitetura, e sim uma camada de abstração que facilita trabalhar com modelos de difusĂŁo existentes, quase como um framework que padroniza como vocĂȘ monta e executa esse tipo de IA.
Todo modelo de difusão não é um transformer, e essa confusão é bem comum porque hoje muitos dos modelos mais famosos de difusão acabaram adotando transformers como backbone, mas isso é uma escolha de arquitetura, não uma regra do método.
O que define um modelo de difusĂŁo nĂŁo Ă© o tipo de rede neural usada por dentro, e sim o processo matemĂĄtico de aprendizado e geração. Ele Ă© definido pelo fato de que vocĂȘ pega um dado real (imagem, ĂĄudio, vĂdeo), vai adicionando ruĂdo progressivamente atĂ© destruir completamente a estrutura, e depois treina um modelo para aprender o caminho inverso, isto Ă©, remover o ruĂdo passo a passo atĂ© reconstruir o dado original a partir de uma amostra aleatĂłria. Esse âvai e voltaâ entre ruĂdo e reconstrução Ă© o coração da difusĂŁo. Isso pode ser implementado com vĂĄrias arquiteturas diferentes.
Historicamente, os primeiros modelos de difusĂŁo de alta performance em imagens, como o DDPM (Denoising Diffusion Probabilistic Models), usavam principalmente U-Nets com convoluçÔes, nĂŁo transformers. Esses U-Nets sĂŁo redes convolucionais com conexĂ”es de skip connections, muito boas para visĂŁo computacional porque preservam detalhes espaciais enquanto refinam a imagem em mĂșltiplas escalas. Inclusive, atĂ© hoje, muitos modelos de difusĂŁo populares ainda usam U-Net como base, porque ele Ă© eficiente e extremamente eficaz para lidar com estrutura espacial.
O transformer entra como uma evolução arquitetural possĂvel, nĂŁo obrigatĂłria. Quando vocĂȘ substitui ou combina o U-Net com blocos de atenção baseados em transformer, vocĂȘ ganha uma capacidade melhor de modelar dependĂȘncias globais, especialmente Ăștil para geração de imagens de alta resolução, vĂdeos ou tarefas onde o contexto distante importa muito. Ă por isso que modelos mais recentes, como os usados em geração de vĂdeo ou text-to-image de Ășltima geração, muitas vezes sĂŁo hĂbridos ou totalmente baseados em transformer.
EntĂŁo a forma mais correta de entender isso Ă©: difusĂŁo Ă© o âmĂ©todo de geraçãoâ, enquanto transformer, U-Net, CNN e outros sĂŁo âformas de implementar o cĂ©rebro que aprende esse mĂ©todoâ. VocĂȘ pode ter um modelo de difusĂŁo com CNN puro, com U-Net, com transformer puro, ou com combinaçÔes hĂbridas. O que muda nĂŁo Ă© o princĂpio da difusĂŁo, mas a capacidade e o tipo de padrĂŁo que o modelo consegue aprender dentro desse processo de remoção de ruĂdo.
Na verdade, a biblioteca Diffusers Ă© apenas uma ferramenta de software. Ela nĂŁo Ă© necessĂĄria para gerar imagens, audios ou vĂdeos por IA. O que realmente importa Ă© o modelo e a arquitetura por trĂĄs dele.
Por exemplo, vocĂȘ pode usar modelos de difusĂŁo implementados diretamente em PyTorch ou TensorFlow sem passar pela biblioteca Diffusers. Foi assim que muitos projetos surgiram originalmente. Os pesquisadores implementavam toda a lĂłgica de treinamento, inferĂȘncia, schedulers e redes neurais manualmente. A biblioteca Diffusers veio depois para padronizar e simplificar esse trabalho.
AlĂ©m disso, nem toda IA generativa de imagem ou vĂdeo usa difusĂŁo. Existem outras famĂlias de modelos. As GANs (Generative Adversarial Networks) dominaram boa parte da geração de imagens antes da popularização da difusĂŁo. Modelos como StyleGAN geram rostos extremamente realistas sem usar difusĂŁo. Eles funcionam atravĂ©s de uma competição entre uma rede geradora e uma discriminadora.
Outra abordagem sĂŁo os modelos autoregressivos. Em vez de começar com ruĂdo e remover esse ruĂdo, eles geram conteĂșdo token por token, de forma semelhante aos LLMs gerando texto palavra por palavra. Alguns modelos modernos de imagem e vĂdeo seguem essa linha, tratando patches visuais como tokens.
TambĂ©m existem os modelos baseados em fluxos (normalizing flows), VAEs (Variational Autoencoders) e arquiteturas hĂbridas que combinam vĂĄrias tĂ©cnicas. Um VAE, por exemplo, aprende um espaço latente comprimido e pode gerar novas imagens amostrando desse espaço.
Mais recentemente, surgiram os chamados "diffusion transformers" e tambĂ©m modelos puramente transformer para geração visual. Em vez de uma U-Net tradicional, usam mecanismos de atenção em larga escala para gerar imagens ou vĂdeos. Alguns sistemas de ponta atuais utilizam arquiteturas hĂbridas que misturam transformers, espaços latentes e processos de difusĂŁo.
Para vĂdeo, alĂ©m da difusĂŁo, existem modelos que aprendem diretamente a dinĂąmica temporal, modelos autoregressivos que geram um frame apĂłs o outro e sistemas baseados em world models, que tentam aprender uma representação do funcionamento do mundo para prever sequĂȘncias visuais futuras.
EntĂŁo, se sua pergunta Ă© "preciso da biblioteca Diffusers para gerar imagens ou vĂdeos?", a resposta Ă© definitivamente nĂŁo. VocĂȘ pode:
- Implementar o modelo diretamente em PyTorch ou TensorFlow.
- Usar GANs.
- Usar VAEs.
- Usar modelos autoregressivos.
- Usar transformers visuais puros.
- Usar arquiteturas hĂbridas.
- Utilizar engines proprietĂĄrias desenvolvidas internamente por empresas.
A biblioteca Diffusers apenas facilita o trabalho com modelos de difusĂŁo. Ela estĂĄ para os modelos de difusĂŁo mais ou menos como um framework web estĂĄ para uma aplicação web: extremamente Ăștil, muito popular, mas nĂŁo Ă© a Ășnica maneira de construir ou executar o sistema.
Se quiser, dĂĄ pra ir um nĂvel mais fundo e comparar diretamente por que transformers começaram a dominar certos tipos de difusĂŁo (principalmente vĂdeo e modelos multimodais) e onde eles ainda perdem para U-Nets em eficiĂȘncia e custo.
O DiT (Diffusion Transformer) Ă© uma das evoluçÔes mais importantes dos modelos de difusĂŁo modernos e estĂĄ diretamente relacionado ao surgimento de geradores de vĂdeo extremamente avançados como Sora, Veo, Wan, Kling e outros.
Para entender o DiT, primeiro Ă© preciso lembrar como os modelos de difusĂŁo nasceram.
Os primeiros modelos de difusĂŁo usavam predominantemente CNNs (Convolutional Neural Networks), especialmente arquiteturas chamadas U-Net. Durante anos, o pipeline era algo parecido com:
Prompt
â
Encoder de Texto
â
U-Net
â
DifusĂŁo
â
Imagem
O U-Net era responsĂĄvel por olhar para o ruĂdo e decidir como removĂȘ-lo passo a passo.
Funcionava muito bem para imagens.
Mas quando começaram a surgir modelos gigantescos, vĂdeos longos e cenas complexas, apareceram limitaçÔes.
As CNNs são excelentes para detectar padrÔes locais.
Por exemplo:
- bordas;
- texturas;
- pequenas regiÔes da imagem.
Mas elas tĂȘm mais dificuldade em entender relaçÔes globais.
Imagine uma cena:
Castelo
â
Montanha
â
DragĂŁo voando
O modelo precisa compreender a relação entre todos esses elementos simultaneamente.
Ă aĂ que entram os Transformers.
Os Transformers revolucionaram primeiro o NLP.
Depois foram adaptados para visĂŁo computacional.
Primeiro vieram os:
- Vision Transformers (ViT)
- Swin Transformers
- Video Transformers
Depois alguém teve a ideia:
"E se substituirmos o U-Net inteiro por um Transformer?"
Nasceu o DiT.
Em vez de processar a imagem usando convoluçÔes, o modelo divide a imagem em pequenos blocos chamados patches.
Imagine uma imagem:
ââââââââ
ââââââââ
ââââââââ
ââââââââ
Ela é quebrada em pedaços:
[Patch 1]
[Patch 2]
[Patch 3]
...
Cada patch vira um token.
Exatamente como uma palavra vira um token em uma LLM.
Ă por isso que existe uma forte conexĂŁo entre:
LLMs
Vision Transformers
DiTs
Todos trabalham sobre tokens.
Um GPT pode receber:
Batman
walks
in
Gotham
Um DiT recebe:
Patch 1
Patch 2
Patch 3
Patch 4
...
A magia acontece na Self-Attention.
O Transformer consegue perguntar:
"Quais partes da imagem sĂŁo importantes para entender esta outra parte?"
Isso permite enxergar dependĂȘncias globais.
Por exemplo:
Olho esquerdo
â
Olho direito
Rosto
â
Corpo
Pessoa
â
Sombra
Tudo ao mesmo tempo.
NĂŁo existe mais aquela limitação local tĂpica das convoluçÔes.
Nos vĂdeos a coisa fica ainda mais interessante.
Imagine um tensor:
Largura
Altura
Tempo
Ou:
X
Y
T
Agora os patches também possuem dimensão temporal.
O DiT pode observar:
Frame 1
Frame 2
Frame 3
Frame 4
simultaneamente.
Ele consegue entender:
- movimento;
- velocidade;
- direção;
- consistĂȘncia temporal.
Ă uma das razĂ”es pelas quais os vĂdeos modernos parecem muito mais estĂĄveis.
Antes:
Frame 1 â Pessoa A
Frame 2 â Pessoa B
Frame 3 â Pessoa C
O personagem mudava constantemente.
Com Transformers temporais e DiTs:
Frame 1 â Pessoa A
Frame 2 â Pessoa A
Frame 3 â Pessoa A
A identidade Ă© preservada com muito mais eficiĂȘncia.
Outra vantagem Ă© a escalabilidade.
Existe uma observação interessante na pesquisa atual:
Quanto maior o Transformer, melhor o DiT costuma escalar.
Isso lembra muito o comportamento das LLMs.
VocĂȘ aumenta:
- parĂąmetros;
- dados;
- GPUs;
- tempo de treinamento.
E o modelo continua melhorando.
Por isso muitos laboratĂłrios abandonaram progressivamente as U-Nets para modelos baseados em Transformer.
O pipeline moderno costuma ser algo parecido com:
Prompt
â
Text Encoder
â
Embeddings
â
DiT
â
DifusĂŁo Latente
â
Decoder
â
Imagem ou VĂdeo
No caso de um gerador como o Seedance 2.0, vocĂȘ pode imaginar algo ainda mais sofisticado:
Prompt
â
LLM
â
Entendimento semĂąntico
â
Embeddings multimodais
â
DiT Espaço-Temporal
â
DifusĂŁo de vĂdeo
â
Refinamento
â
Upscaling
â
VĂdeo Final
O motivo de tanta gente no mercado de IA estar falando de DiTs atualmente é que eles representam para a geração visual algo semelhante ao que os Transformers representaram para o NLP.
Da mesma forma que o GPT substituiu arquiteturas antigas de linguagem, os DiTs estão gradualmente substituindo arquiteturas tradicionais de difusão baseadas em convolução.
Por isso, quando vocĂȘ vĂȘ vĂdeos extremamente consistentes gerados por modelos de Ășltima geração, existe uma grande chance de haver um Diffusion Transformer fazendo boa parte do trabalho pesado por trĂĄs dos panos.
Deixa eu clarificar como o DiT realmente funciona: A divisĂŁo real no DiT para vĂdeo: O conditioning (o que vocĂȘ passa como entrada para guiar a geração) Ă© que varia, nĂŁo o tipo de modelo. Um mesmo modelo DiT pode aceitar mĂșltiplos tipos de condicionamento:
Tipos de condicionamento:
Text conditioning (T2V): O prompt de texto é codificado por um encoder de linguagem (T5, CLIP, etc.) e injetado no DiT via cross-attention. O modelo aprende a associar descriçÔes textuais com padrÔes visuais.
Image conditioning (I2V): Uma imagem de referĂȘncia Ă© codificada por um VAE e injetada como contexto visual. O modelo aprende a "animar" ou "continuar" a partir daquela imagem.
Ambos juntos (multimodal): Ă o que o Seedance 2.0, Wan 2.1 e HunyuanVideo fazem â o mesmo backbone DiT recebe texto + imagem + ĂĄudio simultĂąneamente via diferentes mecanismos de atenção.
Como o DiT processa tudo isso:
Entrada bruta
â
âŒ
VAE Encoder ââââââââââââââââââââââââââââââââââââ
(comprime vĂdeo/imagem em espaço latente) â
â â
⌠âŒ
Latent Tokens Conditioning Tokens
(o vĂdeo virou patches) (texto via T5, imagem via CLIP)
â â
ââââââââââââââââŹââââââââââââââââââââââââââââââ
âŒ
DiT Blocks
(self-attention + cross-attention)
â
âŒ
VAE Decoder
(latente â vĂdeo final)
Os dois componentes que vocĂȘ treina separadamente
| Componente | O que faz | Treina separado? |
|---|---|---|
| VAE | Comprime e reconstrói frames | Sim, geralmente pré-treinado |
| DiT backbone | Aprende a fazer diffusion guiado | Sim, Ă© o nĂșcleo |
| Text encoder | Entende prompts | Geralmente congelado (T5/CLIP pré-treinados) |
EntĂŁo quando vocĂȘ vĂȘ "modelo T2V" e "modelo I2V" no Wan ou CogVideoX, na prĂĄtica sĂŁo pesos diferentes do mesmo backbone DiT, treinados com estratĂ©gias de conditioning diferentes â nĂŁo arquiteturas separadas.
Qual parte vocĂȘ quer aprofundar â a arquitetura do DiT em si, o VAE, ou como estruturar o pipeline de treinamento?
O Video Diffusion Transformer (Ă s vezes abreviado como VideoDiT ou VDT em alguns trabalhos) Ă© uma arquitetura de modelo generativo que combina duas ideias centrais da IA moderna: os modelos de difusĂŁo e os transformers, aplicados especificamente Ă geração de vĂdeo. Para entender isso de forma intuitiva, dĂĄ pra pensar que ele Ă© uma evolução natural dos modelos que geram imagens com alta qualidade, mas estendidos para lidar com a dimensĂŁo extra do tempo, ou seja, nĂŁo apenas âo que aparece em cada frameâ, mas tambĂ©m âcomo isso evolui de um frame para o outro de maneira coerenteâ.
Os modelos de difusĂŁo funcionam de maneira conceitual como um processo de âdesruĂdoâ. Durante o treinamento, eles pegam dados reais (imagens ou vĂdeos), adicionam ruĂdo progressivamente atĂ© que tudo vire algo parecido com estĂĄtica aleatĂłria, e depois aprendem a inverter esse processo, ou seja, a reconstruir o conteĂșdo original a partir do ruĂdo. Isso permite que, na geração, vocĂȘ comece com ruĂdo puro e o modelo vĂĄ refinando passo a passo atĂ© surgir uma imagem ou vĂdeo coerente. O ponto-chave aqui Ă© que isso nĂŁo acontece de uma vez sĂł, mas em vĂĄrias etapas iterativas, o que ajuda na qualidade final.
JĂĄ o transformer entra como a espinha dorsal da arquitetura que decide como esse âdesruĂdoâ acontece de forma estruturada. Transformers sĂŁo excelentes em modelar relaçÔes globais em dados, porque trabalham com mecanismos de atenção, onde cada parte do dado pode âolharâ para outras partes e entender contexto. Em imagens isso jĂĄ funciona bem, mas em vĂdeos isso se torna ainda mais importante, porque agora vocĂȘ nĂŁo estĂĄ lidando sĂł com pixels em uma grade 2D, mas tambĂ©m com consistĂȘncia temporal entre frames. O Video Diffusion Transformer usa essa capacidade de atenção para entender nĂŁo sĂł o espaço (o que estĂĄ na imagem), mas tambĂ©m o tempo (como isso muda de frame para frame), garantindo continuidade visual, movimento coerente e identidade estĂĄvel de objetos.
Na prĂĄtica, o que diferencia esse tipo de modelo de abordagens mais antigas de geração de vĂdeo Ă© que ele nĂŁo tenta gerar o vĂdeo como uma sequĂȘncia de imagens independentes, nem usa exclusivamente redes convolucionais tradicionais que tĂȘm dificuldade em capturar dependĂȘncias de longo alcance. Em vez disso, ele trata o vĂdeo como uma sequĂȘncia estruturada de tokens, algo parecido com linguagem, onde cada âtokenâ pode representar patches de imagem ao longo do tempo. Isso permite que o modelo aprenda relaçÔes complexas, como um personagem mantendo sua aparĂȘncia enquanto se move, iluminação mudando de forma consistente ou objetos interagindo de maneira fisicamente plausĂvel.
Outro ponto importante Ă© que o Video Diffusion Transformer geralmente opera em um espaço latente comprimido, e nĂŁo diretamente nos pixels brutos. Isso reduz a complexidade computacional e permite trabalhar com vĂdeos mais longos ou resoluçÔes maiores. O modelo primeiro aprende uma representação comprimida do vĂdeo, aplica o processo de difusĂŁo nesse espaço mais eficiente e depois reconstrĂłi o resultado final em pixels atravĂ©s de um decodificador.
No fundo, ele representa uma convergĂȘncia de duas linhas fortes da IA moderna: a capacidade dos modelos de difusĂŁo de gerar alta qualidade e diversidade, e a capacidade dos transformers de modelar dependĂȘncias globais complexas. Quando vocĂȘ junta essas duas coisas no domĂnio temporal do vĂdeo, vocĂȘ obtĂ©m um sistema que nĂŁo sĂł gera imagens bonitas, mas tambĂ©m consegue âsimularâ uma continuidade visual convincente, que Ă© justamente o grande desafio da geração de vĂdeo por IA.
Existem 3 caminhos viĂĄveis dependendo do seu objetivo real:
Caminho 1 â Fine-tune de um modelo open-source (semanas, ~$500â2000 em GPU): Pegar o Wan 2.1 ou CogVideoX e especializar em um estilo/domĂnio especĂfico com seus prĂłprios dados. Resultado: modelo seu, customizado, rodando local.
Caminho 2 â Construir um modelo pequeno do zero (meses, viĂĄvel com 1 GPU): Implementar um Video Diffusion Transformer simples com PyTorch, treinar em um dataset pĂșblico como WebVid ou Panda-70M. Qualidade bem abaixo do Seedance, mas Ă© seu modelo, vocĂȘ entende cada camada.
Caminho 3 â Distilação de conhecimento de open-sources (meses): Usar modelos open como "professores" para treinar um modelo menor e mais eficiente. Legalmente viĂĄvel se os professores forem modelos com licença permissiva.
Qual desses caminhos faz mais sentido para vocĂȘ? E qual Ă© o objetivo final â aprender a fundo, ter um modelo para produção, ou especializar em um domĂnio especĂfico? Isso muda completamente o que vale a pena construir.
Quando vocĂȘ instala um sistema open source de geração de vĂdeo localmente, como um pipeline baseado em Diffusers, Wan ou CogVideoX, o processo começa muito antes da geração. Primeiro vocĂȘ precisa do ambiente: Python, CUDA, drivers NVIDIA, PyTorch, bibliotecas de inferĂȘncia e os pesos do modelo. Os pesos sĂŁo os arquivos gigantescos que armazenam o conhecimento aprendido durante o treinamento. Dependendo do modelo, eles podem ocupar dezenas ou centenas de gigabytes.
ApĂłs a instalação, o modelo nĂŁo "sabe gerar vĂdeos" da forma como um programador escreveria um algoritmo tradicional. O que ele possui Ă© uma enorme quantidade de parĂąmetros numĂ©ricos aprendidos durante o treinamento. Durante esse treinamento, bilhĂ”es de imagens, vĂdeos e descriçÔes textuais foram apresentados ao sistema. O modelo aprendeu relaçÔes estatĂsticas extremamente complexas entre palavras, conceitos, objetos, movimentos, iluminação, cĂąmeras, estilos artĂsticos, fĂsica aparente e comportamento visual.
Quando vocĂȘ escreve um prompt como:
"Um cavaleiro medieval caminhando em uma floresta ao amanhecer, cĂąmera cinematogrĂĄfica, neblina suave."
A primeira etapa geralmente passa por um encoder de texto. Muitas arquiteturas modernas usam algo semelhante a uma LLM compacta ou um encoder derivado de transformers. O texto Ă© transformado em embeddings.
Um embedding é uma representação vetorial.
Em vez de armazenar:
cavaleiro
floresta
amanhecer
o sistema converte tudo em milhares de nĂșmeros.
Algo conceitualmente parecido com:
[0.1532, -0.7821, 0.9911, ...]
Esses vetores carregam significado semĂąntico.
O modelo aprende que:
rei â rainha
homem â mulher
cachorro â lobo
ocupam regiÔes próximas do espaço vetorial.
O prompt inteiro vira uma estrutura matemĂĄtica gigantesca.
A partir daà começa a parte mais interessante.
Muita gente imagina que o modelo desenha quadro por quadro.
Na realidade, os modelos modernos de difusĂŁo fazem quase o oposto.
Eles começam com ruĂdo puro.
Literalmente algo parecido com televisĂŁo sem sinal.
Imagine um tensor multidimensional preenchido por valores aleatĂłrios.
O estado inicial se parece com:
âââââââââââââ
âââââââââââââ
âââââââââââââ
âââââââââââââ
Sem significado algum.
O trabalho do modelo Ă© remover o ruĂdo gradualmente.
Por isso o nome "difusĂŁo".
Durante o treinamento, o modelo aprendeu duas tarefas:
Adicionar ruĂdo.
Remover ruĂdo.
Na inferĂȘncia ele executa apenas a segunda.
O processo ocorre em dezenas ou centenas de passos.
Em cada passo ele pergunta:
"Com base no prompt e no estado atual, qual parte deste ruĂdo parece errada?"
EntĂŁo corrige.
Depois corrige novamente.
Depois corrige novamente.
AtĂ© que o ruĂdo começa a adquirir forma.
Primeiro surgem manchas.
Depois silhuetas.
Depois objetos.
Depois detalhes.
Em um gerador de imagens, o resultado final seria uma Ășnica imagem.
Em vĂdeo isso nĂŁo basta.
O sistema precisa resolver um problema muito mais difĂcil:
ConsistĂȘncia temporal.
Imagine gerar:
Frame 1
Frame 2
Frame 3
Frame 4
independentemente.
O cavaleiro poderia ter:
- olhos diferentes;
- armadura diferente;
- cabelo diferente;
- posição impossĂvel.
O vĂdeo pareceria um pesadelo psicodĂ©lico.
Então os modelos modernos trabalham em um espaço espaço-temporal.
Em vez de pensar:
altura
largura
eles pensam:
altura
largura
tempo
O vĂdeo Ă© tratado como um bloco tridimensional.
Conceitualmente:
[x, y, t]
onde t representa o tempo.
A geração ocorre simultaneamente sobre mĂșltiplos quadros.
O modelo aprende que:
- objetos devem permanecer os mesmos;
- iluminação deve ser coerente;
- movimentos devem ser suaves;
- personagens devem manter identidade.
Ă aqui que entram transformers temporais e attention temporal.
A atenção temporal funciona como uma memória.
Quando o modelo estĂĄ gerando um quadro futuro, ele consegue olhar para quadros anteriores.
Algo como:
Frame 20
â
consulta
â
Frame 19
Frame 18
Frame 17
Isso evita mudanças bruscas.
Nos modelos mais modernos, como Seedance 2.0 e Sora, existe ainda uma compreensĂŁo implĂcita de fĂsica.
NĂŁo Ă© fĂsica real.
Ă fĂsica estatĂstica aprendida.
O modelo observou tantos vĂdeos que aprendeu padrĂ”es como:
- gravidade;
- aceleração;
- colisÔes;
- reflexos;
- comportamento da ĂĄgua;
- fumaça;
- tecidos.
Ele não resolve as equaçÔes de Newton explicitamente.
Ele aprendeu visualmente.
Da mesma forma que um ser humano consegue prever aproximadamente como uma bola cairĂĄ sem calcular integrais.
Outro componente importante Ă© o VAE (Variational Autoencoder).
VĂdeos possuem uma quantidade absurda de pixels.
Gerar tudo diretamente seria inviĂĄvel.
EntĂŁo o vĂdeo Ă© comprimido para um espaço latente.
Pense nisso como:
VĂdeo original
â
CompressĂŁo inteligente
â
Espaço latente
â
DifusĂŁo
â
Reconstrução
â
VĂdeo final
Em vez de trabalhar com milhÔes de pixels diretamente, o modelo trabalha em uma representação comprimida muito menor.
Isso reduz drasticamente o custo computacional.
Nos sistemas mais avançados, a geração tambĂ©m envolve mĂșltiplos estĂĄgios.
Primeiro surge um vĂdeo de baixa resolução.
Depois ocorre upscaling.
Depois refinamento.
Depois estabilização temporal.
Depois correçÔes de detalhes.
O vĂdeo que vocĂȘ recebe normalmente passou por vĂĄrias redes neurais diferentes.
Quando o vĂdeo termina de ser gerado, ele ainda nĂŁo estĂĄ necessariamente em formato MP4.
Internamente existe apenas uma sequĂȘncia de tensores.
O sistema converte esses tensores para imagens.
Depois as imagens sĂŁo codificadas em vĂdeo usando codecs como H.264 ou H.265.
Somente entĂŁo surge o arquivo final.
Por baixo dos panos, um prompt aparentemente simples como:
"Batman caminhando em Gotham sob chuva intensa Ă noite"
pode disparar bilhÔes de operaçÔes matemåticas.
Milhares de multiplicaçÔes matriciais.
Centenas de camadas transformer.
Dezenas de passos de difusĂŁo.
Gigabytes de dados transitando pela memĂłria da GPU.
E tudo isso acontece porque o modelo aprendeu uma representação matemĂĄtica extremamente compacta do mundo visual a partir de enormes volumes de vĂdeos durante o treinamento.
A parte mais impressionante Ă© que o modelo nĂŁo possui uma biblioteca de vĂdeos escondida que ele mistura. Ele nĂŁo procura um vĂdeo de Batman e outro de chuva para colar um no outro. O que ele faz Ă© gerar uma nova sequĂȘncia visual a partir das distribuiçÔes estatĂsticas aprendidas. Cada quadro Ă© sintetizado matematicamente naquele momento, condicionado pelo prompt e pelos estados temporais anteriores. Ă por isso que duas execuçÔes do mesmo prompt podem produzir vĂdeos diferentes, mas ainda coerentes com a descrição fornecida.
- https://www.fanaticalfuturist.com/2018/04/ai-can-create-videos-out-of-thin-air-using-just-text-as-an-input/
- https://www.techinasia.com/gliacloud-uses-artificial-intelligence-to-automatically-turn-text-into-video
- https://github.com/vita-epfl/Stable-Video-Infinity
| Samples | Pretrained Models | Code | Paper | Output Quality | License |
|---|---|---|---|---|---|
| Memoji | Model | Code | A | Non Commercial CC | |
| Deep Fakes demo | (Download Pretrained model) | Code | A | -- | |
| VideoGAN | Download Model | Code | Tinyvideo | -- | -- |
| Adversarial Video Generation | Download Model | Code | 1511.05440 | -- | -- |
| Improved VideoGAN | -- | Code | 1711.11453 | -- | -- |
- https://github.com/alexlee-gk/video_prediction
- https://github.com/liuziwei7/voxel-flow
- https://github.com/Yunbo426/predrnn-pp
- https://github.com/mabirck/Video_GAN_Sonic
- https://github.com/xzr12/PredCNN
If I missed your output sample/demo in this consolidation, just add and send a pull request. I will be more than happy to add it. Thanks!
- Nvidea(official)
- Deep Fakes demo