Boolean AND All
One gate for 'every single condition passed'
- values
- BOOLEAN
The moment your workflow has a "do I actually want to run this expensive step" condition that needs to check three or four things at once, a single two-input AND stops cutting it. Boolean AND All is the version that grows: feed it any number of booleans and it tells you whether every single one of them is true.
What it's for
You've built the workflow, and now it has an upscaler, a face-fix pass, or a video sampler that costs real time and VRAM. You want it to run only when everything checks out - a toggle is on, a reference image actually loaded, a controlnet isn't disabled. That's a multi-condition AND, and chaining five two-input gates for it is how you end up with a graph nobody can read. This node collapses all of that into one auto-growing input list: connect booleans, get one answer.
It's the same pattern rgthree and Impact-style utility packs popularized - gate your expensive branches behind explicit conditions instead of hoping the workflow does the right thing - just delivered as one clean node. It's part of Nifty Nodes, which is built on the current comfy_api.latest v3 API, so it runs on the Nodes 2.0 frontend without compatibility shims.
How it behaves
The values input auto-grows as you connect sockets - up to 16 boolean inputs. The output is a single BOOLEAN that's true only if every connected input is true. Two details from the tooltip are worth knowing before they surprise you:
- With nothing connected, it returns
true. An empty AND is vacuously true. If you haven't wired it up yet, the output readstrueand downstream gates will happily pass - which is a fun way to waste a queue while debugging. - Any single
falseinput flips it tofalse. There's no partial credit; it's an all-or-nothing gate.
That output wires into the same places as any boolean: a switch's selector, a bypass node's bypass toggle, an enabled flag on a node that has one.
Pairing it with lazy nodes
Where this earns its keep is in front of the pack's lazy switches. Wire AND All's output into a lazy Input Switch and the unused branch never executes - that's the actual "save me the compute" behavior. Hook it into an eager node and both branches run anyway, and your gate is just a status light. Decide which behavior you want before you wire it.
Install
It's part of Nifty Nodes for ComfyUI. Via Manager: search "Nifty Nodes for ComfyUI" → Install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/Stibo/comfyui-nifty-nodes
Restart ComfyUI afterward. No models, no keys, no extra dependencies - it's pure logic. The pack is MIT-licensed and new enough (v2.1.0, mid-2026) that you should update it before loading workflows that reference it.
Gotchas
The vacuous-truth behavior on empty input is the one that bites. If you build the workflow with the list half-connected and get a mysteriously-always-true gate, that's why. Also remember the auto-grow starts at two inputs and only appears once you connect something - so don't panic that it "has no sockets" at first glance.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| valuesopt | COMFY_AUTOGROW_V3 | Returns True only if all connected boolean inputs are True. Returns True if nothing is connected. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| BOOLEAN | BOOLEAN | — |