multi pass xl
The SDXL multipasser, refiner sockets included
- image
- mask
- latent
- model
- vae
- clip
- positive
- negative
- refiner model
- refiner clip
- refiner positive
- refiner negative
- sdxl tuple
- image
- mask
- latent
- model
- vae
- clip
- positive
- negative
- refiner model
- refiner clip
- refiner positive
- refiner negative
- sdxl tuple
The aegisflow Multi_Pass XL is the big sibling of the pack's "multi pass" node, and it exists because SDXL workflows carry more luggage than SD 1.5 ones. Where the 1.5 version gangs nine sockets onto one card, the XL version adds the refiner half of the SDXL stack - a whole second model, CLIP, and positive/negative pair - plus the SDXL tuple. Thirteen inputs in, thirteen outputs out, all optional, all pure pass-through.
What it's for
Same philosophy as every passer in this pack: modular workflows have a disease where ComfyUI and some custom node packs try to "fix" open required inputs by auto-wiring whatever matching output is handy - sometimes the wrong one, silently breaking the graph. Passers dodge that because their inputs are optional, so nothing triggers the autofixing. They double as nameable targets for Use Everywhere / Anything Everywhere invisible-broadcast nodes: rename this node, point a sender at it, and the entire SDXL + refiner stack arrives at runtime with no visible wires. In AegisFlow Shima this is the node that collapses into the "superlaser."
How it works
Trivially, and that's deliberate. Each optional input is returned unchanged on the matching output in a fixed order; empty sockets yield None. The value is architectural, not computational - it plugs a group's receptor sockets so a half-built template keeps loading, and it gives your invisible-wiring sender one named destination for everything.
Inputs and outputs
All optional: image (IMAGE), mask (MASK), latent (LATENT), model (MODEL), vae (VAE), clip (CLIP), positive (CONDITIONING), negative (CONDITIONING), then the refiner set - refiner model (MODEL), refiner clip (CLIP), refiner positive (CONDITIONING), refiner negative (CONDITIONING) - and sdxl tuple (SDXL_TUPLE). Outputs mirror all thirteen one-for-one. Nothing is transformed; this is a routing anchor.
Installing it
Standard for the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/aegis72/aegisflow_utility_nodes
Restart ComfyUI, or find "AegisFlow Utility Nodes" in ComfyUI Manager's installer. No model downloads, no heavy dependencies - torch and PIL, which ComfyUI already ships.
Where people get burned
Same trap as the rest of the passers: wire an empty output into something that consumes it and you're feeding None into a KSampler. This node is an anchor for a sender to fill, or a tidy bundle for values you actually wired in - not a source of data on its own. And a note on the "tuple" socket: an SDXL tuple is only meaningful to the loaders that produce and consume it, so if you're not running one of those SDXL loader stacks, leave that socket alone. If you're on SD 1.5, the plain "multi pass" is the one you want; this XL version earns its extra sockets only when the refiner is in play.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| imageopt | IMAGE | — | |
| maskopt | MASK | — | |
| latentopt | LATENT | — | |
| modelopt | MODEL | — | |
| vaeopt | VAE | — | |
| clipopt | CLIP | — | |
| positiveopt | CONDITIONING | — | |
| negativeopt | CONDITIONING | — | |
| refiner modelopt | MODEL | — | |
| refiner clipopt | CLIP | — | |
| refiner positiveopt | CONDITIONING | — | |
| refiner negativeopt | CONDITIONING | — | |
| sdxl tupleopt | SDXL_TUPLE | — |
Outputs (13)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| mask | MASK | — |
| latent | LATENT | — |
| model | MODEL | — |
| vae | VAE | — |
| clip | CLIP | — |
| positive | CONDITIONING | — |
| negative | CONDITIONING | — |
| refiner model | MODEL | — |
| refiner clip | CLIP | — |
| refiner positive | CONDITIONING | — |
| refiner negative | CONDITIONING | — |
| sdxl tuple | SDXL_TUPLE | — |