Kling Voice Clone
A reusable voice_id from one audio sample
- auth
- audio
- voice_id
Most of the Kling nodes in this pack feel like one big async wait. Voice Clone is the exception, and it's the one you should reach for when you want your AI video to actually speak in a specific voice instead of a generic one. You feed it a short audio sample, it registers a clone with Kling, and it hands you back a voice_id - a reusable string you then plug into the TTS nodes (Kling Text to Speech / TTS Advanced) so every line comes out in that voice. One sample, one ID, reused forever.
Voice cloning is the thing the open-source world only recently caught up to - for years it was the "bolt-on layer" where the API won outright because local models were too big or too weak, and the KB's read is that the API still holds the edge for production reliability even now. This node is squarely in that camp: no model to download, no GPU to babysit, just a closed Kling API call.
The inputs
Only auth is required - then you supply the voice sample one of two ways:
- audio - an AUDIO tensor from any audio node (a loaded file, a TTS output, whatever). The pack encodes it, and it's smart about length: samples shorter than ~2 seconds get auto-looped up to the minimum, and anything over ~5 minutes gets clipped to the cap, with console warnings either way.
- audio_url - a hosted URL to an audio file, if you have a link instead of a local clip.
You need at least one of them. Give neither, and you get an immediate error telling you exactly that - the node refuses to guess.
The output
One output: voice_id, a string like the defaults you'll see sprinkled through the pack (girlfriend_4_speech02 and friends are Kling's built-in presets - a clone's ID will look different). Save it in a text node or a Primitive, wire it into the TTS node's voice_id input, and you're set. Since this is a quick registration call rather than a video render, there's no long poll - it returns almost immediately.
Installing
ComfyUI Manager, search "API Toolkit", install, restart:
cd ComfyUI/custom_nodes
git clone https://github.com/IxMxAMAR/ComfyUI-API-Toolkit
cd ComfyUI-API-Toolkit
pip install -r requirements.txt # requests + PyJWT for Kling
Then wire auth in from Kling AI Authentication.
The honest caveats
Two. First, the sample you upload goes to Kling's servers - your reference audio leaves the machine, and voice cloning is exactly the axis where that privacy math matters most. Clone voices you have the right to use; nonconsensual cloning of real people is the failure mode this whole category is judged on, and Kling enforces its own consent/verification rules on top. Second, if the clone fails, the console shows the Kling error and the node raises it - usually a moderation or sample-quality issue rather than a network hiccup, so a clean, isolated voice recording (no background music, one speaker) is the difference between a working ID and a re-upload.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| auth | KLING_AUTH | — | |
| audioopt | AUDIO | — | |
| audio_urlopt | STRING | URL of an audio sample to clone the voice from. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| voice_id | STRING | — |