Voice Clone (QwenTTS) Advanced
Voice cloning with the training wheels off — the node that fixes Qwen3-TTS's worst habits
- reference_audio
- voice
- audio
If you've cloned a voice with the basic Voice Clone (QwenTTS) node and got back a stuttering first word or a two-minute wall of hum, this is the version that fixes it. Voice Clone (QwenTTS) Advanced is the same zero-shot clone - reference audio (or a saved VOICE), a transcript, target_text - but with the full sampler surface exposed so you can actually do something about Qwen3-TTS's two worst habits: trailing noise and syllable stutter.
What's exposed
Everything the basic node hides. Required inputs add device (auto/cpu) and precision (bf16/fp16/fp32) - auto+bf16 on CUDA is the sane default, and on Apple Silicon the pack quietly coerces to fp16 for MPS. Then the optional stack that matters:
max_new_tokens(256–4096, default 2048) - the single most important knob in this pack. Shorttarget_textwith a high cap gives the model room to generate after the sentence ends, which is exactly the "humming/trailing noise" people blame the whole model for. Try 512–1024 for short lines.do_sample(defaultfalse) - keep it off. Greedy decoding is the pack's own recommendation and it's dramatically more stable for clones. The stuttering-clone complaints are heavily correlated with sampling being on.repetition_penalty(0.5–2.0, default 1.0) - if you still hear the model looping a syllable, nudge this up to ~1.1–1.2. That's the direct dial for stutter.temperature,top_p,top_k- standard sampling; defaults are fine, and withdo_sample=falsethey barely matter.attention-auto/sage_attn/flash_attn/sdpa/eager, with flash-attn and sageattention as optional CUDA-only installs.autois the right answer unless you've installed one of them.
The clone inputs are unchanged: reference_audio, reference_text (transcript; required unless x_vector_only is on - the Advanced node, unlike the basic one, will error rather than silently fall back), x_vector_only, and voice for a saved VOICE from the library. Output is one audio (AUDIO).
The workflow that actually works
The pack's design intent is Whisper → clone: run the reference through Whisper STT (QwenTTS) to get a perfect transcript, feed both into this node. A word-accurate reference_text is the difference between a recognizable voice and a garbled one, because Qwen3-TTS aligns the reference's speech tokens to the transcript.
Install and models
Same as every node in the pack - ComfyUI Manager (search ComfyUI-QwenTTS) or:
cd ComfyUI/custom_nodes && git clone https://github.com/1038lab/ComfyUI-QwenTTS.git
python3 -m pip install -r ComfyUI/custom_nodes/ComfyUI-QwenTTS/requirements.txt
Cloning loads the Base model (1.7B/0.6B) into ComfyUI/models/TTS/Qwen3-TTS/ on first run. The pack pins transformers>=4.57.0; if you see 'Qwen3TTSTalkerConfig' object has no attribute 'pad_token_id', you're on a transformers 5.x nightly and need transformers==4.57.3 + tokenizers<0.20.
Set expectations
Advanced knobs can't beat the model's ceiling: Qwen3-TTS is a strong multilingual (10-language) zero-shot cloner, but on pure likeness the community consistently ranks EchoTTS, Chatterbox, and VibeVoice ahead of it. Where this wins is being fast, local, and good enough for "voice like this" work - and the Advanced node is the difference between a usable result and a frustrating one.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| target_text | STRING | Hello, this is a cloned voice. | Text to speak |
| model_size | COMBO | 1.7B | 2 options: 0.6B, 1.7B |
| device | COMBO | auto | 2 options: auto, cpu |
| precision | COMBO | bf16 | 3 options: bf16, fp16, fp32 |
| language | COMBO | Auto | 11 options: Auto, Chinese, English, Japanese, Korean, French, +5 |
| reference_audioopt | AUDIO | Reference audio for cloning (not needed if voice is provided) | |
| reference_textopt | STRING | Transcript of reference audio | |
| x_vector_onlyopt | BOOLEAN | false | Skip ref_text by using speaker embedding only |
| voiceopt | VOICE | — | |
| max_new_tokensopt | INT | 2048256–4096 | — |
| do_sampleopt | BOOLEAN | false | — |
| top_popt | FLOAT | 0.900–1 | — |
| top_kopt | INT | 500–200 | — |
| temperatureopt | FLOAT | 0.900.1–2 | — |
| repetition_penaltyopt | FLOAT | 1.000.5–2 | — |
| attentionopt | COMBO | auto | 5 options: auto, sage_attn, flash_attn, sdpa, eager |
| unload_modelsopt | BOOLEAN | true | — |
| seedopt | INT | -1-1–18446744073709550000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |