Nodes/APZmedia Qwen TTS Nodes/APZmedia: Custom Voice Generate
ComfyUI Node

APZmedia: Custom Voice Generate

Eight built-in speakers and zero cloning — the fastest path to audio

By APZmedia·Created 5 months ago·Updated 5 months ago· 1
APZmedia: Custom Voice Generate
  • model
  • audio
textHello, this is a test line.
speaker_presetRyan
languageEnglish
instruct
seed0
speaker_name

Sometimes you don't want to design a voice or clone anyone's - you just want a competent speaker to read your line. APZmedia: Custom Voice Generate is that node. It uses the CustomVoice variant of Qwen3-TTS, which ships with a set of baked-in preset speakers (Ryan, Vivian, Ethan, Luna, Alex, Aria, Dylan, Nova) that you pick from a dropdown. No reference clip, no transcript, no embedding - pick a speaker, type text, run.

This is the pack's "fast and good enough" path, and it's also the cheapest one: the model loader lets you grab the 0.6B CustomVoice variant, which is noticeably lighter on VRAM than the 1.7B voice-design models and perfectly fine for dialog. If you're doing lots of short lines for a video or a game prototype, a 0.6B CustomVoice model plus this node is a genuinely pleasant setup - you can leave it resident and iterate without watching your VRAM counter sweat.

The inputs

  • speaker_preset - the dropdown. Defaults to Ryan. The eighth entry is Other (type below), which hands off to the next input.
  • speaker_name - optional. Fill this in (only used when the preset is set to "Other") if the speaker you want isn't in the list. It's a straight pass-through to Qwen's own preset table, so if you know the model has a name that isn't in the pack's dropdown, type it here.
  • instruct - optional emotion or style direction, like "Very happy" or "Speak in a calm and serious tone." The tooltip is the author's own framing: this is where you push a preset speaker off its default delivery. Empty string means neutral.
  • text, language, seed - the line, the language (English default, ten more, or Auto), and reproducibility.

The model socket must be a CustomVoice model - the node checks the model ID and throws a clear error if you feed it a VoiceDesign or Base model, so if you see "Model must be a CustomVoice model," that's the fix.

Output is a single audio socket in standard ComfyUI AUDIO format (24000 Hz), so it wires straight into PreviewAudio, the pack's Audio Saver, or any native audio node.

Where it fits

Think of the three generation paths as a ladder. Voice Design Generate lets you describe a voice from nothing but text - most flexible, most compute. Voice Clone Generate needs an existing voice to imitate. Custom Voice Generate sits in the middle: no description needed, no identity to manage, just a speaker catalog. It's the one you'd reach for when the voice just needs to be fine.

Gotchas

The preset list is hard-coded to "Known preset speakers as of Qwen3-TTS 0.1.x" in the source, so don't assume the dropdown is exhaustive - that's exactly what speaker_name is for. And if you pick a preset that doesn't exist in the model's own table, you'll get an error at generation time rather than a graceful fallback, so when in doubt, stick to the names the dropdown offers.

Install is the standard pack clone: git clone https://github.com/APZmedia/ComfyUI-APZmedia-qwen-TTS into custom_nodes, restart, and the model downloads on first use. The usual caveat applies - don't pip-install a second torch into your ComfyUI venv to satisfy anything; the pack wants the torch you already have.

CategoryAPZmedia/TTS

Inputs (7)

NameTypeDefaultDescription
modelQWEN_TTS_MODEL
textSTRINGHello, this is a test line.
speaker_presetCOMBORyanSelect a preset speaker. Choose 'Other' and fill speaker_name below for unlisted names.
languageCOMBOEnglish11 options: English, Chinese, Japanese, Korean, German, French, +5
instructSTRINGOptional emotion/style direction, e.g. 'Very happy' or 'Speak in a calm and serious tone'.
seedINT00–2147483647
speaker_nameoptSTRINGOverride speaker_preset with a custom name (used when preset is 'Other (type below)').

Outputs (1)

NameTypeDescription
audioAUDIO