Nodes/ComfyUI-Kling-Direct/Kling Text to Speech
ComfyUI Node

Kling Text to Speech

A voice for your silent clip without running a TTS model

By IxMxAMAR·Created 5 months ago·Updated 2 months ago· 4
Kling Text to Speech
  • auth
  • audio
  • audio_file
  • url
  • task_id
text
voice_idgirlfriend_4_speech02
voice_speed1.0
voice_languageen

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_speech02 is a placeholder you'll almost never keep; use the pack's Voice Selector node for a human-readable dropdown, or paste a voice_id returned by Voice Clone to speak in a cloned voice.
  • voice_speed - 0.5 (slow) to 2.0 (fast), default 1.0.
  • voice_language - en or zh (a v2.1 addition, giving this node parity with TTS 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_speech02 once, 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. en text into a zh setting (or vice versa) gives you accented or garbled speech. Match voice_language to 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.

CategoryKling AI/Audio

Inputs (5)

NameTypeDefaultDescription
authKLING_AUTH
textSTRINGText to convert to speech.
voice_idSTRINGgirlfriend_4_speech02Voice ID (use Voice Selector node or a cloned voice_id).
voice_speedFLOAT1.00.5–2Speech speed multiplier (0.5 = slow, 2.0 = fast).
voice_languageCOMBOenVoice language: en or zh.

Outputs (4)

NameTypeDescription
audioAUDIO
audio_fileSTRING
urlSTRING
task_idSTRING