Qwen3 TTS Model Loader
Every Qwen3-TTS workflow starts here — pick the right model or nothing else works
- QWEN_TTS_MODEL
Qwen3 TTS Model Loader is the node at the top of every Qwen3-TTS graph in this pack. It does two jobs: it grabs the model you asked for (downloading it automatically if it isn't local) and it hands the loaded model to the generation nodes downstream. Skip it and there is nothing to generate with - the whole pack is built around that one QWEN_TTS_MODEL wire.
This is a wrapper around Alibaba's open-weights Qwen3-TTS models, which ship Apache 2.0 like the rest of the Qwen family - no API key, no cloud call, everything runs on your machine. The one real decision you make here is which model variant you load, because the pack is opinionated about matching models to nodes.
Picking the model matters more than anything else here
The model_name dropdown lists five variants, and this is where people trip. There are three model "types" with two sizes each:
- CustomVoice (1.7B and 0.6B) - feeds the Custom Voice and Batch Generate nodes
- VoiceDesign (1.7B only) - feeds the Voice Design node
- Base (1.7B and 0.6B) - feeds every voice-cloning node
If you wire a VoiceDesign model into the Custom Voice node, it won't work. The README and QUICKSTART both call this out as the #1 mistake, and it's easy to make because all five names look alike. Decide what you're doing first (preset voice, described voice, or cloning), then load the matching model.
The other settings are mostly "set once and forget":
- device -
cuda:0is the sensible default;cuda:1if you have a second GPU;cpuworks but you'll be waiting. - dtype -
bfloat16is the recommended sweet spot for speed and quality.float16if you're short on VRAM,float32if you like slow. - keep_model_loaded (default
true) - keeps the model cached in memory so the next generation is instant. Turn it off and the model is offloaded to CPU after each run to free VRAM for your image/video work, at the cost of a reload every time. - use_flash_attn (default
true) - FlashAttention 2 if you have it installed; flip it off if you get an attention error.
Where the model lives
The loader downloads models to ComfyUI/models/TTS/ on first use, so the first run of a new model variant will stall while a 1.7B checkpoint comes down from Hugging Face. If you're in China or the download crawls, export HF_ENDPOINT=https://hf-mirror.com before starting ComfyUI, or pre-download with huggingface-cli download Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice --local-dir ./models/TTS/Qwen3-TTS-12Hz-1.7B-CustomVoice.
Installing the pack
Install once via ComfyUI Manager (search "Qwen3-TTS"), or manually:
cd ComfyUI/custom_nodes/
git clone https://github.com/PGCRT/ComfyUI-QWEN3_TTS
cd ComfyUI-QWEN3_TTS
pip install -r requirements.txt # qwen-tts, soundfile, transformers, accelerate
pip install flash-attn --no-build-isolation is optional and gets you 2–3x faster generation, but it's a pain to build - the loader happily runs without it. Restart ComfyUI, and you'll see the pack's nodes under the Qwen3_TTS category.
Troubleshooting
- "qwen-tts not installed" - you didn't install requirements. Run
pip install qwen-ttsand restart. - First run hangs or errors on load - it's downloading a multi-GB model; check the console for the download path and progress.
- Out of memory - drop to the 0.6B variant or float16, or set
keep_model_loadedto false so it frees VRAM after each generation. - Flash attention error - disable
use_flash_attn; you're not missing much if you didn't build it.
The loader also prints a handy stat block to the console after each run - RTF (real-time factor), samples/sec, and VRAM before/after. It's the fastest way to see whether bfloat16 vs float16 is actually costing you speed.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | 5 options: Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice, Qwen/Qwen3-TTS-12Hz-1.7B-VoiceDesign, Qwen/Qwen3-TTS-12Hz-1.7B-Base, Qwen/Qwen3-TTS-12Hz-0.6B-CustomVoice, Qwen/Qwen3-TTS-12Hz-0.6B-Base | |
| device | COMBO | 3 options: cuda:0, cuda:1, cpu | |
| dtype | COMBO | 3 options: bfloat16, float16, float32 | |
| keep_model_loaded | BOOLEAN | true | — |
| use_flash_attnopt | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| QWEN_TTS_MODEL | QWEN_TTS_MODEL | — |