Sigmas ArcSine
Another inverse-trig reshape for a noise schedule
- sigmas
- SIGMAS
Sigmas ArcSine is the sibling of Sigmas ArcCosine in RES4LYF's sigma toolbox - same idea, different curve. Instead of picking a named scheduler off ComfyUI's dropdown, you run an existing sigma schedule through the arcsine function and get back a differently-shaped curve to sample with.
How it works
Arcsine, like arccosine, is only defined for inputs in [−1, 1]. That's why normalize_input exists and defaults to on: it rescales your sigma values into that range before applying the function, since feeding it raw sigma values (which typically run well outside [−1, 1]) is undefined and produces NaNs. The output comes back in radians, which scale_output then remaps into a usable range via out_min/out_max.
Arcsine's curve is the mirror image of arccosine's in shape but steepest near the edges of its domain rather than concentrated the same way - practically, that means a different distribution of denoising effort across your steps than either arccosine or a stock scheduler gives you. There's no established recommendation for when arcsine beats arccosine or vice versa; this is genuinely unexplored territory for most people.
The inputs and outputs that matter
sigmas(SIGMAS, required) - the schedule to reshape.normalize_input(defaulttrue) - scale into arcsine's valid [−1, 1] domain first.scale_output(defaulttrue) - rescale the radian result intoout_min–out_max.out_min/out_max(defaults0and1) - the target output range.
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
NaN outputs almost always trace back to normalize_input being off, or to sigma values that are already technically in [−1, 1] but not meaningfully - check the actual numbers rather than assuming.
out_min/out_max need to match your model. The defaults (0–1) are a generic placeholder, not a value tuned to any particular checkpoint's sigma range. If your renders come out either barely denoised or wildly over-denoised after adding this node, that's the first thing to check.
This is deep-cut, undocumented territory. The README doesn't mention this node individually, and there's no community thread testing it against the schedules people have actually converged on (beta57, simple, sgm_uniform, depending on your model family). If you're chasing a specific result, start from the model card's recommended scheduler and only reach for this once you've exhausted the tested options - and verify what you get with Sigmas Count and a preview before trusting it on a full render.
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 | — |