Stable Diffusion 3
A real Stable Diffusion 3 node that runs on someone else's GPU
- seedImage
- maskImage
- outpaint
- lora
- controlNet
- ultralytics
- acceleratorOptions
- advancedFeatures.watermark.image
- image
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.
Inputs (37)
| Name | Type | Default | Description |
|---|---|---|---|
| positivePrompt | STRING | Text prompt describing elements to include in the generated output. | |
| width | INT | 1024128–2048 | Width of the generated media in pixels. |
| height | INT | 1024128–2048 | Height of the generated media in pixels. |
| seedImageopt | IMAGE | — | |
| maskImageopt | IMAGE | — | |
| outpaintopt | RUNWARE_OUTPAINT | — | |
| loraopt | RUNWARE_LORA | — | |
| controlNetopt | RUNWARE_CONTROLNET | — | |
| ultralyticsopt | RUNWARE_ULTRALYTICS | — | |
| acceleratorOptionsopt | RUNWARE_ACCELERATOROPTIONS | — | |
| advancedFeatures.watermark.imageopt | IMAGE | — | |
| negativePromptopt | STRING | Prompt to guide what to exclude from generation. Ignored when guidance is disabled (CFGScale ≤ 1). | |
| seedopt | INT | 00–9223372036854776000 | Random seed for reproducible generation. When not provided, a random seed is generated in the unsigned 32-bit range. |
| stepsopt | INT | 281–50 | Total number of denoising steps. Higher values generally produce more detailed results but take longer. |
| scheduleropt | COMBO | (default) | Scheduler to use for the diffusion process. |
| CFGScaleopt | BOOLEAN | false | Enable to set CFGScale. Off uses the model's default. |
| CFGScale_valueopt | FLOAT | 0.000–30 | Guidance scale representing how closely the output will resemble the prompt. Higher values produce results more aligned with the prompt. |
| strengthopt | BOOLEAN | false | Enable to set strength. This setting has usage rules in this model, so it is off unless you enable it. |
| strength_valueopt | FLOAT | 0.800–1 | Strength of the transformation. Lower values result in more influence from the original input. |
| maskMarginopt | BOOLEAN | false | Enable to set maskMargin. Off uses the model's default. |
| maskMargin_valueopt | INT | 3232–128 | Extra context pixels around the masked region during inpainting. The model zooms into the masked area with these additional pixels for better integration. |
| clipSkipopt | BOOLEAN | false | Enable to set clipSkip. Off uses the model's default. |
| clipSkip_valueopt | INT | 00–4 | Number of layers to skip in the CLIP model. |
| 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 | — |