Comfyui-Kling-Wrapper Image Generator
Kling's image models, parked right inside ComfyUI
- image
- image
Kling is a video company, but it ships image models too - and this node is the pack's door to them. It's essentially Kling's text-to-image and image-to-image API behind a single ComfyUI node, which is handy because the outputs drop straight into the rest of your graph. Generate a still with this node, feed it into Image2Video, and you never leave the wrapper.
Like every node in this pack, it's a pure API call. No local model, no VRAM. The "models" in the dropdown are Kling's hosted models, and each run burns API credits.
The two jobs
You can run it as text-to-image - prompt in, image out - or as image-to-image by also connecting the image input. When an input image is attached, image_reference decides how it's used:
subject- keep the subject consistent while the prompt does its thingface- anchor on a face, useful for portraits
Then image_fidelity (default 0.5) and human_fidelity (default 0.45) tune how tightly the output sticks to the reference. They're both 0–1 sliders; higher means closer to the source, and lower means the prompt gets more room. For a face reference, human_fidelity is the one you'll actually nudge.
The model dropdown runs kling-v1 through kling-v3. There's no reason not to start at kling-v3 unless you're chasing specific legacy behavior or want the cheaper older models for bulk work.
Settings that matter
image_num- how many images per run, 0–9. Default 1. This is a lazy input, so the node only fetches the count you actually connect.aspect_ratio- 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, 2:3, 21:9, orauto. If you're going to pipe this into Image2Video, match the ratio to your target video early; changing it later crops.resolution-1kor2k. 2k doubles the pixels and the cost.negative_prompt- works normally, keep it short.
Output is a single image (an IMAGE tensor), batched if you asked for more than one. From there it can go to a Preview/Save node, into Image2Video, or anywhere else in your graph.
Install and gotchas
Install via ComfyUI Manager (search "Comfyui-Kling-Wrapper") or clone the repo into custom_nodes, then pip install -r requirements.txt and restart. Add your Kling API key to config.local.json in the pack root (copy config.example.json). No model downloads - the only "heavy dependency" is having API credits.
The README notes the visible image model list is kept aligned with what the live API actually accepts, so the dropdown is shorter than Kling's full catalog - models like kling-image-o1 exist internally but are hidden until normal accounts can hit the endpoint. If you can't find a model you've heard about, that's why.
Where people get burned: assuming image_reference default does something. It defaults to None, so unless you pick subject or face, the input image is only used for the image-to-image base - it won't maintain identity by itself. If you want consistent characters, that's what the Advanced Element Create node and this pack's element lists are for. For a quick Kling still that feeds straight into the video pipeline, this node is the one.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | 6 options: kling-v1, kling-v1-5, kling-v2, kling-v2-new, kling-v2-1, kling-v3 | |
| prompt | STRING | — | |
| negative_promptopt | STRING | — | |
| imageopt | IMAGE | — | |
| image_referenceopt | COMBO | 3 options: None, subject, face | |
| image_fidelityopt | FLOAT | 0.50–1 | — |
| human_fidelityopt | FLOAT | 0.50–1 | — |
| image_numopt | INT | 10–9 | — |
| aspect_ratioopt | COMBO | 9 options: 16:9, 9:16, 1:1, 4:3, 3:4, 3:2, +3 | |
| resolutionopt | COMBO | 2 options: 1k, 2k |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |