DifferentialDiffusion_motorway_edition
Per-pixel denoise strength, carried on the Motorway
- MOTORWAY 🚌💨
- MOTORWAY 🚌💨
Normal inpainting decides "is this pixel regenerated or not" with a hard mask: white is fully redrawn, black is left alone, and the denoise strength is the same everywhere inside the white. Differential Diffusion throws that binary thinking away - every pixel gets its own denoise strength from a mask, so you can have regions fully repainted, regions lightly nudged, and everything in between, with soft gradients instead of seams. The _motorway_edition is core ComfyUI's DifferentialDiffusion node wrapped for agilly1989's Motorway bus.
How it works
Under the hood it's a model patch. The core node takes your MODEL and returns a patched MODEL whose sampling applies denoise strength per-pixel according to a mask that gets fed to the sampler downstream. That's why the input here is a MODEL, not an image or mask - the mask arrives later, in the sampler's latent, and the patch makes the sampler respect it. The category says it all: _for_testing (the older core label for experimental). It's a neat trick that never quite became the mainstream inpaint path, but for blended inpainting - soft feathering, partial repaint, "keep the eyes, nudge the rest of the face" - it's genuinely different from mask-inpaint.
Inputs and outputs
- MOTORWAY 🚌💨 - the bus, required.
- INPUT_model_key - key of the base MODEL to patch, default
model. - OUTPUT_MODEL_key - key for the patched MODEL, default
MODEL.
That's the whole thing: one key in, one key out, and the patched model continues down the Motorway to wherever your sampler reads it.
Installing
With the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/agilly1989/ComfyUI_agilly1989_motorway
Restart, or ComfyUI Manager → "ComfyUI_agilly1989_motorway". No pip deps, no model downloads.
Caveats
Pack-wide: active beta with the "BIG BROKEN WITH ASYNC" README banner; _motorway_edition clones commented out of __init__.py in the version I checked (re-enable ClonedNodeMapping if the node's missing); keys exact and case-sensitive, hash_ error = key not in bus. One extra honest note: since this patches the model rather than transforming data, it's the kind of node that's easy to wire up and hard to confirm is doing anything - test against the plain core DifferentialDiffusion first to learn the expected behavior, then port it onto the bus.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| MOTORWAY 🚌💨 | MOTORWAY 🚌💨 | — | |
| INPUT_model_key | STRING | model | — |
| OUTPUT_MODEL_key | STRING | MODEL | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MOTORWAY 🚌💨 | MOTORWAY 🚌💨 | — |