String List Manager (SuperBeasts.AI)
Re-order strings and stamp them with frame numbers — a small tool with a specific format
- STRING
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:
- Reordering. If you provide
new_orderas a comma-separated, 1-based list (e.g.3,1,2), the strings are rearranged to match. Empty list = keep input order. - 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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| frames_per_image | INT | 1 | — |
| new_orderopt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| STRING | STRING | — |