HasInputvalue
Ask ComfyUI 'is anything actually connected here?'
- input
- Input
ComfyUI has a quirk that trips up everyone eventually: an optional input you didn't wire arrives as None, and a node that produces None looks the same as one that never ran. This node is the polite way to ask "is there actually a value here?" It takes anything - the * wildcard - and returns a real BOOLEAN: True if the input has a value, False if it's None or disconnected.
The practical use is gating. You build a workflow with an optional branch - maybe a reference image, maybe an optional LoRA, maybe an optional second prompt - and downstream you want behavior to change depending on whether that branch is live. Wire the optional input through this node, and its boolean output can flip a FloatIfElse, a switch, or a condition downstream. It's the "is this thing plugged in" check that turns a rigid graph into one that adapts.
How it works
The logic could not be simpler: if input is None: return False; else: return True. The input is typed *, so it accepts literally any type ComfyUI can carry - an IMAGE, a MODEL, a string, a latent. That's the whole mechanism.
Two implementation details are worth knowing because they're common across this pack and worth understanding once:
- The node declares an
IS_CHANGEDmethod that returns a random value, which means it re-executes every run. That's deliberate - a presence check is only useful if it re-checks, but be aware it also means this node defeats ComfyUI's caching for whatever is downstream of it. One or two of these in a graph is fine; a dozen will make the workflow feel sluggish for no visible reason. - The output is typed
BOOLEAN, but it's actually a Pythonboolthat ComfyUI's boolean sockets accept directly.
The inputs that matter
Just one: input - any value you want to test for existence. And one output: a BOOLEAN named Input in the schema.
Installing it
Ships in ComfyUI-Przewodo-Utils. Install via ComfyUI Manager (search the pack title) or:
cd ComfyUI/custom_nodes
git clone https://github.com/przewodo/ComfyUI-Przewodo-Utils.git
Restart ComfyUI. No extra dependencies.
Where people get tripped up
The overlap with the sibling node is the main source of confusion. This pack also ships IsInputDisabled, which is the same idea inverted - it returns True when the input is absent, and adds an invert_output toggle. They're two names for one concept, so pick one and don't wire both into the same workflow or you'll drive yourself mad debugging the polarity. Prefer this one if you think in terms of "is something there," and the other if you think in terms of "is this branch off."
Also remember: None doesn't just mean "disconnected." If an upstream node genuinely outputs None (like a loader that failed to find its file), this reads it as False too. Which is usually what you want - an absent value is an absent value.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| inputopt | * | Any input value to check for existence. Returns True if the input has a value (not None), False if it's None or disconnected. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Input | BOOLEAN | — |