MD: Sigma Smooth
Smooth out a jagged noise schedule before it bites you
- sigmas
- SIGMAS
Every scheduler hands your sampler a list of sigma values - the noise levels it steps through. Most are smooth curves, but some (custom schedules, concatenated ones, aggressive low-step presets) come out jagged, and jagged sigmas produce unpredictable denoising steps and artifacts. Sigma Smooth is a tiny utility that filters that list: it smooths the schedule and hands it back. One input, one output, and a couple of knobs. That's the whole node, and for a niche utility that's fine.
How it works
You feed it a SIGMAS schedule and it applies a smoothing filter, then returns a cleaned SIGMAS. Three algorithms:
gaussian- bell-curve weighted smoothing. The standard choice; it preserves the schedule's overall shape while rounding off spikes.moving_average- simple mean over a window. Cruder, but predictable.exponential- decay-weighted, which responds faster to recent changes.
window_size (default 3) is the kernel size - how many neighbors each point considers. Bigger window, smoother result, more shape loss.
Two controls shape the behavior:
smoothing_strength(0–1) - how much of the smoothed result to use. 0 is a pass-through, 1 is fully smoothed. Start low; a little smoothing goes a long way.preserve_endpoints(default True) - locks the max/min noise values (the first and last sigmas) so the schedule's start and end stay put. This is the important one: the endpoints define how much noise you begin and end with, and blurring them changes the effective denoise. Keep it on unless you have a reason not to.
Where you'd reach for it
The realistic use cases are narrow but real: you built or concatenated a custom schedule and it has a visible staircase; you're using a scheduler whose output is noisy at low step counts; or you want to de-spike an aggressive schedule before it makes a turbo model hallucinate. Drop Sigma Smooth between the scheduler and your KSampler's sigmas input.
The honest caveat: it's a "fix the schedule you already have" tool, not a scheduler itself. If your schedule comes out smooth, this node is a no-op you don't need. And over-smoothing a schedule that was supposed to be aggressive (like a low-step cluster schedule) will defeat its purpose - the curvature is often the point.
Installing
It's part of MD Nodes:
cd path/to/ComfyUI/custom_nodes
git clone https://github.com/MDMAchine/ComfyUI_MD_Nodes.git
cd ComfyUI_MD_Nodes && pip install -r requirements.txt
Or via ComfyUI Manager (search MD Nodes), then restart. Standard pack caveat: heavy requirements (audio stack, matplotlib, client SDKs) for what is effectively a torch filter.
Sigma Smooth is the rare node that's honestly described by its name. Feed it a jagged schedule, get a smoother one, keep the endpoints locked, and move on with your life. Nothing more to it.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| sigmas | SIGMAS | INPUT SIGMAS | |
| smoothing_strength | FLOAT | 0.000–1 | STRENGTH • Amount of smoothing. |
| smoothing_type | COMBO | ALGORITHM • Gaussian: Bell curve weighted. • MA: Simple average. • Exponential: Decay weighted. | |
| preserve_endpointsopt | BOOLEAN | true | PRESERVE START/END • Keep max/min noise values locked. |
| window_sizeopt | INT | 3 | WINDOW SIZE • Kernel size for smoothing. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |