Runway Gen-4 Image
Runway Gen-4 images, without the Runway website
- referenceImages
- advancedFeatures.watermark.image
- image
Runway's Gen-4 is the image side of the same company that owns a chunk of the AI-video conversation, and its image model has a specific reputation: it's extremely good at keeping a subject consistent across a batch of frames, and it takes reference images seriously. This node puts that model inside your graph, running on Runware's API - same pitch as the rest of the pack, no Runway subscription UI, no web tab, just a node with an IMAGE out.
The interesting thing about Gen-4 image generation is that it's built around reference conditioning rather than raw prompt luck. Where a typical text-to-image node hopes the prompt pins down the character, Gen-4's whole design assumes you'll hand it a reference and ask it to respect it. That makes this node a genuinely different tool in the Runware catalog than, say, a FLUX node.
Inputs that matter
positivePrompt is required; everything else is optional but Gen-4 only shows what it's for when you use the optional stuff:
referenceImages- wire one or moreIMAGEtensors in. This is the key Gen-4 capability: the model uses these to lock identity, style, or composition. Character consistency is the job this model is actually good at, so feed it a face or a character sheet and prompt from there.width/height- 1024×1024 defaults, plain pixel dimensions.numberResults- up to 20; each result uses a different seed. Batch variations are cheap here.providerSettings.runway.contentModeration.publicFigureThreshold-autoorlow. This is Runway's own content policy leaking into the node: how strictly it filters for public figures. If you're generating a lookalike of a real person, this is the setting that decides whether you get a result or a polite block.lowloosens it; don't assume that's a smart move.safety.checkContent- the pack-level content check, separate from Runway's own moderation above.
outputFormat (JPG/PNG/WEBP) and outputQuality are the usual file knobs. There's no seed input on this node - a fun quirk of the Gen-4 spec - so reproducibility rides on numberResults and the reference set.
How it works
Under the hood: the node fires a runway:4@1 image-inference request through the Runware SDK, your reference images get uploaded as part of the request, and the response URL is converted into a native IMAGE. Cost and content-check status print on the node's title bar after the run. Nothing runs locally, which is the entire appeal - Gen-4 is a hosted model you can't download anyway, so this node is the only way it's ever going to live inside a ComfyUI workflow.
Install and gotchas
cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt
Restart, add your Runware API key in Settings (or RUNWARE_API_KEY, or runware auth login). It's pay-per-use with a minimum top-up.
Where people get burned: they use it as a plain text-to-image node and wonder why it's not "better" than the local model they already run. Gen-4's edge is the reference path - if you're not wiring referenceImages, you're using the most expensive text-to-image node in the pack. Also, remember there are two moderation layers: Runway's publicFigureThreshold and the pack's safety.checkContent. If a run comes back empty, check both, and don't be surprised when "auto" threshold quietly kills a celebrity prompt.
Inputs (19)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| referenceImagesopt | IMAGE | — | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| sizeopt | COMBO | 720p (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. | |
| providerSettings.runway.contentModeration.publicFigureThresholdopt | COMBO | auto | Public figure filtering strictness. |
| 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 | — |