Nodes/ComfyUI_agilly1989_motorway/SD_4XUpscale_Conditioning_motorway_edition
ComfyUI Node

SD_4XUpscale_Conditioning_motorway_edition

Images and prompts in, upscale latent out, on the bus

By agilly1989·Created 2 years ago·Updated about a year ago· 7
SD_4XUpscale_Conditioning_motorway_edition
  • MOTORWAY 🚌💨
  • MOTORWAY 🚌💨
INPUT_images_keyimages
INPUT_positive_keypositive
INPUT_negative_keynegative
scale_ratio4.00
noise_augmentation0.000
OUTPUT_positive_keypositive
OUTPUT_negative_keynegative
OUTPUT_latent_keylatent

SD_4XUpscale_Conditioning_motorway_edition is the clone of ComfyUI's built-in SD_4XUpscale_Conditioning, and it's the prep step for one of the more interesting upscaling approaches in the Stable Diffusion toolbox: the 4x-Upscaler ("upscale diffusion") from Stability. Instead of the usual pixel upscaler that sharpens and hallucinates detail, upscale diffusion actually re-diffuses - it takes your image, encodes it into a high-resolution latent, and then runs a diffusion pass over it guided by your conditioning. The "conditioning" part of the name is the point: this node turns your image and your prompt into the latent + conditioned inputs that the upscale sampling pass consumes.

So the shape of the workflow is: generate a base image, run it through the SD4X upscale pipeline - this node first, then a sampler that actually denoises the big latent (the SD4X upscaler model does the latent work; this node just sets the table). It's a specific, heavyweight pipeline: it wants the 4x-Upscaler checkpoint and a decent chunk of VRAM, and it's slower than a plain ESRGAN pass. Its payoff is coherence - the upscale stays faithful to the image instead of inventing independent detail, which is why upscale-diffusion workflows keep showing up in quality-obsessed threads.

The widgets:

  • scale_ratio (default 4.0, 0–10) - the upscale factor. 4.0 is the intended use (it's called 4x for a reason); lower values give a smaller boost.
  • noise_augmentation (default 0, 0–1) - how much noise gets added to the upscaled latent before re-diffusion. This is your "how much do we let the upscale reinterpret the image" dial. 0 is conservative and faithful; creeping it up trades fidelity for detail regeneration. Most people leave it at 0.

Everything else is key plumbing. It reads three things off the Motorway bus: INPUT_images_key (default images), INPUT_positive_key (default positive), and INPUT_negative_key (default negative). It writes three things back: OUTPUT_positive_key, OUTPUT_negative_key, and OUTPUT_latent_key (all defaulting to the conventional names positive, negative, latent). Point it at whatever keys your earlier nodes used, and the upscale sampler picks up latent on the next hop.

Installing it

Part of ComfyUI_agilly1989_motorway. ComfyUI Manager: search ComfyUI_agilly1989_motorway, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway

No Python dependencies from the pack - but the pipeline needs the SD4X upscale model (a checkpoint you download separately), because without it there's nothing to do the actual upscale diffusion. The node itself is just glue.

The catch

The pack's standing caveats: release 1.1.7 ships with the clones disabled (uncomment the two ClonedNodeMapping lines in custom_nodes/ComfyUI_agilly1989_motorway/__init__.py, restart). And the README is a solo dev's honest beta - "BIG BROKEN WITH ASYNC WILL FIX WHEN I GET THE TIME/MOTIVATION" is the first line. On top of all that, the SD4X pipeline is inherently heavyweight and picky about VRAM; if you're new to upscaling, a pixel upscaler (ESRGAN-style) is the easier first step, and this is the "I want max-fidelity upscale" upgrade. Fun, but not the beginner's on-ramp.

Categoryagilly1989 Nodes/Motorway-ed/conditioning/upscale_diffusion

Inputs (9)

NameTypeDefaultDescription
MOTORWAY 🚌💨MOTORWAY 🚌💨
INPUT_images_keySTRINGimages
INPUT_positive_keySTRINGpositive
INPUT_negative_keySTRINGnegative
scale_ratioFLOAT4.000–10
noise_augmentationFLOAT0.0000–1
OUTPUT_positive_keySTRINGpositive
OUTPUT_negative_keySTRINGnegative
OUTPUT_latent_keySTRINGlatent

Outputs (1)

NameTypeDescription
MOTORWAY 🚌💨MOTORWAY 🚌💨