ComfyUI Node

Stable Diffusion 3

A real Stable Diffusion 3 node that runs on someone else's GPU

By Runware·Created 2 years ago·Updated about a month ago· 140
Stable Diffusion 3
  • seedImage
  • maskImage
  • outpaint
  • lora
  • controlNet
  • ultralytics
  • acceleratorOptions
  • advancedFeatures.watermark.image
  • image
positivePrompt
width1024
height1024
negativePrompt
seed0
steps28
scheduler(default)
CFGScalefalse
CFGScale_value0.00
strengthfalse
strength_value0.80
maskMarginfalse
maskMargin_value32
clipSkipfalse
clipSkip_value0
numberResults1
advancedFeaturesfalse
advancedFeatures.watermark.bgColor
advancedFeatures.watermark.displayPosition(default)
advancedFeatures.watermark.fontColor
advancedFeatures.watermark.opacityfalse
advancedFeatures.watermark.opacity_value0.10
advancedFeatures.watermark.text
safetyfalse
safety.checkContentfalse
ttlfalse
ttl_value60
outputFormatJPG
outputQuality95

The Stable Diffusion 3 node you're actually looking at doesn't run Stable Diffusion 3. It runs it for you, on Runware's cloud, and hands the finished image back as a native IMAGE tensor. That's the whole pitch of this pack - every model in Runware's catalog becomes a node whose widgets are the model's real parameters, no checkpoints to download and no VRAM to worry about. If you've ever bailed on SD3 because it wanted multiple gigabytes of disk and a GPU that can breathe, this is the path of least resistance: type a prompt, pick a size, queue.

It's worth knowing what "Stable Diffusion 3" means here, because the name carries baggage. This is Stability AI's Multimodal Diffusion Transformer line - the architecture that was genuinely impressive in API previews back in early 2024 and then got tangled up in the company's messy history. It's not SDXL, and it's not the modern FLUX-era default either. It's the model a specific era of the ecosystem was built around, and on Runware it's just one item in a dropdown (runware:5@1, imageInference) rather than something you commit storage to. Reaching for it over FLUX or a newer Z.ai model is a taste call - but when you want the SD3 look without the install, this is the node.

How it works

Every node in this pack is generated from the same schema bundle and rides the same code path. On queue, the node builds a request with the model's AIR id, a taskType of imageInference, and your widget values, then sends it over REST through the runware-sdk. The result comes back as an image URL, gets downloaded into a ComfyUI IMAGE tensor, and pops out of the image output - wire that into Preview Image or Save Image and you're done. Each run also prints its cost and NSFW-check result on the node's title bar, so there's no mystery about what you're spending.

A detail that trips up people coming from local sampling: most parameters are gated. You'll see CFGScale as an on/off toggle, and only when you flip it on does the CFGScale_value field appear. Same for steps, strength, maskMargin, clipSkip, and ttl. Leave a gate off and the model's own default is used - nothing is silently dropped, but the toggle layout can look like a lot of UI for what is really three knobs.

The inputs that matter

The required trio is all you need to get moving: positivePrompt (the thing to draw), width and height (128–2048, default 1024). After that, the ones beginners actually touch:

  • seed - 0 means random; set it to reproduce a result. Each numberResults (up to 20) gets its own seed for variations.
  • scheduler - a 76-entry dropdown (DPM++, Euler, UniPC, FlowMatch…). Default (default) uses the model's choice. Don't overthink it.
  • outputFormat / outputQuality - JPG, PNG, or WEBP at quality 20–99.

The rest are the interesting sockets that make this pack worth it: seedImage and maskImage take plain IMAGE tensors (so you can wire in any local image for img2img or inpainting), and lora, controlNet, outpaint, and ultralytics accept builder nodes from the Runware/Params menu. Wire a LoRA builder into the lora socket and the fine-tune rides along with the request. negativePrompt is real but ignored when guidance is off (CFGScale ≤ 1), which is a nice reminder that SD3 doesn't always want one.

Install and API key

Install once and it covers every node in this pack, this one included:

cd ComfyUI/custom_nodes
git clone https://github.com/Runware/ComfyUI-Runware
pip install -r ComfyUI-Runware/requirements.txt

Restart ComfyUI, or skip all that and install Runware from ComfyUI Manager's Custom Nodes search. Dependencies are light - runware-sdk, pillow, soundfile - because the heavy lifting happens remotely. You do need an API key from runware.ai/api-keys: paste it into ComfyUI Settings → Runware API key, or set RUNWARE_API_KEY. Without one you get the honest error "No Runware API key."

Gotchas

The main one is that you're paying per run, so "let me just tweak the seed and try again" costs credits - and with no local GPU, iterating is a habit you'll want to break. The safety.checkContent toggle is off by default; flip it on and content checks run server-side. And since results come back as fresh tensors each time, don't expect ComfyUI's usual cached-node behavior to save you on re-runs. The model's default parameters are good - when in doubt, leave the gates alone.

CategoryRunware/Image/runware

Inputs (37)

NameTypeDefaultDescription
positivePromptSTRINGText prompt describing elements to include in the generated output.
widthINT1024128–2048Width of the generated media in pixels.
heightINT1024128–2048Height of the generated media in pixels.
seedImageoptIMAGE
maskImageoptIMAGE
outpaintoptRUNWARE_OUTPAINT
loraoptRUNWARE_LORA
controlNetoptRUNWARE_CONTROLNET
ultralyticsoptRUNWARE_ULTRALYTICS
acceleratorOptionsoptRUNWARE_ACCELERATOROPTIONS
advancedFeatures.watermark.imageoptIMAGE
negativePromptoptSTRINGPrompt to guide what to exclude from generation. Ignored when guidance is disabled (CFGScale ≤ 1).
seedoptINT00–9223372036854776000Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range.
stepsoptINT281–50Total number of denoising steps. Higher values generally produce more detailed results but take longer.
scheduleroptCOMBO(default)Scheduler to use for the diffusion process.
CFGScaleoptBOOLEANfalseEnable to set CFGScale. Off uses the model's default.
CFGScale_valueoptFLOAT0.000–30Guidance scale representing how closely the output will resemble the prompt. Higher values produce results more aligned with the prompt.
strengthoptBOOLEANfalseEnable to set strength. This setting has usage rules in this model, so it is off unless you enable it.
strength_valueoptFLOAT0.800–1Strength of the transformation. Lower values result in more influence from the original input.
maskMarginoptBOOLEANfalseEnable to set maskMargin. Off uses the model's default.
maskMargin_valueoptINT3232–128Extra context pixels around the masked region during inpainting. The model zooms into the masked area with these additional pixels for better integration.
clipSkipoptBOOLEANfalseEnable to set clipSkip. Off uses the model's default.
clipSkip_valueoptINT00–4Number of layers to skip in the CLIP model.
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.
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