Simple String Repository Small (IO)
Three prompt slots is usually enough — this is the lean version
- parsed_string
SimpleStringRepositorySmall is the smallest member of the Simple String Repository family: the same "collection of tags in one text box, pick by index" idea, but with just three selection slots. It's the version to reach for when your group is small and your picks are few - which, honestly, is most of the time.
The family concept, quickly: you type a newline-separated list of options into the string field, each line gets an index (either explicit like 2.golden hour, or its line number if you don't bother), and each targetN input selects one entry. The node joins whatever you picked and hands back a single string you can feed into a prompt builder or CLIP Text Encode. If you haven't seen the idea before, start with the full Simple String Repository page - this variant is the same node with fewer knobs.
Why you'd pick the Small one
Three slots sounds limiting until you think about how these nodes actually get used. A typical setup is one repository per "group": an art style group, a mood group, a color group. Most such groups are three to eight entries long, and most prompts only swap one or two members at a time. If your plan is "always pick exactly one style and maybe one atmosphere," three target slots (with their strength and random companions) are all you'll touch - and a node with three fewer widgets is a node that's easier to read at a glance.
Where it gets tight: if you want to select several entries from the same collection at once - say, three art styles blended into one prompt - the three slots cap you at three. The base node has five, the Large has ten. When you hit the ceiling, you've got a good excuse to move up.
Inputs and output
Same shape as the family, just trimmed. string (multiline) holds your collection, delimiter ("," or " ") joins selections. Then three groups of three: target1–target3 (INT, the entry index), strength1–strength3 (FLOAT, wraps the tag as (tag:weight) when not 1, drops it at 0), and random1–random3 (INT, -1 for a random pick when the entry uses {a|b|c} dynamic syntax, otherwise the forced option). One output, parsed_string, and because the node is an output node it also displays the assembled string on the node body.
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 models - it's plain Python plus a small JS extension.
Gotchas worth knowing
The Small variant shares the family quirks: keep dots out of your entries or the .-based parser will misbehave (worse, an unindexed entry with a dot can throw a ValueError), and duplicate indexes mean only the first is selectable. And remember the node never caches, so any random selection re-rolls on every queue run - fine for variations, surprising if you expected a stable prompt. If your collection is genuinely small, this is the tidiest way into the whole pack.
Inputs (11)
| 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 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| parsed_string | STRING | — |