Sigmoid
Squash any number into 0–1
- FLOAT
Sigmoid takes one float and returns another float between 0 and 1, using the classic logistic curve: 1 / (1 + e^-x). Feed it 0, get 0.5. Feed it a big positive number, get something close to 1. Feed it a big negative number, get something close to 0. That's the whole node - no widgets to tune, no toggles, just the function.
It's one of the small Math-category nodes in ComfyUI-LogicUtils, aria1th's pack of logic-gate, random-number, and data-plumbing utilities. If you know the name at all it's probably because aria1th also goes by AngelBottomless, the trainer behind the Illustrious XL checkpoints - this pack is a completely different, much quieter side of the same GitHub account, and one that's gone quiet itself: the last push landed 2026-01-21.
How it works
Any real number goes in. The output is bounded to (0, 1) - it never actually hits exactly 0 or 1, it just gets asymptotically close. The curve is steepest right around 0 and flattens out fast as you move away from it in either direction, which is the useful/annoying property depending on what you're doing with it: small changes near 0 move the output a lot, but once you're out past roughly ±5 the output barely moves at all - it's saturated.
Inputs and outputs
- input1 - any float. No default value shown, no range limit; it's whatever's wired in.
- Output - a single FLOAT in (0, 1).
That's the entire schema. One in, one out.
Where you'd actually use it
The honest use case is graph plumbing rather than image generation directly: you've got some unbounded number floating around your workflow - a running counter, the output of another math node, a random draw from one of this same pack's random-number nodes - and you need it squashed into a clean 0–1 range before it can be used as a blend weight, a strength multiplier, or a soft on/off gate feeding a comparison node further down the chain. It's the kind of node that shows up in workflows built by people doing programmatic/dynamic generation (batch variation, procedural parameter sweeps) rather than a standard txt2img pipeline.
Installing it
ComfyUI Manager → search ComfyUI-LogicUtils → install → restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/aria1th/ComfyUI-LogicUtils
No models, and reportedly no real dependencies either - a r/StableDiffusion thread about doing lightweight number comparisons in ComfyUI singled this pack out specifically because, unlike WAS Node Suite or Impact Pack, "it doesn't have dependencies." The README's own install hook is opt-in via COMFYUI_LOGICUTILS_AUTO_INSTALL=1 (and can be forced off with COMFYUI_LOGICUTILS_SKIP_INSTALL=1), which fits a pack that mostly doesn't need anything installed beyond itself.
Common issues
The main trap isn't a bug, it's the math: because the curve saturates so fast, feeding it anything much larger than about 5 or smaller than about -5 gives you an output that's functionally 1 or 0 - you lose the gradient you might have been hoping to preserve. If you're chaining Sigmoid after something that can produce large values, expect it to flatten out rather than track proportionally.
Beyond that, there isn't much to troubleshoot in a single-input, single-output math function. The one thing worth flagging pack-wide: this hasn't been updated since January 2026, so if a ComfyUI core change ever breaks something here, there's no guarantee of a quick fix - it's a small, single-author utility pack, not an actively maintained one.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| input1 | FLOAT | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| FLOAT | FLOAT | — |