Qwen3 TTS Create Clone Prompt (Fast)
Extract the voice once, reuse it forever
- model
- ref_audio
- clone_prompt
Voice cloning normally couples two jobs together: "learn who's talking" and "say this line." If you're generating a lot of lines for the same character, that coupling is wasteful - you re-analyze the same reference clip on every single run. This node splits the jobs apart. It takes a reference clip once, turns it into a reusable clone prompt (QWEN3TTS_FAST_PROMPT), and hands that to the generator nodes, which then never need to look at the audio again.
Think of it as the "load a LoRA once, reuse it" move, but for a voice. One pass over your reference audio produces a compact prompt object that captures the speaker; you then feed that same object into Clone with Prompt for a single line or Batch Generate for a whole script's worth. Every subsequent run skips speaker-embedding extraction, and you get one more bonus: the clone prompt is deterministic, so every clip in a session is the same voice - the consistency problem that plagues per-clip cloning just disappears.
How it works
Load a Base checkpoint (0.6B or 1.7B Base) in the Fast Loader - cloning lives on the Base models. You feed this node:
ref_audio- the reference clip as an AUDIO wire (a few seconds of clean, single-speaker speech).ref_text- its transcript. Same rule as everywhere in this pack: an accurate transcript makes a dramatically better clone prompt.x_vector_only(optional) - true to build the prompt from the speaker embedding alone, no transcript. Faster and fine for "roughly this person," weaker for fidelity.
Under the hood there's a nice detail: the code pads your reference with half a second of trailing silence before building the prompt, specifically so the reference's last phoneme doesn't bleed into the first generated token. That's the kind of fussy edge handling that quietly makes cloned output sound better.
The output is a single clone_prompt output - not audio. It doesn't speak anything itself; it's the voice asset. Wire it into the clone_prompt input of Qwen3 TTS Clone with Prompt (Fast) for one clip, or into Qwen3 TTS Batch Generate (Fast) where it replaces the preset-speaker dropdown and makes every generated line use the cloned voice.
How to install it
One install covers the whole pack - ComfyUI Manager, search "Qwen3-TTS", install, restart:
cd ComfyUI/custom_nodes
git clone https://github.com/YildirimMC/ComfyUI-Qwen3-TTS-Fast
pip install -r ComfyUI-Qwen3-TTS-Fast/requirements.txt
NVIDIA GPU required; Base models download to ComfyUI/models/TTS/ on first load.
Common issues
No AUDIO comes out of this node - correct, it's not a generator. The clone_prompt output only feeds the two generation nodes named above. If you connected it to a save node, that's your bug.
The prompt-based voice is flatter than a direct clone - that's usually the x_vector_only flag doing its thing, or a sloppy transcript at prompt-build time. Rebuild the prompt with the transcript filled in.
Wrong checkpoint gives a confusing error - you need a Base model in the loader, not CustomVoice or VoiceDesign.
There's no saving the prompt to disk - it lives in the workflow as long as the node is there and re-extracts on every run of the graph (cached on the reference's content hash, so it's cheap to rebuild). For real "save this voice forever" needs, keep the reference clip in an input folder and rebuild from it.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | QWEN3TTS_FAST | — | |
| ref_audio | AUDIO | — | |
| ref_text | STRING | Transcript of the reference audio | — |
| x_vector_onlyopt | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| clone_prompt | QWEN3TTS_FAST_PROMPT | — |