Kling Video Omni
References in, video out, all in one prompt
- auth
- image_1
- image_2
- video
- video_file
- audio
- url
- task_id
Text-to-video treats your words as the only input. KlingDirect_VideoOmni is the node for when the scene depends on what's in a picture or a clip: give it up to two reference images and a reference video, then write a prompt that weaves them together. It's Kling's Omni model - the "understand and reuse these references" line of the API - and it's how you get "this character, in this room, doing this" without training anything.
The reference syntax is the thing to learn: in the prompt, you refer to your attached inputs by name. @image1, @image2, and @video1 are the handles - "the person from @image1 walks into the scene from @video1." The images arrive through the image_1 / image_2 IMAGE sockets, the video through video_url (a hosted URL, not a tensor - local clips need hosting first, via the pack's Cloud Uploader if needed). This is the same @-reference grammar the pack advertises across its nodes, and here it's load-bearing.
What you set
- prompt - the scene description, using
@image1,@image2,@video1to pull in your references. - model_name -
kling-video-o1(default) orkling-v3-omni. o1 is the reference-heavy omni model; v3-omni is the v3 line with omni inputs. - duration - 5, 10, or 15 seconds.
- aspect_ratio - one of the standard seven; default
16:9. - mode -
proorstd.
The optional inputs are image_1, image_2, and video_url. You don't have to use all of them - a single reference image is a valid and common setup - but the prompt should only reference what you actually connected, or Kling will ask for input you didn't provide.
Outputs
The standard five: video (frames as IMAGE), video_file, audio, url, task_id. For reference-driven work, video and task_id are the ones you'll chain downstream.
Install and what it needs
Part of ComfyUI-Kling-Direct: ComfyUI Manager → search "Kling Direct" → install, or git clone https://github.com/IxMxAMAR/ComfyUI-Kling-Direct into ComfyUI/custom_nodes, then restart. No model downloads; needs Kling keys from https://app.klingai.com/global/dev (KYC required) via the Kling AI Authentication node or env vars, correct region selected. Same shared setup as every node in the pack.
Where people get burned
- References in the prompt but not the sockets. The
@handles only resolve if the corresponding input is connected. Referencing@video1with an emptyvideo_urlis a server-side failure. - References in sockets but not the prompt. Connected but unnamed inputs aren't used. The prompt is the contract - say what each reference is for.
- Hosted-only video references.
video_urlcan't take a local path. Host the clip first (the pack'sCloud Uploaderis built for exactly this) or useimage_1/image_2instead. - Cost. Omni is a full video generation job, metered and multi-input - among the pricier calls in the pack. Draft with
stdand one reference, expand when the composition holds.
If your reference set is just a single starting frame with no second image or video, the plain Image to Video node in the pack is simpler and cheaper - Omni earns its complexity when the prompt genuinely juggles multiple references.
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 | — |