ModelPass
A node that does nothing, on purpose
- model
- model
ModelPass takes a MODEL in and hands the exact same MODEL back out. It doesn't patch, doesn't inspect, doesn't do anything to the tensor at all - and it exists purely as plumbing, to work around a specific limitation of Set nodes.
Why a no-op node earns a place in the pack
KJNodes' Set/Get system lets you tag an output with a name (a Set node) and pull it back in anywhere else in the graph by that same name (a Get node), avoiding long wires crossing your whole canvas. It's a genuinely nice way to keep a busy workflow readable - the March 2026 rewrite of Set/Get even added subgraph support, so a Set in a parent graph is visible inside child subgraphs.
The catch: a Set node doesn't support having its input bypassed cleanly. If you're in the habit of bypassing nodes to A/B a change without deleting anything - a very normal ComfyUI workflow - you can't just bypass the Set node itself and expect the MODEL to keep flowing through unchanged, because Set isn't built to be transparent that way. ModelPassThrough is the fix: drop it right before the Set node. Now you have an ordinary node sitting in the chain that is bypassable, and bypassing it does exactly what you want - the model flows straight through as if the node weren't there.
The inputs and outputs that matter
model(MODEL, optional) in.model(MODEL) out - identical to what went in.
That's the entire schema. There's no strength knob, no toggle - the node's only job is to be a legitimate link in the chain that ComfyUI's bypass mechanism can act on.
Installing it
Ships with the pack:
- ComfyUI Manager - search KJNodes for ComfyUI, install, restart.
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/kijai/ComfyUI-KJNodes, thenpip install -r ComfyUI-KJNodes/requirements.txt, restart.
Nothing else to set up - no models, no config, it's the lightest possible node in the pack.
Common issues & troubleshooting
"Why does this node exist, it doesn't do anything." That's correct, and that's the point - see above. If you're not using KJNodes' Set/Get system at all, you likely have no use for this node; it's a targeted fix for one specific interaction, not a general-purpose tool.
I bypassed the Set node directly and my model didn't pass through. That's the exact scenario this node solves. Insert ModelPassThrough before the Set node instead of trying to bypass the Set node itself, and bypass this one when you need to A/B the change.
Is there a version of this for other types? Yes - its sibling CondPassThrough does the same job for a positive/negative conditioning pair. If you're hitting the same non-bypassable-Set problem with a different data type, check whether KJNodes ships a pass-through for that type before building a workaround yourself.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| modelopt | MODEL | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |