Kling Image Omni
Kling's do-anything image editor, refactored as a single node
- auth
- image_1
- image
- url
- task_id
Kling's "omni" image mode is the model's all-in-one editing mode: change the background, swap the outfit, add an object, change the lighting - one prompt, one reference image, no masks, no inpainting plumbing. This node is the front door to that. You feed it an image and describe the edit in plain language, and it regenerates the whole picture with your change applied. It's the node you reach for when a targeted inpaint would be overkill and you just want Kling to do the thing.
The trick that makes it powerful: the prompt uses @image1 references. You can say "put @image1 in a rainy Tokyo street at night" and the model knows exactly which input image you mean. There's one required image input (image_1) and the output is a full-frame re-render, not a masked patch. Mechanically it's the same submit-and-poll cloud task as the rest of the pack - auth in, task created, polled to completion, image back as a tensor.
Inputs that matter:
prompt- describe the edit, referencing@image1for the source. This is where 90% of the quality lives. Be specific about what stays and what changes.aspect_ratioandresolution- output framing (1k/2k). The default1:1/1kis a fine starting point.
Outputs are the standard trio: image, url, task_id.
Installing it
Ships 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. Needs the Kling AI Authentication node wired in and a funded account.
Gotchas
Because it's a full re-render, omni is a reimagination, not a surgical edit. Faces and fine text tend to drift more than they would with a proper masked inpaint - the KB's upscaling-and-refinement material is the classic remedy: generate with omni, then run the result through a local detail pass if you're picky. It's also one of the pricier modes per call on Kling's credit system, so use it where a mask-based edit genuinely can't do the job. And keep the @image1 syntax in mind for the pack's other nodes - Kling's Text to Video prompt supports @image1/@video1 references the same way, so once you've learned it here it carries over. If you hit a content-policy rejection (Kling error 1302), that's the hosted filter doing its job at the source - there's no local bypass, which is the permanent tradeoff of any closed model.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| auth | KLING_AUTH | — | |
| prompt | STRING | Text prompt for omni image generation. Use @image1 to reference input. | |
| image_1 | IMAGE | — | |
| aspect_ratio | COMBO | 1:1 | Output aspect ratio. |
| resolution | COMBO | 1k | Output resolution. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| url | STRING | — |
| task_id | STRING | — |