FL Qwen3 TTS Tokenizer Loader
The quiet workhorse behind Qwen3's 12Hz speech codec
- tokenizer
This is the least glamorous node in the pack and you'll probably never touch it - unless you're doing audio codec work. It loads the Qwen3-TTS speech tokenizer, the thing that turns waveforms into discrete codes and back, and it only exists to feed the Audio Encode and Audio Decode nodes. If you're here to make TTS voices talk, you don't need it: the generate nodes (Custom Voice, Voice Design, Voice Clone) load their tokenizer internally as part of the model. This loader is for the round-trip path.
The model behind it is genuinely cool, though. The "12Hz" in the name is the whole story: the tokenizer compresses speech into discrete codes at 12 tokens per second, a very high compression rate that's part of why Qwen3-TTS models are as small as they are for the quality they put out. It was called out as SOTA in the model's release announcement, and it's what makes the codec path useful at all.
How it works
Pick Qwen3-TTS-Tokenizer-12Hz from the dropdown - it's the only choice, because all five Qwen3-TTS models share this one tokenizer. On first use the node downloads it from HuggingFace into ComfyUI/models/tts/Qwen3TTS/ and caches it in memory. force_reload busts that cache and reloads from disk, which you basically never need.
The output is a single tokenizer connection (QWEN3TTS_TOKENIZER), which you wire into:
- Audio Encode - turns a waveform into discrete codes (
QWEN3TTS_AUDIO_CODES) - Audio Decode - turns codes back into a waveform
That's the whole job. It's a utility node, and it's honest about being one.
Installing
ComfyUI Manager → "FL Qwen3 TTS", or:
cd ComfyUI/custom_nodes
git clone https://github.com/filliptm/ComfyUI-FL-Qwen3TTS.git
cd ComfyUI-FL-Qwen3TTS
pip install -r requirements.txt
Restart ComfyUI. The tokenizer is small compared to the 1.7B models, so the first-use download is quick.
Gotchas
The main one is a wiring confusion: people see "tokenizer" and assume the generate nodes want it. They don't. Connect the model output from the Model Loader to Custom Voice / Voice Design / Voice Clone, and only bring this tokenizer in when you're doing explicit encode/decode. Also note the tokenizer and the model loader each cache independently - if you've got memory pressure, they're separate loads, not one shared one. Other than that, this node is hard to break: one choice, one output, no tuning knobs.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| tokenizer_version | COMBO | Qwen3-TTS-Tokenizer-12Hz | 1 options: Qwen3-TTS-Tokenizer-12Hz |
| device | COMBO | cpu | 1 options: cpu |
| force_reload | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| tokenizer | QWEN3TTS_TOKENIZER | — |