๐ Scale Sigma
Turn a noise schedule up, down, or sideways
- sigmas
- scaled_sigmas
- max_sigma
If you're feeding a sampler a custom sigma schedule, you will, eventually, want to change its loudness. SigmaScaler is the volume knob - it takes a SIGMAS tensor and transforms every value in it, with three controls for how the transformation behaves. It's the node you reach for when a schedule feels too aggressive, too weak, or just wrong in one specific direction, and you want to fix it without rebuilding the whole curve.
The inputs
sigmas(required, typeSIGMAS) - the schedule to transform.scale(FLOAT, default 1) - the multiplier. Below 1 quiets the whole schedule, above 1 loudens it.scale=0.5halves every noise level.offset(FLOAT, default 0) - a value added to every sigma. This shifts the floor: a positive offset keeps the minimum noise level off the floor, a negative one pushes the whole schedule down.power(FLOAT, default 1) - the exponent, applied last. It's the nonlinear knob:power > 1pushes the schedule toward the extremes,power < 1compresses it toward the middle.
Outputs are scaled_sigmas (SIGMAS) and max_sigma (FLOAT), the latter being the largest value in the result so you can confirm the transformation didn't send the schedule somewhere surprising.
The formula and what it means
The transformation is exactly:
scaled = ((sigma * scale) + offset) ^ power
then clamped at 0 so nothing goes negative. Order matters: multiply, then shift, then exponent. So scale and offset are the "move it" controls and power is the "reshape it" control.
In practice:
scale < 1- a gentler run. The whole schedule is quieter, so the sampler does less aggressive denoising overall. The schedule keeps its shape, just softer.offset > 0- lifts the quiet end off zero, which means sampling never quite reaches "no noise." Useful when you want to avoid that last crisp step or are experimenting with schedules that stay slightly noisy.power- for when linear isn't enough. A power below 1 flattens the curve toward its middle values; above 1 emphasizes the contrast between loud and quiet steps. This is the knob that can turn a plain linear schedule into something curve-like.
The honest caveat
A scaled schedule is a modified schedule, and "louder" isn't always "better." The Karras-vs-flow-matching lesson applies here too: on DDPM-style models (SD 1.5/SDXL), reshaping a schedule is a legitimate tuning tool; on flow-matching models, heavy reshaping is a known way to make things worse. Small, surgical changes are the safe play. Also worth remembering: this transforms the tensor, it doesn't re-validate the result - after a big scale or power, run the output through SigmaAnalyzer to confirm the min/max still look like a sane schedule.
Install
Pack: InitialB Util. ComfyUI Manager โ search "InitialB Util" โ Install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/benjiyaya/Comfyui_InitialB_Util
cd Comfyui_InitialB_Util
pip install -r requirements.txt
Restart ComfyUI. No model downloads; requirements are torch/numpy/scipy/Pillow, all bundled with ComfyUI. The README's clone URL is a placeholder - use the real repo above or Manager. Under InitialB/sigma/custom, right next to the generator and analyzer it's meant to work with.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| sigmas | SIGMAS | โ | |
| scale | FLOAT | 1.000.01โ100 | โ |
| offset | FLOAT | 0.00-10โ10 | โ |
| power | FLOAT | 1.00.1โ5 | โ |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| scaled_sigmas | SIGMAS | โ |
| max_sigma | FLOAT | โ |