FL Qwen3 TTS Voice Clone Prompt
Clone once, generate forever — precompute your voice prompt
- model
- ref_audio
- voice_clone_prompt
Every time the Voice Clone node runs, it re-extracts the speaker embedding from your reference audio. That's a chunk of work you pay for on every generation - which is dumb if you're cloning once and generating twenty lines of dialogue. This node exists to fix exactly that. You run it once on the reference clip, it hands you a voice_clone_prompt, and you feed that prompt into every Voice Clone call after it. The clone node detects the prompt and skips straight to generation.
Think of it as the "cache the prompt" node for voice - same energy as precomputing embeddings in the image world. For a single generation it's pointless overhead. For a batch, a loop, or a character who talks a lot, it's the difference between waiting on the extraction and not.
How it works
Same requirements as Voice Clone: a Base model (Qwen3-TTS-12Hz-1.7B-Base, or the 0.6B Base). The node runs the reference audio through the model's create_voice_clone_prompt - encoding the audio to speech codes and extracting the speaker embedding - and packages it into a VOICE_CLONE_PROMPT object. Wire that into Voice Clone's optional voice_clone_prompt input and the generate call reuses the prebuilt prompt instead of rebuilding it.
The inputs
model- the Base-model connection from the Model Loader. Non-negotiable.ref_audio- your reference clip, same 5–15 second clean-speech guidance as Voice Clone.x_vector_only_mode- must match what you'll use in Voice Clone.false(default) builds an ICL-mode prompt that includes the reference text and speech codes;truebuilds a speaker-embedding-only prompt.ref_text- the transcript of the reference clip. Required whenx_vector_only_modeis false - the node will error if you leave it empty, because an ICL-mode prompt without the reference text is incomplete. Wire the Transcribe node here to avoid typing it.
Output: one voice_clone_prompt (VOICE_CLONE_PROMPT).
Installing
Same as the rest of the pack. ComfyUI Manager, search "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. First run downloads the Base model into ComfyUI/models/tts/Qwen3TTS/.
Gotchas
The two things that bite: forgetting ref_text when the mode flag is off (instant error, easy fix), and building the prompt with one x_vector_only_mode setting then using it with a different one in Voice Clone - the modes don't mix, so keep them consistent. Also, a prompt is tied to the reference audio and model you built it with. Swap the reference clip and the prompt is stale; rebuild it. This node is purely a convenience for multi-generation workflows - if you're doing one-off clones, skip it and use Voice Clone directly.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | QWEN3TTS_MODEL | — | |
| ref_audio | AUDIO | — | |
| x_vector_only_mode | BOOLEAN | false | — |
| ref_textopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| voice_clone_prompt | VOICE_CLONE_PROMPT | — |