Qwen3-TTS Prompt Maker
Cache your cloned voice once so every generation after it is instant
- model
- ref_audio
- QWEN3_PROMPT
Qwen3-TTS Prompt Maker is the caching node for the pack's voice cloning. Instead of making Voice Clone re-analyze your reference clip every single time you generate a sentence, you run this node once, it extracts the voice features from that clip, and you hand the result to Voice Clone as a precomputed QWEN3_PROMPT. For one-off generation it's pointless overhead. For "I'm generating fifty lines of dialogue with the same voice," it's the difference between waiting on the reference every run and not.
Think of it as the TTS equivalent of a prompt cache for a text encoder - same idea, audio version. The reference analysis is the expensive, repeated part, and this node moves it out of the hot path.
How it works
It needs three things wired in:
model- aQWEN3_MODELfrom the Qwen3-TTS Loader, and it has to be a Base variant. The speaker-encoder machinery that turns a reference clip into a voice embedding only lives in the Base checkpoints, so don't load CustomVoice and wonder why it fails - it'll error with a model-type mismatch.ref_audio- the reference clip. Same rules as Voice Clone: short and clean wins. 1–10 seconds of solo speech is ideal.ref_text- the transcription of that clip. Improves the embedding, same as in cloning.
There's one optional input, ref_audio_max_seconds (default 30, -1 disables), which auto-trims long references - the pack's hedge against the known upstream Qwen3-TTS generation hang that long reference audio can trigger. You can mostly leave it alone.
The output is a single QWEN3_PROMPT. That's the whole point: it's a reusable value, not a one-shot signal. Wire it straight into a Qwen3-TTS Voice Clone node's prompt input and every generation skips the reference analysis.
The bigger workflow
Where this gets genuinely useful is in combination with the save/load pair. The pattern the README walks through:
- Qwen3-TTS Prompt Maker extracts the embedding from a reference clip.
- Qwen3-TTS Save Prompt writes it to
ComfyUI/models/Qwen3-TTS/prompts/<name>.safetensors. - Later - new session, different workflow - Qwen3-TTS Load Prompt reads it back out and feeds Voice Clone.
Net effect: your cloned voice becomes a saved asset you can reuse without re-uploading the reference audio or recomputing the embedding. That's the "voice library" feature of the pack, and Prompt Maker is the extraction stage of it.
Installing
Same pack install: ComfyUI Manager (search "ComfyUI-Qwen3-TTS") or git clone https://github.com/DarioFT/ComfyUI-Qwen3-TTS into custom_nodes, then pip install -r requirements.txt by hand - ComfyUI won't do it, and the qwen-tts dependency pins transformers==4.57.3, which can downgrade a shared environment.
The only real trap is the model variant. Load a Base model and this node is boring and reliable. Load anything else and it fails with a clear model-type error - that's the fix, not a bug.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | QWEN3_MODEL | — | |
| ref_audio | AUDIO | — | |
| ref_text | STRING | — | |
| ref_audio_max_secondsopt | FLOAT | 30-1–120 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| QWEN3_PROMPT | QWEN3_PROMPT | — |