Nodes/ComfyUI_agilly1989_motorway/SamplerDPMAdaptative_motorway_edition
ComfyUI Node

SamplerDPMAdaptative_motorway_edition

The adaptive DPM sampler on the bus — let the solver pick the steps

By agilly1989·Created 2 years ago·Updated about a year ago· 7
SamplerDPMAdaptative_motorway_edition
  • MOTORWAY 🚌💨
  • MOTORWAY 🚌💨
order3
rtol0.05
atol0.01
h_init0.05
pcoeff0.00
icoeff1.00
dcoeff0.00
accept_safety0.81
eta0.00
s_noise1.00
OUTPUT_SAMPLER_keySAMPLER

Most samplers work by taking a fixed number of steps and spacing them out. SamplerDPMAdaptative is the odd one out: it's an adaptive differential-equation solver, the kind a numerical methods course would recognize, and it decides its own step count. Instead of "20 steps, do your thing," you give it error tolerances and it keeps taking steps until each one's local error is small enough. The output is a SAMPLER object you feed into a custom sampling chain.

That's the appeal and the trap in one. It can produce beautiful results because it spends steps where the solution actually needs them - but you can't control the total step count, and it's measurably slower than the fixed-step samplers. You use it when you care about quality per unit of error, not when you're timing a batch.

The widgets (there are a lot)

Every knob is a widget; none are read from the bus. The ones that matter:

  • order (2–3, default 3) - solver order. 3 is the default and usually the right answer.
  • rtol / atol (defaults 0.05 / 0.0078) - the relative and absolute error tolerances. This is the whole game: tighter tolerances = more steps = better quality = slower. Loosen them and the solver gets lazy.
  • h_init (default 0.05) - initial step size; the solver adapts from there.
  • pcoeff / icoeff / dcoeff (defaults 0 / 1 / 0) - PID controller coefficients for step-size control. The defaults are the sane starting point; touch these only if you know what PID control is.
  • accept_safety (default 0.81) - the acceptance threshold for a step. Lower it and the solver rejects more steps, effectively refining.
  • eta (default 0) - stochasticity; 0 is deterministic, higher adds SDE noise.
  • s_noise (default 1) - noise scale multiplier when eta is above 0.
  • OUTPUT_SAMPLER_key (default SAMPLER) - where the sampler object is parked on the bus.

The MOTORWAY 🚌💨 input is optional, so the node can sit at the end of a bus chain or start one.

Install

No dependencies, no models:

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

or ComfyUI Manager → search ComfyUI_agilly1989_motorway → install → restart.

The fine print

The pack is a beta project - "IF THINGS BREAK ITS BECAUSE I BROKE IT" is the README's opening - and the _motorway_edition clones were auto-generated by a cloner that build 1.1.7 removed. Fresh installs may not include this node; the stock SamplerDPMAdaptative in core does the same job.

The bus error is the standard KeyError: 'hash_...' doesn't exist in motorway, and for a widget-only node that's almost always a downstream sampler chain looking for the wrong key name.

The real advice stands apart from the bus entirely: if you can't predict your runtime because the step count is decided for you, that's the adaptive sampler working as designed. If you're on a guidance-distilled model or just want consistent timing, a fixed-step sampler with a Karras or model schedule is the more predictable tool. Reach for this one when you want the solver to earn its keep on quality.

Categoryagilly1989 Nodes/Motorway-ed/sampling/custom_sampling/samplers

Inputs (12)

NameTypeDefaultDescription
orderINT32–3
rtolFLOAT0.050–100
atolFLOAT0.010–100
h_initFLOAT0.050–100
pcoeffFLOAT0.000–100
icoeffFLOAT1.000–100
dcoeffFLOAT0.000–100
accept_safetyFLOAT0.810–100
etaFLOAT0.000–100
s_noiseFLOAT1.000–100
OUTPUT_SAMPLER_keySTRINGSAMPLER
MOTORWAY 🚌💨optMOTORWAY 🚌💨

Outputs (1)

NameTypeDescription
MOTORWAY 🚌💨MOTORWAY 🚌💨