Estado: Probada en local. Los cuatro flujos funcionan en mi portátil local con una RTX 3080. Aún no he verificado un primer arranque en un pod real de RunPod; actualizaré esta guía cuando lo haga.
Los avatares que hablan, los vídeos explicativos y los diálogos de videojuegos necesitan una locución. Qwen3-TTS, del equipo Qwen de Alibaba, es un modelo abierto de texto a voz con nueve voces integradas, diseño de voz a partir de una descripción escrita y clonación de voz. Creé una plantilla que lo ejecuta en ComfyUI, sobre todo para hacer las locuciones de mis vídeos de avatares.
ComfyUI no tiene nodos propios para Qwen3-TTS, así que la plantilla incluye un pequeño paquete de nodos que maneja el paquete oficial qwen-tts de Qwen. Obtienes cuatro flujos en la barra lateral, cada uno con valores por defecto que funcionan, de modo que la primera ejecución no requiere ninguna entrada. Todo está en GitHub.
En resumen
- Código abierto: los modelos se publican bajo Apache-2.0, que permite el uso comercial.
- 9 voces integradas, y cada una habla 10 idiomas.
- Diseña una voz a partir de una descripción, o clona una desde una grabación de 3–20 segundos.
- Guiones de cualquier longitud, divididos y unidos automáticamente.
- Funciona en cualquier GPU de 8 GB o más. Unos 13,6 GB de modelos; usa un volumen de 40 GB.
Las 9 voces integradas
| Voz | Idioma nativo | Carácter |
|---|---|---|
| Ryan | Inglés | Hombre dinámico, con un ritmo marcado |
| Aiden | Inglés | Hombre estadounidense soleado, con medios claros |
| Vivian | Chino | Mujer joven, brillante y algo atrevida |
| Serena | Chino | Mujer joven, cálida y suave |
| Uncle_Fu | Chino | Hombre experimentado, grave y suave |
| Dylan | Chino (Pekín) | Hombre joven de Pekín |
| Eric | Chino (Sichuan) | Hombre animado de Chengdu, algo ronco |
| Ono_Anna | Japonés | Mujer juguetona, ligera y ágil |
| Sohee | Coreano | Mujer cálida, con mucha emoción |
Cada voz habla los diez idiomas admitidos (inglés, chino, japonés, coreano, alemán, francés, ruso, portugués, español e italiano) y suena mejor en el suyo. Puedes guiar cualquiera de ellas con una instrucción de estilo.
La plantilla incluye un banco de voces: un clip de referencia de cada voz integrada con su transcripción exacta, 16 clips en total, en ComfyUI/input/voices/. Escúchalos en JupyterLab para elegir una voz antes de renderizar nada.
Los cuatro flujos
| Flujo | Modelo | Qué hace |
|---|---|---|
| 1. Voz integrada | CustomVoice | Una de las nueve voces lee tu guion, en el idioma y el estilo que elijas |
| 2. Diseño de voz | VoiceDesign | Describe una voz («una narradora tranquila y cálida de unos treinta años»). Dice una muestra y la guarda en el banco de voces |
| 3. Clonación de voz | Base | Cualquier voz del banco lee todo tu guion, de forma coherente de principio a fin |
| 4. Añade tu voz | Ninguno | Añade tu propia grabación y su transcripción al banco de voces |
Los flujos 2, 3 y 4 trabajan juntos a través del banco de voces: diseñas una voz o añades tu grabación, y acaba en el banco; luego el flujo de clonación lee tu guion completo con esa voz. La locución terminada se guarda como .wav y como .mp3 en output/voiceover/, y se reproduce directamente en el nodo Save.
Guiones de cualquier longitud
Una sola llamada a Qwen3-TTS está limitada a 2048 fotogramas de códec, unos 2,5 minutos de voz, y las llamadas largas pierden el ritmo. Por eso la plantilla:
- Corta el guion en partes de como máximo 400 caracteres, siempre en un salto de frase o de párrafo.
- Renderiza cada parte con la misma voz y la misma semilla.
- Las une con una pausa de 0,25 segundos entre frases y de 0,6 segundos después de un párrafo (una línea en blanco en tu guion).
Una voz diseñada para un guion largo: el diseño de voz renderiza cada parte a partir de la descripción, así que la voz puede variar ligeramente entre partes. La solución, y el camino que recomienda Qwen, es diseñar una muestra corta con el flujo 2 y luego clonarla para todo el guion con el flujo 3.
Tu propia voz: graba entre 3 y 20 segundos de voz limpia, escribe exactamente lo que dijiste y añade ambas cosas con el flujo 4. Clona solo voces que tengas derecho a usar.
Hardware y coste
Cada uno de los tres modelos de 1.7B necesita unos 4 GB de VRAM, y solo se carga uno a la vez, así que funciona cualquier GPU con 8 GB o más. La voz se genera token a token, de modo que una GPU más rápida ayuda menos aquí que con el vídeo.
- En mi portátil con RTX 3080, el banco de voces se renderizó a unos 5 segundos por cada segundo de voz. Una GPU de sobremesa o de centro de datos es varias veces más rápida.
- En RunPod, una RTX A5000 a 0,27 $/h es más que suficiente. No hay motivo para pagar una RTX 5090 para esto.
- Almacenamiento: los tres modelos ocupan unos 13,6 GB. Un volumen de red de 40 GB cuesta unos 2,80 $ al mes en almacenamiento estándar.
Cómo ejecutarlo en RunPod
- Crea un volumen de red de 40 GB. La plantilla se niega a funcionar sin uno, para que tus modelos y voces sobrevivan entre sesiones.
- Despliega la plantilla en una GPU de 8 GB o más con el volumen conectado.
- Mira los logs en el primer arranque. Esperas a ver
Voice pool: 16 clips, las descargas de modelos y, por último,Setup complete! - Abre ComfyUI (puerto 8188) y elige un flujo en la barra lateral Workflows.
- Usa JupyterLab (puerto 8888) para escuchar el banco de voces y descargar tus locuciones.
Los arranques posteriores se saltan todo lo que ya está instalado. Si los volúmenes de red y los pods son nuevos para ti, mi introducción a RunPod explica lo básico.
Nota de seguridad: JupyterLab funciona sin inicio de sesión por defecto, así que cualquiera que tenga la URL del pod obtiene una terminal. Para trabajo con clientes, define JUPYTER_NO_AUTH=0 y una JUPYTER_PASSWORD al desplegar.
Para quienes crean plantillas
Si estás creando tu propia plantilla de RunPod en lugar de usar esta, estos son algunos detalles del repositorio que más tiempo llevaron:
- La imagen base es
runpod/comfyui:1.4.0-comfyuiv0.35.0-cuda12.8, con un disco de contenedor de 5 GB y el volumen de red montado en/workspace. qwen-tts0.1.1 falla al importarse con transformers 5.x, que es el que trae la imagen. La plantilla fija transformers 4.57.3 en el entorno de ComfyUI y lo comprueba en cada arranque.- El comando de inicio comprueba el DNS de GitHub y Hugging Face, recurre a resolutores públicos si hace falta y reintenta la clonación hasta diez veces.
¿Nuevo en RunPod? Mi enlace de referido da 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.
Créditos: Qwen3-TTS, del equipo Qwen de Alibaba, Apache-2.0. Plantilla, nodos y flujos hechos por mí, gratis en GitHub.
Preguntas frecuentes
¿Qwen3-TTS es gratis para uso comercial?
Los modelos se publican bajo la licencia Apache-2.0, que permite el uso comercial. La clonación es otra cuestión: clona solo voces que tengas derecho a usar.
¿Qué idiomas admite Qwen3-TTS?
Inglés, chino, japonés, coreano, alemán, francés, ruso, portugués, español e italiano. Todas las voces integradas hablan los diez.
¿Qué duración puede tener una locución?
Cualquiera. La plantilla divide el guion en saltos de frase y de párrafo, renderiza cada parte con la misma voz y la misma semilla, y las une con pausas naturales.
¿Qué GPU necesito?
Cualquier GPU con 8 GB de VRAM o más. En RunPod, una RTX A5000 es más que suficiente.
¿Puedo ejecutarlo en local en lugar de en RunPod?
Sí. Los nodos y flujos de ComfyUI están en el repositorio de GitHub y funcionan en una GPU de portátil de 8 GB.
