Kling Text to Speech
Kling text-to-speech, the simple version that gets out of your way
- auth
- audio
- audio_file
- url
- task_id
The no-frills version of Kling's text-to-speech. Type some text, pick a voice, get back an audio clip. No speed dials, no language settings, no timing knobs - three inputs, and two of them are obvious. It's the node you reach for when you want a voice line for a video and you don't need to micromanage it. If you need the controls, the pack has a TTS Advanced node that adds voice speed and language; this one is the "just speak it" button.
The mechanism is a one-shot cloud TTS call: auth + text + voice_id go to Kling, the task is submitted and polled, and the speech comes back as audio. The voice_id defaults to female_1, but the tooltip points at the pack's Voice Selector node for browsing presets, and you can drop in a voice_id from a cloned voice if you've created one (the pack's Voice Clone lives outside this node, but the IDs are interchangeable). Outputs are the audio quartet: audio (a real ComfyUI AUDIO you can wire into a preview node or a lip-sync node), audio_file, url, and task_id.
The two inputs you'll actually set: text and voice_id. That's the whole UX, and it's fine.
Installing it
Ships in ComfyUI-API-Toolkit. Manager: search "API Toolkit". Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/IxMxAMAR/ComfyUI-API-Toolkit
pip install -r requirements.txt
Restart ComfyUI. Because this returns AUDIO, the sound libraries matter: soundfile (and scipy) from the requirements file are what the pack uses to decode audio, with a torchaudio fallback. Install the full requirements, not just the Kling-core requests/PyJWT pair.
Gotchas
Kling's TTS voices lean Chinese-market first, so English voice quality varies by voice_id - the default female_1 is a safe starting point, and the Voice Selector node is worth five minutes of browsing because a voice that's perfect for Mandarin may sound flat in English. Watch the credit meter too: every queue is a billed TTS generation, so re-queueing to tweak a word costs the same as the first attempt. And if you're feeding the result into Lip Sync, remember the pack's Cloud Uploader note - audio that's headed into Kling again sometimes benefits from the downsampled 16kHz mono path (that's what preserve_audio_quality: False is for), so keep both this node and that knob in mind for end-to-end voice work.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| auth | KLING_AUTH | — | |
| text | STRING | Text to convert to speech. | |
| voice_id | STRING | female_1 | Voice ID (use Voice Selector node or a cloned voice_id). |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| audio_file | STRING | — |
| url | STRING | — |
| task_id | STRING | — |