Nodes/Simple String Repository/Simple String Repository Large Compact (IO)
ComfyUI Node

Simple String Repository Large Compact (IO)

Ten packed-string slots — the kitchen sink of tag pickers

By IgalOgonov·Created 2 years ago·Updated 2 years ago· 3
Simple String Repository Large Compact (IO)
    • parsed_string
    string
    delimiter
    target10,1,-1
    target20,1,-1
    target30,1,-1
    target40,1,-1
    target50,1,-1
    target60,1,-1
    target70,1,-1
    target80,1,-1
    target90,1,-1
    target100,1,-1

    SimpleStringRepositoryLargeCompact is the maximum version of the Simple String Repository family: ten selection slots, each compressed into a single packed string instead of the usual three widgets. It's the node you reach for when you want the full ten-slot canvas of the Large variant but don't want a wall of thirty numbers filling your graph. Same family idea - tag collection in a text box, pick by index, get one string back - with the biggest feature set the pack ships.

    Why you'd pick this over the plain Large

    The plain SimpleStringRepositoryLarge has target1target10, strength1strength10, and random1random10 as separate widgets. This Compact version collapses each slot into one index,strength,random field - 7,1.1,-1 means "entry 7, weight 1.1, pick the random option" - so ten slots cost you ten text fields instead of thirty widgets. When you're running several tag groups through a single node (a style group here, lighting there, camera, mood, artist), that's the difference between a readable control panel and a spreadsheet.

    The packed format also makes omitting parts natural: 3 alone means target 3, strength 1, random -1. Good for hand-tweaking. Bad for automation, as the README is upfront about - other nodes can't cleanly drive a single packed string the way they can drive separate numeric widgets. If your workflow computes selections, use the regular Large.

    The default trap

    Every slot starts at 0,1,-1, and target 0 doesn't exist for normal collections - unindexed lines are numbered from 1 at runtime, so index 0 only appears if you explicitly write 0.something. Freshly added, all ten slots select nothing and the output is empty until you set real targets. Same story after clicking "Reset Target Parameters," which restores the same 0,1,-1. With ten slots, that's a lot of dead defaults - set them all, or accept that only the slots you've filled contribute.

    Inputs and output

    string (multiline) holds the collection; delimiter ("," or " ") joins selections; target1target10 are the packed strings. Output is one parsed_string, displayed on the node body as well 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 models - plain Python plus a small JS extension.

    Family quirks

    Dots in entries break the parser (truncation, or a ValueError on unindexed lines with dots), duplicate indexes shadow everything after the first, and the node never caches so random at -1 re-rolls each queue run. With ten slots and the packed format, the "Add Missing Indexes" button is your friend - it's the easiest way to keep the indexes you're typing into those packed strings consistent with the actual lines.

    Categoryutils

    Inputs (12)

    NameTypeDefaultDescription
    stringSTRING
    delimiterCOMBO2 options: ,,
    target1optSTRING0,1,-1
    target2optSTRING0,1,-1
    target3optSTRING0,1,-1
    target4optSTRING0,1,-1
    target5optSTRING0,1,-1
    target6optSTRING0,1,-1
    target7optSTRING0,1,-1
    target8optSTRING0,1,-1
    target9optSTRING0,1,-1
    target10optSTRING0,1,-1

    Outputs (1)

    NameTypeDescription
    parsed_stringSTRING