ComfyUI Node

MultiPipe XL In

Pack an entire SDXL run onto one wire — MultiPipe XL In

By aegis72·Created 3 years ago·Updated 2 years ago· 39
MultiPipe XL In
  • image
  • mask
  • sdxl_tuple
  • latent
  • model
  • vae
  • clip
  • positive
  • negative
  • refiner_model
  • refiner_vae
  • refiner_clip
  • refiner_positive
  • refiner_negative
  • pipe
  • discord
image_width1024
image_height1024
latent_width1024
latent_height1024

A single SDXL run touches a dozen things before a pixel comes out: a model, a VAE, a CLIP, positive and negative conditioning, a latent, and often a whole refiner stack on top. Wire all of that through a big workflow and your canvas turns to spaghetti before you've generated anything. MultiPipe XL In is the answer to exactly that - it's a collector that stuffs the whole bundle into one wire.

It's the input half of AegisFlow's MultiPipe XL pair, and it ships inside AegisFlow Utility Nodes, the free companion pack to aegis72's AegisFlow Shima workflow-building system. The author built these nodes to solve problems while developing Shima, and the central trick here is that every input is optional. The README is blunt about why: optional inputs don't trigger the "autofix" behavior ComfyUI and some custom nodes use to fill open sockets with whatever wire happens to match. So this node is both a collector and a placeholder - drop it into a template, wire the three things you actually use, and leave the rest empty without ComfyUI deciding to "help" by plugging in a random match.

How it works is gloriously unglamorous. The node builds a Python tuple in a fixed order - image, mask, sdxl_tuple, latent, model, vae, clip, positive, negative, then the refiner quartet, then four ints - and hands it out as a single PIPE_LINE. That's a ComfyUI custom type, so it travels down one wire, and MultiPipe XL Out unpacks the same tuple on the other end. It's the same idea as rgthree's Context nodes collapsing a bundle of connections into one wire, just aimed at a full generation instead of a section of graph.

The inputs a beginner actually sets: image, model, vae, clip, positive, and negative carry a normal single-stage run. If you run two-stage SDXL, the refiner_model, refiner_vae, refiner_clip, refiner_positive, and refiner_negative slots carry the second stage. image_width and image_height default to 1024 - SDXL's native resolution - and latent_width/latent_height follow along, so resolution-driven nodes downstream don't need hardcoded numbers.

Outputs: pipe (a PIPE_LINE) and discord (a STRING). Wire pipe into MultiPipe XL Out, or into any node that consumes a pipe. The discord output just returns the AegisFlow Discord invite - a quirk of the pack. Show it on a text node if you like, otherwise ignore it.

One trap before you go: unfilled inputs don't come out "empty," they come out as a 0 sentinel. Pack a pipe with nothing and unpack it into a sampler and you'll get errors, not a blank image. Only pack what you'll actually use.

Install is the standard two-liner:

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

Restart ComfyUI and it's there. Easier still: ComfyUI Manager → Install Custom Nodes → search "AegisFlow Utility Nodes" → install. No models to download and no requirements.txt in the repo - a couple of the fx nodes in this pack pip-install their libraries on first import, but that's none of this node's business. First launch after install may take an extra beat; that's the pack checking its deps, not a hang.

CategoryAegisFlow/passers

Inputs (18)

NameTypeDefaultDescription
imageoptIMAGE
maskoptMASK
sdxl_tupleoptSDXL_TUPLE
latentoptLATENT
modeloptMODEL
vaeoptVAE
clipoptCLIP
positiveoptCONDITIONING
negativeoptCONDITIONING
refiner_modeloptMODEL
refiner_vaeoptVAE
refiner_clipoptCLIP
refiner_positiveoptCONDITIONING
refiner_negativeoptCONDITIONING
image_widthoptINT102464–18446744073709550000
image_heightoptINT102464–18446744073709550000
latent_widthoptINT102464–18446744073709550000
latent_heightoptINT102464–18446744073709550000

Outputs (2)

NameTypeDescription
pipePIPE_LINE
discordSTRING