Kling AI Element
The boring-but-important node that points Kling at your saved characters and styles
- KLING_ELEMENT
Kling's "elements" are how you get the same character or the same art style across generations without re-describing them every time. You create an element on Kling's side (in the web app or via their asset tools), get an ID for it, and this node is what turns that ID into something the API can consume. If you've ever wanted your generations to stop drifting - same face, same character design, same painterly style - this is the piece that wires your saved reference into the pipeline.
It's a tiny pure builder, and honestly the "selector" in the name oversells it. Two inputs, one output:
element_id- the element ID from Kling AI. You'll find this in the Kling console where your created elements live.type- what kind of element it is:character,face, orstyle. Get this wrong and Kling will apply a character where you meant a style, which is a weirdly common way to waste a credit.
The single output is a KLING_ELEMENT object. Think of it as a typed struct - the node just wraps {element_id, type} so the rest of the pack can pass it around without you hand-typing JSON. It's the same design pattern as Kling Camera Control: a config node that builds a payload object, which another node consumes.
No API key, no network call, no auth node needed. It runs entirely locally on your machine, which makes it one of the few nodes in this pack that won't cost you a cent per queue.
Installing it
It's bundled in ComfyUI-API-Toolkit. Via 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 and it shows up under API Toolkit / Kling AI / Config.
Gotchas
The honest caveat: the element system is only as good as what you saved on Kling's servers. If the character element drifts or looks nothing like your reference, that's Kling's element model, not this node - the node is a faithful courier. Also note that element IDs are tied to your Kling account, so don't expect your character element to be portable across accounts or to survive your account losing API access (that's Kling error 1003, "authorization not active"). For the beginner, the real takeaway: this node exists so that when a generation node in this pack starts accepting element references, you've already got the payload ready instead of fumbling for the ID in the middle of a queue.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| element_id | STRING | The element ID from Kling AI. | |
| type | COMBO | character | Type of element: character, face, or style. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| KLING_ELEMENT | KLING_ELEMENT | — |