Shima Latent Pass
A latch point for your latent — the smallest node in the pack, on purpose
- latent
- latent
Shima Latent Pass is a one-port passthrough: LATENT in, the same LATENT out. It computes nothing. But it's part of Shima's "Passer" family, and in the pack's island model these no-op nodes do a real job even though they touch zero pixels.
The idea, from the pack's own docs: islands are self-contained workflow fragments that auto-connect through the Use Everywhere broadcast system, and passers are "stable airports at the edge of each Island." Because their inputs are optional and typed, they give the broadcast system a correct landing pad - ComfyUI's auto-wiring won't accidentally slot a model into a latent socket when there's a clean, typed LATENT target waiting. Inside the node, execute just returns the latent unchanged. The entire node body is three lines.
So when do you actually place one? Whenever a latent crosses a boundary - out of a Latent Maker or sampler island, into a latent-editing island, or just at a point where you want a clean named socket that UE broadcasts can reliably find. It's also handy as a marker: a node named "LatentPass" sitting at the top of a refinement chain is a much better label than a naked wire.
The interface
- latent - optional
LATENTinput, echoed straight to thelatentoutput. Optional means it also tolerates being unwired (passesNone), which is exactly the behavior a broadcast target wants: it won't error if nothing lands this run.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/KDB-USJP/shima_wf
then restart, or ComfyUI Manager → search "Shima". No models, no extra pip packages.
The honest take
Outside the island/UE system, this node is a pure no-op you don't need - a reroute or a plain wire does the same. Inside the system, it's the difference between UE guessing where your latent should land and UE knowing. There's a trade-off worth naming: Shima's own docs admit the pack's philosophy trades raw node count for readability and auto-connection, and LatentPass is the purest example of that - you're adding nodes that do nothing in exchange for a graph that wires itself. If you're not using the island system, skip the whole Passer family. If you are, keep a few on hand at island edges and you'll save yourself an afternoon of "why did my latent end up in the VAE decoder."
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| latentopt | LATENT | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | — |