Fluxo de trabalho e API do InfiniteTalk no ComfyUI: avatares com sincronização labial gratuitos

O InfiniteTalk é um modelo de código aberto que transforma uma foto e um arquivo de áudio em um vídeo falante, com lábios, cabeça e corpo em sincronia com a fala. Este artigo mostra o workflow no ComfyUI, as configurações que fazem diferença, chamadas de API hospedadas e auto-hospedadas e uma alternativa no navegador para resultados rápidos.

Fluxo de trabalho e API do InfiniteTalk no ComfyUI: avatares com sincronização labial gratuitos
Cristian Da Conceicao
Fundador do Picasso IA

Você tem uma foto, uma gravação de voz e nenhuma equipe de filmagem. O InfiniteTalk transforma esses dois arquivos em um vídeo em que a pessoa da imagem realmente fala, com lábios, cabeça e ombros se movendo no ritmo do áudio. Os pesos são abertos sob a licença Apache 2.0, o ComfyUI consegue executá-los na sua própria GPU, e uma API hospedada pode fazer o mesmo quando você não tem uma. Este artigo percorre as duas rotas: o workflow no ComfyUI passo a passo, as configurações que mudam o resultado, as chamadas de API e uma alternativa sem instalação na PicassoIA para os dias em que uma configuração local dá mais trabalho do que a tarefa merece.

O que o InfiniteTalk realmente faz

O InfiniteTalk vem da equipe MeiGen-AI. O código, os pesos e o relatório técnico foram publicados em 19 de agosto de 2025. Ele é construído sobre o checkpoint de 14B e 480P do modelo Wan 2.1 de imagem para vídeo e lê o áudio por meio de um codificador wav2vec2. Tanto a saída em 480p quanto em 720p são suportadas.

O modelo tem uma linhagem. O MultiTalk, anterior do mesmo grupo, tratava de vídeos de conversa guiados por áudio, e o wrapper do ComfyUI ainda o lista ao lado do InfiniteTalk. O que o InfiniteTalk acrescenta é a geração de duração ilimitada e o movimento do corpo inteiro, além do movimento dos lábios. A seção de notícias do repositório também aponta para uma família sucessora chamada LongCat Video Avatar, então vale conferir quando você quiser os pesos mais recentes da mesma equipe.

Um jovem observa um quadro de vídeo pausado de uma mulher no meio de uma frase em um monitor fosco

Dublagem por quadros esparsos, em termos simples

A maioria das ferramentas mais antigas de sincronia labial repinta uma região em volta da boca e deixa o resto do rosto congelado. O resultado parece uma máscara falante. O InfiniteTalk usa o que os autores chamam de dublagem de vídeo por quadros esparsos: ele mantém um punhado de quadros de referência para manter a identidade estável e, depois, gera tudo o que está entre eles, para que lábios, giros de cabeça, postura e expressões faciais sigam o áudio. Clipes longos são construídos com janelas de contexto encadeadas, com uma janela padrão de 81 quadros, e é assim que um vídeo falante consegue ir bem além dos cinco segundos habituais.

Modo imagem ou modo vídeo

ModoVocê forneceIdeal paraDuração
Imagem para vídeoUma foto mais um arquivo de áudioNarradores, avatares, cantores, porta-vozesAté cerca de um minuto, antes de a qualidade cair
Vídeo para vídeoUm clipe existente mais um novo áudioDublagem, troca de voz, manter o movimento da câmeraIlimitada, em teoria

💡 Comece pelo modo imagem. Ele exige o menor número de entradas e falha de formas mais fáceis de entender, então você vê o que as configurações de áudio fazem antes de misturar um vídeo de origem.

Ele é realmente gratuito?

A licença é gratuita. O processamento, não. Essa diferença decide qual rota você deve escolher.

RotaCustoO que você abre mão
ComfyUI localSua GPU e a energia elétricaTempo de configuração, limites de VRAM, renderizações lentas em placas pequenas
API hospedadaCobrada por segundo de saída. No momento em que escrevo, a WaveSpeed lista cerca de US$ 0,03 por segundo em 480p e US$ 0,06 por segundo em 720p, até 10 minutos por tarefaGasto contínuo, menos controle sobre o grafo
Modelo no navegador na PicassoIAGratuito para testar em vários modelos de sincronia labialUm modelo diferente, clipes mais curtos

Gratuito também custa tempo. A primeira instalação local consome boa parte de uma tarde com instalação de nós e downloads, e só os arquivos do modelo passam de dezenas de gigabytes. Avalie a rota pela quantidade de clipes que você pretende fazer, e não pelo preço de etiqueta.

Um choque de realidade sobre o hardware

O InfiniteTalk roda sobre um modelo de vídeo de 14 bilhões de parâmetros, então a memória é o primeiro obstáculo. O repositório oficial traz um modo de baixa VRAM (--num_persistent_param_in_dit 0) que mantém os pesos fora da GPU entre as etapas, além de um checkpoint quantizado em FP8. No ComfyUI, os arquivos FP8 com escala do Kijai servem ao mesmo propósito. Não vou citar um número de VRAM, porque ele varia com a resolução, o número de quadros e a quantização. Teste com um clipe de 480p e 10 segundos antes de dedicar uma noite a uma renderização em 720p.

Close macro de uma placa de vídeo encaixada em um gabinete de PC aberto

Monte o workflow no ComfyUI

O suporte ao ComfyUI vem pelo ComfyUI-WanVideoWrapper, do Kijai. O template de música do InfiniteTalk no comfy.org lista três pacotes de nós: o WanVideoWrapper, o audio-separation-nodes-comfyui e o comfyui-kjnodes. Juntos, eles carregam o modelo, separam a voz da música e cuidam da parte de imagem e vídeo.

Instale os nós personalizados

  1. Abra um terminal em ComfyUI/custom_nodes e clone o wrapper.
  2. Instale os requisitos com pip install -r requirements.txt (as versões portáteis usam o interpretador python_embeded incluído).
  3. Adicione os pacotes de separação de áudio e kjnodes pelo ComfyUI Manager.
  4. Reinicie o ComfyUI para que os novos nós sejam registrados.
cd ComfyUI/custom_nodes
git clone https://github.com/kijai/ComfyUI-WanVideoWrapper
pip install -r ComfyUI-WanVideoWrapper/requirements.txt

Vista de cima de uma mesa com um notebook, um SSD e uma lista de configuração escrita à mão

Baixe os arquivos do modelo

O README do wrapper organiza os modelos em quatro pastas: text_encoders, clip_vision, diffusion_models e vae. O InfiniteTalk acrescenta seus próprios pesos sobre a base do Wan 2.1.

ArquivoPastaObservações
Wan 2.1 imagem para vídeo 14Bdiffusion_modelsModelo base, existem versões FP8 com escala
Codificador de texto UMT5text_encodersO mesmo usado pelos workflows do Wan 2.1
VAE do Wan 2.1vaeCompartilhado com outros workflows do Wan
Modelo CLIP visionclip_visionLê a foto de referência
InfiniteTalk Single (fp16, cerca de 5,1 GB)diffusion_modelsUm falante
InfiniteTalk Multi (fp16, cerca de 5,1 GB)diffusion_modelsDois falantes

Os dois arquivos do InfiniteTalk ficam na pasta InfiniteTalk do repositório WanVideo_comfy do Kijai, no Hugging Face. Se a lista de um carregador continuar vazia depois que você copiar um arquivo, atualize o ComfyUI e confira a pasta novamente.

Conecte o grafo

Os nomes dos nós mudam entre versões do wrapper, então abra o workflow de exemplo da pasta example_workflows do wrapper em vez de montar tudo do zero. A lógica é sempre a mesma:

  • Ramo da imagem: carregue o retrato, redimensione-o para a resolução de destino e codifique-o com o modelo CLIP vision.
  • Ramo do áudio: carregue o áudio, separe a voz de qualquer música e passe-o pelo codificador wav2vec2 para obter os embeddings de áudio.
  • Ramo do modelo: carregue a base do Wan 2.1, anexe os pesos do InfiniteTalk como modelo extra e adicione uma LoRA de velocidade, se quiser.
  • Sampler: envie os embeds de imagem, os embeds de texto e os embeds de áudio para o sampler e, depois, decodifique com o VAE.
  • Saída: combine os quadros e o áudio original em um MP4.

💡 Redimensione antes de amostrar. Um retrato que não corresponde à proporção de destino é esticado ou cortado de formas que parecem uma sincronia labial ruim, mas na verdade são uma entrada ruim.

Prepare o áudio e o retrato

O grafo é só metade do resultado. Os dois arquivos de entrada decidem o restante.

Áudio que sincroniza bem

Só voz é a entrada mais segura. Música de fundo sob a voz embaça os formatos da boca, e é por isso que o template do ComfyUI inclui nós de separação de áudio que tiram os vocais de uma mistura. Corte os silêncios do início, nivele o volume e exporte em WAV quando possível.

Sem gravação? Gere a voz. Speech 2.8 HD e ElevenLabs v3 transformam um roteiro em uma narração limpa que você pode enviar direto para o ramo de áudio.

O modo imagem perde qualidade depois de cerca de um minuto, então escreva para cenas, e não para monólogos. Divida um roteiro longo em seções de 20 a 40 segundos, renderize cada uma com o mesmo retrato e o mesmo seed e junte tudo em qualquer editor de vídeo. Cortar em uma pausa esconde a emenda, e o retrato repetido mantém a identidade estável de uma cena para outra.

Mãos girando um botão em uma interface de áudio ao lado de um microfone condensador

Uma foto de origem que funciona

O retrato é o primeiro quadro do seu avatar, então cada falha se propaga por todo o vídeo.

  • Fique de frente para a câmera, com a boca relaxada ou levemente fechada.
  • Mostre os ombros, porque o InfiniteTalk também anima a postura.
  • Use luz uniforme, sem sombra forte sobre os lábios.
  • Mantenha mãos, microfones e cabelos longe da boca.

Sem uma foto adequada? Crie uma com o Seedream 4.5 e peça expressão neutra, de frente, com luz suave de janela.

Uma mulher de cerca de cinquenta anos, com blazer azul-marinho, olhando para a câmera com expressão neutra

Configurações que mudam o resultado

Dois controles fazem a maior parte do trabalho: o número de passos de amostragem e a escala de CFG do áudio. O resto é secundário até que esses dois se comportem.

Passos e CFG do áudio

Os padrões oficiais usam 40 passos de amostragem. Para o CFG do áudio, o repositório recomenda um valor entre 3 e 5 para uma boa sincronia labial. Na prática, um valor mais alto faz a boca seguir o áudio com mais rigor, e levar isso longe demais deixa o rosto rígido.

ConfiguraçãoValor inicialO que faz
Passos de amostragem40Detalhe e estabilidade, renderizações mais lentas
CFG do áudio3 a 5Força da ligação entre áudio e boca
Resolução480p para testes, 720p para a versão finalNitidez contra tempo de renderização e memória
SeedFixo durante os testesPermite mudar uma configuração por vez

Modo rápido com LoRAs

Quarenta passos num modelo de 14B é lento. O repositório descreve dois atalhos: 8 passos com a LoRA FusionX ou 4 passos com a LoRA lightx2v. Ao usar uma LoRA de velocidade, reduza o CFG do áudio para cerca de 2. Você perde parte da textura fina da pele e do cabelo, então use o modo rápido para rascunhos e para clipes que serão vistos em tamanho pequeno, e depois refaça a melhor tomada com todos os passos.

Quando uma renderização dá errado, o sintoma geralmente aponta para uma causa:

SintomaCausa provávelCorreção
Os lábios se afastam do áudioCFG do áudio baixo demais, ou música sob a vozAumente o CFG do áudio para perto de 4 e separe os vocais
Rosto rígido, como máscaraCFG do áudio alto demaisReduza um ponto e refaça com o mesmo seed
O rosto muda aos poucos em um clipe longoModo imagem além do limite de cerca de um minutoDivida o roteiro em cenas e junte-as em um editor
Erro de falta de memóriaResolução ou janela de quadros grande demaisUse 480p, os arquivos FP8 ou ative a configuração de baixa VRAM
A boca se abre no silêncioRuído de respiração ou zumbido da sala lido como falaLimpe o áudio com um noise gate antes de carregá-lo

💡 Fixe o seed e mude uma coisa por vez. Renderize os mesmos cinco segundos em 480p enquanto ajusta o CFG do áudio. Quando a boca estiver certa, aumente a resolução.

Chame o InfiniteTalk por API

Uma API transforma um processo manual de dez minutos em uma chamada de função. Você tem duas opções, dependendo de quem é dono da GPU.

A rota da API hospedada

A WaveSpeed hospeda o InfiniteTalk em POST https://api.wavespeed.ai/api/v3/wavespeed-ai/infinitetalk. A requisição recebe image, audio, resolution (480p ou 720p), seed, um prompt opcional e um mask_image opcional. Você recebe de volta um ID de previsão e consulta uma URL de resultado a cada dois segundos, mais ou menos, até que o status chegue a um estado final. Áudio de até 10 minutos é aceito por tarefa.

import os, time, requests

TOKEN = os.environ["WAVESPEED_TOKEN"]
HEADERS = {"Authorization": f"Bearer {TOKEN}"}
BASE = "https://api.wavespeed.ai/api/v3"

job = requests.post(
    f"{BASE}/wavespeed-ai/infinitetalk",
    headers=HEADERS,
    json={
        "image": "https://example.com/portrait.jpg",
        "audio": "https://example.com/voice.wav",
        "resolution": "480p",
    },
).json()["data"]

while True:
    result = requests.get(f"{BASE}/predictions/{job['id']}/result", headers=HEADERS).json()["data"]
    if result["status"] not in ("created", "processing"):
        break
    time.sleep(2)

print(result["status"], result.get("outputs"))

Trate o trecho de código como ponto de partida e confira a página do modelo para o esquema atual antes de colocá-lo em produção. Espere cerca de 10 a 30 segundos de espera por segundo de vídeo, dependendo da resolução e da carga da fila.

Seu próprio endpoint do ComfyUI

O ComfyUI já executa um servidor HTTP, então seu workflow vira uma API no momento em que você o exporta. Use Save (API Format), troque os nomes de arquivo da imagem e do áudio dentro do JSON e envie-o para /prompt.

import json, time, requests

COMFY = "http://127.0.0.1:8188"
workflow = json.load(open("infinitetalk_api.json"))

prompt_id = requests.post(f"{COMFY}/prompt", json={"prompt": workflow}).json()["prompt_id"]

while True:
    history = requests.get(f"{COMFY}/history/{prompt_id}").json()
    if prompt_id in history:
        break
    time.sleep(3)

print(history[prompt_id]["outputs"])

Os arquivos citados no workflow precisam já estar na pasta input do ComfyUI, ou ser enviados antes para o endpoint /upload/image. Busque o vídeo finalizado em /view usando o nome de arquivo listado nas saídas.

Vista em contra-plongée de uma fileira de racks de servidores com um técnico ao fundo

💡 Nunca exponha a porta 8188 à internet aberta. O ComfyUI não tem login. Coloque-o atrás de uma VPN ou de um proxy reverso com autenticação antes que alguém de fora da sua rede consiga acessá-lo.

Onde os avatares realmente ajudam

Um avatar falante se justifica quando gravar uma pessoa diante da câmera é lento, caro ou impossível de repetir.

  • Aulas e treinamentos: uma foto do instrutor e um roteiro geram módulos de vídeo consistentes, e atualizar uma frase significa renderizar de novo, sem regravar.
  • Demonstrações de produto: um avatar porta-voz pode narrar a mesma página em vários idiomas, trocando apenas o áudio.
  • Cortes de podcast: o modelo Multi lida com dois falantes, o que combina com trechos de entrevistas para redes sociais.
  • Música e personagens: cantores, mascotes e personagens ilustrados funcionam desde que o rosto esteja bem visível.

