Create Voice (QwenTTS)
Turn a reference clip into a reusable .pt voice file — clone once, use forever
- reference_audio
- VOICE
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 unlessx_vector_onlyis 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.7BBase model for feature extraction. 1.7B for the good stuff.device(auto/cpu) andprecision(bf16/fp16/fp32) -auto+bf16on CUDA; on Apple Silicon it coerces to fp16.voice_name- the saved filename (without extension). Defaultvoice_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.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| reference_audio | AUDIO | Reference audio used to build the speaker prompt (required). | |
| reference_text | STRING | Transcript of the reference audio. Required unless x_vector_only is enabled. | |
| model_size | COMBO | 1.7B | Base model size used to extract speaker features. |
| device | COMBO | auto | Compute device for prompt building (auto/cpu/cuda/mps). |
| precision | COMBO | bf16 | Compute precision for prompt building. bf16 recommended on modern GPUs. |
| x_vector_only | BOOLEAN | false | Use speaker embedding only. If enabled, reference_text can be empty. |
| voice_name | STRING | voice_1 | Saved voice name (file name without extension). |
| save_pathopt | STRING | Custom folder to save voices. Leave empty to use ComfyUI output/qwen3-tts_voices. | |
| unload_modelsopt | BOOLEAN | true | Unload cached models after generation |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| VOICE | VOICE | — |