Nodes/ComfyUI-YogurtNodes/String Join (Yogurt Nodes)
ComfyUI Node

String Join (Yogurt Nodes)

Glue text together without a tangle of catenate nodes

By yogurt7771·Created 2 years ago·Updated 9 days ago· 1
String Join (Yogurt Nodes)
  • item1
  • item2
  • item3
  • item4
  • item5
  • item6
  • item7
  • item8
  • item9
  • item10
  • item11
  • item12
  • item13
  • item14
  • item15
  • item16
  • item17
  • item18
  • item19
  • item20
  • item21
  • item22
  • item23
  • item24
  • item25
  • item26
  • item27
  • item28
  • item29
  • item30
  • item31
  • item32
  • result
separator,

You've built a workflow where the positive prompt is assembled from four different text boxes - a base prompt, a style chunk, a quality tag, a LoRA trigger - and you need them on one wire feeding the CLIP text encode. Core ComfyUI doesn't give you a clean way to do that without a catenate node per seam. YogurtStringJoin is the "one input, one output, stop fussing" answer: up to 32 items, one separator, a single result string out.

What it actually is

Part of the Yogurt Nodes pack (yogurt7771/ComfyUI-YogurtNodes), it sits under YogurtNodes/String and does exactly one thing: take every item you plug in and join them with a shared separator. Think of it as Python's "sep".join([...]) made visual. The author's own tooltip calls the separator "用于连接字符串的连接符" - the connector used to connect strings - which is a fine summary of the entire feature set.

How it works

The node has a required separator input (default ,) and a bank of optional item1 through item32 inputs, all typed *. That * matters: the inputs are untyped, so you can feed it numbers, booleans, whatever, and they'll be stringified on the way in. The result output is a plain STRING that drops straight into a CLIP text encode or a prompt-schedule node.

A couple of things worth knowing:

  • The separator is multiline, so ,\n is a legit value if you want items on separate lines.
  • Unconnected item slots are just ignored. You don't need to wire all 32.

Where you'll actually use it

The classic pattern is conditional prompt assembly. You build one workflow that can do "base prompt + style A" or "base prompt + style B" by toggling which branch feeds an item slot, then join them. It's also handy for gluing negative-prompt fragments together, or turning a filename plus an extension into a full path string for the pack's I/O nodes.

Installing it

Yogurt Nodes isn't one of the famous packs - it's a find-it-in-a-shared-workflow kind of pack - but installation is boring and safe. In ComfyUI Manager, search "ComfyUI-YogurtNodes" (or "Yogurt Nodes") and install. Or do it by hand:

cd ComfyUI/custom_nodes
git clone https://github.com/yogurt7771/ComfyUI-YogurtNodes.git
cd ComfyUI-YogurtNodes
pip install -r requirements.txt

Then restart ComfyUI. For the string nodes you don't need any of the heavier deps - the openai, google-genai, and opencv-python requirements are there for the pack's API and image nodes, not for this one. No model files download at all.

Common issues

Honestly, there isn't much to trip over with a join node. The one trap is joining items that are already comma-containing strings and ending up with ambiguous output - pick a separator that doesn't appear in your content (a pipe | or newline beats a comma for prompt fragments). And if a number shows up in your result as 3.0 instead of 3, that's the stringify step, not a bug; run it through YogurtStringToValue afterward if the downstream node needs a real number.

CategoryYogurtNodes/String

Inputs (33)

NameTypeDefaultDescription
separatorSTRING,用于连接字符串的连接符
item1opt*The 1th item to join.
item2opt*The 2th item to join.
item3opt*The 3th item to join.
item4opt*The 4th item to join.
item5opt*The 5th item to join.
item6opt*The 6th item to join.
item7opt*The 7th item to join.
item8opt*The 8th item to join.
item9opt*The 9th item to join.
item10opt*The 10th item to join.
item11opt*The 11th item to join.
item12opt*The 12th item to join.
item13opt*The 13th item to join.
item14opt*The 14th item to join.
item15opt*The 15th item to join.
item16opt*The 16th item to join.
item17opt*The 17th item to join.
item18opt*The 18th item to join.
item19opt*The 19th item to join.
item20opt*The 20th item to join.
item21opt*The 21th item to join.
item22opt*The 22th item to join.
item23opt*The 23th item to join.
item24opt*The 24th item to join.
item25opt*The 25th item to join.
item26opt*The 26th item to join.
item27opt*The 27th item to join.
item28opt*The 28th item to join.
item29opt*The 29th item to join.
item30opt*The 30th item to join.
item31opt*The 31th item to join.
item32opt*The 32th item to join.

Outputs (1)

NameTypeDescription
resultSTRING