Uma professora gravando uma aula com um smartphone em tripé ao lado de um quadro branco

Dois amigos rindo em uma mesa de podcast com microfones em braço articulado

💡 Tenha permissão. Anime o seu próprio rosto, um personagem licenciado ou alguém que tenha concordado com isso, e identifique o resultado como gerado por IA quando ele puder ser confundido com uma gravação real.

Pule a configuração na PicassoIA

A PicassoIA não hospeda o próprio InfiniteTalk. Mas oferece vários modelos de foto mais áudio que entregam o mesmo tipo de resultado em uma aba do navegador, sem nós, sem downloads e sem cálculos de VRAM.

Escolha um modelo de sincronia labial

ModeloEntradaBom saber
Omni Human 1.5Foto mais áudioÁudio de até 35 segundos, prompt de texto opcional, modo rápido
Fabric 1.0Foto mais áudioEscolha de saída em 480p ou 720p
Wan 2.2 S2VFoto, áudio e promptO prompt define movimento e clima, 81 quadros por bloco por padrão
Kling Avatar v2Foto mais áudio (MP3, WAV, M4A ou AAC)Modo padrão ou Pro, lida também com desenhos animados e animais
P Video AvatarFoto mais um roteiro digitado ou seu próprio áudioMais de 30 vozes integradas, até 1080p
Lipsync 2 ProVídeo existente mais áudio WAVDetecção de falante ativo e cinco modos de sincronia

A última linha importa se você veio pela dublagem de vídeo para vídeo: o Lipsync 2 Pro funciona com filmagens que você já gravou. Qual rota serve depende do trabalho:

  • Escolha o ComfyUI local para clipes de mais de um minuto, o modelo Multi com dois falantes, dublagem que mantém os movimentos originais da câmera ou controle total sobre cada configuração do sampler.
  • Escolha a API hospedada quando o seu próprio app precisa criar avatares sob demanda e você prefere pagar por segundo a manter uma GPU ligada.
  • Escolha um modelo da PicassoIA quando quiser um resultado nos próximos dez minutos, seu áudio tiver menos de 35 segundos e a velocidade importar mais do que reproduzir exatamente o visual do InfiniteTalk.

Passos para seu primeiro clipe

  1. Abra a página do Omni Human 1.5 na PicassoIA.
  2. Envie um retrato de frente. Rostos, fotos de corpo inteiro e personagens ilustrados funcionam.
  3. Envie um arquivo MP3 ou WAV com menos de 35 segundos. Áudios em inglês, espanhol, japonês, coreano, chinês e indonésio são suportados.
  4. Adicione um prompt opcional para orientar o movimento da câmera ou gestos, como "ela sorri e acena levemente com a cabeça".
  5. Ative o modo rápido para rascunhos rápidos, ou deixe-o desligado para o máximo de detalhe.
  6. Defina um seed se quiser reproduzir um resultado, depois gere e baixe o vídeo.

💡 Escreva o roteiro primeiro, grave-o com o Speech 2.8 HD e mantenha cada clipe abaixo do limite de 35 segundos. Clipes curtos unidos parecem mais naturais do que uma tomada longa só.

Crie seu primeiro avatar

Escolha um retrato, grave 20 segundos de áudio e rode o mesmo clipe em dois ou três modelos. Comparar os resultados lado a lado leva minutos e ensina mais do que qualquer ficha técnica. Abra o Omni Human 1.5 ou o Fabric 1.0 na PicassoIA, envie seus dois arquivos e veja uma foto parada começar a falar. Se você quiser um pipeline local depois, já saberá como é uma boa entrada.

Uma jovem sorrindo para o smartphone em um loft iluminado

Compartilhe este artigo

Escolha seu idioma