Simple String Repository Large (IO)
Ten prompt slots when you're swapping half the sentence
- parsed_string
SimpleStringRepositoryLarge is the biggest of the Simple String Repository family: the same "type a tag collection into a text box, select entries by index, get one string back" trick, but with ten selection slots instead of three or five. It's the version for the prompt builders who treat their workflow as a control panel - the ones assembling half a sentence from reusable parts rather than swapping a tag or two.
The mechanism is identical to the rest of the pack. The string field holds a newline-separated list where each line is an option, indexed either explicitly (4.moody overcast) or by line number if you leave the prefix off. Each targetN picks one entry; the node joins everything you selected with the delimiter ("," or " ") and returns a single parsed_string. Full walkthrough and install live on the base Simple String Repository page; the only real difference here is scale.
Why ten slots changes how you use it
With three slots you select from one group. With ten, you can run several groups through a single node: a style group, a lighting group, a camera group, a mood group - each contributing its pick to one assembled prompt. Set five or six slots with different targets and the node becomes a mini prompt-builder in itself, the kind of thing you'd otherwise chain multiple nodes together to do. It also plays well with the random inputs: fill the collection with {option one|option two} dynamic syntax and leave randomN at -1, and one queue run gives you a varied prompt while the rest of your selections stay locked. That's a cheap way to batch variations without a wildcard system.
The trade-off is obvious the moment the node is on the canvas: ten target widgets plus ten strength plus ten random is a wall of numbers. For hand-tweaking one slot it's overkill - the Small or base node is friendlier. And if the only inputs you actually set are the targets, the Compact variant packs each slot's target,strength,random triple into one string and shrinks the node dramatically.
Inputs and output
Same family shape: string (multiline), delimiter, then target1–target10 (INT), strength1–strength10 (FLOAT, (tag:weight) wrapping when not 1, dropped at 0), and random1–random10 (INT, -1 for random, otherwise forced). One output, parsed_string, displayed on the node body since it's an output node.
Install
ComfyUI Manager (search "Simple String Repository") or:
cd ComfyUI/custom_nodes
git clone https://github.com/IgalOgonov/ComfyUI_Simple_String_Repository
Restart ComfyUI. No requirements file, no model downloads - plain Python plus a small JS extension.
Gotchas
The family quirks apply with more surface area: a dot anywhere in an entry makes the parser truncate or (for unindexed lines) crash with a ValueError, and duplicate indexes silently shadow everything after the first. With ten collections in one box you're more likely to mix indexed and unindexed lines - run the node's "Add Missing Indexes" button before you rely on specific numbers. And since the node never caches, any random picks re-roll every queue run. Want to actually lock a prompt? Set every randomN to a concrete number, or use the base node with fewer moving parts.
Inputs (32)
| Name | Type | Default | Description |
|---|---|---|---|
| string | STRING | — | |
| delimiter | COMBO | 2 options: ,, | |
| target1opt | INT | 0–100000000 | — |
| strength1opt | FLOAT | 1.000–10 | — |
| random1opt | INT | -1-1–1000 | — |
| target2opt | INT | 0–100000000 | — |
| strength2opt | FLOAT | 1.000–10 | — |
| random2opt | INT | -1-1–1000 | — |
| target3opt | INT | 0–100000000 | — |
| strength3opt | FLOAT | 1.000–10 | — |
| random3opt | INT | -1-1–1000 | — |
| target4opt | INT | 0–100000000 | — |
| strength4opt | FLOAT | 1.000–10 | — |
| random4opt | INT | -1-1–1000 | — |
| target5opt | INT | 0–100000000 | — |
| strength5opt | FLOAT | 1.000–10 | — |
| random5opt | INT | -1-1–1000 | — |
| target6opt | INT | 0–100000000 | — |
| strength6opt | FLOAT | 1.000–10 | — |
| random6opt | INT | -1-1–1000 | — |
| target7opt | INT | 0–100000000 | — |
| strength7opt | FLOAT | 1.000–10 | — |
| random7opt | INT | -1-1–1000 | — |
| target8opt | INT | 0–100000000 | — |
| strength8opt | FLOAT | 1.000–10 | — |
| random8opt | INT | -1-1–1000 | — |
| target9opt | INT | 0–100000000 | — |
| strength9opt | FLOAT | 1.000–10 | — |
| random9opt | INT | -1-1–1000 | — |
| target10opt | INT | 0–100000000 | — |
| strength10opt | FLOAT | 1.000–10 | — |
| random10opt | INT | -1-1–1000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| parsed_string | STRING | — |