Nodes/ComfyUI-SuperBeasts/String List Manager (SuperBeasts.AI)
ComfyUI Node

String List Manager (SuperBeasts.AI)

Re-order strings and stamp them with frame numbers — a small tool with a specific format

By SuperBeastsAI·Created 2 years ago·Updated 2 months ago· 220
String List Manager (SuperBeasts.AI)
    • STRING
    frames_per_image1
    new_order

    String List Manager is the quietest node in the SuperBeasts pack, and it exists to solve a narrow problem: you have a list of strings - prompts, captions, labels - that you want to reorder and stretch across a video timeline so each one owns a block of frames. It's a utility for people doing frame-by-frame prompting or captioning, and it doesn't generate anything. It rearranges and timestamps.

    Honest framing: this is a niche tool with a very specific output format, and it's the kind of node you'll only care about if you're building the exact kind of "N frames per prompt" pipeline it was designed for. If you're not, there's nothing here for you, and that's fine.

    How it works

    The node takes a dynamic list of string inputs - string1, string2, and so on, which sprout as you connect more, thanks to the pack's JavaScript extension. Then two things happen:

    1. Reordering. If you provide new_order as a comma-separated, 1-based list (e.g. 3,1,2), the strings are rearranged to match. Empty list = keep input order.
    2. Time expansion. Each string gets a starting frame number equal to frames_per_image (default 1) multiplied by its position in the list, and is emitted in the format "<start_frame>": "<string>". The results are joined with ,\n.

    So with frames_per_image = 24 and strings ["dog", "cat"], you get:

    "0": "dog",
    "24": "cat"
    

    That fragment is exactly what it looks like: a JSON-ish pair list mapping frame numbers to text, designed to be consumed by some downstream caption/prompt-timing consumer in your graph. It's the node's only output - one STRING. What you wire it into depends on what you're using; the node itself doesn't care.

    The inputs that matter

    • frames_per_image (default 1) - the stride. This is your timeline resolution: how many frames each string gets before the next one starts.
    • new_order - the optional reorder list.

    Install

    It ships in the SuperBeasts pack like everything else here:

    cd ComfyUI/custom_nodes
    git clone https://github.com/SuperBeastsAI/ComfyUI-SuperBeasts
    

    Restart ComfyUI, or grab it from ComfyUI Manager (search "SuperBeasts"). No extra dependencies.

    Common issues

    The main gotchas are format-related. The output is "start_frame": "string" pairs joined with ,\n - note the quotes and comma-newline separator; whatever consumes this has to expect exactly that. And the frame numbers are 0-based starts, not ranges: with frames_per_image = 24 you get starts at 0, 24, 48 - the string implicitly covers frames 0–23, 24–47, and so on. Also remember the dynamic sockets come from the pack's JS, so if you only ever see string1, the JS didn't load and that's an install problem, not a node setting.

    CategorySuperBeastsAI/Utils

    Inputs (2)

    NameTypeDefaultDescription
    frames_per_imageINT1
    new_orderoptSTRING

    Outputs (1)

    NameTypeDescription
    STRINGSTRING