Nodes/image_control/abyz22_Editpipe
ComfyUI Node

abyz22_Editpipe

Swap one slot of a pipe without rebuilding it

By abyz22·Created 3 years ago·Updated 2 years ago· 17
abyz22_Editpipe
  • pipe
  • MODEL
  • CLIP
  • VAE
  • Positive
  • Negative
  • IMAGE
  • latent_Image
  • latent
  • pipe

Pipes tidy up a graph, but they're only useful if you can change what's inside them mid-graph. abyz22_Editpipe is the "swap one part" node: you feed it an existing pipe plus any new value for any slot, and it returns the pipe with just those slots replaced. Swap the VAE, drop in new positive conditioning, change the image - everything else rides through untouched.

It's part of the pipe quartet in abyz22/image_control (abyz22_Topipe builds, abyz22_Frompipe unpacks, abyz22_Editpipe edits, abyz22_Convertpipe translates to Impact Pack's BASIC_PIPE). The pack is an Impact Pack fork, and the pipe concept is lifted straight from Impact's own pipe system - this one just carries a couple of extra slots (an image and two latents).

What it accepts

Required: pipe. Every other input is optional, and the rule is simple - anything you connect replaces that slot; anything left empty keeps the old value:

  • MODEL, CLIP, VAE - model objects.
  • Positive, Negative - conditioning.
  • IMAGE - an image.
  • latent_Image, latent - two latent slots.

Output is a single pipe.

How it works

The code reads the incoming pipe, then for each connected input writes it into the pipe dict, skipping any that are None. That "skip None" behavior is the whole design - it's how you do a partial update without a pile of reroutes. One honest warning from the source: the latent input is accepted but never written back; the code only updates latent_image. If you connect the latent slot expecting it to replace the pipe's latent, nothing happens. It looks like a bug that shipped, so plan around it by editing latent_Image instead.

Install

cd ComfyUI/custom_nodes
git clone https://github.com/abyz22/image_control

or ComfyUI Manager → "image_control", restart. The pack pulls in openpyxl, pytorch-lightning, and kornia on install.

Where it fits

Reach for this when a branch of your workflow needs a different model or conditioning but you don't want to re-run the pipe construction. The natural pattern: abyz22_Topipe at the top, a couple of Editpipes mid-graph swapping slots for alternate branches, abyz22_Frompipe at the bottom to unpack into whatever sampler you're using. The gotcha to internalize is that "not connected" is a meaningful state - if you want to clear a slot back to empty, this node can't do it; you'd rebuild the pipe. Fine for 95% of cases, worth knowing before you chase a "why is my old latent still there" half hour.

Categoryabyz22

Inputs (9)

NameTypeDefaultDescription
pipePIPE
MODELoptMODEL
CLIPoptCLIP
VAEoptVAE
PositiveoptCONDITIONING
NegativeoptCONDITIONING
IMAGEoptIMAGE
latent_ImageoptLATENT
latentoptLATENT

Outputs (1)

NameTypeDescription
pipePIPE