Kling Text to Speech
A voice for your silent clip without running a TTS model
- auth
- audio
- audio_file
- url
- task_id
You've generated a video and it needs a voice - narration, dialogue, a character speaking on screen. KlingDirect_TTS is the pack's quick text-to-speech node: type text, get an AUDIO tensor back, feed it straight into Kling Lip Sync to make a mouth move, or attach it to the clip yourself. No local TTS model, no VRAM, no tokenizer wrestling - Kling's hosted voices do the talking, and the node drops the result into your graph like any other audio source.
The honest positioning: local TTS has closed most of the gap - Kokoro and Chatterbox run on modest hardware and sound genuinely good - so a cloud TTS node is worth it when you're already in a Kling workflow, need Kling's own voice set for lip-sync, or want a reliable multilingual voice without babysitting an install. If your only job is narration and you're not otherwise paying for Kling, a local model might be the cheaper hobby. This node is the fit when Kling is already your pipeline.
What you set
- text - the words. Multiline, so paragraphs are fine.
- voice_id - which Kling voice to use. The default
girlfriend_4_speech02is a placeholder you'll almost never keep; use the pack's Voice Selector node for a human-readable dropdown, or paste avoice_idreturned by Voice Clone to speak in a cloned voice. - voice_speed - 0.5 (slow) to 2.0 (fast), default 1.0.
- voice_language -
enorzh(a v2.1 addition, giving this node parity withTTS Advanced). Pick the language of the text, not your locale.
Outputs
- audio (
AUDIO) - the speech as a ComfyUI audio tensor. This is the output you wire into lip-sync or an audio mixer. - audio_file - the downloaded mp3 path on disk.
- url - the hosted audio URL. Handy for feeding URL-only nodes like
Lip Sync (URLs). - task_id - for chaining into
Task Status.
The audio output is the load-bearing one; the whole point is that you can wire a real voice into the rest of your graph.
Install and what it needs
Part of ComfyUI-Kling-Direct: ComfyUI Manager → search "Kling Direct" → install, or git clone https://github.com/IxMxAMAR/ComfyUI-Kling-Direct into ComfyUI/custom_nodes, then restart. No model downloads - the pack's deps are ComfyUI's built-ins. You need a Kling access key + secret key from https://app.klingai.com/global/dev (KYC required), in the Kling AI Authentication node or as KLING_ACCESS_KEY / KLING_SECRET_KEY env vars, with the right region selected.
Where people get burned
- The placeholder voice. Everyone ships the default
girlfriend_4_speech02once, hears it, and wonders where the good voices are. Open the Voice Catalog node to dump the full preset list as JSON, or use Voice Selector - the preset voices are dramatically better than the default. - Language mismatch.
entext into azhsetting (or vice versa) gives you accented or garbled speech. Matchvoice_languageto the text. - It's a paid voice. Each TTS call is metered against your credits, and it's an async job - you'll wait a few seconds for the render. For long scripts, chunk the text or the call gets expensive fast.
Pair it with Kling Lip Sync in text2video mode and you get the whole package: text in, talking character out, one pipeline.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| auth | KLING_AUTH | — | |
| text | STRING | Text to convert to speech. | |
| voice_id | STRING | girlfriend_4_speech02 | Voice ID (use Voice Selector node or a cloned voice_id). |
| voice_speed | FLOAT | 1.00.5–2 | Speech speed multiplier (0.5 = slow, 2.0 = fast). |
| voice_language | COMBO | en | Voice language: en or zh. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| audio_file | STRING | — |
| url | STRING | — |
| task_id | STRING | — |