Boolean Inverter (Soze)
The NOT gate stock ComfyUI doesn't ship
- BOOLEAN
This flips a boolean. True becomes false, false becomes true. That's genuinely the entire node, and it sounds too trivial to write about until you're deep in a graph and the only bool you have wired to a given point is the exact opposite of the condition you actually need to gate something with.
How it works
Straight logical NOT, nothing more. Stock ComfyUI doesn't ship a dedicated invert node - if you needed one before, you were probably building it out of a Switch or reaching for a math node repurposed for the job. This is that missing piece as a one-input, one-output utility.
The real use case is upstream nodes that only expose one direction of a toggle. Plenty of nodes give you an "enable X" boolean, but the gate or switch you're feeding downstream needs "skip when true" logic instead. Rather than restructuring your control flow or duplicating the condition, you invert the one bool you already have and move on.
It also comes up more than you'd expect once you start building reusable sub-graphs. Say you've got a "skip this step" toggle that several downstream nodes need, but one of them was written expecting "run this step" instead - rather than exposing two separate control widgets that have to be kept in sync by hand, you expose one and invert it locally wherever the opposite sense is needed. One source of truth, no risk of the two toggles drifting out of agreement.
The inputs and outputs that matter
One input, bool (required, BOOLEAN, default false). One output, BOOLEAN - the opposite value.
How to install it
ComfyUI Manager → search "ComfyUI_Soze" → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/SozeInc/ComfyUI_Soze.git
pip install -r ComfyUI_Soze/requirements.txt
then restart. Zero dependencies - this is about as light as a custom node gets.
Common issues & troubleshooting
There's genuinely not much that goes wrong here. If a downstream gate isn't behaving the way you expect, the most likely cause in a larger graph is that you've inverted the same value twice somewhere without noticing - two inverters chained cancel each other out, and that's an easy thing to lose track of once a workflow has grown past a screenful of nodes. Trace the boolean back to its source if the logic seems backwards, rather than assuming this node itself is at fault.
Pairs naturally with Bool To String, elsewhere in this pack, if you need to both flip a condition and then render it as readable text - for a filename, a log line, or a debug preview.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| bool | BOOLEAN | false | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BOOLEAN | BOOLEAN | — |