Kling IMAGE O3
The one that wants your exact pixel dimensions
- referenceImages
- advancedFeatures.watermark.image
- image
Here's the difference that jumps out: Kling IMAGE O3 is the only node in the Kling image line that makes width and height required inputs. The other Kling image nodes hand you a size dropdown; this one asks for exact pixels. That makes O3 the node you reach for when the output has to fit a specific frame - a video canvas, a banner, a character sheet - rather than the other way around.
Why you'd reach for it
Because fixed dimensions are a feature, not a restriction. If you're generating a first frame to feed a Kling video node, or matching an existing asset's aspect, having width and height as first-class inputs is exactly what you want - no fighting a preset dropdown for the right ratio. The trade is that you own the resolution math: too small and you're leaving quality on the table, too big and you're paying for pixels you don't need.
How it works
Generated Runware node, shared pack base class. The required positivePrompt plus width/height (and any optional referenceImages, base64'd to PNG data URIs) go to the Runware REST API via the runware SDK, and the result returns as a native IMAGE tensor. Cost and NSFW flag print on the node title bar. Because image inference is the cheap end of Runware's pricing, even at larger sizes this stays affordable to iterate on.
Inputs that matter
positivePrompt- required.width/height- required. Your exact target resolution; this is O3's whole deal.referenceImages(IMAGE) - optional; reference/guided generation when wired.numberResults(1–20) - variations per run, each a separate bill.outputFormat(JPG/PNG/WEBP),outputQuality(95).watermark- optional typed watermark input.safetygroup - content-check toggles (off = model default).
Output: one image socket (IMAGE type).
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 Runware via ComfyUI Manager). Key from the Runware dashboard → Settings → Runware API key, RUNWARE_API_KEY, or runware auth login.
Gotchas
- Resolution is on you: pick width/height deliberately, because that's the only resolution input here - a 4:5 video-canvas frame and a 16:9 banner are different requests.
referenceImageswants tensors (Load Image), not paths or URLs.numberResultsup to 20 is a real credit spend - great for batch generation, dangerous for curiosity.- Closed Kuaishou model, per-request pricing, cost shown on the node. No weights to download, no local render.
O3 is the precision pick of Kling's image family: exact pixels, high ceilings, and the natural companion to a video pipeline that needs its first frame sized just right.
Inputs (18)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| referenceImagesopt | IMAGE | — | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| sizeopt | COMBO | 1K (1:1) | Output size. Only one of resolution or dimensions is sent. |
| numberResultsopt | INT | 11–20 | Number of results to generate. Each result uses a different seed, producing variations of the same parameters. |
| advancedFeaturesopt | BOOLEAN | false | Enable to set advancedFeatures. Off uses the model's default. |
| advancedFeatures.watermark.bgColoropt | STRING | Background color in hex format. | |
| advancedFeatures.watermark.displayPositionopt | COMBO | (default) | Watermark position. |
| advancedFeatures.watermark.fontColoropt | STRING | Text color in hex format. | |
| advancedFeatures.watermark.opacityopt | BOOLEAN | false | Enable to set advancedFeatures.watermark.opacity. Off uses the model's default. |
| advancedFeatures.watermark.opacity_valueopt | FLOAT | 0.100.1–1 | Watermark opacity. |
| advancedFeatures.watermark.textopt | STRING | Watermark text. | |
| safetyopt | BOOLEAN | false | Enable to set safety. Off uses the model's default. |
| safety.checkContentopt | BOOLEAN | false | Enable or disable content safety checking. |
| 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 | JPG | File format for the generated image. |
| outputQualityopt | INT | 9520–99 | Compression quality of the output. Higher values preserve quality but increase file size. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |