Instala el skill de la CLI belt:
npx skills add belt-sh/cli
Producción de Vídeo con Avatar Parlante
Crea vídeos con avatares de IA y sincronización de labios mediante la CLI de inference.sh.
Inicio Rápido
Requiere la CLI de inference.sh (
belt). Instrucciones de instalación
belt login
# Recomendado: P-Video-Avatar (TTS integrado, más rápido y más barato)
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "Bienvenidos a nuestro tour de producto. Hoy les mostraré tres funciones que les ahorrarán horas cada semana.",
"voice": "Zephyr (Female)"
}'
Requisitos del Retrato
La imagen de retrato origen es crítica. Retratos pobres = vídeo de salida pobre.
Imprescindibles
| Requisito | Por qué | Especificación |
|---|---|---|
| Centrado en el encuadre | El avatar necesita la cara en una posición predecible | Cara centrada en el encuadre |
| Cabeza y hombros | Cuerpo visible para gestos naturales | Recortar por debajo del pecho |
| Ojos a la cámara | Crea conexión con el espectador | Mirada frontal directa |
| Expresión neutral | Punto de partida para la animación | Sonrisa ligera OK, no reír ni fruncir el ceño |
| Cara clara | El modelo necesita detectar rasgos | Sin gafas de sol, sombras fuertes ni obstrucciones |
| Alta resolución | Preservación de detalles | Mín. 512x512 para la región facial, idealmente 1024x1024+ |
Generar un Retrato
# Genera un retrato profesional con P-Image
belt app run pruna/p-image --input '{
"prompt": "retrato profesional de una persona de negocios amigable, iluminación suave de estudio, fondo gris limpio, cabeza y hombros, contacto visual directo, expresión neutra agradable, fotorrealista",
"aspect_ratio": "9:16"
}'
Opciones de Fondo
| Tipo | Cuándo usarlo |
|---|---|
| Color sólido | Profesional, limpio, fácil de componer |
| Bokeh suave | Sensación natural y de estilo de vida |
| Oficina/estudio | Contexto empresarial |
| Dinámico (P-Video-Avatar) | Usa video_prompt para definir el fondo |
Selección de Modelo
Empieza con P-Video-Avatar — es 18 veces más rápido y 6 veces más barato que las alternativas, con TTS integrado.
| Modelo | App ID | TTS Integrado | Ideal para |
|---|---|---|---|
| P-Video-Avatar | pruna/p-video-avatar | Sí (30 voces, 10 idiomas) | Mejor en general: velocidad, coste, calidad |
| OmniHuman 1.5 | bytedance/omnihuman-1-5 | No | Multi-personaje, gestos |
| OmniHuman 1.0 | bytedance/omnihuman-1-0 | No | Personaje único |
| Fabric 1.0 | falai/fabric-1-0 | Sí | La imagen habla con sincronización de labios |
| PixVerse Lipsync | falai/pixverse-lipsync | No | Sincronización de labios realista |
Comparativa de Coste y Velocidad
| Modelo | Velocidad (por segundo de vídeo) | Coste por segundo |
|---|---|---|
| P-Video-Avatar | ~1.83 s/s | $0.025 |
| OmniHuman 1.5 | ~28 s/s (15 veces más lento) | $0.16 (6.4 veces más caro) |
| Fabric 1.0 | ~34 s/s (18 veces más lento) | $0.14 (5.6 veces más caro) |
Flujos de Producción
Simple: Guion de texto -> Vídeo (P-Video-Avatar)
No se necesita un paso separado de TTS — P-Video-Avatar tiene voces integradas:
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "¡Hola! Estoy emocionado de compartir algo con ustedes hoy.",
"voice": "Puck (Male)",
"voice_language": "Spanish",
"resolution": "720p"
}'
Con Control de Estilo
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "¡Esta es una noticia emocionante para nuestra comunidad!",
"voice": "Aoede (Female)",
"voice_prompt": "Tono entusiasta y enérgico, ritmo ligeramente rápido",
"video_prompt": "La persona está presentando en un escenario con iluminación dramática",
"resolution": "1080p"
}'
Con Audio Personalizado (Cualquier Modelo)
Proporciona tu propio archivo de audio:
# P-Video-Avatar con audio personalizado
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"audio": "https://speech.mp3"
}'
# OmniHuman con audio personalizado
belt app run bytedance/omnihuman-1-5 --input '{
"image_url": "https://portrait.jpg",
"audio_url": "https://speech.mp3"
}'
Flujo Completo: Generar Retrato + Avatar
# 1. Genera una imagen de retrato
belt app run pruna/p-image --input '{
"prompt": "retrato profesional de una mujer joven, fondo neutro, mirando a cámara, iluminación de estudio, fotorrealista",
"aspect_ratio": "9:16"
}'
# 2. Crea un vídeo de avatar con TTS integrado
belt app run pruna/p-video-avatar --input '{
"image": "<url-de-imagen-del-paso-1>",
"voice_script": "¡Hola! Déjame guiarte a través de nuestras últimas funciones.",
"voice": "Zephyr (Female)"
}'
Con TTS Separado (para modelos sin TTS)
# 1. Genera el discurso
belt app run falai/dia-tts --input '{
"prompt": "[S1] Tu guion de narración aquí."
}'
# 2. Crea el avatar parlante
belt app run bytedance/omnihuman-1-5 --input '{
"image_url": "https://portrait.jpg",
"audio_url": "<url-de-audio-del-paso-1>"
}'
Conversación Multi-Personaje
OmniHuman 1.5 admite hasta 2 personajes:
# 1. Genera diálogo con dos hablantes
belt app run falai/dia-tts --input '{
"prompt": "[S1] Cuéntame sobre la nueva función. [S2] ¡Claro! Creamos un panel que muestra análisis en tiempo real. [S1] Suena genial. ¿Cuánto tiempo tomó? [S2] Alrededor de dos semanas desde el concepto hasta el lanzamiento."
}'
# 2. Crea vídeo con dos personajes
belt app run bytedance/omnihuman-1-5 --input '{
"image_url": "https://retrato-dos-personas.png",
"audio_url": "<url-de-audio>"
}'
Vídeos Largos (Clips Unificados)
Para contenido de más de ~60 segundos, divide en segmentos:
# Genera clips con el mismo retrato para consistencia
belt app run pruna/p-video-avatar --input '{"image": "https://portrait.jpg", "voice_script": "Segmento uno..."}' --no-wait
belt app run pruna/p-video-avatar --input '{"image": "https://portrait.jpg", "voice_script": "Segmento dos..."}' --no-wait
belt app run pruna/p-video-avatar --input '{"image": "https://portrait.jpg", "voice_script": "Segmento tres..."}' --no-wait
# Combina todos los segmentos
belt app run infsh/media-merger --input '{
"media": ["segmento1.mp4", "segmento2.mp4", "segmento3.mp4"]
}'
Contenido Multilingüe
P-Video-Avatar admite 10 idiomas con TTS integrado:
# Español
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "Bienvenidos a nuestra demostración de producto.",
"voice": "Kore (Female)",
"voice_language": "Spanish"
}'
# Japonés
belt app run pruna/p-video-avatar --input '{
"image": "https://portrait.jpg",
"voice_script": "こんにちは、製品デモへようこそ。",
"voice": "Leda (Female)",
"voice_language": "Japanese"
}'
Doblar Vídeo Existente
# 1. Transcribe el vídeo original
belt app run infsh/fast-whisper-large-v3 --input '{"audio_url": "https://video.mp4"}'
# 2. Traduce el texto (manual o con LLM)
# 3. Genera el discurso en el nuevo idioma
belt app run infsh/kokoro-tts --input '{"text": "<texto-traducido>"}'
# 4. Sincroniza los labios del vídeo original con el nuevo audio
belt app run infsh/latentsync-1-6 --input '{
"video_url": "https://video-original.mp4",
"audio_url": "<url-del-nuevo-audio>"
}'
Calidad del Audio (para flujos sin TTS)
Al proporcionar tu propio audio, la calidad impacta directamente la precisión de la sincronización de labios.
| Parámetro | Objetivo | Por qué |
|---|---|---|
| Ruido de fondo | Ninguno/mínimo | El ruido confunde la sincronización de labios |
| Volumen | Consistente en todo el audio | Evita desviaciones en la sincronización |
| Tasa de muestreo | 44.1kHz o 48kHz | Calidad estándar |
| Formato | MP3 128 kbps+ o WAV | Compatible con todas las herramientas |
Voces Disponibles (P-Video-Avatar)
Femeninas: 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 (US), Inglés (UK), Español, Francés, Alemán, Italiano, Portugués (Brasil), Japonés, Coreano, Hindi
Guías de Composición
┌─────────────────────────────────┐
│ Espacio superior (mínimo)│
│ ┌───────────────────────────┐ │
│ │ │ │
│ │ ● ─ ─ Ojos a 1/3 ─ ─│─ │ ← Ojos en la línea del tercio superior
│ │ /|\ │ │
│ │ | Cabeza y hombros │ │
│ │ / \ visibles │ │
│ │ │ │
│ └───────────────────────────┘ │
│ Recortar por debajo del pecho |
└─────────────────────────────────┘
Errores Comunes
| Error | Problema | Solución |
|---|---|---|
| Retrato de baja resolución | Cara borrosa, mala sincronización de labios | Usa región facial de 1024x1024+ |
| Ángulo de perfil/lateral | La sincronización no puede seguir bien la boca | Usa ángulo frontal o casi frontal |
| Audio ruidoso | La sincronización se desvía, se ve poco natural | Usa TTS integrado o graba limpio |
| Clips demasiado largos | La calidad se degrada | Divide en segmentos y une |
| Gafas de sol/obstrucción | Rasgos faciales ocultos | Se requiere cara clara |
| Iluminación inconsistente | Efecto escalofriante al animar | Iluminación uniforme y suave |
Skills Relacionados
# Skill dedicado de P-Video-Avatar
npx skills add inference-sh/skills@p-video-avatar
# Todos los modelos de avatar
npx skills add inference-sh/skills@ai-avatar-video
# Todos los modelos de generación de vídeo
npx skills add inference-sh/skills@ai-video-generation
# Texto a voz
npx skills add inference-sh/skills@text-to-speech
# Generación de imágenes (para retratos)
npx skills add inference-sh/skills@ai-image-generation
Explora todas las apps: belt app list