Nodes/Vantage-Nodes/Qwen TTS Voice Clone Prompt
ComfyUI Node

Qwen TTS Voice Clone Prompt

Clone a voice from three seconds of audio, no API key required

By vantagewithai·Created 8 months ago·Updated about a month ago· 25
Qwen TTS Voice Clone Prompt
  • model
  • ref_audio
  • voice_prompt
ref_text
x_vector_onlyfalse
deviceinherit
attentioninherit
unload_model_after_promptfalse
save_voicefalse
voice_name
overwrite_existingfalse

The name undersells it. This node takes a snippet of somebody's voice - a couple of seconds of clean audio - and builds a "voice clone prompt" that Qwen3-TTS then uses to speak anything you want in that voice. It's the closest thing in this pack to an ElevenLabs clone sitting in your local ComfyUI graph. No API, no subscription, no credit card. The 1.7B custom-voice model that backs it was one of the most-hyped open TTS releases of late 2025, and community tests kept calling out how well it held up on a midrange GPU.

Where this fits: it doesn't generate audio. It produces a QWEN_TTS_VOICE_PROMPT object - the voice identity - which you feed into something that turns text into sound. In a Vantage workflow that usually means the Speaker Bank → Multi Speaker chain, so one cloned voice (or five) can narrate a whole dialogue.

What it needs

  • model - the custom_voice_model output from QwenTTSModelDownloader.
  • ref_audio - a ComfyUI AUDIO object. Load one with any audio loader you have (VHS or the pack's own audio loading node). Keep it short and clean; 3–30 seconds of speech, no music, no background hiss if you can help it. Garbage reference audio is the single biggest cause of a mushy clone.

That's the whole required set. Everything else is optional tuning:

  • ref_text - the transcript of the reference clip. Qwen can get the phonetic content from the audio itself, but a correct transcript improves pronunciation and prosody noticeably. Leave blank and it goes audio-only.
  • x_vector_only - toggle to keep only the speaker's vocal identity and throw away phonetic content. Useful when your reference clip's content would leak into the read ("say this sentence in this voice" vs. "talk like this person about anything").
  • save_voice + voice_name - persist the built prompt to disk (it lands in the pack's custom_voices/ folder). Then a Speaker Bank node can load it later without ever touching the reference audio again. If you save, voice_name is required - the node refuses to run otherwise.
  • overwrite_existing - replace a saved voice of the same name instead of auto-suffixing -1.
  • unload_model_after_prompt - drop the 1.7B clone model from VRAM as soon as the prompt is built. Do this in multi-voice pipelines where the model would otherwise sit loaded between calls.

What comes out

One output: voice_prompt. Wire it into a Speaker Bank (to bundle several voices) or straight into the TTS generation path.

Install

This is one node in the Vantage-Nodes pack:

cd ComfyUI/custom_nodes
git clone https://github.com/vantagewithai/Vantage-Nodes.git
pip install -r requirements.txt

Or ComfyUI Manager → search "Vantage-Nodes" → Install → restart. You also need the custom-voice model downloaded once via QwenTTSModelDownloader (it's a few GB, first run is slow).

Common issues

  • OOM while cloning - the node catches it, unloads the model and tells you to lower expectations: try sdpa attention instead of flash_attn, close other GPU apps, or run the downloader with fp32/smaller footprint. The OOM handler is one of the better ones in this pack; it recovers cleanly instead of wedging your whole session.
  • Voice sounds nothing like the reference - check your ref_audio first (background noise and music are the killers), then add the correct ref_text, then try x_vector_only.
  • "Voice name is required when save_voice is enabled" - self-explanatory, but the error message is the whole fix.
CategoryVantage/Audio/Qwen3 TTS

Inputs (10)

NameTypeDefaultDescription
modelQWEN_TTS_MODEL
ref_audioAUDIO
ref_textoptSTRING
x_vector_onlyoptBOOLEANfalseOnly use speaker x-vector (no phonetic content)
deviceoptCOMBOinherit5 options: inherit, auto, cuda, mps, cpu
attentionoptCOMBOinherit6 options: inherit, auto, sage_attn, flash_attn, sdpa, eager
unload_model_after_promptoptBOOLEANfalseUnload model from memory after building voice prompt
save_voiceoptBOOLEANfalseSave this voice for reuse
voice_nameoptSTRING
overwrite_existingoptBOOLEANfalseOverwrite existing voice with same name

Outputs (1)

NameTypeDescription
voice_promptQWEN_TTS_VOICE_PROMPT