Nodes/Crystools/πŸͺ› List of strings
ComfyUI Node Runs on cloud

πŸͺ› List of strings

List of Strings (Crystools)

By crystianΒ·Created 3 years agoΒ·Updated 9 months agoΒ· 1,940
πŸͺ› List of strings
    • concatenated
    • list_string
    β—„string_1β–Ί
    β—„string_2β–Ί
    β—„string_3β–Ί
    β—„string_4β–Ί
    β—„string_5β–Ί
    β—„string_6β–Ί
    β—„string_7β–Ί
    β—„string_8β–Ί
    β—„delimiter β–Ί

    Up to eight string inputs in, and you get two different shapes back out: one string with everything joined together, and a proper list containing only the slots you actually filled in. Simple node, but it covers two genuinely different jobs at once.

    Why you'd reach for it

    Use list_string when something downstream wants to iterate over multiple values - multiple prompts, tags, or filenames processed one at a time rather than as a single blob. Use concatenated when you just want one assembled string - building a filename prefix out of parts, or a compound prompt from separate style/subject/lighting fragments you're keeping as individual Primitive string nodes upstream so each piece stays editable on its own.

    The README mentions a sibling node, List of any, which does the same up-to-eight-inputs collection but for arbitrary values instead of strings specifically - worth knowing it exists if you ever need a list of numbers or mixed types rather than text, though it isn't covered on this page.

    How it works

    Whichever of the eight string_* slots you connect or type into get joined together with delimiter to produce concatenated. Separately, the same filled slots (skipping any left blank) get collected into list_string, which is a genuine list type - downstream nodes built to consume a list see each entry individually rather than one combined string.

    Inputs and outputs

    Optional: string_1 through string_8 (all empty by default - fill in as many as you need, leave the rest alone) and delimiter (default a single space). Outputs: concatenated (STRING) and list_string (a list of strings, only the populated ones).

    Installing it

    Through ComfyUI Manager, search crystools. Manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/crystian/ComfyUI-Crystools.git
    cd ComfyUI-Crystools
    pip install -r requirements.txt
    

    Restart ComfyUI. No models or heavy dependencies for this node.

    Common issues

    Don't confuse "left disconnected" with "typed an empty string" - a slot you never touched is simply skipped from list_string, so if you're wondering why your list has fewer entries than expected, check which string_* slots actually have something in them rather than assuming a bug.

    Also worth remembering: delimiter only affects concatenated. It has zero effect on list_string, which stays a proper array of separate entries no matter what delimiter you set - if you're piping list_string somewhere and it looks joined together, the problem is downstream, not this node.

    And if you only ever fill in a couple of the eight slots, that's completely normal usage, not a half-finished setup - the node was built around leaving most of them empty most of the time, with eight slots simply being the ceiling for the rare case you need it.

    Categorycrystools πŸͺ›/List

    Inputs (9)

    NameTypeDefaultDescription
    string_1optSTRINGβ€”
    string_2optSTRINGβ€”
    string_3optSTRINGβ€”
    string_4optSTRINGβ€”
    string_5optSTRINGβ€”
    string_6optSTRINGβ€”
    string_7optSTRINGβ€”
    string_8optSTRINGβ€”
    delimiteroptSTRING β€”

    Outputs (2)

    NameTypeDescription
    concatenatedSTRINGβ€”
    list_stringListStringβ€”