String from List
Pull one text value out of a list, per grid cell
- list item
- size
- wraps
String from List is the node that turns a list of text values into "the one value this particular grid cell needs." On its own it's a simple index picker; wired up inside ComfyUI_ezXY's XY-plot pattern, it's how a single list of checkpoint names, prompts, or LoRA tags gets distributed across an entire comparison grid without you copy-pasting strings into a dozen nodes by hand.
How it works
You give it list_input - a full list of strings, most naturally the list output of Strings to List - and an index telling it which item to grab. The clever bit: index doesn't have to be a single number. Wire in ezXY Driver's x indices or y indices (both lists) and String from List runs once per index, handing back a list item output that's itself a list - one picked string per grid cell, in order, off a single wire. That's the whole mechanism these DIY XY-plot packs lean on: ComfyUI already knows how to execute a node once per item in a list input, ezXY just gives you the plumbing to exploit it deliberately.
Inputs and outputs
list_input(STRING) - your source list. Comes from Strings to List, or anything else outputting a string list.index(INT, default 0) - which item to pick. Can be a plain number for a one-off pick, or a list (from ezXY Driver) to pick many at once.list item- the picked string(s), as a list matching whatever you fedindex.size- the length oflist_input, a single number. Useful for sanity-checking your grid math.wraps- how many times each pick wrapped around the end of the list, as a list matchinglist item. If your index list is longer than your value list, indexing wraps instead of erroring - this output is how you catch that silently.
Installing ComfyUI_ezXY
ComfyUI Manager: search "ComfyUI_ezXY" and install. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/GMapeSplat/ComfyUI_ezXY.git
Restart. No models, no heavy dependencies - this is a pure utility pack.
Common issues & troubleshooting
The README's own first line is a warning: "Does not work with current version of Comfyui." Take that seriously - this isn't a heavily maintained pack, and a stranded user on GitHub was asking (in early 2025) to fork a single node out because the maintainer had gone quiet on a broken repo. If String from List errors on load after a ComfyUI update, you're not alone and it's not necessarily your workflow.
The most common actual mistake with this node specifically: forgetting that wraps exists and not checking it. If you built a 3×4 grid with ezXY Driver but only listed 8 checkpoint names in Strings to List, some cells will silently repeat values instead of failing - wraps on those cells will read nonzero. Wire it into Line to Console once while you're debugging a new grid, then remove it.
If you hit a crash instead of a silent wrap, look for autoCastPatch.py in the traceback - that's the pack's brute-force type-casting patch, which is known to throw on values it can't coerce (a real report showed it failing on a float conversion). It's disableable in config.yaml if you need to isolate it from your own logic.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| list_input | STRING | — | |
| index | INT | 0-999–999 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| list item | STRING | — |
| size | INT | — |
| wraps | INT | — |