Estado: Probada en RunPod. Rendericé lotes con esta plantilla en RunPod con una RTX A5000, una RTX 5090 y una B200. Las cifras de esta guía salen de esas ejecuciones.
Dale a este flujo un retrato y una carpeta de locuciones (20, 50 o 2000) y renderiza un vídeo de una persona hablando por cada archivo, uno tras otro, sin que tengas que tocarlo. Puede funcionar durante días.
Está basado en MiniMax H3, un modelo de vídeo de pesos abiertos que ComfyUI admite de forma nativa. En comparación con mi configuración anterior de avatares con LTX-2.5, fue un 30 % más rápido, un 30 % más barato y dio uniones más limpias entre trozos.
En resumen
- Coste: unos 20 minutos de vídeo terminado a 768 × 768 por 2–3 $ de GPU, aproximadamente 0,13 $ por minuto terminado en una RTX 5090.
- GPU: 32 GB de VRAM es la opción segura. 24 GB funciona, pero puede bloquearse horas después de empezar un trabajo.
- Licencia: no está licenciado en EE. UU., la UE, el Reino Unido ni Corea del Sur, y eso incluye el lugar donde se ejecuta tu pod.
- Cómo funciona: la locución se corta en trozos de hasta 10 segundos en las pausas, cada trozo empieza y termina en tu retrato, y los trozos se vuelven a unir con tu audio original.
- Plantilla gratuita en GitHub, o con un clic en RunPod.
Comprueba primero la licencia
La licencia comunitaria de MiniMax H3 excluye a Estados Unidos, la Unión Europea, el Reino Unido y Corea del Sur. Cubre tanto el lugar donde el modelo se ejecuta como el lugar donde estás tú, así que elige un centro de datos de RunPod fuera de esas regiones. Si necesitas alguna de ellas, MiniMax concede licencias bajo solicitud.
La licencia también incluye una política de uso aceptable. Entre otras cosas, prohíbe suplantar a personas reales sin su consentimiento, y cualquier producto comercial construido sobre ella debe mostrar «MiniMax H3». Léela antes de usar esto para trabajo de clientes.
Qué necesitas
- Un retrato, idealmente sobre un fondo liso e iluminado de forma uniforme. Los carteles, las pantallas y el texto de la imagen tienden a animarse.
- Locuciones en
.wav,.mp3,.flac,.m4a,.aac,.oggo.opus. Cada archivo se convierte en un vídeo con su nombre. Si necesitas locuciones, mi plantilla de Qwen3-TTS las crea con modelos abiertos. - Una GPU con 32 GB de VRAM, como una RTX 5090. Puedes ejecutarlo en local si tienes una; el script de instalación enumera todos los modelos y nodos.
- Unos 100 GB de almacenamiento. Solo los modelos ocupan unos 46 GB.
Qué GPU
Lo ejecuté en tres GPU. Estos son los tiempos del flujo Fast:
| GPU | VRAM | Precio (oct. 2026) | Tiempo de GPU por trozo | Vídeo de 20 minutos |
|---|---|---|---|---|
| RTX A5000 | 24 GB | $0.27/h | ~118 s para un trozo de 7 s | ~5,4 h, ~1,50 $ |
| RTX 5090 | 32 GB | $1.19/h | 60–70 s por trozo de 10 s | ~2,2 h, ~2,60 $ |
| B200 | 180 GB | $7.99/h | ~33 s por trozo de 10 s | ~1,1 h, ~8,70 $ |
La RTX 5090 es mi elección: el mejor equilibrio entre velocidad y coste. La B200 fue unas dos veces más rápida pero unas seis veces más cara por hora, así que solo compensa cuando un plazo importa más que la factura. La A5000 es la más barata por minuto de vídeo si puedes esperar.
La VRAM es la limitación real. Con 24 GB el trabajo se ejecuta, pero los lotes largos pueden bloquearse un par de horas después de empezar. Con 32 GB ejecuté trabajos individuales durante días.
Estos precios son los de lista de RunPod en octubre de 2026. RunPod subió los precios hace poco; mi «2–3 $ por 20 minutos» se midió con las tarifas anteriores (la B200 costaba entonces unos 6,50 $/h).
Prepara el pod
Si nunca has usado RunPod, mi introducción a RunPod explica en detalle las cuentas, los volúmenes de red y los pods. La versión corta para esta plantilla:
- Crea un volumen de red en un centro de datos fuera de las regiones excluidas. El README de la plantilla recomienda 100 GB; yo usé 80 GB, que bastan para los modelos por defecto con margen para los renders. El almacenamiento cuesta 0,07 $/GB al mes en almacenamiento estándar y 0,14 $ en el de alto rendimiento, así que 80 GB son 5,60 $ u 11,20 $ al mes. Se factura mientras el volumen exista, no se cobra por adelantado.
- Despliega la plantilla con el volumen conectado. En Additional filters → CUDA Versions, selecciona 13.0: la plantilla funciona con la imagen de CUDA 13 y necesita un host con un controlador reciente.
- Espera al primer arranque. Descarga unos 46 GB, lo que tarda entre 10 y 15 minutos. Síguelo en los logs. ComfyUI a veces dice «ready» antes de estarlo, y JupyterLab puede decir «initializing» cuando en realidad ya está listo, así que prueba a abrirlo.
Sube retratos y locuciones
Abre JupyterLab (puerto 8888) desde el menú Connect del pod. Es tu explorador de archivos.
- Pon los retratos en
ComfyUI/input/. - Pon las locuciones de un lote en
ComfyUI/input/batch_audio/. La plantilla crea esta carpeta en el primer arranque.
¿Ejecutas varios pods a la vez? Crea una carpeta por lote (batch_audio_1, batch_audio_2 y así) y apunta el flujo de cada pod a su propia carpeta.
Después de subir, recarga ComfyUI en el navegador. Sus menús de archivos solo se actualizan al recargar.
Elige un flujo
Abre ComfyUI (puerto 8188) y luego la barra lateral Workflows. Hay tres niveles de calidad, cada uno como flujo de un solo archivo y como versión _batch que renderiza una carpeta entera:
| Flujo | Resolución | Steps | Tiempo de render | Cuándo usarlo |
|---|---|---|---|---|
| Fast | 768 × 768 | 4 | 1× | Buena calidad; mi elección |
| Standard | 768 × 768 | 8 | ~2× | La mejor calidad, pero excesivo para la mayoría de los trabajos |
| Draft | 544 × 544 | 4 | ~0,5× | Solo para probar tiempos y encuadre |
Los flujos están pensados para trabajos largos: ahí es donde alquilar una GPU ahorra dinero. Para un solo clip de prueba, no compensa el trabajo extra.
Cómo funciona
Entender tres ideas hace que los ajustes cobren sentido.
Cada trozo empieza y termina en tu retrato. H3 fija el primer y el último fotograma de cada generación a la imagen que le das, de modo que el rostro no puede alejarse con el paso de un vídeo largo. La persona vuelve a la misma expresión neutra en cada unión, lo que resulta natural en alguien que habla a cámara.
La locución se corta en las pausas. Una generación de H3 llega como mucho a unos 15 segundos (362 fotogramas a 24 fps), y cuanto más se aleja un trozo de sus fotogramas ancla, más se desplazan el fondo y el encuadre. Por eso la plantilla corta tu audio en trozos de hasta 10 segundos, siempre en una pausa. Una locución de 57,5 segundos se convirtió en 7 trozos, ninguno de más de 10 segundos.
La imagen sigue tu audio. El fragmento de locución de cada trozo se da a H3 como guía, de modo que el modelo anima la boca según tu sonido en lugar de inventarse el habla. El vídeo terminado usa tu pista de audio original, no la reconstrucción del modelo.
Las uniones son casi perfectas, más limpias que con LTX-2.5, donde el patrón de ruido cambia visiblemente en cada unión. H3 tiene su propia manía: de vez en cuando hace zoom sobre el rostro sin motivo, incluso cuando el prompt no lo pide. Comprueba el primer trozo antes de comprometerte con horas de renderizado.
Describe el aspecto, o cambiará
Este es el ajuste que más importa. El nodo Talking-Head Prompt tiene dos campos: el sujeto y el fondo, ambos describiendo lo que ya está en tu retrato.
Solo se anclan el primer y el último fotograma; todo lo del medio se genera, y el modelo rellena lo que el prompt deja abierto. Si no describes la ropa, puede cambiar a mitad de un trozo.
Algunas reglas que me funcionaron:
- Describe el pelo y la ropa con palabras sencillas: por ejemplo, «una mujer con el pelo largo, claro y ondulado cayéndole más allá de los hombros, con una toga blanca» (en el prompt, en inglés).
- Mantén el fondo simple y dilo: un telón liso, iluminación suave y uniforme.
- No te pases escribiendo. Demasiada descripción puede volver el resultado rígido o quemado. Apunta a unas pocas palabras concretas por campo. Un chatbot puede condensar tu redacción si te atascas.
El prompt de la plantilla ya descarta texto, subtítulos y logotipos, y evita palabras como «presenter» que arrastran al modelo hacia gráficos de televisión.
Ejecuta el lote
Ajusta la resolución si necesitas algo distinto de un cuadrado y pon en cola con Run (Instant). Cada ejecución renderiza el siguiente trozo sin terminar, así que sigue hasta que todos los archivos de la carpeta estén hechos, y entonces se detiene solo.
Prueba primero un trozo. El primer trozo incluye la carga del modelo, así que es más lento (212 segundos en mi ejecución, frente a 118 del segundo en la A5000). Ábrelo en JupyterLab en output/h3_longform/<nombre de la locución>/chunk_0000.mp4 y comprueba tres cosas: la sincronización labial, el rostro y el fondo. Sin zoom ni cambio de atuendo: listo para seguir.
La reanudación es automática. Si el pod se detiene en el trozo 150 de 300, vuelve a poner en cola y continúa desde el 151, en el mismo pod o en uno nuevo conectado al mismo volumen. Un vídeo terminado también se salta. Para renderizar uno otra vez, cambia name_suffix en el nodo de nombre de salida o borra su carpeta en output/h3_longform/. Durante las pruebas tuve que limpiar trozos antiguos así cuando reutilicé un nombre de archivo.
Cuando un vídeo está terminado, se guarda como output/<nombre de la locución>_fast.mp4 (el sufijo coincide con el flujo). Haz clic derecho en JupyterLab para descargarlo.
Opcional: motion carry
La plantilla tiene un ajuste experimental en el nodo Split Audio Chunk, motion_carry, que empieza cada trozo desde los últimos fotogramas del anterior en lugar de desde el retrato. Puede suavizar aún más las uniones, pero está desactivado por defecto y el README señala que todavía no se ha probado en una GPU. Si lo pruebas, pon los trozos en cola en orden y usa un nombre de sesión nuevo.
Cuando termines
Detén el pod: tus archivos se quedan en el volumen y puedes reiniciar más tarde en cualquier GPU del mismo centro de datos. Cuando el proyecto haya terminado, borra también el volumen, o seguirá facturando. RunPod no borra un volumen mientras haya un pod conectado, así que termina primero esos pods.
Errores que evitar
- Ejecutarlo en una región excluida. Comprueba el centro de datos, no solo tu ubicación.
- Saltarte la descripción de la ropa. El atuendo puede cambiar a mitad de un trozo.
- Un prompt demasiado largo. Unas pocas palabras concretas valen más que un párrafo.
- Lanzarte directamente a un lote de 10 horas. Comprueba el primer trozo.
- Versión de CUDA equivocada. Filtra por CUDA 13.0 al desplegar.
- Olvidarte del volumen. Los pods detenidos cuestan poco; un volumen olvidado factura cada mes.
El enlace de RunPod de la plantilla, y mi enlace de referido de RunPod, dan a las cuentas nuevas que se registran con Google entre 5 y 500 $ de crédito después de su primer gasto de 10 $, y yo recibo una pequeña comisión.
Ver la versión en vídeo (14:43)
Todo lo anterior también está en el vídeo, si prefieres seguirlo en pantalla. El vídeo está en inglés.
Preguntas frecuentes
¿Cuánto cuesta renderizar un vídeo de avatar hablando con MiniMax H3?
En mis ejecuciones, unos 20 minutos de vídeo terminado a 768 × 768 costaron entre 2 y 3 $ de GPU, es decir, entre 0,10 y 0,15 $ por minuto terminado en una RTX 5090. Fue con las tarifas anteriores, más baratas, de RunPod; comprueba los precios actuales antes de un trabajo grande.
¿Cuánta VRAM necesita MiniMax H3?
32 GB es la opción segura. Con 24 GB funciona, pero los trabajos largos pueden bloquearse horas después cuando se agota la memoria. En una RTX 5090 con 32 GB funcionó durante días sin bloqueos.
¿Puedo usar MiniMax H3 en Estados Unidos o en la UE?
No con la licencia comunitaria, que excluye a Estados Unidos, la Unión Europea, el Reino Unido y Corea del Sur, incluido el lugar donde se ejecuta el pod. MiniMax concede licencias para esas regiones bajo solicitud.
¿Cuánto puede durar una generación de MiniMax H3?
Unos 15 segundos (362 fotogramas a 24 fps). La plantilla renderiza trozos de 10 segundos cortados en las pausas y los une, así que la locución en sí puede tener cualquier duración.
¿Qué pasa si el pod se detiene a mitad de un lote?
Vuelve a ponerlo en cola. Los trozos y vídeos terminados se saltan, y el trabajo continúa desde el siguiente trozo sin terminar, en el mismo pod o en uno nuevo conectado al mismo volumen de red.
