Nodes/comfy-ovum/Join Batch Ovum
ComfyUI Node

Join Batch Ovum

Join Batch Ovum — glue a list into one string, the Comfy-list way

By sfinktah·Created about a year ago·Updated 10 months ago· 7
Join Batch Ovum
  • py_list
  • STRING
separator

Take a list of strings and smash them into one string with a separator between them. That's JoinBatchOvum - the current, non-deprecated batch flavor of the pack's "join" node, replacing the old JoinList class. It's the ComfyUI equivalent of JavaScript's Array.join or Python's "".join(...), and it's one of those small tools that quietly unlocks a lot of graph plumbing.

What it does

You give it a list and a separator; it returns a single STRING with every element stringified and glued together. The defaults follow JavaScript's join semantics:

  • py_list - the list of elements. Non-string entries are converted to strings, so [1, 2, 3] joins fine.
  • separator - a STRING. Blank/unspecified defaults to "," (comma, the JS default). If you want no separator at all, you have to pass an actual empty string.

So ["hdr", "sunset", "7"] with the default separator becomes hdr,sunset,7, and with " | " becomes hdr | sunset | 7. Output socket is a plain STRING ready for a prompt builder, a filename composer, or a text node for display.

Where you actually reach for it

The bread-and-butter uses:

  • Building dynamic prompts. Concatenate a list of style tags or wildcard results into a single prompt string, then feed it to your CLIP encoder. This pairs naturally with the pack's Python String Format node if you want to wrap the joined result in a template.
  • Composing filenames. Take a list of path components or a list of tags and produce a save filename like sunset_hdr_v07.png.
  • Turning a list into something displayable. When you're debugging, joining a list with "\n" gives you one readable multi-line string to show in a text preview instead of a pile of disconnected wires.

The "batch" flavor question

Like the rest of this family, JoinBatchOvum lives in ovum/lists/comfy and expects its list input batch-style, while JoinListOvum in ovum/lists/python is the variant for a Python list object arriving as a single value. Same inputs, same output - pick whichever matches how your list was built, and don't lose sleep over it; they're interchangeable enough that you can swap and see which fits.

One shared quirk: every node in this pack's list family inherits NewPointer, which makes ComfyUI treat it as always-changed (IS_CHANGED returns NaN). It never caches, so joined output is always fresh on every run - handy in loops, and it means you won't get stuck with a stale string.

Install

Ships in comfy-ovum; install the pack once:

cd ComfyUI/custom_nodes
git clone https://github.com/sfinktah/comfy-ovum

or search comfy-ovum in ComfyUI Manager and restart. No models, no keys.

Gotchas

  • ValueError: Input must be a Python list - you fed it something that isn't a list. Convert upstream first.
  • Surprise commas - if you leave the separator blank expecting no separator, you get commas (JS default). Pass "" explicitly for glue-adjacent joins.
  • Separator is a string widget - it's not a combo, so a trailing space is a trailing space. If your joined output looks odd, check the separator field for stray whitespace.
Categoryovum/lists/comfy

Inputs (2)

NameTypeDefaultDescription
py_list*
separatorSTRING

Outputs (1)

NameTypeDescription
STRINGSTRING