KlingAI 1.0 Pro
The cloud video model that hides its GPU from you
- frameImages
- video
Kling 1.0 is the model that taught people frontier video had to be bought, not built. It's Kuaishou's closed video model - no weights, no local checkpoint, API-only - and this node is the way to drive it from your ComfyUI graph without ever leaving the canvas. Before you ask: yes, this one really does call an API, and yes, it really does need a key and a few credits. It's the opposite of the local nodes you're used to.
Why you'd reach for it
If you're running Wan or Hunyuan locally, you know the deal: great results, but a 16GB+ card, long queues, and motion quality that still loses to the big cloud models. Kling was the quality bar the open-source world spent 2024–2025 chasing. This node gives you that ceiling with zero local inference - your prompt is shipped off to Runware's cloud, a GPU you don't own renders the clip, and a finished MP4 comes back. If your machine can't run a video model at all, this is one of the cheapest doors into Kling-quality video from inside ComfyUI.
How it works
This is a Runware cloud node, generated straight from the company's model catalog. The node class is thin - all the logic lives in the pack's base class. On queue, it bundles your prompt and any image inputs into a request, base64s your images to PNG data URIs, POSTs to the Runware REST API through the runware SDK, then downloads the result and wraps it as a native ComfyUI VIDEO object. Each run shows its cost on the node title bar, which is a nice honesty feature.
Inputs that matter
Only positivePrompt is required. The rest are optional, and honestly you'll mostly touch a handful:
frameImages(IMAGE) - feed this a tensor and your text-to-video becomes image-to-video. Leave it empty for pure T2V.duration- 5 or 10 seconds. Longer costs more.width/height- default 1024×1024; set your aspect.CFGScale- defaults to 0.5. With guidance that low,negativePromptis ignored, so don't bother writing one unless you raise it.numberResults(1–4) - variations per run, each with its own seed.outputFormat- MP4, WEBM, or MOV.outputQualityis the encoder quality (95 default).
The single output is video (type VIDEO), which you wire into a video preview or save node.
Install
Install the pack once and every Kling node is yours:
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Restart ComfyUI. Easier still: ComfyUI Manager → search Runware → install. Then grab a key from the Runware dashboard and either paste it into Settings → Runware API key, export RUNWARE_API_KEY, or run runware auth login once.
Gotchas
- No key means no run: you'll get a clean one-line "No Runware API key" error. Set
RUNWARE_DEBUG=1if you ever need the full traceback. - The
VIDEOoutput type needs a reasonably current ComfyUI; on older builds the pack degrades to returning a saved file path instead. - You're paying per generation. Runware is cheap per image, but video adds up fast - a bad prompt is a few cents you can't get back, so set
numberResultslow while you iterate. - Kling is Kuaishou's, not Google's or Bytedance's, and it's firmly closed-source. If you want something you can tinker with locally, this isn't it. If you want Kling's look on a machine that can't run a video model, it's exactly it.
The 1.0 line is old news in the Kling world by now - 1.6, 2.x, and the video 3.0 nodes all outclass it. Grab it if you're price-comparing old generations, or if a shared workflow pinned to 1.0 won't budge.
Inputs (14)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| frameImagesopt | IMAGE | — | |
| negativePromptopt | STRING | Prompt to guide what to exclude from generation. Ignored when guidance is disabled (CFGScale ≤ 1). | |
| sizeopt | COMBO | 720p (1:1) | Output size. Only one of resolution or dimensions is sent. |
| CFGScaleopt | FLOAT | 0.500–1 | Guidance scale representing how closely the output will resemble the prompt. Higher values produce results more aligned with the prompt. |
| durationopt | COMBO | 5 | 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. |
| 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. |
| 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. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |