ComfyUI Node

Runway Gen-4 Image

Runway Gen-4 images, without the Runway website

By Runware·Created 2 years ago·Updated about a month ago· 140
Runway Gen-4 Image
  • referenceImages
  • advancedFeatures.watermark.image
  • image
positivePrompt
size720p (1:1)
numberResults1
advancedFeaturesfalse
advancedFeatures.watermark.bgColor
advancedFeatures.watermark.displayPosition(default)
advancedFeatures.watermark.fontColor
advancedFeatures.watermark.opacityfalse
advancedFeatures.watermark.opacity_value0.10
advancedFeatures.watermark.text
providerSettings.runway.contentModeration.publicFigureThresholdauto
safetyfalse
safety.checkContentfalse
ttlfalse
ttl_value60
outputFormatJPG
outputQuality95

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 more IMAGE tensors 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 - auto or low. 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. low loosens 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.

CategoryRunware/Image/runway

Inputs (19)

NameTypeDefaultDescription
positivePromptSTRINGText prompt describing elements to include in the generated output.
referenceImagesoptIMAGE
advancedFeatures.watermark.imageoptIMAGE
sizeoptCOMBO720p (1:1)Output size. Only one of resolution or dimensions is sent.
numberResultsoptINT11–20Number of results to generate. Each result uses a different seed, producing variations of the same parameters.
advancedFeaturesoptBOOLEANfalseEnable to set advancedFeatures. Off uses the model's default.
advancedFeatures.watermark.bgColoroptSTRINGBackground color in hex format.
advancedFeatures.watermark.displayPositionoptCOMBO(default)Watermark position.
advancedFeatures.watermark.fontColoroptSTRINGText color in hex format.
advancedFeatures.watermark.opacityoptBOOLEANfalseEnable to set advancedFeatures.watermark.opacity. Off uses the model's default.
advancedFeatures.watermark.opacity_valueoptFLOAT0.100.1–1Watermark opacity.
advancedFeatures.watermark.textoptSTRINGWatermark text.
providerSettings.runway.contentModeration.publicFigureThresholdoptCOMBOautoPublic figure filtering strictness.
safetyoptBOOLEANfalseEnable to set safety. Off uses the model's default.
safety.checkContentoptBOOLEANfalseEnable or disable content safety checking.
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`.
outputFormatoptCOMBOJPGFile format for the generated image.
outputQualityoptINT9520–99Compression quality of the output. Higher values preserve quality but increase file size.

Outputs (1)

NameTypeDescription
imageIMAGE