Shima Route (3)
The Shima Route (3)
- in_1
- in_2
- in_3
- out_1
- out_2
- out_3
The Shima Route (3) is the three-slot member of the pack's routing family: three wildcard inputs, three pass-through outputs, and the same "right-click to move the ports to any side" trick as the Route (1) and (2). If you've ever had three wires - say, a reference image, a mask, and a prompt string - that all need to change direction at the same point in a graph, this collapses three separate bends into one node.
The whole routing suite is a legibility play, and Route3 is where that starts to pay off. Two wires crossing a canvas is mildly annoying; three wires trying to cross in different directions is where a graph stops being readable. One Route (3) lets the trio change direction together, with type-aware color coding on the outputs so you can still tell each signal apart.
How it works
Identical engine mechanics to its siblings: ANY wildcard sockets that accept any type, VALIDATE_INPUTS returning true, and a route() method that returns inputs 1:1 in order. It returns float("NaN") from IS_CHANGED so it always re-runs - the right behavior for a wire segment, at the cost of disabling the execution cache for anything upstream. All three inputs are optional; unwired ones pass through as None. A pack-level workflow verification (ShimaSecurity.verify_workflow) runs before the pass-through.
The inputs and outputs
in_1,in_2,in_3(optional, any type).out_1,out_2,out_3- the same three signals, same order, same types.
Because the sockets are wildcards, the three can be completely different types - an IMAGE, a MASK, and an INT in one node is fine.
Where it fits
Grouping related signals at a boundary: a ControlNet-style trio (image, mask, preprocessor strength), or an image/latent/seed bundle on its way to a sampler. It's also handy at island edges - the pack's island system auto-links via Use Everywhere, and a clean three-slot node at the border gives you a legible place for external signals to land. For a single signal use Route (1); for four or five, Route (4)/(5).
Install
cd ComfyUI/custom_nodes
git clone https://github.com/KDB-USJP/shima_wf.git Shima
pip install -r requirements.txt
Restart, then Shima/Routing → Shima Route (3). ComfyUI Manager: search "Shima". First boot auto-clones ComfyUI-Impact-Pack and cg-use-everywhere if missing (Use Everywhere is the island auto-linking backbone) - expected.
Common issues
Because the slots are typed at connect-time, it's easy to plug the mask into in_1 and the image into in_2, then blame the node when downstream gets them swapped - the node faithfully mirrors order, so check the source side of each wire. Also, if you only need two slots today, grabbing the Route (3) anyway isn't harmful (unused inputs pass None) but it does leave a dangling socket that can trip you up later. Route (2) exists for a reason.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| in_1opt | * | Input 1 | |
| in_2opt | * | Input 2 | |
| in_3opt | * | Input 3 |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| out_1 | * | Output 1 |
| out_2 | * | Output 2 |
| out_3 | * | Output 3 |