LC Any Empty Bool
The 'is anything upstream dead?' check
- any_01
- any_02
- any_03
- any_04
- any_05
- any_06
- any_07
- any_08
- any_09
- any_10
- any_11
- any_12
- any_13
- any_14
- any_15
- any_16
- any_17
- any_18
- any_19
- any_20
- empty
LC Any Empty Bool answers one question, cleanly: is any of the things plugged into me empty, muted, or bypassed? The answer comes out as a plain true/false you can wire into a switch. Sounds too simple to be worth a node - until you're building a workflow with optional branches and realize ComfyUI has no built-in way to ask that question at runtime.
The context is the plumbing layer of ComfyUI, the part of the graph that routes and gates instead of touching pixels. Its grammar is simple: a fallback switch like rgthree's Any Switch passes the first input that isn't empty, and an empty source usually just means "skip me." LC Any Empty Bool is the inverse and the partner: rather than finding the live branch, it tells you whether a dead one exists, so the graph can react. Wire a few optional upstreams in, and its output can mute a stage, flip a switch, or pick a fallback - the kind of "if this didn't produce anything, use that" logic that otherwise means rebuilding the workflow by hand every run.
Here's how it actually works, because the details matter. The node grows up to 20 input sockets, any_01 through any_20, and they're all type * (ANY) - a model, a latent, an image, a string, anything plugs in. Two rules govern it:
- Only plugged sockets count. Unplugged slots are ignored entirely. An empty socket is not "empty input," it's "not part of the test."
- Empty means several things.
None, a blank or whitespace-only string, an empty tensor, an empty list or dict - any of those reads as empty. And the node checks the workflow graph too: if the source node feeding a socket is muted or bypassed (Comfy's mode 2 and mode 4), that socket counts as empty regardless of what it holds.
Output is one BOOLEAN named empty. It's true if any plugged source is dead, false only when every plugged source delivered a live value. Wire it into an LC Boolean Switch, an LC AnySwitch, or LC Invert Boolean if you want the opposite polarity.
The gotchas are where beginners trip. First: if you plug in nothing at all, the node returns true - the safest reading of "everything is empty," but surprising if you expected false by default. Second, remember that a bypassed source counts as empty here, even though bypassing usually means pass-through. LC123's own remote Bypasser/Mute nodes set exactly those workflow modes, so if you bypass the node feeding a socket, this node treats it as dead. That's the author's design - "any plugged source is empty, muted, or bypassed" is right in the node description - but it surprises people the first time.
One nice pattern: guard a fallback branch. Point a couple of optional image or conditioning slots at it, and when nothing upstream produced output, its true routes the workflow down a safe default path instead of silently running on garbage.
Install is the standard LC123 routine: ComfyUI Manager → search "LC123" (repo ComfyUI_LC123_nodes), or cd ComfyUI/custom_nodes && git clone https://github.com/lonecatone23/ComfyUI_LC123_nodes, then restart. No extra pip packages and no model files - just ComfyUI's own Python env, so it's a light add. The console prints a [LC123] load line when it's in. If you unzipped a release inside an existing clone and got a nested folder, move the files up one level - __init__.py must sit directly in custom_nodes/ComfyUI_LC123_nodes/. And if you're on a hosted/cloud ComfyUI, know that those platforms usually install custom nodes themselves; a "missing node" error loading someone's shared LC123 workflow usually means requesting the pack from the host, not a broken local install.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| any_01opt | * | Any type. Unplugged slots are ignored. | |
| any_02opt | * | Any type. Unplugged slots are ignored. | |
| any_03opt | * | Any type. Unplugged slots are ignored. | |
| any_04opt | * | Any type. Unplugged slots are ignored. | |
| any_05opt | * | Any type. Unplugged slots are ignored. | |
| any_06opt | * | Any type. Unplugged slots are ignored. | |
| any_07opt | * | Any type. Unplugged slots are ignored. | |
| any_08opt | * | Any type. Unplugged slots are ignored. | |
| any_09opt | * | Any type. Unplugged slots are ignored. | |
| any_10opt | * | Any type. Unplugged slots are ignored. | |
| any_11opt | * | Any type. Unplugged slots are ignored. | |
| any_12opt | * | Any type. Unplugged slots are ignored. | |
| any_13opt | * | Any type. Unplugged slots are ignored. | |
| any_14opt | * | Any type. Unplugged slots are ignored. | |
| any_15opt | * | Any type. Unplugged slots are ignored. | |
| any_16opt | * | Any type. Unplugged slots are ignored. | |
| any_17opt | * | Any type. Unplugged slots are ignored. | |
| any_18opt | * | Any type. Unplugged slots are ignored. | |
| any_19opt | * | Any type. Unplugged slots are ignored. | |
| any_20opt | * | Any type. Unplugged slots are ignored. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| empty | BOOLEAN | — |