Geração Local de Vídeos com IA (ComfyUI + Wan / LTX)
Máquina base: RTX 4060 Laptop 8 GB de VRAM / 32 GB de RAM / Win11. Proposta: Gerar vídeos curtos de baixa resolução (animação, suficientes para mídias sociais). Não trate 8 GB como 16 GB.
Quando usar
Quando o usuário disser "quero rodar modelos de vídeo / gerar vídeo a partir de texto / gerar vídeo a partir de imagem", ou quando você precisar delegar a configuração de um ambiente de produção local de vídeos para um membro da equipe.
Entendendo o cenário (para não errar na escolha do modelo)
- Modelos de Texto-para-Vídeo (T2V) e Imagem-para-Vídeo (I2V) são diferentes e não podem ser trocados entre si:
- Wan2.1-1.3B só existe para T2V; o I2V do Wan só existe na versão 14B (que não cabe em 8 GB de VRAM).
- O I2V que cabe em 8 GB de VRAM é o LTX-2B fp8 (que ainda precisa do encoder t5xxl).
- Vídeos longos / consistência de personagens: T2V puro não consegue manter o mesmo personagem por vários segmentos. A solução é usar I2V sempre com a mesma imagem de personagem como primeiro quadro, gerar cada segmento com ela e depois juntá-los. Tentar juntar vários segmentos de T2V vai sempre resultar em um personagem que "flutua" (muda de aparência).
- Modelos do Ollama e do ComfyUI não são a mesma coisa: Ollama é para modelos de linguagem (escrever prompts/roteiros), ComfyUI é para modelos de difusão (gerar os vídeos). Eles trabalham juntos, mas não são substitutos um do outro.
Ordem de instalação (siga a ordem; pular passos causa erros)
1) Instalar o ComfyUI versão portátil (coloque no drive D, não no C)
- Baixe do repositório GitHub
Comfy-Org/ComfyUIa releaseComfyUI_windows_portable_nvidia.7z(já vem com python + torch + CUDA). - ⚠️ No bash, o comando
7z x -o"/d/..."converte o caminho MSYS incorretamente, e o resultado não vai para o diretório desejado (a extração informa sucesso, mas a pasta fica vazia). → Use subprocess do Python com caminho nativo do Windows para chamar o 7z.
2) Atualizar o ComfyUI para a versão mais recente (versões antigas não têm os nós Wan / LTX)
- A conexão direta com o GitHub frequentemente falha com
Connection was reset→ Configure o mirror primeiro:git config --global url."https://ghfast.top/https://github.com/".insteadOf "https://github.com/", depoisgit pull --ff-only origin master.
3) Atualizar as dependências Python: python_embeded\python.exe -s -m pip install -r ComfyUI\requirements.txt (versões novas podem adicionar pacotes como comfy-kitchen).
4) O torch deve ser compatível com o comfy-kitchen (resolva de acordo com os sintomas):
| Sintoma | Causa raiz | Ação |
|---|---|---|
module 'torch.library' has no attribute 'custom_op' | torch < 2.4 | Atualizar o torch |
infer_schema ... unsupported type list[int] | Incompatibilidade entre torch e comfy-kitchen | Atualizar para torch cu130 (2.14+) |
cudaErrorNotSupported / likely using older driver | Versão do driver CUDA insuficiente | Atualizar o driver NVIDIA |
- Primeiro, veja o limite do driver:
nvidia-smiprocure porCUDA Version; se precisar de CUDA 13, terá que atualizar o driver. - Para baixar o driver mais recente: use a API de consulta de drivers NVIDIA (
AjaxDriverService, para notebooks RTX 40xx o psid=138 / pfid=1005) e obtenha aDownloadURL; o download precisa de User-Agent e Referer de navegador, senão retorna 403. Instalação silenciosa:-s -noreboot; após a instalação, confirme comnvidia-smi; normalmente não precisa reiniciar para que o torch reconheça a GPU.
5) Os modelos precisam estar no formato padrão do ComfyUI (um dos maiores erros)
- Do repositório
Comfy-Org/Wan_2.1_ComfyUI_repackaged, baixe da pastasplit_files/os seguintes safetensors:diffusion_models/wan2.1_t2v_1.3B_fp16.safetensors(~2,8 GB)text_encoders/umt5_xxl_fp8_e4m3fn_scaled.safetensors(~6,7 GB)vae/wan_2.1_vae.safetensors(~0,25 GB)
- ⚠️ Usar os arquivos
.pthoriginais do Wan (comomodels_t5_umt5-xxl-enc-bf16.pth) → causa o erroCannot copy out of meta tensor; no data!(na etapa CLIPTextEncode). Isso é incompatibilidade de formato/nome, não é problema de VRAM – não mexa nos parâmetros de VRAM. - Para baixar na China: conexão direta com HuggingFace não funciona → use hf-mirror.com;
curl -C - --retry 999 --retry-all-errorspara retomar downloads. - Localização:
ComfyUI\models\{diffusion_models,text_encoders,vae}\.
6) Instalar o ffmpeg (necessário para codificação de vídeo): python_embeded\python.exe -s -m pip install imageio-ffmpeg imageio (já vem com um ffmpeg estático). Sem ele, a etapa SaveVideo falha com [Errno 22].
7) Iniciar o servidor
python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --disable-async-offload > log.txt 2>&1
--disable-async-offload: evita que os pesos do encoder de texto fiquem presos no meta device com 8 GB de VRAM.- ⚠️⚠️ Nunca use pipe
| head/| teepara iniciar este tipo de serviço de longa duração: a barra de progresso do tqdm tenta escrever em um pipe fechado →[Errno 22] Invalid argumente o KSampler é interrompido. Parece um erro de modelo, mas é um erro de inicialização. Use> log 2>&1para redirecionar. Essa armadilha vale para qualquer processo longo / gateway – um pipe fechado pode matar o processo. - Para verificar se está pronto:
netstat -ano | grep :8188e procure por LISTENING.
Executar texto-para-vídeo (T2V)
- A cadeia de nós é uma cópia de
templates/wan21_t2v_workflow.json:CLIPLoader(type=wan) + VAELoader + UNETLoader + EmptyHunyuanLatentVideo + CLIPTextEncode(positivo/negativo) + KSampler + VAEDecode + CreateVideo + SaveVideo- O latent de vídeo usa EmptyHunyuanLatentVideo; a saída precisa passar por CreateVideo → SaveVideo.
- ⚠️ A saída do
VAEDecodeé IMAGE; conectar diretamente ao SaveVideo causa o erroreceived_type(IMAGE) mismatch input_type(VIDEO).
- Envio:
POST http://127.0.0.1:8188/prompt, body{"prompt": {id_do_no: {class_type, inputs}}}; retorno comnode_errors:{}significa sucesso. - Verificar progresso:
GET /history/<prompt_id>vejastatus.status_str(running/success/error); em caso de erro, leiamessagese procure porexecution_error(contémnode_id/node_type/exception_message). - Parâmetros testados e funcionando com 8 GB: 832×480, length 33 (~2 segundos), steps 15-20, cfg 5.5-6.0, fps 16. Valores maiores sobrecarregam a RAM (offload) e ficam extremamente lentos.
- Saída em
ComfyUI\output\*.mp4; useimageio_ffmpeg.get_ffmpeg_exe()para chamar o ffmpeg e verificar duração / resolução.
Executar imagem-para-vídeo (I2V)
- Use LTX-2B:
ltxv-2b-0.9.8-distilled-fp8.safetensors(~4,5 GB) →models\diffusion_models\; o encoder de texto é t5xxl:t5xxl_fp8_e4m3fn.safetensors(~4,9 GB, do repositóriocomfyanonymous/flux_text_encoders) →models\text_encoders\. - ⚠️ LTX usa t5xxl, Wan usa umt5, eles não são intercambiáveis e ambos devem ser baixados.
- Estratégia de consistência: fixe uma imagem de personagem como primeiro quadro para cada segmento, ou use IPAdapter/InstantID para injetar a aparência do personagem.
Preparação antes de rodar (8 GB de VRAM)
- Feche Chrome e outros softwares que usem VRAM (o sistema e a área de trabalho consomem ~1,2 GB; o Chrome pode consumir ~1,9 GB).
- Execute uma tarefa por vez; não rode múltiplas gerações simultaneamente.
Como entregar para um membro da equipe
Estrutura do documento de transferência (siga este modelo): Caminho do ambiente → Comando de inicialização (com parâmetros) → Lista de modelos (nome do arquivo + diretório + tamanho) → Workflow JSON reutilizável → Parâmetros para 8 GB → Guia rápido de resolução de problemas → Próximos passos.
Referências
templates/wan21_t2v_workflow.json— Workflow testado e funcional para texto-para-vídeo com Wan2.1-1.3B (formato da API do ComfyUI, pode ser enviado diretamente via POST)
Sobre o autor
九品锦锂e | Transforma os erros que cometeu em skills prontas para usar, sem escrever manuais.
Este skill é a versão que eu mesmo uso; cada erro listado aqui foi realmente cometido. Se você tiver problemas ao usar, quiser aprender técnicas avançadas, ou tiver outros cenários que gostaria que eu transformasse em uma skill, me adicione no WeChat e me avise. Ao adicionar, mencione "SkillHub" para aprovação prioritária:

Escaneie o QR Code para adicionar o autor no WeChat · Com a observação "SkillHub" a aprovação é prioritária