ComfyUI Node

Kling VIDEO 3.0 Omni 4K

Reference-video editing at cinema resolution, no GPU required

By Runware·Created 2 years ago·Updated about a month ago· 140
Kling VIDEO 3.0 Omni 4K
  • frameImages
  • referenceVideos
  • video
video
positivePrompt
size4K (16:9)
duration5
numberResults1
providerSettings.klingai.keepOriginalSoundfalse
safetyfalse
safety.checkContentfalse
safety.modefast
providerSettings.klingai.soundfalse
ttlfalse
ttl_value60
outputFormatMP4
outputQuality95
advanced_json

Kling's Omni line is the one that doesn't just generate a clip from a prompt - it takes a video you already have and re-shoots it. Give it a source clip and a sentence about what should change, and you get the same subject, same motion, often the same sound, rewritten to your prompt. This node is the 4K tier of that, wrapped for ComfyUI, and the whole thing runs on Runware's servers. Your GPU never gets involved, which is the entire point.

Kling is Kuaishou's model and it is closed - no weights to download, no local runs. In the local-generation world these hosted models are the "I need a result now and my 8GB card isn't doing 4K video" tier. The community gripes about that trade constantly, but for paid video editing there's no beating the convenience: no checkpoint, no VAE, no VRAM math, just a prompt and a queue button.

What it actually does

Under the hood this is one thin node in the Runware/ComfyUI-Runware pack. The widget values get folded into a request - model AIR klingai:kling-video@o3-4k, task type videoInference - which the runware-sdk sends over REST to Runware's API. When the render comes back the node downloads the MP4 into ComfyUI's output folder and wraps it as a native VIDEO object. It even prints the cost on the run, which is a habit worth keeping an eye on because this stuff is metered per generation.

The inputs that matter

Most of the widgets are optional, which is a hint that this model is meant to be driven by its inputs rather than a wall of settings:

  • video - the source clip, as a URL or a Runware UUID. This is the heart of the node: output dimensions and duration follow whatever you feed in.
  • positivePrompt - describe what should change or what to add.
  • frameImages / referenceVideos - extra conditioning; wire images in as IMAGE tensors from any loader.
  • size - 4K (16:9), (9:16), or (1:1), or 4k (from input) to inherit the source. Only one of resolution or dimensions gets sent, so picking a size overrides the source's.
  • duration + duration_value - gated on by default, because this model has usage rules about it (Kling ties allowed duration to other settings). Enable it only if you actually need to force 3–15 seconds.
  • sound and keepOriginalSound - native audio generation, or preserve the reference video's original track.

The output is a single video socket (type VIDEO) - wire it into Preview Video or Save Video and you're done. On a very old ComfyUI build that socket degrades to a file path string instead, which is the same failure as any other modern pack: just update ComfyUI.

Installing it

Same as every node in the Runware pack - install the pack once and every model appears:

cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt

Then restart, and set your API key via ComfyUI Settings → Runware API key, the RUNWARE_API_KEY env var, or runware auth login. No model files download - the only dependency is the SDK, pillow, and soundfile.

Where people get burned

The video field is a URL or UUID, not a local file path - pasting C:\clips\my_clip.mp4 does nothing useful. The other classic is the "No Runware API key" error, which just means the Settings field didn't stick. And remember: every queue is a charge. If the run info shows a price you didn't expect, check numberResults - variations are cheap-looking until you ask for four at 4K.

CategoryRunware/Video/klingai

Inputs (17)

NameTypeDefaultDescription
frameImagesoptIMAGE
referenceVideosoptRUNWARE_REFERENCEVIDEOS
videooptSTRINGVideo input (UUID or URL). Source video for prompt-based editing. Dimensions and duration match the input video.
positivePromptoptSTRINGText prompt describing elements to include in the generated output.
sizeoptCOMBO4K (16:9)Output size. Only one of resolution or dimensions is sent.
durationoptINT53–15Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps).
numberResultsoptINT11–4Number of results to generate. Each result uses a different seed, producing variations of the same parameters.
providerSettings.klingai.keepOriginalSoundoptBOOLEANfalseMaintain the original sound from the reference video.
safetyoptBOOLEANfalseEnable to set safety. Off uses the model's default.
safety.checkContentoptBOOLEANfalseEnable or disable content safety checking.
safety.modeoptCOMBOfastSafety checking mode for video generation.
providerSettings.klingai.soundoptBOOLEANfalseEnable native audio generation.
ttloptBOOLEANfalseEnable to set ttl. Off uses the model's default.
ttl_valueoptINT60Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`.
outputFormatoptCOMBOMP4File format for the generated video.
outputQualityoptINT9520–99Compression quality of the output. Higher values preserve quality but increase file size.
advanced_jsonoptSTRINGOptional JSON merged into the request. For: inputs.elements, providerSettings.klingai.multiPrompt

Outputs (1)

NameTypeDescription
videoVIDEO