๐จ Voice Designer
Describe a voice in words, get a reusable one back
- TTS_engine
- opt_narrator
- preview_audio
- voice_info
Sometimes you don't have a reference clip and you don't want to comb through preset speakers - you just know the voice in your head. "A warm, confident older woman with a slight rasp." Voice Designer is the node that takes that sentence and makes the voice, no reference audio required. It's reference-free voice creation, and the output is a reusable voice you can save and drop into any TTS generation.
This node is a shared front-end over several voice-design-capable engines: Qwen VoiceDesign, MOSS VoiceGenerator, or OmniVoice in voice-design mode. You wire one of those in as the TTS_engine, write your description, and it produces a NARRATOR_VOICE plus a preview so you can hear it before committing.
How it works
The key design choice here - and it's a good one - is that the voice instruction lives on this node, not on the engine. The engine holds model/language/generation settings; Voice Designer holds the creative description. You give it a voice_instruction (what the voice should sound like) and a reference_text (the words it should speak in the preview), it generates, and out comes a voice object you can route straight into a TTS node or persist with the ๐พ Save Character Voice node. Same seed + same instruction = the same voice, so once you find one you like, you can reproduce it.
The inputs and outputs that matter
TTS_engine- required, and it must be a voice-design-capable engine (Qwen VoiceDesign, MOSS VoiceGenerator, or OmniVoice set to Voice Design). Plug in a plain cloning engine and it won't do voice design.voice_instruction- the description. This is the creative control: "A deep, authoritative male voice with clear articulation." Be specific about age, tone, pace, texture.reference_text- the sample line the preview speaks. The default is a friendly paragraph; swap in text that shows off the range you care about.seed- locks the voice. Change it to roll a different interpretation of the same description; keep it to reproduce a voice you liked.
Three outputs: opt_narrator (NARRATOR_VOICE) - the reusable voice, wire it into a TTS Text/SRT node or into ๐พ Save Character Voice to keep it; preview_audio (AUDIO) - listen before you commit; and voice_info (text).
Installing it
Ships with the pack. ComfyUI Manager โ search "TTS Audio Suite" โ install โ restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/diodiogod/TTS-Audio-Suite.git
cd TTS-Audio-Suite
python install.py
No download for this node itself - the model behind whichever voice-design engine you connect (Qwen 1.7B VoiceDesign, MOSS, OmniVoice) is what downloads on first use.
Common issues & troubleshooting
"The instruction field is disabled / ignored." Voice design only works with the compatible modes. If you connected an engine whose current mode can't do voice design, the suite disables the instruction and, in mismatched cases, stops with a direct correction message rather than silently doing the wrong thing. Set the engine to a voice-design variant (Qwen VoiceDesign, MOSS VoiceGenerator, or OmniVoice Voice Design mode).
Every generation sounds different. You're rolling the seed. Voice design is stochastic - lock the seed once you find a voice you want to keep, and the same description will reproduce it. Then save it with Save Character Voice so you never have to re-roll.
I want to reuse this voice everywhere. Route opt_narrator into ๐พ Save Character Voice. It writes the suite's three-file voice format under models/voices/, and from then on the voice is just another entry you can pick in the TTS nodes.
The voice is close but not quite. Tighten the voice_instruction - vague adjectives get vague voices. Naming concrete qualities (pitch, age, pace, accent, texture) steers it far better than "nice voice." The ๐ Visual Tag Builder can help assemble a structured description if freehand isn't landing.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| TTS_engine | TTS_ENGINE | Configured Qwen3-TTS, MOSS-TTS, or OmniVoice engine. This node owns the voice-design instruction; the engine owns its model, language, and generation settings. Qwen and MOSS require their voice-design model, while OmniVoice requires Voice Design mode. | |
| reference_text | STRING | Welcome to the TTS Audio Suite. This text-to-speech toolkit brings stories to life with natural, expressive voices for audiobooks, videos, and interactive experiences. What will you create today? | Plain text spoken to create the reusable voice reference. The exact transcript is stored inside opt_narrator for Character Voices and Save Character Voice. Use roughly 10 seconds or more with varied intonation, questions, and representative sounds to evaluate and clone the designed voice reliably. |
| seed | INT | 00โ18446744073709550000 | Generation seed. 0 keeps the provider's random behavior. A fixed nonzero seed also lets Save Character Voice recognize an identical generation safely. |
| voice_instruction | STRING | A warm, confident adult voice with natural pacing, clear articulation, and a subtle expressive smile. | Describe the voice identity and delivery to create: age, gender, pitch, texture, accent, pace, emotion, and speaking style. This overrides any stored engine instruction for this voice-design generation. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| opt_narrator | NARRATOR_VOICE | โ |
| preview_audio | AUDIO | โ |
| voice_info | STRING | โ |