Qwen3-TTS Custom Voice
Nine preset voices, one dropdown — plus the hidden field that uses the voice you trained
- model
- AUDIO
Qwen3-TTS Custom Voice is the "I just want a good-sounding voice saying this text" node of the pack. You pick one of nine preset speakers, type what you want said, and get a WAV back. It's the zero-effort path to narration and dialogue, and it's also the node you use after fine-tuning - the same input that reads as a dropdown also accepts the name of a voice you trained yourself.
This is the node that directly competes with the lightweight corner of the open TTS scene (Kokoro, F5-TTS) and the preset-voice tiers of the paid services. Qwen3-TTS is Alibaba's Apache-2.0 model line, the same house that shipped Qwen-Image and Wan, and it's solidly multilingual - the language dropdown covers Chinese, English, Japanese, Korean, German, French, Russian, Portuguese, Spanish, and Italian, with an Auto that lets the model guess. That cross-lingual support is the real differentiator here; most of the lightweight open TTS crowd is English-first.
How it works
Feed it a QWEN3_MODEL from the Qwen3-TTS Loader - and this is the critical bit - loaded with a CustomVoice variant (e.g. Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice). Use the wrong variant and it fails loudly with a model-type error rather than silently producing garbage, which is decent behavior. The model generates speech autoregressively from your text with a speaker embedding chosen from the nine presets, at 24 kHz output.
Three knobs matter beyond text:
speaker- Vivian (default), Serena, Uncle_Fu, Dylan, Eric, Ryan, Aiden, Ono_Anna, Sohee. All Chinese-accent-adjacent to varying degrees (it's a Qwen model); Ono_Anna and Sohee lean Japanese. Honestly they're all "good quality, roughly similar"; pick Ryan for a clear male read and Vivian for a warm female read and you're 90% of the way there.instruct- optional emotional/paralinguistic direction, like "Happy" or "Whispering". It does what it says, more or less; Qwen3-TTS is better at this than most open models.seed- fixed default of 42. Bump it if a generation comes out weird; the model's tokenizer occasionally takes a pathological path on certain seeds.
custom_speaker_name is the sleeper input. After you've run Qwen3-TTS Finetune, your trained speaker_name won't appear in the dropdown - you type it here and it overrides the preset list entirely, ignoring the default voices. That's the whole "use your trained voice" workflow in one field.
The single AUDIO output plugs into any ComfyUI audio node - save it, play it in a preview, or drive a lip-sync/avatar node like InfiniteTalk for a talking head.
Installing
Same pack-level install as everything else in ComfyUI-Qwen3-TTS: ComfyUI Manager (search "ComfyUI-Qwen3-TTS"), or git clone https://github.com/DarioFT/ComfyUI-Qwen3-TTS into custom_nodes and pip install -r requirements.txt. Remember ComfyUI won't auto-install the requirements - you run that command yourself. The heavy part isn't the install, it's the model: the 1.7B CustomVoice download happens on first run and it's a few gigabytes, one time only.
Troubleshooting
- "does not support generate_custom_voice" error - you loaded a Base or VoiceDesign model. Reload with a CustomVoice variant. The most common mistake in the whole pack.
- Generation never finishes, GPU at 100% - known upstream Qwen3-TTS infinite-loop issue. Lower
max_new_tokens(try 1024 instead of 2048 for short lines), change the seed, and restart ComfyUI if it's truly stuck. - Voice sounds off / robotic - Qwen3-TTS's likeness to a specific person is its weak spot (clone quality is a recurring community complaint across the whole Qwen3-TTS line), but as a generic preset it's genuinely good. If you need a real person's voice, that's the Voice Clone node's job - just keep expectations calibrated.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| model | QWEN3_MODEL | — | |
| text | STRING | — | |
| language | COMBO | Auto | 11 options: Auto, Chinese, English, Japanese, Korean, German, +5 |
| speaker | COMBO | Vivian | 9 options: Vivian, Serena, Uncle_Fu, Dylan, Eric, Ryan, +3 |
| seed | INT | 421–18446744073709550000 | — |
| instructopt | STRING | — | |
| custom_speaker_nameopt | STRING | — | |
| max_new_tokensopt | INT | 204864–8192 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| AUDIO | AUDIO | — |