Nodes/ComfyUI Prepack/đź’€Prepack SetPipe
ComfyUI Node

đź’€Prepack SetPipe

Bundle your entire pipeline into one wire — this is the node that kills graph spaghetti

By S4MUEL-404·Created 12 months ago·Updated 10 months ago· 2
đź’€Prepack SetPipe
  • model
  • clip
  • vae
  • positive
  • negative
  • latent_image
  • pipe
◄lora_path—►
◄lora_text—►
â—„seed0â–ş
â—„steps20â–ş
â—„cfg8.0â–ş
â—„denoise1.00â–ş

You know the workflow. Model, CLIP, VAE, two conditioning wires, a latent, a seed, steps, CFG, denoise - nine or ten separate wires marching across the canvas from the loaders and settings into the sampler. Every time you reorganize the graph you're untangling that bundle. The đź’€Prepack SetPipe exists to turn those ten wires into one: it packs everything into a single pipe object, and its sibling đź’€Prepack GetPipe unpacks it on the other side.

This is the "pipe" pattern that a lot of the ecosystem has converged on - rgthree's nodes, efficiency nodes, and now this pack all use it for the same reason. The pipe node is the ComfyUI answer to "this graph has too many edges": hide the plumbing, and the layout suddenly looks like a real pipeline instead of a bucket of worms.

How it works

It's a pure data container. set_pipe takes up to twelve optional inputs - model, clip, vae, lora_path, lora_text, positive, negative, latent_image, seed, steps, cfg, denoise - and packs them into a Python dict that it passes along as a single PIPE-typed output. Crucially, every input is optional and defaults to None. You can pack a full pipeline, or you can pack just the two conditioning wires and a seed if that's all your workflow needs to carry. There's no validation, no resizing, no side effects - it's literally a named tuple you can drag around.

The README calls out the current version's two LoRA slots (lora_path and lora_text) because the Prepack LoRA nodes feed them: load LoRAs with đź’€Prepack Loras and it hands you a <lora:name:strength> string plus any associated trigger text, both of which slot straight into the pipe. That's the neat part - the whole "model plus its LoRA metadata" bundle can ride through one wire, so downstream nodes that need to know what was applied can read it.

The inputs that matter:

  • model, clip, vae - the three loaders, wired from whatever model-loading node you use (including this pack's own Model DualCLIP / SingleCLIP loaders).
  • positive, negative - your encoded conditioning.
  • seed, steps, cfg, denoise - the sampling settings you want to carry.

The single pipe output feeds directly into đź’€Prepack GetPipe, which splits it back out into all twelve components. It also works with the pack's bundled JS extension, which colors the pipe wires so you can tell pipes apart at a glance when you're running several.

Gotchas worth knowing

Because every field defaults to None, a half-connected SetPipe is a silent trap: if you forget the model input, the pipe still packs fine, and GetPipe hands you a None model that fails downstream with a confusing "tried to run sampling without a model" style error. Check your wires before running, not after.

Also note the pipe is only as useful as the nodes around it. SetPipe's output type is PIPE, and only nodes that accept PIPE can read it - GetPipe from this pack is the one you'll pair it with. If a workflow you downloaded uses a different pack's SetPipe, the two are usually not interchangeable; the pipe dict shapes differ between packs.

Installing it

Same as every node in the pack - it all ships together:

cd ComfyUI/custom_nodes
git clone https://github.com/S4MUEL-404/ComfyUI-Prepack.git
pip install -r ComfyUI-Prepack/requirements.txt

Or use ComfyUI Manager and search "Prepack". Dependencies are minimal (PyTorch, NumPy, Pillow - already installed). Restart ComfyUI, look under đź’€Prepack. No models, no config.

If the colored wire styling doesn't appear after install, hard-refresh your browser once - the JS extension loads on page load, and an old cached frontend is the most common reason the visual niceties go missing.

Categoryđź’€Prepack

Inputs (12)

NameTypeDefaultDescription
modeloptMODELThe model to pack.
clipoptCLIPThe CLIP to pack.
vaeoptVAEThe VAE to pack.
lora_pathoptSTRINGThe LoRA model path to pack.
lora_textoptSTRINGThe LoRA description to pack.
positiveoptCONDITIONINGThe positive conditioning to pack.
negativeoptCONDITIONINGThe negative conditioning to pack.
latent_imageoptLATENTThe latent image to pack.
seedoptINT00–18446744073709550000The seed value to pack.
stepsoptINT201–10000The sampling steps to pack.
cfgoptFLOAT8.00–100The CFG scale to pack.
denoiseoptFLOAT1.000–1The denoise strength to pack.

Outputs (1)

NameTypeDescription
pipePIPEThe packed pipeline object containing model, clip, vae, lora_text, lora_path, positive, negative, latent_image, seed, steps, cfg, denoise.