Nodes/ComfyUI-Qwen3-TTS/Qwen3-TTS Voice Clone 👥
ComfyUI Node

Qwen3-TTS Voice Clone 👥

Clone any voice from a few seconds of audio — if you get the transcript right

By wanaigc·Created 7 months ago·Updated 7 months ago· 113
Qwen3-TTS Voice Clone 👥
  • model_obj
  • ref_audio
  • voice_clone_prompt
  • AUDIO
target_text我想用这个声音说这句话。[pause:0.5] 真的很有趣!
target_languageChinese
output_modeConcatenate (Merge)
seed0
ref_text
instruct
enable_x_vector_instantfalse
max_new_tokens2048
temperature0.90
top_p1.00
top_k50
repetition_penalty1.05
subtalker_temperature0.90
subtalker_top_p1.00
subtalker_top_k50

Qwen3 TTS Voice Clone is the flagship of this pack and the reason most people install it: hand it a clip of someone talking plus a transcript, and it'll read whatever you type in a close approximation of that voice. The Qwen3-TTS model advertises cloning from three seconds of audio, and it genuinely works - with the caveat that "three seconds" is the floor, not the sweet spot, and the transcript is doing more work than people expect.

It's the node you reach for when preset voices (Custom Voice) or invented ones (Voice Design) aren't enough - you want your voice, a friend's, a character's, a voice from a recording you have. It's local and Apache 2.0, no ElevenLabs account required, which is the whole appeal.

What it needs

The required inputs are the standard text (what you want said), language (Auto + 10), seed, plus the two cloning-specific ones:

  • ref_audio - the reference clip, in ComfyUI's AUDIO format. Feed it from the built-in Load Audio node, or from anywhere in your graph that outputs AUDIO.
  • ref_text - the exact transcript of what's said in that clip.

That transcript is the loaded die. The pack feeds it to the model as the speech-content anchor for the reference, and Qwen3-TTS's own docs stress that an accurate transcript is what makes the clone stick. Wrong words, mumbling, or silence in the transcript and the output drifts or, in the worst cases people report, stutters and loops. The README and QUICKSTART are both emphatic: clean reference audio (minimal background noise) plus an accurate transcript is the difference between a usable clone and a two-minute clip of glitchy repetition.

There's one optional input worth knowing before you ever touch the sampling sliders: x_vector_only (default off). Off means the model uses the full reference - speaker embedding and the transcript - which is higher quality but requires ref_text. Flip it on and it uses only the speaker embedding, skipping the transcript entirely: faster, and handy when you don't have a clean transcript, but noticeably lower fidelity. The README calls it "faster but lower quality," which is accurate.

How it works

Internally the node takes your ref_audio, flattens it to a mono waveform, and hands (waveform, sample_rate) plus the transcript to generate_voice_clone. The output is a single AUDIO, ready for Preview Audio, Save Audio, or whatever downstream node you want. It also prints a stat block to the console (RTF, samples/sec, VRAM) - nice for seeing how fast a clone actually generates.

Getting it running

Install once: ComfyUI Manager search "Qwen3-TTS", or git clone https://github.com/PGCRT/ComfyUI-QWEN3_TTS into custom_nodes/, pip install -r requirements.txt, restart. Load the Base model (Qwen3-TTS-12Hz-1.7B-Base, or the 0.6B if you're VRAM-shy) in the Model Loader - this node does not work with the CustomVoice or VoiceDesign models. First run downloads the model to ComfyUI/models/TTS/.

Troubleshooting

  • Stutter/repeat output - almost always the reference: dirty audio or a sloppy transcript. Re-record clean, re-transcribe exactly.
  • Wrong model - you'll get an error or garbage; the Base model is required.
  • x_vector_only on and no ref_text - the pack handles this (it passes None), but quality drops; that's expected, not a bug.
  • Multichannel reference audio - the node averages channels down to mono, so a stereo clip won't break it.

If you're generating more than a line or two in the same voice, don't re-run this node each time - build a clone prompt once (the Create Clone Prompt node) and reuse it. That's the optimization this pack exists for.

CategoryQwen3-TTS

Inputs (18)

NameTypeDefaultDescription
model_objQWEN3_MODEL
target_textSTRING我想用这个声音说这句话。[pause:0.5] 真的很有趣!
target_languageCOMBOChinese10 options: Chinese, English, Japanese, Korean, German, French, +4
output_modeCOMBOConcatenate (Merge)2 options: Batch (Separate), Concatenate (Merge)
seedINT00–18446744073709550000
ref_audiooptAUDIO
ref_textoptSTRING
voice_clone_promptoptQWEN3_PROMPT
instructoptSTRING
enable_x_vector_instantoptBOOLEANfalse
max_new_tokensoptINT204864–8192
temperatureoptFLOAT0.900.1–2
top_poptFLOAT1.000.1–1
top_koptINT500–200
repetition_penaltyoptFLOAT1.050.1–2
subtalker_temperatureoptFLOAT0.900.1–2
subtalker_top_poptFLOAT1.000.1–1
subtalker_top_koptINT500–200

Outputs (1)

NameTypeDescription
AUDIOAUDIO