Nodes/ComfyUI-ClybsChromaNodes/InverseSquaredScheduler
ComfyUI Node

InverseSquaredScheduler

Spend your diffusion steps where the detail lives

By Clybius·Created about a year ago·Updated about a month ago· 13
InverseSquaredScheduler
  • model
  • SIGMAS
steps20
denoise1.00

A scheduler decides where in the denoising process you spend your steps. Most stock schedulers spread them evenly or front-load them. InverseSquared does the opposite - it crams resolution into the end of the trajectory, when the model is locking in fine detail, and skims through the early composition-heavy steps. If you've ever felt like your last few steps do all the visible work, this is the scheduler that formalizes that feeling.

The name is the mechanism: it maps a linear step index t through (1 - t²)², then uses that to index into your model's own sigma grid. The result is a schedule that's fine-grained near the end and coarse at the start, built entirely from sigmas the model already knows - nothing invented, no extra model files.

Inputs and wiring

Three inputs, all boring:

  • model - the scheduler reads the sigma range from your model's model_sampling, so no separate config.
  • steps (default 20, range 3–1000) - how many sigmas to emit.
  • denoise (default 1.0) - drop below 1.0 for img2img-style short schedules; the node internally computes the full schedule then slices off the tail.

The output is a SIGMAS tensor, which gives you two ways to use it. In a KSampler you can't wire a SIGMAS input (it takes a scheduler name), so there the pack registers this same schedule as a string - just type or pick inverse_squared in the scheduler dropdown. If you're on a custom-sampling setup, wire the SIGMAS output into the scheduler input of SamplerCustom or its KSampler-advanced equivalents.

The honest take

Here's the caveat you need before you get excited: flow-matching models (Chroma, FLUX, SD3) have taught the community to be suspicious of aggressive sigma reshaping. Karras and exponential fail across the board on those architectures because they distort a near-straight trajectory. InverseSquared is a milder beast - it reshuffles which of the model's existing sigmas you visit rather than inventing new noise levels - but it's still a redistribution of effort. So treat it as a tool to A/B, not a default. On a fixed seed, compare it against the stock simple or normal schedules at the same step count, and keep whichever your eye actually prefers.

Installing

Part of the ComfyUI-ClybsChromaNodes pack, no dependencies:

cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/Clybius/ComfyUI-ClybsChromaNodes.git
# restart ComfyUI

Or ComfyUI Manager → search "ComfyUI-ClybsChromaNodes". Once it's loaded, the inverse_squared name appears in every scheduler dropdown and the node sits under sampling/custom_sampling/schedulers.

One more thing

The same file ships PrintSigmas, a one-input debug node that prints whatever SIGMAS pass through it to the console and hands them on unchanged. If you're debugging a custom-sampling chain, drop it inline and look at the terminal - it's the cheapest way to see what your schedule actually contains.

Categorysampling/custom_sampling/schedulers

Inputs (3)

NameTypeDefaultDescription
modelMODEL
stepsINT203–1000
denoiseFLOAT1.000–1

Outputs (1)

NameTypeDescription
SIGMASSIGMAS