Nodes/ComfyUI/Conditioning (Concat)
ComfyUI Node Runs on cloud

Conditioning (Concat)

How to bolt a second prompt onto the end of the first

By Comfy-Org·Created 4 years ago·Updated 5 minutes ago· 129,952
Conditioning (Concat)
  • conditioning_to
  • conditioning_from
  • CONDITIONING

ComfyUI ships three conditioning-combining nodes that beginners mix up constantly, so here's the one-line scorecard: Combine keeps two conditionings as separate parallel entries, Average blends them by weight, and Concat stitches the underlying embedding tensors end-to-end. This node is Concat. It takes conditioning_to and conditioning_from and produces one conditioning whose token sequence is the first followed by the second, taped together along the token dimension. Think of it as appending text to your prompt without re-encoding the whole thing.

What that's actually for

  • Appending extra context. You've encoded your main prompt, and you want to tack on "and in the style of Moebius" - encode the addition separately and Concat it on, instead of re-encoding a giant combined string.
  • Beating prompt-length limits. On the old CLIP encoders with their ~77-token practical ceiling, you could build a long prompt in chunks and splice the embeddings. It's the classic workaround, and it's why the node exists.
  • Staging. In a big workflow, Concat is how you attach a ControlNet-modified conditioning or a style branch to your main positive line before it hits the sampler.

Inputs and the one caveat

Both inputs are required: conditioning_to (the base) and conditioning_from (appended). The output is a single CONDITIONING ready for a sampler or further conditioning work. There are no strength dials - this is an all-or-nothing append. One real gotcha lives in the source and is worth knowing: if conditioning_from contains more than one conditioning entry, only the first is actually appended; ComfyUI logs a warning and moves on. Same for conditioning_to in the loop - each entry in to gets the single from appended. If your graph looks like it's dropping a branch, that's probably why.

How you get it

Core node, no install - "Conditioning (Concat)" right in the default node menu.

Where it gets you in 2026

Honest caveat: Concat is a classic-CLIP-era trick, and its usefulness shifted as text encoders changed. On SD 1.5 and SDXL it's well-trodden and works as advertised. On the newer LLM-encoded models - Qwen3, Mistral, the whole 2026 generation - the encoder reads your prompt more like an instruction than a bag of tokens, and stitching two independently-encoded chunks together doesn't necessarily read the way a single coherent sentence would. The model wasn't trained on "sentence one, then an unrelated sentence bolted on." So test it on whatever base you're actually running. And if your goal is genuinely adding a second full concept rather than appending text, the thing you actually want is often ConditioningCombine - parallel entries the sampler applies together - which is a different operation entirely.

Categorymodel/conditioning/transform

Inputs (2)

NameTypeDefaultDescription
conditioning_toCONDITIONING
conditioning_fromCONDITIONING

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING