Make Flat String List
Strings, numbers, and lists of both — flattened into one text list
- arg0
- string_list
- strings
Make Flat String List is the text version of Make Flat Image List: it takes strings, numbers, lists of either, or lists of lists of either, and flattens them all into one list of strings. Anything that isn't already a string gets run through str(), so a 30 becomes "30" and a list becomes... well, its string representation, which is exactly what you don't want to accidentally do - but only if you hand it a list of lists expecting them to stay nested. The flattening is the point.
You reach for this when a loop needs a single list of prompts, file paths, seeds, or model names and your sources are inconsistent. One node might give you a single string (a prompt you typed), another gives you a list of strings (a wildcard processor output), and a third gives you a bare number you want as text. Wire all three in, get one flat list out, feed it to a MapStartOvum or ForeachListBeginOvum and iterate.
How it works
Same recursive-flatten machinery as its image sibling. Each input is *-typed, and the node drills down through any nesting until it hits leaves, converting each leaf with str(). Because inputs are dynamic (arg0, arg1, ...) you can keep adding sources without restructuring the graph - connect a fourth prompt list and a new socket appears. It's marked experimental in the pack source alongside the image variant, so expect occasional shape weirdness rather than bulletproof behavior.
The inputs and outputs that matter
The dynamic argN inputs accept anything, and there are two outputs:
- string_list - a native Python
LISTof strings. - strings - a
STRINGoutput marked as a list, which is what many list-aware text nodes expect to consume.
Pick whichever your downstream node speaks; they carry the same data in different wrappers.
Installing it
Part of the comfy-ovum pack (sfinktah). Via ComfyUI Manager, search "comfy-ovum" and install, or clone manually:
cd ComfyUI/custom_nodes
git clone https://github.com/sfinktah/comfy-ovum
Then restart ComfyUI. No models, no heavy deps - the pack's requirements (pillow, numpy, requests, aiohttp and friends) are light and Manager resolves them for you.
Common issues
Two traps. First, ordering: flattening is depth-first and in order, so the final list reflects connection order - label your sockets if you care. Second, the str() conversion means a float like 0.30 becomes "0.3", which can silently change values you're building filenames from. For formatting control, run values through the pack's Python String Format node before flattening rather than after.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| arg0opt | * | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| string_list | LIST | — |
| strings | STRING | — |