Nodes/ComfyUI-Qwen3-TTS-Fast/Qwen3 TTS Voice Clone (Fast)
ComfyUI Node

Qwen3 TTS Voice Clone (Fast)

Clone straight from an AUDIO wire

By YildirimMc·Created about 23 hours ago·Updated about 23 hours ago· 1
Qwen3 TTS Voice Clone (Fast)
  • model
  • ref_audio
  • AUDIO
textHello, this is a test.
ref_textTranscript of the reference audio
language
seed0
x_vector_onlyfalse
max_new_tokens2048
temperature1.00
top_p0.80
repetition_penalty1.10

The good kind of voice cloning - take a short clip of someone talking, get that voice speaking whatever text you type - but done the ComfyUI-native way: the reference audio arrives over an AUDIO wire, not a file path. That means you can load it with whatever audio node you already use, run it through processing, even generate it upstream. Feed this node a talking-head's line and it'll speak your text in that same voice.

This is the node the pack is built around, honestly. The "Fast" path matters most here because cloning used to be the slow, per-clip chore. In this implementation a repeat run with the same reference skips speaker-embedding extraction entirely (the engine caches by the reference's content hash), so once you've cloned a voice, subsequent takes are cheap.

How it works

Load a Base checkpoint in the Fast Loader - Qwen3-TTS-12Hz-1.7B-Base is the default pick, 0.6B-Base if you want it light. Cloning from a reference clip is the Base models' job; CustomVoice and VoiceDesign checkpoints can't do it. The node writes your AUDIO input to a temp WAV (keyed by a hash of the samples, so identical references don't re-encode), then runs the model's zero-shot voice clone on your text.

The inputs that matter:

  • ref_audio - your reference clip, wired in as AUDIO. Short and clean is the rule: a few seconds of clear speech with no background music beats thirty seconds of mush. Pick up the AUDIO output of a load node or wherever the clip already lives in your graph.
  • ref_text - the transcript of that reference clip. This is the one people skip, and it's the one that most affects quality. The clone prompt mixes the speaker embedding with the transcribed content, so a wrong or missing transcript makes the model fuzzier about who it's imitating. Write it accurately.
  • x_vector_only - the cheat switch. Turn it on to skip the transcript and clone purely from the speaker embedding. Faster and lets you dodge bad transcripts, but you lose fidelity - the model has far less to anchor on. Leave it off for quality; use it when the reference is un-transcribable and you just want the rough voice.
  • text, language, seed do what they say; language has Auto plus ten explicit options.

Output is a single 24kHz mono AUDIO clip, ready for a preview/save node or downstream into an audio-driven avatar workflow.

How to install it

The whole pack installs once - ComfyUI Manager, search "Qwen3-TTS", install, restart. Manual:

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 needed; the Base model downloads itself into ComfyUI/models/TTS/ on first use.

Common issues

"Model type doesn't support this" style errors - wrong checkpoint. Base model in the loader or this node fails.

The clone barely sounds like the reference - check ref_text first, then the audio itself. Noise, music, or multiple speakers in the clip drag the embedding toward mush. Also, don't expect a faithful clone from one muffled second; give it 3-10 seconds of clean speech.

Repeats come out identical no matter the seed - you've hit the quality-vs-sameness tradeoff of the fast path; the fixed code-predictor sampling makes take-to-take variety limited. If you need true variety for the same line, that's what batch generation and seed-shuffling with different texts are for.

Generated text cut off with a console warning - max_new_tokens exceeded the static KV cache budget (max_seq_len - 256), so it clamped. Remember the reference audio counts against max_seq_len too; raise it on the Loader for long clones.

When you've got the voice right, the natural next step in a talking-head pipeline is feeding this AUDIO into an audio-driven avatar pack so the mouth moves with it.

CategoryQwen3_TTS_Fast

Inputs (11)

NameTypeDefaultDescription
modelQWEN3TTS_FAST
textSTRINGHello, this is a test.
ref_audioAUDIO
ref_textSTRINGTranscript of the reference audio
languageCOMBO11 options: Auto, Chinese, English, Japanese, Korean, German, +5
seedINT00–18446744073709550000
x_vector_onlyoptBOOLEANfalse
max_new_tokensoptINT20481–8192
temperatureoptFLOAT1.000.1–2
top_poptFLOAT0.800.1–1
repetition_penaltyoptFLOAT1.101–2

Outputs (1)

NameTypeDescription
AUDIOAUDIO