Nodes/ComfyUI-QwenTTS/Create Voice (QwenTTS)
ComfyUI Node

Create Voice (QwenTTS)

Turn a reference clip into a reusable .pt voice file — clone once, use forever

By 1038lab·Created 7 months ago·Updated 7 months ago· 249
Create Voice (QwenTTS)
  • reference_audio
  • VOICE
reference_text
model_size1.7B
deviceauto
precisionbf16
x_vector_onlyfalse
voice_namevoice_1
save_path
unload_modelstrue

Cloning a voice in Qwen3-TTS means running your reference audio through the model to build a speaker prompt - and doing that on every generation is a waste of time and VRAM. Create Voice (QwenTTS) (class name AILab_Qwen3TTSVoicesLibrary, in case the display name threw you) exists to do that extraction once: it takes a reference clip and transcript, builds the voice-clone prompt, saves it to disk as a .pt file, and hands you a VOICE output to reuse.

How it works

You feed it reference_audio and a reference_text transcript. It loads the Base Qwen3-TTS model (0.6B or 1.7B), runs the audio through to produce a speaker embedding (and, when a transcript is given, an in-context speech-token prompt), serializes the whole thing into a versioned .pt file, and returns its path as the VOICE output. That file is what Load Voice (QwenTTS) reads back later, and what Voice Clone (QwenTTS) accepts directly in its voice input.

The save location: ComfyUI/output/qwen3-tts_voices/ by default (it uses ComfyUI's output folder, not the models folder), or wherever you point save_path. Build a library of characters once, and every later clone job skips the extraction entirely.

The inputs that matter

  • reference_audio (AUDIO) - the voice to save. Required. Clean, isolated speech works best; the quality of your library is set here.
  • reference_text - the transcript. Required unless x_vector_only is enabled (the tooltip says so). A word-accurate transcript gives a much better clone; pair it with Whisper STT (QwenTTS) to skip typing it.
  • x_vector_only (default false) - if true, it uses only the speaker embedding and lets you leave the transcript empty. Good-enough mode.
  • model_size - 0.6B/1.7B Base model for feature extraction. 1.7B for the good stuff.
  • device (auto/cpu) and precision (bf16/fp16/fp32) - auto+bf16 on CUDA; on Apple Silicon it coerces to fp16.
  • voice_name - the saved filename (without extension). Default voice_1.
  • save_path - optional custom folder. Leave empty for the default.

Outputs: a single VOICE (the saved file path), plus a file on disk you can treat as a reusable asset - back it up, share it, load it on another machine with Load Voice's custom_path.

Install

Standard for 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

Restart. The Base model auto-downloads to ComfyUI/models/TTS/Qwen3-TTS/ on first use.

Notes

This node is the pack's answer to a real workflow pain: Qwen3-TTS clone likeness is decent but not flawless, so being able to re-run a generation cheaply with different target_text - reusing the same extracted voice - is where it earns its keep. Expect the extraction to be a one-time wait (model load + inference); every subsequent clone that uses the saved VOICE skips it. If you hit the 'Qwen3TTSTalkerConfig'…pad_token_id error, that's the pack's usual transformers-5.x-nightly issue: pin transformers==4.57.3 and tokenizers<0.20.

Category🧪AILab/🎙️QwenTTS

Inputs (9)

NameTypeDefaultDescription
reference_audioAUDIOReference audio used to build the speaker prompt (required).
reference_textSTRINGTranscript of the reference audio. Required unless x_vector_only is enabled.
model_sizeCOMBO1.7BBase model size used to extract speaker features.
deviceCOMBOautoCompute device for prompt building (auto/cpu/cuda/mps).
precisionCOMBObf16Compute precision for prompt building. bf16 recommended on modern GPUs.
x_vector_onlyBOOLEANfalseUse speaker embedding only. If enabled, reference_text can be empty.
voice_nameSTRINGvoice_1Saved voice name (file name without extension).
save_pathoptSTRINGCustom folder to save voices. Leave empty to use ComfyUI output/qwen3-tts_voices.
unload_modelsoptBOOLEANtrueUnload cached models after generation

Outputs (1)

NameTypeDescription
VOICEVOICE