Instale a skill da CLI belt:
npx skills add belt-sh/cli
Produção de Vídeos com Apresentador Virtual
Crie vídeos com avatar falante e sincronização labial usando a CLI do inference.sh.
Início Rápido
Requer a CLI do inference.sh (
belt). Instruções de instalação
belt login
# Recomendado: P-Video-Avatar (TTS integrado, mais rápido, mais barato)
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "Bem-vindo ao tour do nosso produto. Hoje mostrarei três funcionalidades que economizarão horas toda semana.",
"voice": "Zephyr (Feminina)"
}'
Requisitos do Retrato
A imagem de retrato de origem é fundamental. Retratos ruins resultam em vídeos ruins.
Obrigatório
| Requisito | Por quê | Especificação |
|---|---|---|
| Centralizado | Avatar precisa do rosto em posição previsível | Rosto centralizado no quadro |
| Cabeça e ombros | Corpo visível para gestos naturais | Cortar abaixo do peito |
| Olhos na câmera | Cria conexão com o espectador | Olhar frontal direto |
| Expressão neutra | Ponto de partida para animação | Um sorriso leve é aceitável, sem risadas ou carrancas |
| Rosto nítido | O modelo precisa detectar características | Sem óculos escuros, sombras pesadas ou obstruções |
| Alta resolução | Preservação de detalhes | Mínimo 512x512 na região facial, ideal 1024x1024+ |
Gerar um Retrato
# Gere um retrato profissional com P-Image
belt app run pruna/p-image --input '{
"prompt": "retrato profissional de uma pessoa amigável de negócios, iluminação suave de estúdio, fundo cinza limpo, cabeça e ombros, contato visual direto, expressão neutra agradável, fotorrealista",
"aspect_ratio": "9:16"
}'
Opções de Fundo
| Tipo | Quando usar |
|---|---|
| Cor sólida | Profissional, limpo, fácil de compor |
| Desfoque suave (bokeh) | Natural, estilo de vida |
| Escritório/estúdio | Contexto empresarial |
| Dinâmico (P-Video-Avatar) | Use video_prompt para definir o fundo |
Seleção de Modelos
Comece com P-Video-Avatar — é 18x mais rápido e 6x mais barato que alternativas, com TTS integrado.
| Modelo | App ID | TTS Integrado | Melhor Para |
|---|---|---|---|
| P-Video-Avatar | pruna/p-video-avatar | Sim (30 vozes, 10 idiomas) | Melhor geral: velocidade, custo, qualidade |
| OmniHuman 1.5 | bytedance/omnihuman-1-5 | Não | Múltiplos personagens, gestos |
| OmniHuman 1.0 | bytedance/omnihuman-1-0 | Não | Personagem único |
| Fabric 1.0 | falai/fabric-1-0 | Sim | Imagem fala com sincronização labial |
| PixVerse Lipsync | falai/pixverse-lipsync | Não | Sincronização labial realista |
Comparação de Custo e Velocidade
| Modelo | Velocidade (por segundo de vídeo) | Custo por segundo |
|---|---|---|
| P-Video-Avatar | ~1,83s/s | $0,025 |
| OmniHuman 1.5 | ~28s/s (15x mais lento) | $0,16 (6,4x mais caro) |
| Fabric 1.0 | ~34s/s (18x mais lento) | $0,14 (5,6x mais caro) |
Fluxos de Produção
Simples: Script de Texto -> Vídeo (P-Video-Avatar)
Não é necessário passo separado de TTS — P-Video-Avatar tem vozes integradas:
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "Olá! Estou animado para compartilhar algo com você hoje.",
"voice": "Puck (Masculina)",
"voice_language": "Português (Brasil)",
"resolution": "720p"
}'
Com Controle de Estilo
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "Esta é uma notícia empolgante para nossa comunidade!",
"voice": "Aoede (Feminina)",
"voice_prompt": "Tom entusiasmado e enérgico, ritmo ligeiramente mais rápido",
"video_prompt": "A pessoa está apresentando no palco com iluminação dramática",
"resolution": "1080p"
}'
Orientado por Áudio (Qualquer Modelo)
Forneça seu próprio arquivo de áudio:
# P-Video-Avatar com áudio personalizado
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"audio": "https://speech.mp3"
}'
# OmniHuman com áudio personalizado
belt app run bytedance/omnihuman-1-5 --input '{
"image_url": "https://portrait.jpg",
"audio_url": "https://speech.mp3"
}'
Fluxo Completo: Gerar Retrato + Avatar
# 1. Gere uma imagem de retrato
belt app run pruna/p-image --input '{
"prompt": "retrato profissional de uma jovem mulher, fundo neutro, olhando para a câmera, iluminação de estúdio, fotorrealista",
"aspect_ratio": "9:16"
}'
# 2. Crie o vídeo do avatar com TTS integrado
belt app run pruna/p-video-avatar --input '{
"image": "<url-da-imagem-do-passo-1>",
"voice_script": "Olá! Deixe-me mostrar nossos recursos mais recentes.",
"voice": "Zephyr (Feminina)"
}'
Com TTS Separado (para modelos sem TTS)
# 1. Gere a fala
belt app run falai/dia-tts --input '{
"prompt": "[S1] Seu script de narração aqui."
}'
# 2. Crie o apresentador virtual
belt app run bytedance/omnihuman-1-5 --input '{
"image_url": "https://portrait.jpg",
"audio_url": "<url-do-audio-do-passo-1>"
}'
Conversa com Múltiplos Personagens
OmniHuman 1.5 suporta até 2 personagens:
# 1. Gere diálogo com dois locutores
belt app run falai/dia-tts --input '{
"prompt": "[S1] Então me fale sobre o novo recurso. [S2] Claro! Construímos um painel que mostra análises em tempo real. [S1] Isso parece ótimo. Quanto tempo levou? [S2] Cerca de duas semanas do conceito ao lançamento."
}'
# 2. Crie o vídeo com dois personagens
belt app run bytedance/omnihuman-1-5 --input '{
"image_url": "https://retrato-duas-pessoas.png",
"audio_url": "<url-do-audio>"
}'
Conteúdo Longo (Clipes Emendados)
Para conteúdo com mais de ~60 segundos, divida em segmentos:
# Gere clipes com o mesmo retrato para consistência
belt app run pruna/p-video-avatar --input '{"image": "https://portrait.jpg", "voice_script": "Segmento um..."}' --no-wait
belt app run pruna/p-video-avatar --input '{"image": "https://portrait.jpg", "voice_script": "Segmento dois..."}' --no-wait
belt app run pruna/p-video-avatar --input '{"image": "https://portrait.jpg", "voice_script": "Segmento três..."}' --no-wait
# Mescle todos os segmentos
belt app run infsh/media-merger --input '{
"media": ["segmento1.mp4", "segmento2.mp4", "segmento3.mp4"]
}'
Conteúdo Multilíngue
P-Video-Avatar suporta 10 idiomas com TTS integrado:
# Espanhol
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "Bienvenidos a nuestra demostración de producto.",
"voice": "Kore (Femenina)",
"voice_language": "Spanish"
}'
# Japonês
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "こんにちは、製品デモへようこそ。",
"voice": "Leda (Femenina)",
"voice_language": "Japanese"
}'
Dublar Vídeo Existente
# 1. Transcreva o vídeo original
belt app run infsh/fast-whisper-large-v3 --input '{"audio_url": "https://video.mp4"}'
# 2. Traduza o texto (manualmente ou com LLM)
# 3. Gere a fala no novo idioma
belt app run infsh/kokoro-tts --input '{"text": "<texto-traduzido>"}'
# 4. Sincronize os lábios do vídeo original com o novo áudio
belt app run infsh/latentsync-1-6 --input '{
"video_url": "https://video-original.mp4",
"audio_url": "<url-do-novo-audio>"
}'
Qualidade de Áudio (para fluxos sem TTS)
Ao fornecer seu próprio áudio, a qualidade impacta diretamente a precisão da sincronização labial.
| Parâmetro | Alvo | Por quê |
|---|---|---|
| Ruído de fundo | Nenhum ou mínimo | Ruído confunde o timing da sincronização |
| Volume | Consistente durante todo o áudio | Evita desvio na sincronização |
| Taxa de amostragem | 44,1kHz ou 48kHz | Qualidade padrão |
| Formato | MP3 128kbps+ ou WAV | Compatível com todas as ferramentas |
Vozes Disponíveis (P-Video-Avatar)
Femininas: Zephyr, Kore, Leda, Aoede, Callirrhoe, Autonoe, Despina, Erinome, Laomedeia, Achernar, Gacrux, Pulcherrima, Vindemiatrix, Sulafat
Masculinas: Puck, Charon, Fenrir, Orus, Enceladus, Iapetus, Umbriel, Algenib, Algieba, Schedar, Achird, Zubenelgenubi, Sadachbia, Sadaltager, Alnilam, Rasalgethi
Idiomas: Inglês (EUA), Inglês (Reino Unido), Espanhol, Francês, Alemão, Italiano, Português (Brasil), Japonês, Coreano, Hindi
Diretrizes de Enquadramento
┌─────────────────────────────────┐
│ Espaço superior (mínimo)│
│ ┌───────────────────────────┐ │
│ │ │ │
│ │ ● ─ ─ Olhos a 1/3 ─ ─│─ │ ← Olhos na linha superior de 1/3
│ │ /|\ │ │
│ │ | Cabeça e ombros │ │
│ │ / \ visíveis │ │
│ │ │ │
│ └───────────────────────────┘ │
│ Cortar abaixo do peito │
└─────────────────────────────────┘
Erros Comuns
| Erro | Problema | Correção |
|---|---|---|
| Retrato de baixa resolução | Rosto borrado, sincronização labial ruim | Use região facial de 1024x1024+ |
| Ângulo de perfil/lateral | Sincronização labial não consegue rastrear bem a boca | Use frontal ou quase frontal |
| Áudio ruidoso | Sincronização labial oscila, parece artificial | Use TTS integrado ou grave áudio limpo |
| Clipes muito longos | Qualidade degrada | Divida em segmentos, emende |
| Óculos escuros/obstrução | Características faciais ocultas | Rosto limpo é necessário |
| Iluminação inconsistente | Parece estranho quando animado | Iluminação uniforme e suave |
Skills Relacionadas
# Skill dedicada ao P-Video-Avatar
npx skills add inference-sh/skills@p-video-avatar
# Todos os modelos de avatar
npx skills add inference-sh/skills@ai-avatar-video
# Todos os modelos de geração de vídeo
npx skills add inference-sh/skills@ai-video-generation
# Texto para fala
npx skills add inference-sh/skills@text-to-speech
# Geração de imagem (para retratos)
Lista completa de apps: belt app list