Nodes/Shima/Shima Route (3)
ComfyUI Node

Shima Route (3)

The Shima Route (3)

By KDB-USJP·Created 6 months ago·Updated 6 months ago· 2
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.

CategoryShima/Routing

Inputs (3)

NameTypeDefaultDescription
in_1opt*Input 1
in_2opt*Input 2
in_3opt*Input 3

Outputs (3)

NameTypeDescription
out_1*Output 1
out_2*Output 2
out_3*Output 3