Nodes/WAS Node Suite v3/Text List Concatenate
ComfyUI Node Runs on cloud

Text List Concatenate

Merge two text lists into one, in order

By WASasquatch·Created 3 years ago·Updated 4 days ago· 1,844
Text List Concatenate
  • list_a
  • list_b
  • list_c
  • list_d
  • list_e
  • list_f
  • list_g
  • list_h
  • list_i
  • list_j
  • list_k
  • list_l
  • list_m
  • list_n
  • list_o
  • list_p
  • list_q
  • list_r
  • list_s
  • list_t
  • list_u
  • list_v
  • list_w
  • list_x
  • ARRAY

WAS Node Suite has its own idea of a "list" as a distinct data type - separate from a single text string - and a small family of nodes to build, read, and combine them: Text List creates one from scratch, Text Random Line pulls one entry out of one, and Text List Concatenate is the one that joins two of those lists into a single, longer list. Not the string-concatenation you're picturing where "cat" + "dog" becomes "catdog" - that's the plain Text Concatenate node. This one works one level up, at the list level: two lists in, one combined list out, order preserved.

Where this actually comes up

Anywhere you're assembling a batch of prompt fragments, wildcard entries, or filenames from more than one source and need them as a single list downstream - say one list came from a Text List node you typed by hand, and another came out of Load Text File reading lines from disk, and you want both feeding the same Text Random Line or Text Load Line From File step. Rather than rebuilding one big list by hand, you concatenate the two lists and let the pack treat them as one from that point on.

How it works

It doesn't inspect or transform the contents of either list - it just appends the second list's entries after the first's and passes the combined list downstream as a single TEXT list output. If your workflow cares about order (say, sequential line loading), the first list's entries stay first.

How to install it

ComfyUI Manager: search "WAS Node Suite," install, restart. Manual install:

cd ComfyUI/custom_nodes
git clone https://github.com/WASasquatch/was-node-suite-comfyui

Then install the Python requirements from inside that folder - path/to/ComfyUI/python_embeded/python.exe -s -m pip install -r requirements.txt for a portable build, or plain pip install -r requirements.txt on a system Python. Restart ComfyUI and look for the WAS Suite menu category.

Common issues & troubleshooting

This is a plain data-plumbing node with no external dependency of its own, so it's unlikely to break in isolation. The thing that does bite people is the pack as a whole: WAS Node Suite has had no active development since December 2023 (the author's own words: "not under active development... feel free to fork and continue the project"), and the most common complaint since then is the entire suite showing "Import Failed" after a ComfyUI update. According to the author, that's usually because upgrading ComfyUI can silently downgrade a shared package WAS still pins for older support - the fix that's worked for people is re-running the requirements install using your embedded Python (python_embeded\python.exe -s -m pip install -r requirements.txt), not whatever system Python you have on PATH.

If concatenation isn't giving you what you expect, the usual mistake is feeding it a plain STRING where it wants a list, or the reverse - since WAS treats "list of text" as its own type distinct from a single string, a mismatched connection either won't wire up or will silently treat one entry as the whole list. Trace back to whichever node built each list and confirm it's actually outputting the list type, not a joined string.

CategoryWAS Suite/Text/List

Inputs (24)

NameTypeDefaultDescription
list_aoptARRAYFirst list, whose entries come first in the result. An unconnected input contributes nothing.
list_boptARRAYSecond list, appended after list_a.
list_coptARRAYThird list, appended after list_b.
list_doptARRAYFourth list, appended last.
list_eoptARRAYList 5, joined on after the one before it. Unconnected is skipped.
list_foptARRAYList 6, joined on after the one before it. Unconnected is skipped.
list_goptARRAYList 7, joined on after the one before it. Unconnected is skipped.
list_hoptARRAYList 8, joined on after the one before it. Unconnected is skipped.
list_ioptARRAYList 9, joined on after the one before it. Unconnected is skipped.
list_joptARRAYList 10, joined on after the one before it. Unconnected is skipped.
list_koptARRAYList 11, joined on after the one before it. Unconnected is skipped.
list_loptARRAYList 12, joined on after the one before it. Unconnected is skipped.
list_moptARRAYList 13, joined on after the one before it. Unconnected is skipped.
list_noptARRAYList 14, joined on after the one before it. Unconnected is skipped.
list_ooptARRAYList 15, joined on after the one before it. Unconnected is skipped.
list_poptARRAYList 16, joined on after the one before it. Unconnected is skipped.
list_qoptARRAYList 17, joined on after the one before it. Unconnected is skipped.
list_roptARRAYList 18, joined on after the one before it. Unconnected is skipped.
list_soptARRAYList 19, joined on after the one before it. Unconnected is skipped.
list_toptARRAYList 20, joined on after the one before it. Unconnected is skipped.
list_uoptARRAYList 21, joined on after the one before it. Unconnected is skipped.
list_voptARRAYList 22, joined on after the one before it. Unconnected is skipped.
list_woptARRAYList 23, joined on after the one before it. Unconnected is skipped.
list_xoptARRAYList 24, joined on after the one before it. Unconnected is skipped.

Outputs (1)

NameTypeDescription
ARRAYARRAYOne list holding the entries of every connected input, in socket order. Duplicates are kept.