Kling VIDEO 3.0 Omni Pro
The middle tier that most reference-video edits deserve
- referenceImages
- frameImages
- referenceVideos
- video
If the Omni line is Kling's "reference-video re-shoot" model, Omni Pro is the version most people should actually queue. It renders at 1080p, which is where the sweet spot between quality and per-generation cost tends to land - 4K is for hero shots, 720p is for iterating, and Pro sits in the middle where the final result usually lives.
The model is Kling 3.0's "Omni" (o3) family, served through Runware's cloud, which means you get Kuaishou's closed video model without owning the hardware for it. That's the whole bargain of this pack: the node is thin, the model is someone else's, and your job is picking good inputs. There are no local weights to manage and nothing to download.
How it works
Like every node in ComfyUI-Runware, this one turns its widgets into a request dict - model AIR klingai:kling-video@o3-pro, videoInference task - sends it to Runware's API over REST via the runware-sdk, then downloads the returned MP4 and wraps it as a native VIDEO tensor-friendly object you can feed straight into Preview Video or Save Video. The node shows the cost and any NSFW flag from the content check after each run.
The point of "Omni" is that it accepts a reference video plus prompt and edits it, instead of only text-in. So the star input is video (a URL or UUID of your source clip - dimensions and duration inherit from it), and positivePrompt describes the change. frameImages, referenceImages, and referenceVideos add more conditioning, wired in as IMAGE tensors.
The settings you'll touch
size- 1080p (16:9), (1:1), or (9:16), or1080p (from input). Only one of resolution or dimensions is sent, so the dropdown wins over anything else.duration+duration_value- gated off by default because the model has usage rules about duration; flip it on only if you need to force 3–15 seconds.sound- native audio generation, andkeepOriginalSoundto carry the reference video's audio over.numberResults- 1–4 variations, each on a different seed. This is the fastest way to find a keeper, and the fastest way to burn your credit.
Everything else - the safety, ttl, outputFormat, and outputQuality groups - can stay at defaults. Output format defaults to MP4 with quality 95, which is right for almost everything.
Installing
The whole pack is one install, and you only do it once for all these nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Restart ComfyUI, then drop your key into ComfyUI Settings → Runware API key, or set RUNWARE_API_KEY. Nothing heavy installs - the requirements are the SDK, pillow, and soundfile.
The gotcha to remember
The video socket takes a URL or UUID, never a local path - upload the clip first or host it somewhere reachable. And since this is pay-per-render, don't discover numberResults by accident. Pro at 1080p is the "good enough that you stop tweaking" tier; treat the Omni Standard node below it as your scratchpad.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| referenceImagesopt | IMAGE | — | |
| frameImagesopt | IMAGE | — | |
| referenceVideosopt | RUNWARE_REFERENCEVIDEOS | — | |
| videoopt | STRING | Video input (UUID or URL). Source video for prompt-based editing. Dimensions and duration match the input video. | |
| positivePromptopt | STRING | Text prompt describing elements to include in the generated output. | |
| sizeopt | COMBO | 1080p (16:9) | Output size. Only one of resolution or dimensions is sent. |
| durationopt | INT | 53–15 | Length of the generated video in seconds. The total number of frames produced is determined by duration multiplied by the model's frame rate (fps). |
| numberResultsopt | INT | 11–4 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| providerSettings.klingai.keepOriginalSoundopt | BOOLEAN | false | Maintain the original sound from the reference video. |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. |
| safety.modeopt | COMBO | fast | Safety checking mode for video generation. |
| providerSettings.klingai.soundopt | BOOLEAN | false | Enable native audio generation. |
| ttlopt | BOOLEAN | false | Enable to set ttl. Off uses the model's default. |
| ttl_valueopt | INT | 60 | Time-to-live (TTL) in seconds for generated content. Only applies when `outputType` is `URL`. |
| outputFormatopt | COMBO | MP4 | File format for the generated video. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
| advanced_jsonopt | STRING | Optional JSON merged into the request. For: inputs.elements, providerSettings.klingai.multiPrompt |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |