Kling TTS Advanced
Kling TTS with the training wheels off — and the honest truth about 'advanced'
- auth
- audio
- audio_file
- url
- task_id
KlingDirect_TTSAdvanced is the "more knobs" version of the pack's basic TTS node, and here's the thing the pack's own changelog admits: as of v2.1, the two nodes are basically the same. The basic Kling TTS node gained voice_speed and voice_language in that release, so the gap between "basic" and "advanced" shrank to almost nothing. The real difference is that this node treats voice_language as a free-form STRING instead of a two-option dropdown.
Same mechanism as the basic node: text in, hosted Kling voice out. It submits to /v1/audio/tts, polls until the speech renders, downloads the mp3, and hands you back an AUDIO tensor plus the file path, hosted URL, and task_id. No local model, no VRAM - a cloud call metered against your Kling credits.
The inputs
- text - multiline, the words to speak.
- voice_id - the Kling voice. Default
girlfriend_4_speech02; use Voice Selector for the dropdown of presets or a clonedvoice_idfrom Voice Clone for a voice that's actually yours. - voice_speed - 0.5–2.0 multiplier.
- voice_language - a
STRINGcode (en,zh, etc.) rather than the basic node's constraineden/zhpicker.
That last difference is the honest reason to pick this node: if you're experimenting with a language Kling supports but the basic node doesn't list, or you want the language driven by a text input from elsewhere in the graph, the free-form string gives you that flexibility. If you only ever speak English or Chinese, save yourself the confusion and use the basic node - they're otherwise identical.
Outputs
audio (AUDIO - wire this into lip-sync or your audio graph), audio_file (downloaded mp3 path), url (hosted audio URL, useful for URL-only consumers like Lip Sync (URLs)), and task_id for status chaining.
Install and requirements
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 files to download; you need Kling access key + secret key from https://app.klingai.com/global/dev (KYC required), wired through the Kling AI Authentication node (or KLING_ACCESS_KEY / KLING_SECRET_KEY env vars) with the right region selected.
Where people get burned
- Expecting it to be meaningfully different. It's not, post-v2.1. Don't reach for "advanced" expecting extra features - the pack consolidated them into the basic node. Pick by whether you need the free-form language string.
- The placeholder voice. Same trap as the basic node:
girlfriend_4_speech02is a starter voice, not a good one. Open Voice Catalog or Voice Selector before you judge Kling TTS on the default. - Credits. It's a metered, async call. A long script is many calls if you chunk it, so plan text length.
One genuinely nice pairing that uses the free-form language: drive voice_language from a text input selected upstream (say, a workflow that reads the script's language), so the same graph speaks whatever language the job calls for without you touching widgets.
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 or Voice Clone). |
| voice_speed | FLOAT | 1.00.5–2 | Speech speed multiplier (0.5 = slow, 2.0 = fast). |
| voice_language | STRING | en | Voice language code (en, zh, etc.). |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| audio | AUDIO | — |
| audio_file | STRING | — |
| url | STRING | — |
| task_id | STRING | — |