Qwen3 TTS Text To Speech
Give your videos a voice without a TTS stack
- api_config
- audio
- request_id
- urls
The video generation nodes in BizyAir get all the attention, but a silent video is only half a deliverable. This node is the audio half: Qwen3 TTS turns your text into spoken audio with a pickable timbre, emotion hints, and speed control - the qwen3tts-custom-voice/text-to-audio endpoint served from SiliconFlow's cloud. If your pipeline is "generate a video clip, add a narration, done," this is the node that lets you keep the whole thing inside one ComfyUI graph instead of juggling a separate TTS app.
How it works
Same cloud machinery as the rest of the pack: the text uploads to api.bizyair.ai, the TTS model generates audio remotely, and the result comes back as a native ComfyUI AUDIO output you can feed straight into audio/video combine or save nodes. No local model, no voice-cloning files, no GPU cost. You're paying per job on your BizyAir credits, and your text is processed on SiliconFlow's servers.
Inputs that matter
- input - the text to speak. This is your script; multiline, so paste the whole narration.
- voice - the timbre dropdown. Defaults to
vivian, which is a decent neutral starting point, but the whole point of "custom voice" is that there are others to try - audition a couple before committing a script. - instructions - this is the underrated field: it's the emotion/intonation control. "Calm and measured," "excited product-launch energy," "whisper" - the model actually follows it.
- response_format - defaults to
wav. Fine for most workflows. - language - defaults to
Auto, letting the model detect it from the text; set it explicitly if it keeps guessing wrong. - max_tokens - output length cap, default
1024, up to 4096. Long scripts need it raised. - speed - speaking rate, default
1.0, range 0.5–2.0. 0.9 reads as a touch more natural for narration than 1.0; your ears will tell you. - api_config / skip_error - the pack standard pair: per-request key/base override and placeholder-on-error.
Outputs: audio (an AUDIO tensor - wire it into an audio save node or a video's audio track), plus request_id and urls for support and direct file download.
Install and get going
Install via ComfyUI Manager (search "BizyAirPlus") or:
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/siliconflow/BizyAirPlus.git
cd BizyAirPlus
python -m pip install -r requirements.txt
Restart, register at bizyair.ai, set the key in Settings > BizyAirPlus > API Key (or BIZYAIR_API_KEY), and click the BizyAirPlus action-bar toggle to ON. Every BizyTRD node is gated on that switch.
Gotchas
Setup is the usual trio - missing key, toggle off, deps in the wrong Python (python -m pip show bizyair-cloudberry). The TTS-specific traps: first, if your audio comes back cut off, raise max_tokens - the default of 1024 is roughly "a paragraph or two," not a whole script. Second, speed interacts badly with long instructions-heavy text if you push both extremes; keep the instruction short and the speed in the 0.8–1.2 band for reliable results. And since this is billed, preview with a short line before committing the full script.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| input | STRING | Text input | |
| voice | COMBO | vivian | Timbre |
| instructionsopt | STRING | Intonation emotion | |
| response_formatopt | COMBO | wav | Return format |
| languageopt | COMBO | Auto | Language |
| max_tokensopt | INT | 10240–4096 | Maximum length of output |
| speedopt | FLOAT | 1.00.5–2 | Talk Fast |
| api_configopt | BIZYAIR_OPENAPI_CONFIG | 单次请求覆盖base_url和api_key | |
| skip_erroropt | BOOLEAN | false | 开启后遇到错误不中断工作流,输出对应类型的错误占位符 |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| request_id | STRING | — |
| urls | STRING | — |