KlingAI 1.6 Pro
The generation people actually talked about
- frameImages
- video
Kling 1.6 is the version people actually got excited about. The party line in the community was that hi-res 1.6 could rotate a subject and reconstruct the whole back of them convincingly - the kind of coherence earlier image-to-video just didn't have. This node is the Pro tier of that model, and it's a flexible one: positivePrompt is the only required input, with frameImages sitting there as an optional IMAGE socket. So it does text-to-video out of the box, and image-to-video the moment you feed it a frame.
Why you'd reach for it
Because you want the 1.6 look without owning the hardware for it. Kling is Kuaishou's closed, API-only model - there's no local checkpoint to download, full stop. The Runware pack solves that by being a thin client: your prompt goes to their cloud, a real Kling render happens on their GPUs, and the clip comes back as a native ComfyUI VIDEO. If your machine chokes on Wan or you just want the cloud-quality motion, this is the comfortable middle generation - better than 1.0/1.5, not yet at 2.x's price point.
How it works
Like every node in the pack, this class is generated from Runware's model catalog; the brains live in a shared base class. On queue, any frameImages tensor is base64'd to PNG data URIs and sent with your prompt to the Runware REST API via the runware SDK. The result is downloaded and wrapped as a VIDEO object, and the title bar shows the run's cost plus any NSFW flag. Nothing renders locally.
Inputs that matter
positivePrompt- required. Describe the scene and motion.frameImages(IMAGE) - optional. Feed a first frame and you're in image-to-video mode; leave it empty for pure T2V.duration- 5 or 10 seconds (frames = duration × fps).width/height- 1024×1024 default; the Pro tier is where higher resolution is actually worth it.CFGScale- 0.5 default; the model's default guidance behavior is what you'll mostly use here.numberResults(1–4) - variations per run.outputFormat(MP4/WEBM/MOV),outputQuality(95).
Output: one video socket (VIDEO type) → preview or save node.
Install and the API key
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Restart ComfyUI (or install Runware via ComfyUI Manager). Key from the Runware dashboard → Settings → Runware API key, RUNWARE_API_KEY, or runware auth login.
Gotchas
- No key means a clean one-line "No Runware API key" error before anything hits the API.
RUNWARE_DEBUG=1gives you the full traceback if a real request ever fails. - Paid, per-run pricing - watch the cost line on the node title bar. Iterate with
numberResultsat 1. frameImagesis anIMAGEtensor from Load Image, not a path or URL.- Closed model, remember: you're renting Kuaishou's weights by the request, not owning anything.
1.6 Pro is a sweet spot in the Kling line - meaningfully better than the early stuff, cheaper than the 2.x and 3.0 nodes, and the one you'll see in a lot of shared workflows for exactly that reason.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| frameImagesopt | IMAGE | — | |
| sizeopt | COMBO | 1080p (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 | — |