LogNormal Scheduler
The bell curve, skewed the way noise actually behaves
- SIGMAS
The LogNormal Scheduler is the sibling of GaussianScheduler, and it exists because noise doesn't behave like a plain symmetric bell curve. A log-normal distribution is a bell that's been skewed - a long tail stretching off to one side, the mass of it concentrated at the other. Applied to a sigma schedule, that gives you a curve where most of the interesting denoising happens in a concentrated region and the rest of the run trails off gently. It's the sort of shape people hand-build when they want a middle-heavy schedule with soft landings on both ends.
How it works
Like its Gaussian sibling, it evaluates a probability density function across an x-window defined by a and b, then rescales the curve to sit exactly between sigma_min and sigma_max. The difference is the distribution: instead of a symmetric bump, you get the log-normal's distinctive asymmetry. mean shifts where the peak of that skewed bump lands, and standard_deviation controls how spread out (and how lopsided) it is. Small stdev gives a sharp, heavily-peaked curve with most steps doing almost nothing; larger stdev spreads the effort into a gentler dome. Either way the shape is asymmetric in a way a plain Gaussian isn't, and that asymmetry is the point.
The inputs that matter
steps(20) - number of sigma values.sigma_max(1.0) /sigma_min(0.0) - endpoints. 0–1 by default.mean(0.0) - where the skewed peak sits.standard_deviation(1.0) - spread and lopsidedness. Your main shape dial.a(0.0) /b(1.0) - the x-window. Swapped automatically ifa > b; an error if they're equal.
Output is a SIGMAS array.
Install
Part of ComfyUI-ScheduledGuider-Ext. ComfyUI Manager - search ComfyUI-ScheduledGuider-Ext - or:
cd ComfyUI/custom_nodes
git clone https://github.com/mfg637/ComfyUI-ScheduledGuider-Ext
Restart ComfyUI. No models, no extra dependencies.
Common issues
By now you know the drill: default range is 0–1, which is ideal for a guider's CFG curve and wrong for a raw sampler schedule - run it through ScaleToRange first if it's going to a KSampler.
The subtler thing: a log-normal's long tail means some of your sigma values sit very close together, which is fine for a CFG curve (denser points = smoother interpolation) but can waste sampler steps if you feed it as a real schedule on a model that doesn't want concentration. And the flow-matching caveat from GaussianScheduler applies double here - heavily skewed schedules are exactly the kind of aggressive reshaping that flow-matching models dislike. SD 1.5/SDXL, or a guider curve, is where this node belongs.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| steps | INT | 201–10000 | — |
| sigma_max | FLOAT | 1.000–5000 | — |
| sigma_min | FLOAT | 0.000–5000 | — |
| mean | FLOAT | 0.00-5000–5000 | — |
| standard_deviation | FLOAT | 1.000–5000 | — |
| a | FLOAT | 0.00-5000–5000 | — |
| b | FLOAT | 1.00-5000–5000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |