Sigmas StepwiseMultirate
Build a multi-stage schedule in one node
- SIGMAS
Splitting a generation across two samplers with different jobs - one handling the early, high-noise steps with a fast sampler, a second finishing the low-noise steps carefully - is a genuinely common pattern in current video and image workflows, especially with dual-model setups where a "high" and "low" noise model each do part of the work. People build that by hand today: run one KSampler over the first chunk of steps, hand off to a second over the rest, each with its own settings.
StepwiseMultirate gives you a single-node way to bake that kind of multi-stage pacing directly into one generated schedule, without needing to physically cut and rejoin two schedules with separate sampler nodes. You define your total step count, then a set of decay rates and the boundaries where the schedule switches between them.
How it works
steps is the total length of the output schedule. rates (a string, default "1.0,0.5,0.25") lists a decay-rate multiplier for each segment - three numbers means three segments, each falling at a different relative speed. boundaries (default "0.3,0.7") marks where those segments switch, as fractions of the total schedule - two boundary values split the schedule into three pieces, which lines up with three rates. start_value and end_value set the overall high and low bounds the whole thing spans. pad_end (on by default) controls whether the final segment is adjusted to land exactly on end_value at the last step, rather than potentially falling a little short or past it.
The inputs and outputs that matter
All six - steps, rates, boundaries, start_value, end_value, pad_end - are required, since this generates a schedule from parameters rather than transforming one. One output: SIGMAS.
Installing it
ComfyUI Manager: search RES4LYF, install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/ClownsharkBatwing/RES4LYF/
cd RES4LYF
pip install -r requirements.txt
Portable installs should use the embedded pip.exe. Restart and hard-refresh afterward.
Where people get tripped up
The count of rates needs to line up with the count of boundaries plus one - three rates need exactly two boundary values to divide the schedule into three segments. Get that mismatched and the node either ignores the extra entries or falls back to something you didn't intend; keep the two strings' lengths consistent as you edit them.
Both rates and boundaries are plain comma-separated text fields, not dropdowns, so a stray space or an extra comma is an easy way to end up with a segment you didn't mean to create. If the resulting schedule's shape looks nothing like what you typed, check those two strings character by character before assuming the math is wrong.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| steps | INT | 301–1000 | — |
| rates | STRING | 1.0,0.5,0.25 | — |
| boundaries | STRING | 0.3,0.7 | — |
| start_value | FLOAT | 10.00–100 | — |
| end_value | FLOAT | 0.010–100 | — |
| pad_end | BOOLEAN | true | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |