ComfyUI Node Runs on cloud

Adaptive Detail

More texture, without a second pass over a face crop

By WASasquatch·Created 4 years ago·Updated about 9 hours ago· 1,884
Adaptive Detail
  • model
  • model
◄detail0.040►
◄start_percent0.30►
◄end_percent0.80►
◄extra0.00►

The usual way to get more detail in ComfyUI is to let a detector find the face, crop it, upscale it, and run a second diffusion pass - DetailerForEach in Impact Pack, before that ADetailer. A 70-pixel face inside a 1024-pixel frame has no latent budget to spend.

Adaptive Detail attacks the same complaint from the other end. No mask, no crop, no second decode. It patches the model so the run you were already doing leans toward fine texture, and optionally spends a few extra model calls on the steps where detail is changing fastest.

So: a detailer fixes a region that came out broken; this node has no idea where anything is. It's for "the skin and the wood grain are mush," not "the face in the crowd is a smear."

What it's actually doing to the model

Two independent mechanisms share this node: the push and the extra passes.

The first is the push. On every step inside your window, the node calls the underlying model with a lower timestep than the schedule says - specifically timestep * (1 - detail). To the model, the image looks slightly closer to clean than it really is, so it stops hedging on the big shapes and commits harder to local texture. detail at 0 is genuinely off, not a small amount.

The second is the corrective passes. The node watches the fine-detail band of what the model predicts - the velocity field minus a 3×3 box blur of itself - and measures how fast that band changes step to step relative to the sigma gap. Multiply by the squared length of each Euler step and you get that step's fine-detail error. With extra above zero it buys extra × total_steps second-order corrections (0.25 on a 25-step run = 6 extra model calls) and spends them on the worst estimates. Those steps get a Heun-style correction instead of plain Euler: a second evaluation at the next sigma, or two half steps when the step lands at zero noise. Cheaper than re-doing the image, more targeted than just adding steps.

The inputs worth thinking about

Five required inputs, one output: a patched model, wired straight into your sampler or guider.

  • detail (default 0.04) - how much lower a noise level the model is told. 0.02 is subtle, 0.04 is "clearly more texture," 0.06 is strong enough that small objects start changing shape. Above that you're not detailing anymore, you're reinterpreting.
  • start_percent (0.3) and end_percent (0.8) - the window. 0.3 leaves the first eight of 25 steps alone so composition can settle; 0.8 stops before the last five clean things up. Push end_percent toward 1.0 and the push runs into the final steps, which shows up as grain.
  • extra (0) - the share of steps that get a second-order pass, placed from start_percent to the end. Zero by default because it costs real time.

Install

The whole pack installs the same way, and the pack is the point: getting Adaptive Detail means getting 500-odd other nodes with it.

cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was-node-suite-comfyui.git

Or search WAS Node Suite v3 in ComfyUI Manager, the route the author recommends. Needs ComfyUI 0.14.0+ and Python 3.10+, and that's it - the pack installs nothing, downloads nothing, never runs pip. First start takes an extra second while it writes config.yaml and compiles to bytecode.

If your memory of this pack is "it broke on every ComfyUI update with an Import Failed error," that's v2 - twenty pinned packages including BLIP and SAM. v3 dropped all of it.

What goes wrong

The sampler has to call the model once per step. This is the big one. It counts model calls to know which step it's on, so euler, ddim and uni_pc are fine, multi-eval samplers like dpmpp_2m_sde are not. Nothing breaks - it publishes a run report saying "nothing changed: the sampler calls the model more than once per step." The pack's demo workflow uses plain euler with sgm_uniform, 25 steps, CFG 3.

Order matters. The input is the model after LoRAs and patches, so patch this last, right before the sampler. It also chains cleanly with Spectrum Forecast from the same pack: both are MODEL-in/MODEL-out patches, and the two are aware of each other - steps Adaptive Detail spends an extra pass on are never forecast away.

Too much detail looks like a different image, not a sharper one. Small objects re-reading differently is the tell. Start at 0.02–0.04 and judge at viewing size; if you can't see it at 100%, you paid render time for nothing.

It is not a fix for broken geometry. Hands that are structurally wrong stay structurally wrong; you just get more knuckle texture on them.

CategoryWAS Suite/Sampling

Inputs (5)

NameTypeDefaultDescription
modelMODELThe diffusion model to sample, after any LoRAs and patches.
detailFLOAT0.0400–0.30.04 = clearly more texture; 0.02 = subtle; 0.06 = strong, small objects start to change; 0 = off. How much lower a noise level the model is told.
start_percentFLOAT0.300–1Sampling percent where the push and the extra passes start: 0.3 leaves the first 8 of 25 steps, where the composition settles, alone.
end_percentFLOAT0.800–1Sampling percent where the push stops: 0.8 leaves the last 5 of 25 steps to clean it up; nearer 1.0 leaves grain.
extraFLOAT0.000–1Corrective second passes as a share of the steps, on the steps with the most fine-detail error: 0.25 adds 6 to 25 steps; 0 adds none.

Outputs (1)

NameTypeDescription
modelMODELThe model, sampling toward more detail. Connect it to the sampler.