π IG String List
The index-driven prompt picker hiding inside IG Nodes
- current value
- list
Ever built a batch loop and found yourself pasting ten prompts into ten separate text nodes? That's the pain IG String List exists for. It's the pack's answer to "I have a list of strings and I want to hand them to the graph one at a time," and once you're doing keyframe or animation work you'll use it constantly.
It lives in the IG Nodes β Primitives menu alongside its numeric sibling, IG Float List. You feed it a multiline string and an index; it splits the text on newlines and returns whichever entry the index points at.
How it works
The mechanism is genuinely simple: the node regex-splits your string_list on newlines, caches the result, and returns list[index - 1] - the index is 1-based, like most of the pack's primitives. One detail worth knowing: it splits on newlines only. Comma-separated values will not split; that's what the float list node (and its own separator logic) is for. Paste one value per line.
It also caches the parsed list, so changing the index between runs doesn't re-parse anything - it only re-splits when the text actually changes. If your index runs past the end of the list, it silently clamps to the last entry rather than erroring. Both behaviors are fine in practice, but they're the kind of thing that'll confuse you for five minutes when a batch "finishes" by repeating its final prompt.
The inputs that matter
index(INT, 1β100, default 1) - which line to pull out. This is the input you wire to a loop counter, an iteration node, or a seed-based random pick.string_list(STRING, multiline) - your list, one entry per line. This is the author's own field description and it's the whole job.
Outputs: current value - the single entry at index (the one you wire into a CLIP Text Encode or a filename), and list - the full parsed list, handy for debugging or for feeding something that wants the whole batch at once.
Why you'd reach for it
The whole pack is about "exploration of Latent Space," which in practice means interpolation and animation workflows where you're generating N frames from a changing set of inputs. That's exactly the shape this node fits: hold a list of prompts or path fragments, step the index each frame, and every frame gets a different string with zero graph duplication.
Installing it
It ships with IDGallagher/ComfyUI-IG-Nodes ("IG Interpolation Nodes"). Easiest path is ComfyUI Manager - search "IG Interpolation Nodes" and install. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/IDGallagher/ComfyUI-IG-Nodes
Restart ComfyUI and let it install the pack's requirements.txt (diffusers, opencv-contrib-python, matplotlib, scikit-image). Fair warning: you're pulling a chunky OpenCV dependency just to split a string, because the pack ships all its nodes together. No model downloads - nothing here needs weights.
One honesty note: this pack's README is literally a smiley face, so the source code is the documentation. There's also almost zero community chatter about these nodes by name, so expect to learn them by experiment rather than by reading a tutorial. The node is dead simple, so that's a fast experiment.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| index | INT | 11β100 | β |
| string_list | STRING | β |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| current value | STRING | β |
| list | STRING | β |