Shima 3-State Indicator
A control-room lamp that turns any value into a green/red/off signal
- any_input
- value
Shima 3-State Indicator is a small control-room lamp: a rounded-corner square that lights up one of three states - off (dark), State 1 (green by default), or State 2 (red by default) - based on whatever value you feed it. It looks like the kind of hardware readout you'd find on a studio mixing desk, and its actual job is to make workflow state visible at a glance instead of forcing you to trace wires.
Where you'd actually use this: debugging and monitoring. Wire it onto a seed, a CFG value, a boolean, or a node state, and configure a trigger so the lamp tells you "this branch is live," "this value crossed the threshold," or "this switch is in the wrong position." It passes the input value through on its value output, so it slots into the middle of a wire without disturbing the data - which makes it cheap to add and easy to remove. If you're building a workflow you'll hand to other people, a couple of these turn "why is nothing happening" questions into "oh, the red light is on."
How it works
The any_input socket is a * wildcard, so it accepts anything. The trigger_type dropdown picks how the input is judged, and the two state_N_value strings define the thresholds. The six modes, from the pack's own docs:
- Hardware Sync - reads the switch/bypass state of a connected node in real time.
- Number Match - exact numeric equality:
input == State 1 Value→ green,input == State 2 Value→ red. - Math - comparison expressions:
>1.0,<=2.5,!=0, etc. Match → State 1, otherwise State 2. - String - exact string match.
- Regex - regex pattern match via
re.search. - Boolean - truthy input → green, falsy → red.
The three colors are configurable hex values (color_1, color_2, color_off), and scale resizes the lamp. Because it's an output node, the state is pushed to the UI - that's how the lamp renders without being part of the image output.
The inputs that matter
any_input- the value to evaluate (any type).trigger_type- one of the six modes above.state_1_value,state_2_value- the trigger values/expressions.color_1,color_2,color_off- the three colors (hex strings).scale- display size.
Output: value - the input, passed straight through, so you can daisy-chain it into the rest of the workflow.
How to install it
In the Shima pack - ComfyUI Manager, search "Shima", or:
cd ComfyUI/custom_nodes
git clone https://github.com/KDB-USJP/shima_wf.git Shima
restart. Nothing extra to install - it's a display node with no heavy dependencies.
Common issues & troubleshooting
Lamp is always off. For Number Match and Math modes, the input has to be a number - feed it a tensor and the float conversion fails and the node falls back to off. For Hardware Sync, it needs a node that actually reports a switch state; on a plain value it stays off.
It changes nothing downstream. That's expected - the value output is a pass-through. If a branch is misbehaving, the indicator is watching, not controlling. The one gotcha is if you wired a muted/broken node into any_input: the indicator can't see a value that never arrives.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| any_input | * | — | |
| color_1 | STRING | #00ff00 | — |
| color_2 | STRING | #ff0000 | — |
| color_off | STRING | #222222 | — |
| trigger_type | COMBO | Hardware Sync | 6 options: Hardware Sync, Number Match, Math, String, Regex, Boolean |
| state_1_value | STRING | 1.0 | — |
| state_2_value | STRING | 0.0 | — |
| scale | FLOAT | 1.00.1–10 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| value | * | — |