Nodes/ComfyUI-Mobile/Ultimate Concat (Mobile)
ComfyUI Node

Ultimate Concat (Mobile)

Assemble prompts from labeled parts without a pile of Text nodes

By SozeInc·Created 2 years ago·Updated 2 years ago· 0
Ultimate Concat (Mobile)
  • value_1
  • value_2
  • value_3
  • value_4
  • value_5
  • value_6
  • value_7
  • value_8
  • value_9
  • value_10
  • value_11
  • value_12
  • value_13
  • value_14
  • value_15
  • value_16
  • value_17
  • value_18
  • value_19
  • value_20
  • value_21
  • value_22
  • value_23
  • value_24
  • Concat String
concat_count1
delimiter
prefix_1
prefix_2
prefix_3
prefix_4
prefix_5
prefix_6
prefix_7
prefix_8
prefix_9
prefix_10
prefix_11
prefix_12
prefix_13
prefix_14
prefix_15
prefix_16
prefix_17
prefix_18
prefix_19
prefix_20
prefix_21
prefix_22
prefix_23
prefix_24

ComfyUI's default text handling is basic: Text nodes in, one string out. When you're assembling a prompt from parts - a base, a character, some style tags, a quality line - you end up with a chain of Text Concat nodes that's impossible to read. Ultimate Concat (Mobile) is the version that stays readable: up to 24 labeled prefix/value pairs, and only the ones you actually fill in get joined.

How it works

Every slot has two parts: a prefix_i text widget (the label or fixed content) and a value_i input of type * that accepts a wire from anything - another STRING, an INT from a math node, a filename, whatever you've got. A small JS helper in the pack hides the slots you're not using based on concat_count, and renames each value input to match its prefix, so the node reads like a labeled form instead of a wall of fields.

When it runs, for each active slot, if the prefix is non-empty the node appends prefix + value + delimiter. Slots with an empty prefix are skipped entirely.

The behavior that matters

The one thing that trips people up: delimiter is a suffix, not a separator. Joining "a", "b", "c" with , gives you a,b,c, - trailing comma included. Plan your delimiter accordingly.

Two nicer details, both straight from the code:

  • Type the literal \n (backslash-n) as the delimiter and it becomes a real newline - handy for multi-line prompts.
  • value_i inputs are * typed, so you can pull in numbers or text computed by other nodes instead of hand-typing everything.

Output

One STRING output, named "Concat String". Wire it into a CLIPTextEncode's text input for prompt assembly, or into anything else that eats a string.

The small trap

concat_count claims a range of 1–25, but there are only 24 prefix/value slots. Set it to 25 and the 25th position evaluates to a literal NoneNone that gets appended to your string. Easy to avoid once you know; mildly confusing until you do.

Install and caveats

It's part of the same early-stage pack from Soze Inc (ComfyUI-Mobile). ComfyUI Manager, search "ComfyUI-Mobile", or:

cd ComfyUI/custom_nodes
git clone https://github.com/SozeInc/ComfyUI-Mobile

Then restart. requests is the only dependency, and there are no models to download. The pack README admits it's under active development and "not functional as a stand alone install", but this is the most self-contained node of the three: no external binary, no flow control, just string assembly.

Honestly, this is the one node in the pack I'd reach for. If you build prompts from modular parts - or want to pipe a value from another node into your prompt without copy-pasting - it does the job cleanly.

CategoryComfy Mobile

Inputs (50)

NameTypeDefaultDescription
concat_countINT11–25
delimiterSTRING
prefix_1STRING
prefix_2STRING
prefix_3STRING
prefix_4STRING
prefix_5STRING
prefix_6STRING
prefix_7STRING
prefix_8STRING
prefix_9STRING
prefix_10STRING
prefix_11STRING
prefix_12STRING
prefix_13STRING
prefix_14STRING
prefix_15STRING
prefix_16STRING
prefix_17STRING
prefix_18STRING
prefix_19STRING
prefix_20STRING
prefix_21STRING
prefix_22STRING
prefix_23STRING
prefix_24STRING
value_1opt*
value_2opt*
value_3opt*
value_4opt*
value_5opt*
value_6opt*
value_7opt*
value_8opt*
value_9opt*
value_10opt*
value_11opt*
value_12opt*
value_13opt*
value_14opt*
value_15opt*
value_16opt*
value_17opt*
value_18opt*
value_19opt*
value_20opt*
value_21opt*
value_22opt*
value_23opt*
value_24opt*

Outputs (1)

NameTypeDescription
Concat StringSTRING