Nodes/comfy-ovum/Make Flat String List
ComfyUI Node

Make Flat String List

Strings, numbers, and lists of both — flattened into one text list

By sfinktah·Created about a year ago·Updated 10 months ago· 7
Make Flat String 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 LIST of strings.
  • strings - a STRING output 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.

Categoryovum/lists/python

Inputs (1)

NameTypeDefaultDescription
arg0opt*

Outputs (2)

NameTypeDescription
string_listLIST
stringsSTRING