Sigmas Iteration Karras
Build an up-then-down noise schedule for unsampling loops
- momentums
- sigmas
- momentums
- sigmas
Most schedulers hand you a sigma curve that only goes down - from full noise to clean image. Sigmas Iteration Karras builds one that goes up and then down: a Karras-shaped ramp of noise back into the latent, followed by a Karras-shaped ramp out of it. That "noise up, denoise down" shape is the backbone of RES4LYF's unsampling and resampling tricks, where you deliberately re-noise an existing image and re-solve it to edit or refine.
This is deep in RES4LYF territory. The whole pack is built around treating the sigma schedule as something you sculpt rather than pick from a dropdown - the README calls out its "wide variety of sigma, latent, and noise manipulation nodes" precisely because modulating parameters against time is where a lot of its quality gains come from. If you're doing straightforward txt2img, you do not need this node. If you're building img2img-via-unsampling, iterative refinement loops, or the resample stage after an unsample, this is how you shape the round trip.
How it works
It generates two Karras-style segments and stitches them: steps_up steps rising toward s_max, then steps_down steps falling back toward the minimum. The rho parameters control the curvature of each half the same way rho does in a standard Karras schedule - how aggressively the noise is concentrated in the middle of the ramp. It also exposes a momentums channel alongside the sigmas, and can take existing sigmas/momentums in to build on.
The inputs and outputs that matter
steps_up/steps_down(both default 30) - how many steps to spend re-noising versus denoising. They don't have to be equal.rho_up(3) /rho_down(4) - curvature of each half. Higher rho bunches the change toward the low-noise end.s_max(2) - the peak sigma the up-ramp climbs to; effectively how much noise you inject.s_min_start/s_min_end- the floor sigmas at each end of the round trip.
Outputs are sigmas (SIGMAS) - the full up-down schedule you feed to a sampler's sigmas input - and momentums (SIGMAS), for the pack's momentum-aware sampling. The optional sigmas/momentums inputs let you chain from another schedule node.
How to install it
Part of RES4LYF. ComfyUI Manager: search RES4LYF, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/ClownsharkBatwing/RES4LYF/
cd RES4LYF
pip install -r requirements.txt
Portable builds use the embedded pip. Restart, hard-refresh (F5).
Common issues
This node assumes you know why you'd want an up-down schedule - plug it into a normal one-way txt2img sampler and the results will just be strange. It belongs with sampler_mode set to unsample/resample on a RES4LYF sampler, which disables ComfyUI's own noise addition (the pack is explicit that this is essential for these methods to work). Push s_max very high and you'll re-noise the image so hard the original is gone; too low and nothing changes - it's a dial to feel out, not a set-and-forget. And the broader RES4LYF documentation gap bites here more than anywhere: the community's standing request is literally a scheduler guide, so expect to experiment. Start from the defaults and move one parameter at a time.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| steps_up | INT | 300–10000 | — |
| steps_down | INT | 300–10000 | — |
| rho_up | FLOAT | 3.00-10000–10000 | — |
| rho_down | FLOAT | 4.00-10000–10000 | — |
| s_min_start | FLOAT | 0.03-10000–10000 | — |
| s_max | FLOAT | 2.00-10000–10000 | — |
| s_min_end | FLOAT | 0.03-10000–10000 | — |
| momentumsopt | SIGMAS | — | |
| sigmasopt | SIGMAS | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| momentums | SIGMAS | — |
| sigmas | SIGMAS | — |