Ino Any Equal
Type-matched equality for any value — the boolean feeder for conditional graphs
- input
- compare
- equal
Conditional workflows live on booleans: if this batch index is 3, do X; if this config string equals that one, do Y. Ino Any Equal is the comparison node that feeds those decisions. It takes two values and outputs whether they're equal - and the interesting part is in the typing: both inputs use ComfyUI's match-type system, which means the two ports agree on whatever type you connect. Wire in two ints, they compare as ints; wire in two strings, they compare as strings.
That match-type design is the thing that makes this node safe in a way a loose "any" compare isn't. You can't accidentally compare an int to a string and get a confusing mismatch - the graph won't even let the two inputs be different types. It's the same mechanism ComfyUI uses for its own relay/compare-style utilities, and it keeps this node from becoming a source of "why is this false" mystery.
How it works
Plain equality under the hood: input == compare, output as a boolean. No fuzzy matching, no tolerance, no case folding. If you're comparing strings, "Batch_01" and "batch_01" are not equal - clean that up upstream if case matters (or doesn't). If you're comparing ints, it's exact integer equality. The output boolean is the whole payload, and you'll typically route it into a switch node (the pack's InoSwitchOnBool or a core switch) or an enabled toggle to branch the graph.
Inputs and outputs
- input - the value to check.
- compare - the value to check against. Same type as
input, enforced by the match-type template. - equal (BOOLEAN) -
truewhen they match.
Installing it
Part of ComfyUI-InoNodes (Inoland). ComfyUI Manager → search "ComfyUI Ino Nodes" → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/nobandegani/comfyui_ino_nodes
cd comfyui_ino_nodes
pip install -r requirements.txt
Restart after. Requires inopyutils (auto-installed) and a current ComfyUI on the V3-style node API, since match-type templates are part of that newer API surface. No keys or downloads.
Common issues
Two things bite people. First, the type-enforcement cuts both ways: if you need to compare across types (an int against a stringified int), this node won't connect until you cast one side first - use the pack's cast nodes to normalize, then compare. Second, remember it's exact equality. Values that look equal - a float 3.0 and an int 3, a string with trailing whitespace - aren't equal to Python, so normalize before you compare rather than after. Beyond that, it's about as deterministic as a node gets: same inputs, same boolean, forever.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| input | COMFY_MATCHTYPE_V3 | — | |
| compare | COMFY_MATCHTYPE_V3 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| equal | BOOLEAN | — |