Nodes/Tojioo Passthrough/Multi-Passthrough
ComfyUI Node

Multi-Passthrough

14 typed sockets, one node, wire only what you need

By Tojioo·Created 11 months ago·Updated 7 months ago· 13
Multi-Passthrough
  • image
  • mask
  • latent
  • positive
  • negative
  • clip
  • model
  • vae
  • control_net
  • sam_model
  • image
  • mask
  • latent
  • positive
  • negative
  • clip
  • model
  • vae
  • control_net
  • sam_model
  • text
  • int
  • float
  • boolean
text
int
float
boolean

Multi-Passthrough is the static, no-surprises version of the pack's dynamic bundlers. Where Dynamic Passthrough grows sockets as you connect, this one just hands you a fixed menu of 14 typed sockets and lets you wire whichever few you actually need. image, mask, latent, positive, negative, clip, model, vae, control_net, sam_model, text, int, float, boolean - each has an input and a matching output, and every unconnected pair simply passes through as nothing.

Think of it as a labeled splice block for the types a real workflow carries around. If you've ever built a subgraph that needs to thread a model, a VAE, a clip, and a pair of conditionings across a boundary, this is the node you'd put at the seam: wire in the four you need, leave the other ten sockets empty, and the outputs mirror the inputs with their types intact. Predictable, legible, and no frontend magic required - it works identically no matter how the UI is behaving.

How it works

Mechanically it's a batch of simple passthroughs sharing one node. run reads every one of the named inputs and returns them as a tuple in fixed order - an input with no connection comes out as None. The text, int, float and boolean sockets are marked forceInput, so they're connect-only like the rest (no type-in widgets); the wiring is the interface.

Inputs and outputs

The full list, all optional:

  • image (IMAGE), mask (MASK), latent (LATENT), positive (CONDITIONING), negative (CONDITIONING), clip (CLIP), model (MODEL), vae (VAE), control_net (CONTROL_NET), sam_model (SAM_MODEL), text (STRING), int (INT), float (FLOAT), boolean (BOOLEAN)

…and the same 14, in the same order, coming back out. Each output carries the input's value unchanged. Note that conditioning comes as a pair of sockets - positive and negative - rather than one combined value, which matches how the KSampler wants them.

Install

Manager → search "Tojioo Passthrough" → Install → restart, or:

cd ComfyUI/custom_nodes
git clone https://github.com/Tojioo/tojioo_passthrough.git

No models, no pip deps, prebuilt frontend. This node sits at the top of the pack's category tree, Tojioo Passthrough (no subfolder), so it's easy to find. Small single-maintainer pack, GPL-3.0.

Common issues

The None behavior is the thing to respect: unconnected sockets don't error, they silently produce None, so whatever consumes an output needs to tolerate that or you'll get a confusing "missing input" deep in your graph. It's a feature when you're using the pack's fallback patterns - muted branches read as missing - but it's a footgun if you assume every output is populated. One honest comparison: if your socket needs change often, the dynamic nodes in this same pack grow and shrink with you; Multi-Passthrough is the choice when you want the exact same 14-socket layout every time.

CategoryTojioo Passthrough

Inputs (14)

NameTypeDefaultDescription
imageoptIMAGE
maskoptMASK
latentoptLATENT
positiveoptCONDITIONING
negativeoptCONDITIONING
clipoptCLIP
modeloptMODEL
vaeoptVAE
control_netoptCONTROL_NET
sam_modeloptSAM_MODEL
textoptSTRING
intoptINT
floatoptFLOAT
booleanoptBOOLEAN

Outputs (14)

NameTypeDescription
imageIMAGE
maskMASK
latentLATENT
positiveCONDITIONING
negativeCONDITIONING
clipCLIP
modelMODEL
vaeVAE
control_netCONTROL_NET
sam_modelSAM_MODEL
textSTRING
intINT
floatFLOAT
booleanBOOLEAN