Qwen3 TTS 语音合成(2 合 1)
A two-mode text-to-speech node that also takes delivery directions
- api_config
- audio
- audio_url
- audio_path
- task_id
- response
Qwen3 TTS is Alibaba's text-to-speech line, and this node wraps its two modes: Flash (reads your text straight) and Instruct Flash (reads it and follows natural-language delivery instructions - "speak slowly and a little sad"). The Instruct mode is the reason this node is worth a look over a generic TTS call: you describe how to say it, not just what to say. Feed it the result_text from a prompt enhancer or narration script and you can have a voiced character line in a few calls.
As with the whole T8mars/ComfyUI_Seedance pack, it's an API wrapper - key from api.seedance.nz, requests only, nothing synthesized locally.
How it works
Standard async audio flow: submit the text with the chosen voice and language, poll, download, decode to ComfyUI AUDIO. The interesting part is the instructions field - for Instruct Flash, you can write a delivery direction in Chinese or English, and the optional optimize_instructions toggle refines non-empty instructions upstream before synthesis, which typically means less literal reading and more actual performance.
The inputs that matter
- model - Flash, or Instruct Flash.
- prompt - the text to synthesize.
- voice - a Qwen3 system voice ID or a custom voice ID you've set up.
- language_type - pick the language matching your text; don't make the model guess.
- instructions - Instruct Flash only: the delivery style. Ignored by plain Flash.
- optimize_instructions - Instruct Flash only: have the model polish your instruction first.
Outputs: audio (AUDIO), audio_url, audio_path, task_id, response.
Installing it
ComfyUI Manager → search "ComfyUI Seedance", or:
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/ComfyUI_Seedance.git
cd ../..
python -m pip install -r custom_nodes/ComfyUI_Seedance/requirements.txt
Restart, key from api.seedance.nz/console, Seedance API Config into api_config.
Common issues
- Instructions do nothing - you're on plain Flash; delivery directions are an Instruct Flash feature. Switch models.
- Wrong accent/pronunciation -
language_typemismatching the text is the usual cause; set it to match the prompt. - Long text feels slow - TTS jobs queue like everything else here; a long paragraph genuinely takes a while, and the node's poll timeout is generous for a reason.
- Voice quality varies by ID - system voices differ in warmth and stability; if one sounds robotic, try another before blaming your text. For a consistent character, the pack's MiniMax audio node gives you proper voice cloning.
Where this shines is batch narration: generate script lines, send each through, and keep the audio outputs lined up for a video's audio track. Keep prompts short and language-tagged and you'll get a surprising amount of mileage out of a very simple node.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | qwen3-tts-flash | Flash reads text directly; Instruct Flash also accepts delivery instructions. | Flash 直接朗读,Instruct Flash 可接受表达指令。 |
| prompt | STRING | Text to synthesize. | 需要合成的文本。 | |
| voice | STRING | Cherry | Qwen3 TTS system or custom voice ID. | Qwen3 TTS 系统音色或自定义音色 ID。 |
| language_type | COMBO | Chinese | Language matching the input text. | 与输入文本匹配的语言。 |
| instructions | STRING | Instruct Flash only: natural-language speaking style, in Chinese or English. | 仅 Instruct Flash:中文或英文表达风格指令。 | |
| optimize_instructions | BOOLEAN | true | Instruct Flash only: refine non-empty instructions upstream. | 仅 Instruct Flash:优化非空表达指令。 |
| api_configopt | SEEDANCE_CONFIG | Connect Seedance API Config; otherwise SEEDANCE_API_KEY is used. | |
| skip_erroropt | BOOLEAN | false | On failure return one second of silence instead of stopping the workflow. | 失败时输出 1 秒静音。 |
| seedopt | INT | 00–18446744073709550000 | ComfyUI cache seed. Fixed reuses the cached result while all other inputs stay unchanged; randomize/increment/decrement starts a new execution. This value is not sent to models without documented seed support. | ComfyUI 缓存种子;Fixed 在其他输入不变时复用缓存,随机、递增或递减会触发新任务。未声明支持 seed 的模型不会收到此参数。 |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| audio_url | STRING | — |
| audio_path | STRING | — |
| task_id | STRING | — |
| response | STRING | — |