Nodes/Shima/Shima Pos/Neg Pass
ComfyUI Node

Shima Pos/Neg Pass

The Shima Pos/Neg Pass

By KDB-USJP·Created 6 months ago·Updated 6 months ago· 2
Shima Pos/Neg Pass
  • positive
  • negative
  • positive
  • negative

The Shima Pos/Neg Pass is the definition of a boring node done right: it takes a positive CONDITIONING input and a negative CONDITIONING input and passes them straight through unchanged. That's the entire job. So why does it exist, and why would you clutter a canvas with a node that does literally nothing to your data?

Because in the Shima island system, "does nothing" is a feature. The pack treats workflows as composable subgraphs that auto-connect through the Use Everywhere broadcast system. A passer with optional inputs gives the broadcast system a stable, type-checked landing pad: it prevents ComfyUI's auto-wiring from force-connecting a mismatched type into a required socket, while still being a valid destination for Use Everywhere's "send my positive to any positive input" broadcasts. The pack's own docs call these nodes "airports" at the edge of each island - the place where external signals touch down.

How it works

It's one of the simplest nodes in the entire pack - a few lines of Python in nodes/legacy.py:

def execute(self, positive=None, negative=None):
    return (positive, negative)

Both inputs are optional and default to None, so the node works fine with one or even zero wires connected. That's the same "unconnected optional input arrives as nothing" convention that underpins all the fallback-switch plumbing in ComfyUI. Nothing is validated, nothing is transformed, and the conditioning objects travel through byte-for-byte identical.

The inputs that matter

There are only two, and they're both optional:

  • positive - CONDITIONING in, CONDITIONING out
  • negative - CONDITIONING in, CONDITIONING out

Outputs keep the same names (positive, negative), which makes the wiring self-documenting. Feed it from a CLIP Text Encode (or a Shima Master Prompt) and run the outputs into any sampler's positive/negative sockets.

Why you'd actually use it

Two real reasons. First, as a routing/organization tool: when your positive and negative conditioning need to travel a long way across a big graph, dropping a passer at the far end gives you a clean socket pair to aim at instead of one long noodle. Second, and more Shima-specific, as an island boundary marker: put the pass at the edge of a prompt island so the broadcast system knows this is where external conditioning plugs in. If you don't use Use Everywhere or islands at all, this node is genuinely redundant - you can connect the wires directly and nothing changes. It's a pack convention, not a ComfyUI necessity.

Install

Same one-liner as the rest of the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/KDB-USJP/shima_wf.git Shima
pip install -r requirements.txt

Restart, and it's under Shima/Utilities/Passers → Shima Pos/Neg Pass. ComfyUI Manager: search "Shima". On first boot the installer auto-clones ComfyUI-Impact-Pack and cg-use-everywhere if they're missing - expected behavior, since the island auto-linking runs on Use Everywhere.

Common issues

Honestly, there's not much to break. The one thing that trips people up is expecting this to do something: if you're not on the island train, the node looks like a no-op and it is - that's correct. If you wire a sampler straight to a text encoder and skip the passer, you lose nothing. And because both inputs are optional, an unwired positive output will happily feed None downstream, which some samplers will reject at validation. If you see "input has no value" errors after adding one of these, trace whether you actually connected both sides.

CategoryShima/Utilities/Passers

Inputs (2)

NameTypeDefaultDescription
positiveoptCONDITIONING
negativeoptCONDITIONING

Outputs (2)

NameTypeDescription
positiveCONDITIONING
negativeCONDITIONING