Shima String
The string primitive with a Use Everywhere superpower
- text
On the surface, Shima String is the most boring node imaginable: a text box in, a string out. ComfyUI core ships that for free. What makes this one worth knowing is that it's built for the pack's "island" architecture - a string value that can broadcast across a whole workflow without a single wire.
This is the exact "one source, many consumers" problem the plumbing layer exists to solve: you have a project name, a style tag, or a filename prefix that needs to reach five different nodes. Normally you'd type it five times, or convert widgets to inputs and fan a primitive out. Shima String instead plugs into the pack's Use Everywhere (UE) integration, so with the right toggle flipped, any matching string input anywhere in the group can receive this value automatically. It's a typed primitive that also knows about the island topology.
The inputs
text- the value, a multiline box.override- an optional string input that replacestextwhen connected. This is how you let an upstream node drive a value that still has a sensible fallback in the widget.allow_external_linking- the interesting one. The tooltip is blunt: "If ON, this node broadcasts/receives OUTSIDE the Island (ignores group regex)." On by default? No - default is off, so the node only links within its own island group. Flip it on to let the value escape the group and broadcast workflow-wide. This is the same toggle the whole pack carries on its nodes; here it's the whole point.
Output: text, a STRING.
Installing it
Part of KDB-USJP/shima_wf:
cd ComfyUI/custom_nodes
git clone https://github.com/KDB-USJP/shima_wf
Restart ComfyUI. The Use Everywhere matching is provided by cg-use-everywhere, which the pack's installer clones automatically on first run - that dependency is what actually makes allow_external_linking do anything.
The honest advice
If you never use the island/UE workflow style, ComfyUI's own String primitive is identical and you don't need this. The value only appears once you start organizing workflows into groups and relying on auto-linking - then a single Shima String becomes the authoritative source for a value that every node in the island picks up, and changing it in one place beats editing a dozen widgets. The one trap is allow_external_linking defaulting to off: if you expect a string to propagate and nothing happens, that toggle is the first thing to check.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| text | STRING | — | |
| overrideopt | STRING | — | |
| allow_external_linkingopt | BOOLEAN | false | If ON, this node broadcasts/receives OUTSIDE the Island (ignores group regex) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| text | STRING | — |