Any‑to‑Any Adapter
A pass-through that won't break on empty
- input_any
- *
This node accepts anything, and forwards exactly that - no conversion, no filtering. The one detail that separates it from a plain reroute: if nothing's connected to its input, it doesn't error, it returns a clean None instead. That single behavior is the entire reason it exists.
Why "doesn't crash when empty" is a feature
ComfyUI graphs that are meant to be reused as templates - a workflow you share, or one you keep around and adjust run to run - often have optional branches: an optional second reference image, an optional extra conditioning input, a slot you'll fill in sometimes and leave empty other times. Wiring a strict node straight to something that might be disconnected is a common way to get a hard error the moment that slot is empty. Any-to-Any Adapter is built to be a safe stop on exactly that kind of optional wire: leave it disconnected, and instead of the graph erupting, it just quietly hands None downstream, letting whatever's next decide how to handle "nothing was provided" gracefully (assuming that downstream node is written to expect it).
It's also handy as a generic passthrough placeholder anywhere you want a stable connection point on a wildcard-typed wire - the same tidying role a reroute plays for a typed socket, just for the wildcard case.
The input and output
input_any(optional, wildcard*) - connect anything, or nothing.- Output: a single wildcard
*- the input value forwarded unchanged, orNoneif the input was left empty.
How to install it
ComfyUI Manager: search DemonAlone-nodes-ComfyUI, install, restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/DemonAlone/DemonAlone-nodes-ComfyUI
then restart. No dependencies, no models - it's live the moment the pack loads.
Common issues & troubleshooting
Downstream still errors even though this node "handled" the empty case. None flowing out of this node isn't the same as the workflow silently continuing - it just means this node didn't crash. Whatever's next in line still has to be written to tolerate a None input; if it isn't, the error simply happens one step later than it would have without this node in the chain.
I expected a specific default value, not None. This node doesn't supply a fallback value - it only guarantees it won't error on empty. If you need a real default (a blank string, a zero, a specific image), that's a separate concern this node doesn't solve; you'd want a node that explicitly supplies one.
Why not just leave the wire unconnected entirely? Depends on what's on the other end. Some inputs handle being fully unconnected fine on their own; others don't accept an unconnected optional slot cleanly at all in certain graph configurations. Routing through this adapter gives you a consistent, predictable None regardless of exactly how the receiving node is built.
Is this the same as a Reroute node? Functionally close for a connected input - both just pass the value through. The difference that matters is the disconnected case: a plain reroute typically still requires a connection or errors, while this one is built specifically to tolerate being left empty.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| input_anyopt | * | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| * | * | — |