ComfyUI Node

Kling VIDEO 3.0 Pro

The text-to-video workhorse, with a negative prompt and real controls

By Runware·Created 2 years ago·Updated about a month ago· 140
Kling VIDEO 3.0 Pro
  • referenceImages
  • frameImages
  • referenceVideos
  • video
positivePrompt
negativePrompt
size1080p (1:1)
duration5
numberResults1
providerSettings.klingai.characterOrientation(default)
providerSettings.klingai.keepOriginalSoundfalse
safetyfalse
safety.checkContentfalse
safety.modefast
providerSettings.klingai.soundfalse
ttlfalse
ttl_value60
outputFormatMP4
outputQuality95
advanced_json

If you've only got budget for one Kling node, this is probably it. Kling 3.0 Pro is the classic text-to-video and image-to-video workhorse - no reference-video rewriting, no omni gimmicks, just prompt in, video out, with the controls you actually recognize from local generation. It's the node that feels most like home to a ComfyUI user, except the render happens on Kuaishou's servers instead of your GPU.

The catch, and it's the same catch for everything in the Runware/ComfyUI-Runware pack: it's a closed API model. You pay per generation, and the node is honest about it - each run prints its cost. For one-off clips where waiting out a local render isn't an option, that's a fine trade.

How it works

The node is thin glue. Widgets become a request with model AIR klingai:kling-video@3-pro and task type videoInference, the runware-sdk sends it over REST, and when it's done the node downloads the MP4 and wraps it as a native VIDEO output you can drop into Preview Video or Save Video.

Where this one differs from the Omni line is the control surface:

  • negativePrompt - present here, and it works the way you'd expect. Worth noting the tooltip's honest caveat: it's ignored when guidance is disabled (CFG ≤ 1), so don't lean on it if you're running guidance-free.
  • width / height - plain pixel widgets, 1024 default, no size dropdown. Set these directly.
  • duration - a straight 3–15 second slider, not the gated toggle the Omni models use.
  • characterOrientation - a Kling-specific touch: tell it whether to take character orientation from the image or the video reference.
  • sound + keepOriginalSound - native audio generation, or preserve audio from a reference.
  • numberResults - 1–4 variations per queue.

You can also feed referenceImages and frameImages (IMAGE tensors) and referenceVideos to condition the generation, and video accepts a URL or UUID for prompt-based editing of an existing clip.

The outputs

One video socket, type VIDEO, straight into a preview or save node. On older ComfyUI builds it degrades to a saved file path string instead - the fix is upgrading ComfyUI, not the pack.

Installing it

This is a pack-level install, so you do it once for all the Kling, Luma, LTX, and Krea nodes:

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

Restart, then set your key via ComfyUI Settings → Runware API key, the RUNWARE_API_KEY env var, or runware auth login. Dependencies are light - the SDK, pillow, soundfile - and no model files download.

Where people get burned

The classic is pasting a local path into video when it wants a URL or UUID. And because this model lets you set width/height directly, don't send it something silly like 8K just because the widget accepts a number - you'll pay for it. If the run info line shows a cost that makes you wince, check numberResults. Otherwise, this is the Kling node that just works.

CategoryRunware/Video/klingai

Inputs (19)

NameTypeDefaultDescription
referenceImagesoptIMAGE
frameImagesoptIMAGE
referenceVideosoptRUNWARE_REFERENCEVIDEOS
positivePromptoptSTRINGText prompt describing elements to include in the generated output.
negativePromptoptSTRINGPrompt to guide what to exclude from generation. Ignored when guidance is disabled (CFGScale ≤ 1).
sizeoptCOMBO1080p (1:1)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.characterOrientationoptCOMBO(default)Source for character orientation reference.
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