ComfyUI Node

Any Concat 10X (Soze)

Glue ten inputs into one string and stop fighting the type system

By SozeInc·Created 2 years ago·Updated 8 days ago· 10
Any Concat 10X (Soze)
  • any1
  • any2
  • any3
  • any4
  • any5
  • any6
  • any7
  • any8
  • any9
  • any10
  • text
  • included_count
  • status
separator

You know the drill: you're building a filename, a prompt line, or a CSV-driven label, and you need to smash a checkpoint name, a seed number and a prompt together into one string. ComfyUI's built-in text concat will do it, until a number shows up and it refuses to wire in. Any Concat 10X is the node that shrugs at types: ten any inputs in, one clean string out.

It's part of the Soze QoL pack (ComfyUI_Soze), a grab-bag of batch, CSV and string helpers from a smaller indie author. Nothing here calls an API and nothing needs a model download - it's pure graph plumbing.

How it works

The mechanism is almost boring, which is the point. Each of the ten any1any10 inputs is coerced to text: strings pass through, ints and floats get str()-ed, booleans become True/False. Anything that isn't text - tensors (which covers IMAGE, MASK and LATENT), PIL images, numpy arrays, bytes - is silently skipped and counted in the status output. So you can wire an image into slot 3 by accident and the node won't explode; it just won't include it.

The one required input is separator, the string inserted between included inputs. It supports escape sequences: \n for a newline, \t for a tab. That single feature is half the reason people reach for this over the built-in concat when they're assembling multiline prompt blocks.

Outputs: text (the joined string), included_count (how many inputs actually made it in), and status (a human-readable log, which this whole pack displays live on the node body).

When you'd actually use it

  • Filenames: checkpoint_name + "-" + str(seed) before a Save Image node.
  • Prompt assembly: join a subject, style and quality block from three text inputs with a , separator.
  • Debugging: dump a bunch of values into one Preview Text to see what the graph is actually carrying.

Where people get burned: expecting images, masks or model objects to contribute. They won't - that's by design, not a bug. If you wire an image in and get fewer words than expected, check included_count and the status line, which tells you how many non-text inputs were skipped.

Installing it

Same as any node in this pack:

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

Or install "ComfyUI_Soze" via ComfyUI Manager and restart. The full requirements list (requests, torch, Pillow, numpy, matplotlib, azure-storage-blob, torchaudio, fal-client, moviepy) is heavier than this node needs - most of it exists for the FAL and ComfyDeploy integrations elsewhere in the pack - but pip install -r grabs the lot and it's all pip-installable.

One gotcha: this node lives in the soze menu category, and ComfyUI renders it as "Any Concat 10X (Soze)". Search "Soze" in the node menu if it doesn't appear after install.

Categorysoze

Inputs (11)

NameTypeDefaultDescription
separatorSTRING Inserted between included inputs. Use \n for a newline, \t for tab.
any1opt*
any2opt*
any3opt*
any4opt*
any5opt*
any6opt*
any7opt*
any8opt*
any9opt*
any10opt*

Outputs (3)

NameTypeDescription
textSTRING
included_countINT
statusSTRING