Nodes/Runware.ai ComfyUI Inference API Integration/Stable Diffusion XL v1.0 VAE Fix
ComfyUI Node

Stable Diffusion XL v1.0 VAE Fix

The boring checkpoint that saves you a headache

By Runware·Created 2 years ago·Updated about a month ago· 140
Stable Diffusion XL v1.0 VAE Fix
  • seedImage
  • maskImage
  • outpaint
  • lora
  • controlNet
  • ipAdapters
  • embeddings
  • refiner
  • photoMaker
  • ultralytics
  • acceleratorOptions
  • advancedFeatures.watermark.image
  • image
positivePrompt
width1024
height1024
negativePrompt
seed0
steps30
scheduler(default)
CFGScalefalse
CFGScale_value0.00
strengthfalse
strength_value0.80
maskMarginfalse
maskMargin_value32
clipSkipfalse
clipSkip_value0
vae
promptWeighting(default)
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
advanced_json

This node is the most boring entry in the whole Runware pack, and boring is its job. Runware_stabilityai_stable_diffusion_xl_v1_0_vae_fix is plain SDXL 1.0 - Stability's 2023 1024px base - pinned to a specific CivitAI checkpoint (civitai:101055@128078) that ships the community's VAE fix baked in. It's the "known good" default: no model field to mistype, no clipSkip guessing, no wondering which of your 40 SDXL merges is the stable one. It's the node you hand a beginner, and the node you reach for when you want a clean baseline.

For context: SDXL's stock VAE was famously bad at producing true blacks - the classic washed-out, gray-looking output - and the "VAE fix" became the standard correction. Baking it into the checkpoint is exactly the kind of convenience that matters when you're comparing results across models. In the cloud world of this pack, it also means one fewer variable: the model is pinned and hosted, so two runs with the same seed are reproducible instead of "whichever file you loaded this time."

How it works

imageInference with a fixed AIR - you don't pick the model, which is the point. Prompt, size, and sampler settings go up; the image comes back as a native IMAGE tensor. You get the full SDXL control set (steps default 30, scheduler with 76 choices, CFGScale gated off by default, negativePrompt, seedImage/maskImage for img2img and inpainting) plus the feature sockets: lora, controlNet, ipAdapters, embeddings, refiner, photoMaker.

The inputs that matter

  • positivePrompt (required) - SDXL base is "bland alone" by reputation; it's a faithful prompt follower, not a style machine. Style comes from the LoRAs you stack on the lora socket.
  • negativePrompt - worth filling in; SDXL 1.0 rewards a good negative list.
  • width / height - 1024×1024 defaults, 128–2048. SDXL degrades gracefully near its native resolution but falls apart if you push it.
  • steps - 30 default; 25–35 is the SDXL comfort zone.
  • seedImage / maskImage - the img2img and inpainting inputs, with maskMargin for context around the mask.

Installing it

Install the pack, not the checkpoint. ComfyUI Manager → search Runware → install → restart. Manual:

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

Key from runware.ai/api-keys → ComfyUI Settings → Runware API key (or RUNWARE_API_KEY).

Where people get burned

  • Bland is a feature, not a bug. If your output looks generic, that's SDXL 1.0 base being honest - it's a canvas for LoRAs, not a finished style. Reach for Runware_rundiffusion_juggernaut_z if you want a tuned look out of the box.
  • It's pinned, and that's the deal. You can't point this node at a different checkpoint. If you want "any SDXL checkpoint," that's RunwareArch_sdxl, which is the same pack's model-picker node.
  • The gates. steps and CFGScale are off by default - the node sends the request without them and lets the model decide. Enable them only when you have a reason.
  • It costs per run. Metered cloud inference; the title bar shows each run's price.

SDXL 1.0 with the VAE fix is the reference frame every SDXL conversation starts from. This node gives you that frame without downloading it, installing it, or arguing with it.

CategoryRunware/Image/civitai

Inputs (44)

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
ipAdaptersoptRUNWARE_IPADAPTERS
embeddingsoptRUNWARE_EMBEDDINGS
refineroptRUNWARE_REFINER
photoMakeroptRUNWARE_PHOTOMAKER
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.
stepsoptINT301–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.
vaeoptSTRINGVAE model identifier. Overrides the default VAE included with the base model.
promptWeightingoptCOMBO(default)Syntax used for prompt weighting.
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.
advanced_jsonoptSTRINGOptional JSON merged into the request. For: hiresFix

Outputs (1)

NameTypeDescription
imageIMAGE