Kling Image Recognize
Ask Kling what's in your image, in one node
- auth
- image
- description
- task_id
Sometimes you need to know what an image actually is before you do anything with it - caption a generated frame for a dataset, confirm a render came out right, or get a description to feed back into another node. This is Kling's vision endpoint in a box: plug in an image and an auth, and it returns a text description of the content. No prompt engineering, no parameters to fiddle, no choices at all beyond the two required inputs.
Mechanically it's the simplest of the pack's API calls: the node base64-encodes your image, sends it to Kling's image-recognize endpoint, gets a task_id, and polls until the description is ready. Both outputs come back as strings - description (the text) and task_id (for tracking). The description lands in your workflow as a normal STRING, so it wires straight into a text display node, a prompt-prep stage, or an LLM node further down the graph.
The interesting thing about this node is what it isn't: it's not a local captioner competing with the open-source vision models you can already run. It's a cloud vision call, which means you're paying Kling credits for something a local model could probably do. Where it genuinely earns its keep is inside a fully-Kling workflow - caption a frame, then feed that description into Kling Image Generation for a style transfer, or use it to verify a generation before you spend a bigger credit on animating it. As a one-off captioner for your own assets, a free local model is the smarter default.
Installing it
Bundled 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. Requires the Kling AI Authentication node and a funded account.
Gotchas
The only real footgun is expecting this to be free - it's a billed API call like everything else in the Kling service, and the description is a one-shot generation, so there's no "try again with a better prompt" knob. If you don't like the caption, re-queue or edit the output manually. Also keep the privacy frame in view: your image leaves the machine and is processed on Kling's servers, subject to their moderation. If the API rejects the image (error 1101, invalid image) or trips the content filter (1302), the node prints the readable hint - those two cover most failures you'll actually see here.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| auth | KLING_AUTH | — | |
| image | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| description | STRING | — |
| task_id | STRING | — |