ImpactNeg
Flip a boolean without rebuilding your condition
- BOOLEAN
Boolean NOT, as a node. Feed it true, get false back, and the reverse. It's the smallest possible piece of Impact Pack's logic kit, and its whole value is that it saves you from restructuring an upstream comparison just to get the opposite condition.
Why bother with a node this small
Say you've built ImpactIsNotEmptySEGS into a branch that proceeds when a detector found something. Now you need the opposite case too - a branch that does something specifically when nothing was found (log it, skip cleanly, fall back to a different path). You could go find a node that checks "SEGS is empty" instead, if one exists, or rebuild the comparison inverted. Or you just take the boolean you already have and run it through ImpactNeg. One node, no rewiring the actual check, and the intent stays readable on the graph - a NOT gate sitting right where the inversion happens, instead of a duplicated, subtly different comparison somewhere else.
It composes with the rest of the Logic category the same way: ImpactCompare and ImpactIsNotEmptySEGS produce booleans from real conditions, ImpactLogicalOperators combines multiple booleans, and ImpactNeg inverts one. Between those four you can build almost any condition ComfyUI's graph-without-an-if needs.
The input and output
value(BOOLEAN) - the boolean to invert.
Output is a single BOOLEAN - the opposite of what came in. That's the entire node.
Installing it
Comes with the whole pack - no separate step for one logic gate. Via ComfyUI Manager: search ComfyUI Impact Pack, Install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/ltdrdata/ComfyUI-Impact-Pack
cd ComfyUI-Impact-Pack
pip install -r requirements.txt
(portable: python_embeded\python.exe -m pip install -r requirements.txt), restart. No models, no dependencies beyond the base pack.
Common issues
There's genuinely nothing to break in the node itself - it can't misbehave, it just flips a bit. If a branch driven by a negated condition isn't doing what you expect, the bug is virtually never here; check what's feeding value in the first place, and check that you've actually wired the negated output into the branch you meant to (it's an easy click-through mistake to wire the original boolean into a branch instead of the negated one when you're rearranging a graph quickly).
Like the rest of Impact Pack's Logic category, this only comes up if you're building conditional branches or loops by hand. If you're just running FaceDetailer on a straightforward workflow, you'll never touch this category at all, and that's completely normal.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| value | BOOLEAN | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BOOLEAN | BOOLEAN | — |