qwen3 / voiceDesign
Describe a voice in words, get it speaking — no samples, no speaker list
- api_config
- audio_blob
- model_type
- speaker
- workflow_id
- raw_json
"You know the voice I want? A calm middle-aged male narrator with a slight British accent." In most TTS tools that's the start of a long hunt through speaker packs. Here it's the entire interface. CivitaiTextToSpeechVllmOmniQwen3VoiceDesign is the "voiceDesign" mode of Qwen3 TTS on Civitai's cloud: you write a natural-language description of the voice you want, type the text, and the engine designs a voice to match. No reference audio, no transcript, no speaker dropdown - just prose in, audio out.
It lives in Civitai/Audio/qwen3, part of Civitai's official ComfyUI pack, alongside Base (clone from a reference clip) and CustomVoice (pick from nine named speakers). VoiceDesign is the most flexible of the three and the most fun: it's the only one that doesn't assume you already have a voice in mind or on disk. If you're voicing a character who doesn't exist yet, this is the mode written for you.
How it works
The node submits a textToSpeech workflow with operation: voiceDesign to Civitai's Orchestration API. Your instruct field - the voice description - is the required input that drives everything: the engine interprets it into a speaker configuration and generates your text in that voice. The pack long-polls the job and hands back a native AUDIO tensor on audio_blob, plus model_type and speaker metadata describing what it actually produced (useful if you get a voice you like and want to recreate it later).
The inputs that matter
- text (required) - what the designed voice should say.
- instruct (required) - the voice description. This is the whole trick, so be specific: gender, age, register, accent, energy. The tooltip's example - "a calm middle-aged male narrator with a slight British accent" - is a good template. The more concrete the adjectives, the more it hits the mark.
- language - target language, empty for auto.
- max_new_tokens - optional generation cap; 0 = no cap.
Outputs: audio_blob (AUDIO), model_type, speaker, plus the standard workflow_id and raw_json for cost and debugging.
Installing it
This is one of ~160 nodes in Civitai Comfy Nodes, Civitai's official pack for their Orchestration API:
- ComfyUI Manager: Manager → Custom Nodes Manager → search Civitai Comfy Nodes → Install, then restart.
- CLI:
comfy node registry-install civitai-comfy-nodes - Source:
cd ComfyUI/custom_nodes && git clone https://github.com/civitai/civitai-comfy-nodes.git && pip install -r civitai-comfy-nodes/requirements.txt(justrequests).
You need a Civitai account with Buzz and credentials - a Civitai Auth node, CIVITAI_API_TOKEN (reliable for headless), or a stored key via the Civitai sidebar.
Where people get burned
- No credentials → "No Civitai credentials" error. Export
CIVITAI_API_TOKENand restart; headless installs can't use interactive OAuth. - Vague instructions give vague voices. "A nice voice" gets you a generic result. Write it like a casting call: age, gender, tone, accent, delivery.
- It's a metered cloud call. Each clip burns Buzz and your prompt/text leave your machine for Civitai's servers and their filters. Keep the content rules in mind.
- Early preview. The README warns behavior "may change without notice," and early community reports include slow jobs and bugs. Long generations can outlast the default 30-minute timeout - raise it via the Auth node or
CIVITAI_COMFY_TIMEOUT.
VoiceDesign is the mode people try first and get hooked on - it's the closest thing here to "prompt for a voice." Spend a few clips iterating on the description and you can land remarkably close to the voice in your head.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | The text to synthesize into speech. | |
| instruct | STRING | Natural-language description of the desired voice (e.g., "a calm middle-aged male narrator with a slight British accent"). | |
| languageopt | STRING | Target language (e.g., "English", "Chinese"). Defaults to "Auto". | |
| max_new_tokensopt | INT | 00–2147483647 | Optional generation cap for max tokens. |
| api_configopt | CIVITAI_CONFIG | Optional Civitai Auth connection; defaults to CIVITAI_API_TOKEN or stored OAuth login. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| audio_blob | AUDIO | — |
| model_type | STRING | — |
| speaker | STRING | — |
| workflow_id | STRING | — |
| raw_json | STRING | — |