ComfyUI Node

image pass

A named mailbox for invisible wires

By aegis72·Created 3 years ago·Updated 2 years ago· 39
image pass
  • image
  • mask
  • image
  • mask

If you've ever loaded a big modular workflow - the AegisFlow family is the obvious one - you've seen nodes like this and assumed they were dead weight. A node that takes an image in and pushes the same image out, no visible reason. It's not. The Aegisflow Image Pass is the most-used member of the pack's "passer" family, and once you get why passers exist, a lot of confusing workflow design suddenly clicks.

What it actually does

Pass-through, full stop. An image goes in, the same image comes out, and there's an optional mask input that rides along as a second output. That's the entire mechanism - the source is a few lines that return whatever you gave it (or None if you gave nothing). The value isn't in the node's own logic; it's in what the existence of the node does to your graph.

Why you'd reach for it

The author (Aegis72) built this pack to solve a problem that plagues modular workflows: ComfyUI and several popular custom node packs try to "fix" open required inputs by auto-wiring any matching output into them - and sometimes wire the wrong thing, silently breaking the workflow. Passers sidestep that because their inputs are optional, and optional inputs don't trigger the autofixing.

There's a second job, and it's the one you'll actually use. With "Use Everywhere" / "Anything Everywhere" style nodes - the invisible-broadcast family that lets one sender reach many receivers without drawing wires - the passer is a nameable target. Rename it (right-click → Title), point your sender at it, and the image arrives at runtime. It also plugs the open receptor at the end of a group's sockets, so a half-built template doesn't error while you're still working on it.

Worth knowing: invisible wiring is genuinely controversial in the community - there was a notable "Please stop using the Anything Anywhere extension" backlash precisely because invisible wires make graphs impossible to debug. The passer is the compromise: the magic still happens, but there's a visible, named anchor you can search for.

Inputs and outputs

  • image (IMAGE, optional) - whatever image tensor you want passed through.
  • mask (MASK, optional) - rides along to the second output.
  • Outputs: image (IMAGE), mask (MASK).

If you leave a socket empty, that output is None. That's fine when a sender is filling it at runtime, and a trap if not.

Installing it

Same story for every node in this pack - you get them all at once:

cd ComfyUI/custom_nodes
git clone https://github.com/aegis72/aegisflow_utility_nodes

Then restart ComfyUI. Or use ComfyUI Manager → Install Custom Nodes → search "AegisFlow Utility Nodes". No models, no heavy dependencies - it's pure Python on top of torch/PIL, which ComfyUI already has.

Where people get burned

The classic mistake: leave the image input empty, wire the output straight into a KSampler or a save node, and wonder why it errors. The passer only returns a real image if something actually fills the input - either you wire one in, or a Use Everywhere sender targets the node's name. Treat it as a mailbox, not a generator. If you're only moving images and want one lean anchor point, this is the one; if you want the whole SD 1.5 stack passed through one node, the pack's "multi pass" is the bigger sibling.

CategoryAegisFlow/passers

Inputs (2)

NameTypeDefaultDescription
imageoptIMAGE
maskoptMASK

Outputs (2)

NameTypeDescription
imageIMAGE
maskMASK