Kling Video Omni
The catch-all video node (text + images + reference clip)
- auth
- image_1
- image_2
- video
- video_file
- audio
- url
- task_id
This is the flagship of the Kling half of the pack, and it's the node you'll actually want to reach for first. Kling Video Omni is the unified-input generation node: you give it a text prompt and optionally one or two images, a reference video, or any mix - and it produces a finished video. Where the pack's other video nodes are one-trick ponies (text-to-video, image-to-video), Omni lets you build a multi-input generation in a single node. It's the API equivalent of a "multi-modal prompt" node, and the syntax for pointing at your inputs is the one thing you need to get right.
How it works
You write a normal prompt, and inside it you reference your extra inputs with @image1, @image2, or @video1. For example:
A cinematic shot of the character from @image1 running through a neon alley, rain on the ground
The node rewrites those references into Kling's <<<image_1>>> placeholder tokens before the request goes out, then submits the job and polls it - Kling video is fully async, so expect a wait measured in minutes, not seconds. Two models are on offer: kling-video-o1 (the default, the reasoning-style flagship) and kling-v3-omni. If you have no strong opinion, keep the default and experiment later.
The inputs that matter
- prompt - the text, with
@image1/@image2/@video1sprinkled in to reference the optional inputs. Without a reference, this node is just a text-to-video generator. - duration - 5, 10, or 15 seconds. Longer costs more and waits longer; 5 is the sane default for testing.
- aspect_ratio - 16:9, 9:16, 1:1, and four more. Pick your canvas up front; you can't crop your way out of a bad ratio later.
- mode -
proorstd. Pro is the quality tier and the one you'll mostly use; std is the cheaper/faster tier for drafts. - model_name - the omni model version (
kling-video-o1default).
The optional inputs are image_1 and image_2 (IMAGE tensors - from a Load Image, the Kling Video Loader, or anything else that produces frames) and video_url, which is where the trap lives.
The reference-video trap
video_url expects a hosted URL, not a local file. You can't drag a clip in - if your reference video is sitting in your input folder, you need to get it onto the internet first. This pack ships cloud uploader nodes (Kling AI Cloud Uploader) precisely for this: upload the clip, copy the returned URL, paste it into video_url. Locally-loaded frames go in via image_1/image_2 instead. Mixing those up is the number one source of "my reference video isn't doing anything" confusion.
Outputs and installing
It returns the standard Kling video bundle: video (frames as IMAGE), video_file (path to the downloaded .mp4), audio (the soundtrack), url (hosted link), and task_id (feed that into Kling Video Extend to continue the clip, or into upscale). Install via ComfyUI Manager (search "API Toolkit") or:
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
Wire the auth output from Kling AI Authentication into this node's auth input. Keep in mind this is a paid API call on a closed model - every queue run fires a fresh job, your inputs leave the machine, and Kling's content moderation applies with no local bypass. If a job fails, the console shows the Kling error (usually a moderation refusal, a balance issue, or a malformed reference URL).
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| auth | KLING_AUTH | — | |
| prompt | STRING | Text prompt. Use @image1, @video1 to reference optional inputs. | |
| model_name | COMBO | kling-video-o1 | Omni model version. |
| duration | COMBO | 5 | Video duration in seconds. |
| aspect_ratio | COMBO | 16:9 | Output video aspect ratio. |
| mode | COMBO | pro | Generation mode. |
| image_1opt | IMAGE | — | |
| image_2opt | IMAGE | — | |
| video_urlopt | STRING | URL of a reference video for omni generation. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| video | IMAGE | — |
| video_file | STRING | — |
| audio | AUDIO | — |
| url | STRING | — |
| task_id | STRING | — |