Sigmas ArcCosine
Reshape a noise schedule with an inverse-trig curve
- sigmas
- SIGMAS
Most scheduler choices in ComfyUI come down to picking a name off a list - Karras, exponential, beta, simple - each one a specific, well-tested curve for how noise level should move across your steps. Sigmas ArcCosine is part of a small family in RES4LYF (alongside Sigmas ArcSine and Sigmas ArcTangent) that lets you build a curve of your own by running an existing schedule through an inverse trigonometric function instead.
How it works
Arccosine takes an input in the range [−1, 1] and returns an angle. That domain restriction is why the node exposes normalize_input: turned on (the default), it rescales your sigma values into [−1, 1] before applying arccos, because feeding arccos anything outside that range is mathematically undefined and will produce NaNs. Once the function's been applied, the result is in radians - not a useful sigma range - so scale_output rescales it back into something usable, bounded by out_min and out_max (defaulting to 0–1).
The practical effect is a specific non-linear reshaping of your schedule's curve: arccosine's slope is shallow near the middle of its input range and steep near the edges, which is a different emphasis than what Karras or beta give you. Whether that's better for your model is genuinely untested territory - this isn't a curve the community has settled on the way it has beta57.
The inputs and outputs that matter
sigmas(SIGMAS, required) - the schedule to reshape.normalize_input(defaulttrue) - rescale into arccosine's valid [−1, 1] domain before applying it. Leave this on unless you know your input is already in range.scale_output(defaulttrue) - rescale the radian output intoout_min–out_max.out_min/out_max(defaults0and1) - the target range for the rescaled output.
Output is a single SIGMAS list.
How to install it
- ComfyUI Manager - search "RES4LYF", install, restart.
- Manual - activate your venv,
cd ComfyUI/custom_nodes && git clone https://github.com/ClownsharkBatwing/RES4LYF,cd RES4LYF,pip install -r requirements.txt(portable builds use the embeddedpip.exe). Restart.
Common issues & troubleshooting
Getting NaNs? Check normalize_input is on. Feeding raw sigma values (which are typically well outside [−1, 1] - a Flux schedule might run from ~1.0 down to 0, or higher depending on shift settings) directly into arccosine without normalizing is the single most likely cause.
Output values don't match your model's expected sigma range. out_min/out_max default to 0–1, which won't line up with every model's actual sigma scale. Set these to match whatever range your sampler expects, or the reshaped curve will effectively be the wrong denoise strength throughout the whole run.
No documented recipe. This isn't covered in the README beyond the general framing that the sigma-manipulation category is experimental, and I found no community discussion of anyone using it. Treat it as raw material for building your own schedule shape rather than a drop-in replacement for the scheduler your model's card actually recommends - that stock recommendation has real community mileage behind it and this doesn't.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| sigmas | SIGMAS | — | |
| normalize_input | BOOLEAN | true | — |
| scale_output | BOOLEAN | true | — |
| out_min | FLOAT | 0.00-10000–10000 | — |
| out_max | FLOAT | 1.00-10000–10000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| SIGMAS | SIGMAS | — |