Nodes/D2 Nodes ComfyUI/D2 List To String
ComfyUI Node

D2 List To String

Turn an array into a joinable string

By da2el-ai·Created 2 years ago·Updated 29 days ago· 66
D2 List To String
  • LIST
  • STRING
separatorLine break

Lists and strings are different data types, and ComfyUI will not let you casually pass one where the other is expected. D2 List To String is the bridge: feed it any LIST (a D2 Multi Output list, a filename list, an array from a CSV node) and it joins the elements into a single STRING using a separator you pick. If you've ever had a node output a list and then needed to shove it into something that only accepts text, this is the two-second fix.

It's a thin utility - the kind of node you don't think about until you're stuck on a type mismatch, and then you're glad it's there. It's also the inverse of the pack's D2 Multi Output, which splits text into a list; these two bookend a lot of D2 text pipelines.

The inputs

  • LIST - the array to join. Type LIST, so anything that outputs a generic list plugs in.
  • separator - a dropdown with the pack's standard separator options: Comma + Space, Comma, Line break, Semicolon, Space, or None (concatenate with nothing).

Output

STRING - the joined text.

Installing it

It ships in the D2 pack. ComfyUI Manager → search "D2-nodes-ComfyUI" → install, or:

cd ComfyUI/custom_nodes
git clone https://github.com/da2el-ai/D2-nodes-ComfyUI

Restart ComfyUI. No models, no extra deps beyond piexif and charset-normalizer. Since v32.0.0 the pack targets ComfyUI's V3 schema - older ComfyUI builds should pin the pack before 32.0.0.

The honest take

There's genuinely little to trip over here. The separator defaults and even the list of options were unified across the D2 text nodes in a 2026 update, so old workflows keep their saved separators but new ones get the standard set. One practical note: joining with Comma + Space produces a, b, c which reads well in filenames and tags, while Line break is what you want when feeding multi-line prompts or caption blocks. If the output looks like one long run-on string, check the separator before you check anything else.

CategoryD2/Text

Inputs (2)

NameTypeDefaultDescription
LISTLIST
separatorCOMBOLine break6 options: Comma + Space, Comma, Line break, Semicolon, Space, None

Outputs (1)

NameTypeDescription
STRINGSTRING