Comfyui-Kling-Wrapper Multi Modal Video Edit
Kling's video editor you can pipe into any workflow
- reference_video_input
- reference_video_frames
- reference_video_info
- image_list
- url
- video_id
Kling's video models are closed source and API-only, which is exactly why a wrapper like this one exists: you get the newest Kling thing from inside your ComfyUI graph instead of having to switch to a web portal. The Multi Modal Video Edit node is the pack's take on Kling 3.0 Omni's video-editing endpoint. You hand it a source video plus a text instruction - "make it snow," "turn this into a night scene" - and it returns a re-rendered clip with the edit baked in.
The name is a little grand for what's actually a single-node operation, but don't let that put you off. If you've already got a clip from another Kling node in this pack, this is the easiest way to iterate on it without leaving ComfyUI.
What it does
The model is locked to kling-v3-omni - that's the entire reason for the "multi modal" label. Omni handles video plus audio plus language in one call, and this node exposes it as a straightforward edit pipeline. You give it a reference video, a prompt, and it produces a new url and video_id for the edited result.
The reference video can come in three ways, matching the pack's general pattern:
reference_video_input- aVIDEOconnection from another nodereference_video_frames+reference_video_info- decoded frames plus timing metadata, e.g. fromVHS_LoadVideoreference_video- a plain http(s) URL string
The node will reject a run that has no reference video at all, so pick one of the three. You can also feed an image_list if you want the edit guided by stills.
The settings that matter
Most of the dropdowns are self-explanatory (duration from 3 to 15 seconds, aspect_ratio, mode in std/pro). Two are worth a closer look:
edit_mode-baseorfeature. The author's default isbase, and it's the safer one for a first pass.featuretends to lean harder into whatever the prompt asks for, which means it can also drift further from the source clip.keep_original_sound- defaults tofalse, so your edited clip comes out silent unless you flip it. If the source had audio you want to preserve, turn this on.
negative_prompt works like you'd expect, and extra_payload_json is a JSON escape hatch for request fields the node doesn't expose as widgets. You probably won't touch it.
Outputs and wiring
You get url (a public download URL for the edited video) and video_id (Kling's task reference, useful for billing or re-querying). Standard move: feed url into this pack's Preview Video node to save it into your output folder, or chain video_id into the Video Extender node to keep building on the edit.
Install and gotchas
Install the pack via ComfyUI Manager (search "Comfyui-Kling-Wrapper") or clone it into custom_nodes, then pip install -r requirements.txt and restart. There are no model files to download - every generation is an API call, so you need a Kling API key in config.local.json and credits to spend.
Two provider notes from the README: this node hard-fails on the Vapeur provider because it needs kling-v3-omni, which Vapeur doesn't expose. And Omni is the model that combines voice and element lists, but reference_video requests get guarded - native audio and mode=4k are rejected when a reference video is attached. If you need both an edit and speech, run the edit first, then add audio with Lip Sync or one of the audio nodes.
This is the node you reach for when your last Kling clip was 90% right and you'd rather re-edit than re-generate. It costs a generation either way - that's the API life - but it's a whole lot cheaper than re-prompting from scratch.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| model | COMBO | kling-v3-omni | 1 options: kling-v3-omni |
| prompt | STRING | — | |
| reference_videoopt | STRING | — | |
| reference_video_inputopt | VIDEO | — | |
| reference_video_framesopt | IMAGE | — | |
| reference_video_infoopt | VHS_VIDEOINFO | — | |
| image_listopt | IMAGE | — | |
| negative_promptopt | STRING | — | |
| edit_modeopt | COMBO | base | 2 options: base, feature |
| keep_original_soundopt | BOOLEAN | false | — |
| modeopt | COMBO | 2 options: std, pro | |
| durationopt | COMBO | 3 | 13 options: 3, 4, 5, 6, 7, 8, +7 |
| aspect_ratioopt | COMBO | 3 options: 16:9, 9:16, 1:1 | |
| extra_payload_jsonopt | STRING | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| url | STRING | — |
| video_id | STRING | — |