Documentação completa do processo de instalação e uso do MultiTalk e…
INEMA
Criei um guia completo que documenta toda a instalação e funcionamento do MultiTalk baseado em tudo que resolvemos juntos.
O documento está organizado em 3 partes principais:
PARTE 1 - INSTALAÇÃO COMPLETA (10 passos) - Do ambiente Python 3.10 até sistema funcionando - Todas as versões específicas que funcionam (PyTorch 2.4.1, transformers 4.44.0, etc.) - Resolução dos conflitos de dependências que enfrentamos - Configuração dos pesos MultiTalk específicos - Adição do stub SingleStreamMutiAttention crítico
PARTE 2 - ESTRUTURA DE ARQUIVOS - Árvore completa de diretórios e arquivos - Função de cada componente importante - Detalhamento dos modelos (14B parâmetros, VAE, CLIP, etc.) - Estrutura do JSON de configuração
PARTE 3 - FUNCIONAMENTO DO SISTEMA - Fluxo de execução (5 etapas principais) - Componentes técnicos (atenção, TTS, gerenciamento de memória) - Parâmetros de controle (qualidade vs performance) - Comandos práticos para uso - Troubleshooting comum
CONCLUSÃO TÉCNICA DOCUMENTADA: Sistema 100% funcional em termos de software, limitado apenas por hardware - RTX 4070 8GB insuficiente para MultiTalk 14B (necessário 12-16GB VRAM).
Este guia serve como documentação completa para replicar a instalação ou para outras pessoas que queiram instalar MultiTalk seguindo exatamente os passos que sabemos funcionar.
MultiTalk - Como Funciona o Sistema:
Conceito Geral⌗
MultiTalk é um modelo de IA que gera vídeos de pessoas conversando a partir de: - Texto (prompt descritivo da cena) - Imagem de referência (foto da pessoa) - Áudio (voz real ou TTS sintético)
Estrutura do Arquivo JSON⌗
O JSON define todos os parâmetros da geração:
{
"prompt": "Descrição visual da cena",
"cond_image": "caminho/para/imagem_referencia.png",
"cond_audio": { "person1": "caminho/audio_real.wav" },
"tts_audio": {
"text": "Texto a ser falado",
"human1_voice": "caminho/modelo_voz.pt"
}
}
Sistema de Vozes⌗
TTS (Text-to-Speech):
- Usa modelos Kokoro-82M para síntese de voz
- Localização: weights/Kokoro-82M/voices/
- Vozes disponíveis: af_heart.pt, af_sky.pt, etc.
- Cada arquivo .pt é um modelo de voz específico
Áudio Real: - Formato: WAV, MP3 - O sistema extrai características de movimento labial - Sincroniza automaticamente com a imagem
Definição de Movimentos⌗
Os movimentos são controlados por:
1. Prompt Textual: - Descreve ambiente, pose, expressão - Ex: "pessoa sorrindo", "ambiente profissional", "expressão séria"
2. Parâmetros de Geração:
- motion_frame: Quantos frames de movimento (padrão 25)
- sample_steps: Qualidade da geração (mais = melhor, mais lento)
- guidance_scale: Força de seguir o prompt
3. Tipo de Áudio: - Áudio com emoção → movimentos expressivos - Áudio neutro → movimentos sutis - TTS → movimentos padronizados
Multi-Pessoa⌗
Para conversas com várias pessoas:
{
"cond_audio": {
"person1": "audio_pessoa1.wav",
"person2": "audio_pessoa2.wav"
},
"person_masks": ["mask1.png", "mask2.png"]
}
Limitações Importantes⌗
- Duração: Máximo ~80 frames (3-4 segundos) por chunk
- Resolução: 480p funcional, 720p requer múltiplas GPUs
- Qualidade vs Velocidade: Mais sample_steps = melhor qualidade, mais tempo
Fluxo de Trabalho Típico⌗
- Preparar imagem (pessoa de frente, boa iluminação)
- Criar JSON com prompt e configurações
- Escolher áudio (real ou definir texto + voz TTS)
- Ajustar parâmetros conforme hardware disponível
- Gerar vídeo com comando específico
O sistema analisa a imagem, processa o áudio, e usa IA difusiva para criar frames intermediários com movimentos naturais sincronizados ao som.
enquanto ele processa
O que você está baixando agora (aquele pacote de \~9,8 GB na sua tela) é o Wan2.1 — é a base que o MultiTalk e o InfiniteTalk usam por padrão.
O Wan2.2 é a versão mais nova, mas ele não vem automático. Você teria que baixar separado do Hugging Face (outro repositório, outro diretório de pesos).
Resumindo:
- Agora → você vai terminar de baixar o Wan2.1 (obrigatório, pois é o que MultiTalk/InfiniteTalk esperam).
- Depois → se quiser mais qualidade, pode baixar também o Wan2.2 e trocar o caminho
--ckpt_dirpara ele.
Diferenças principais:
- Wan2.1 → modelo base estável, usado por MultiTalk/InfiniteTalk.
- Wan2.2 → versão mais nova, com melhorias em qualidade visual, fluidez de movimento e consistência de frames.
Vantagens de usar Wan2.2:
- Melhor resolução e menos artefatos.
- Movimentos mais naturais (especialmente boca e olhos).
- Melhor consistência em vídeos longos (menos “quebras”).
- Reduz a necessidade de ajustes manuais (menos dependência de quantização/teacache).
Resumindo: se você já tem o Wan2.2 baixado, vale usar ele como ckpt base tanto no MultiTalk quanto no InfiniteTalk — só muda o parâmetro do diretório (--ckpt_dir).
Se você já tem o MultiTalk instalado e configurado, não precisa repetir os passos dele.
O checklist final fica mais simples: você só segue com o InfiniteTalk no mesmo ambiente meigen310.
Checklist quando MultiTalk já está pronto⌗
- Ativar ambiente
conda activate meigen310
- Clonar e instalar InfiniteTalk
cd ..
git clone https://github.com/MeiGen-AI/InfiniteTalk
cd .\InfiniteTalk
pip install -r requirements.txt
- Baixar pesos (só os do InfiniteTalk, já que Wan2.1 e wav2vec2 você já tem)
hf download MeiGen-AI/InfiniteTalk --local-dir .\weights\InfiniteTalk
- Rodar teste (480p, otimizado para 8 GB VRAM)
python .\generate_infinitetalk.py `
--size infinitetalk-480 `
--mode streaming `
--ckpt_dir ..\MultiTalk\weights\Wan2.1-I2V-14B-480P `
--wav2vec_dir ..\MultiTalk\weights\chinese-wav2vec2-base `
--infinitetalk_dir .\weights\InfiniteTalk\single\infinitetalk.safetensors `
--input_json .\examples\single_example_image.json `
--sample_steps 20 `
--motion_frame 9 `
--use_teacache `
--quant int8 `
--num_persistent_param_in_dit 0 `
--save_file saida_infinite480p.mp4
- (Opcional) Rodar em 720p
python .\generate_infinitetalk.py `
--size infinitetalk-720 `
--mode streaming `
--ckpt_dir ..\MultiTalk\weights\Wan2.1-I2V-14B-480P `
--wav2vec_dir ..\MultiTalk\weights\chinese-wav2vec2-base `
--infinitetalk_dir .\weights\InfiniteTalk\single\infinitetalk.safetensors `
--input_json .\examples\single_example_image.json `
--sample_steps 28 `
--motion_frame 9 `
--use_teacache `
--quant int8 `
--num_persistent_param_in_dit 0 `
--save_file saida_infinite720p.mp4
Aqui está o checklist único e resumido para rodar MultiTalk + InfiniteTalk na sua máquina (RTX 4070 Laptop, 8 GB VRAM, ambiente Python 3.10 pronto).
1. Ativar ambiente⌗
conda activate meigen310
2. MultiTalk⌗
```git clone github.com/MeiGen-AI/MultiTalk ↗ cd .\MultiTalk pip install -r requirements.txt
hf download Wan-AI/Wan2.1-I2V-14B-480P --local-dir .\weights\Wan2.1-I2V-14B-480P hf download TencentGameMate/chinese-wav2vec2-base --local-dir .\weights\chinese-wav2vec2-base hf download MeiGen-AI/MeiGen-MultiTalk --local-dir .\weights\MeiGen-MultiTalk
Copy-Item ".\weights\MeiGen-MultiTalk\multitalk.safetensors" ".\weights\Wan2.1-I2V-14B-480P\multitalk.safetensors"
python .\generate_multitalk.py --size multitalk-480
--mode clip --sample_steps 20
--use_teacache --quant int8
--num_persistent_param_in_dit 0 `
--save_file saida_multitalk480p.mp4```
3. InfiniteTalk⌗
```cd .. git clone github.com/MeiGen-AI/InfiniteTalk ↗ cd .\InfiniteTalk pip install -r requirements.txt
hf download Wan-AI/Wan2.1-I2V-14B-480P --local-dir .\weights\Wan2.1-I2V-14B-480P hf download TencentGameMate/chinese-wav2vec2-base --local-dir .\weights\chinese-wav2vec2-base hf download MeiGen-AI/InfiniteTalk --local-dir .\weights\InfiniteTalk
python .\generate_infinitetalk.py --size infinitetalk-480
--mode streaming --ckpt_dir .\weights\Wan2.1-I2V-14B-480P
--wav2vec_dir .\weights\chinese-wav2vec2-base --infinitetalk_dir .\weights\InfiniteTalk\single\infinitetalk.safetensors
--input_json .\examples\single_example_image.json --sample_steps 20
--motion_frame 9 --use_teacache
--quant int8 --num_persistent_param_in_dit 0
--save_file saida_infinite480p.mp4```
Esse é o guia definitivo:
- Ativa ambiente → roda MultiTalk → roda InfiniteTalk.
- Já está otimizado para 8 GB VRAM (com
--use_teacache,--quant int8,--num_persistent_param_in_dit 0).
Aqui está a lista resumida e direta só para rodar o InfiniteTalk na sua máquina (RTX 4070, ambiente já pronto):
- Ativar ambiente
conda activate meigen310
- Clonar InfiniteTalk e instalar requisitos
git clone https://github.com/MeiGen-AI/InfiniteTalk
cd .\InfiniteTalk
pip install -r requirements.txt
- Baixar pesos necessários
hf download Wan-AI/Wan2.1-I2V-14B-480P --local-dir .\weights\Wan2.1-I2V-14B-480P
hf download TencentGameMate/chinese-wav2vec2-base --local-dir .\weights\chinese-wav2vec2-base
hf download MeiGen-AI/InfiniteTalk --local-dir .\weights\InfiniteTalk
- Rodar teste (480p, otimizado para 8 GB VRAM)
python .\generate_infinitetalk.py ^
--size infinitetalk-480 ^
--mode streaming ^
--ckpt_dir .\weights\Wan2.1-I2V-14B-480P ^
--wav2vec_dir .\weights\chinese-wav2vec2-base ^
--infinitetalk_dir .\weights\InfiniteTalk\single\infinitetalk.safetensors ^
--input_json .\examples\single_example_image.json ^
--sample_steps 20 ^
--motion_frame 9 ^
--use_teacache ^
--quant int8 ^
--num_persistent_param_in_dit 0 ^
--save_file saida_infinite480p.mp4
- (Opcional) Rodar em 720p
python .\generate_infinitetalk.py ^
--size infinitetalk-720 ^
--mode streaming ^
--ckpt_dir .\weights\Wan2.1-I2V-14B-480P ^
--wav2vec_dir .\weights\chinese-wav2vec2-base ^
--infinitetalk_dir .\weights\InfiniteTalk\single\infinitetalk.safetensors ^
--input_json .\examples\single_example_image.json ^
--sample_steps 28 ^
--motion_frame 9 ^
--use_teacache ^
--quant int8 ^
--num_persistent_param_in_dit 0 ^
--save_file saida_infinite720p.mp4
Aqui está a lista direta do que tivemos que ajustar no processo:
- Conda não era reconhecido → inicializar com
conda.bate ajustar PATH. - Erro de Terms of Service (TOS) → aceitar manualmente com
conda tos accept. - Python estava em 3.13 → criar ambiente específico com Python 3.10.
- Conflito de versões do PyTorch/xformers → fixar em:
torch==2.4.0+cu121torchvision==0.19.0+cu121torchaudio==2.4.0+cu121xformers==0.0.27.post25.huggingface-cli loginestava deprecado → trocar parahf auth login.
Aqui está a lista resumida e direta de todos os passos que você fez até agora:
- Instalar Miniconda no Windows
- Inicializar conda no PowerShell
- Aceitar Terms of Service dos canais Anaconda
- Criar ambiente Python 3.10
conda create -n meigen310 python=3.10 -y
conda activate meigen310
5. Instalar PyTorch CUDA 12.1
pip install torch==2.4.0+cu121 torchvision==0.19.0+cu121 torchaudio==2.4.0+cu121 xformers==0.0.27.post2 --index-url https://download.pytorch.org/whl/cu121
6. Validar GPU
python -c "import torch; print(torch.__version__, torch.cuda.is_available(), torch.cuda.get_device_name(0))"
7. Clonar MultiTalk e instalar requisitos
git clone https://github.com/MeiGen-AI/MultiTalk
cd .\MultiTalk
pip install -r requirements.txt
8. Instalar Hugging Face CLI
pip install huggingface_hub
9. Login Hugging Face
hf auth login
10. Baixar pesos
hf download Wan-AI/Wan2.1-I2V-14B-480P --local-dir .\weights\Wan2.1-I2V-14B-480P
hf download TencentGameMate/chinese-wav2vec2-base --local-dir .\weights\chinese-wav2vec2-base
hf download MeiGen-AI/MeiGen-MultiTalk --local-dir .\weights\MeiGen-MultiTalk
- Linkar ou copiar multitalk.safetensors
```cmd /c mklink ".\weights\Wan2.1-I2V-14B-480P\multitalk.safetensors" "%cd%\weights\MeiGen-MultiTalk\multitalk.safetensors"
ou⌗
Copy-Item ".\weights\MeiGen-MultiTalk\multitalk.safetensors" ".\weights\Wan2.1-I2V-14B-480P\multitalk.safetensors"```
- Teste 480p
python .\generate_multitalk.py --size multitalk-480 --mode clip --sample_steps 20 --use_teacache --quant int8 --num_persistent_param_in_dit 0 --save_file saida_480p.mp4
github.com/MeiGen-AI/InfiniteTalk ↗
Direto:
- MultiTalk → foca em conversas multi-pessoa (2+ personagens), controla interação por prompt, gera clipes curtos/médios.
- InfiniteTalk → foca em fala contínua de 1 pessoa (duração ilimitada), mais estável para longos vídeos, preserva movimentos naturais (lip-sync, cabeça, expressões).
Avatares - Wan2.1 = MultiTalk Local
1