Nodes/ComfyUI Image Saver/Conditioning Concat Optional (Image Saver)
ComfyUI Node Runs on cloud

Conditioning Concat Optional (Image Saver)

Merge two conditionings, or pass one straight through

By alexopus·Created 3 years ago·Updated 28 days ago· 190
Conditioning Concat Optional (Image Saver)
  • conditioning_to
  • conditioning_from
  • CONDITIONING

It's ComfyUI's Conditioning (Concat) node with one quality-of-life change: the second conditioning is optional. Concatenate two prompts' conditioning and it behaves like the stock concat; leave the second input disconnected and it just passes the first through untouched. That "optional" part is the whole reason it exists - it lets you build a graph where a second prompt might be present without the node erroring out when it isn't.

For anyone assembling flexible or reusable prompt graphs, that's a genuinely nice property. No more toggling a node in and out depending on whether you're using an extra conditioning this run.

How it works

Conditioning concatenation joins two encoded prompts end-to-end so the model attends to both, rather than blending them the way a Combine or an average would. The stock node requires both inputs. This version makes conditioning_from optional: when it's connected, you get conditioning_to + conditioning_from concatenated; when it's not, you get conditioning_to alone. Same math when both are present, graceful no-op when the second is missing.

That optionality is what makes it useful in a template. Build one prompt graph you reuse across projects, with a slot for an extra conditioning that's sometimes filled and sometimes not - a style block, a character add-on - and the same graph runs either way. With the stock concat you'd have to bypass or delete the node whenever the second prompt was absent; here you just leave the input empty.

The inputs and outputs that matter

  • conditioning_to (required) - the base conditioning; always passes through.
  • conditioning_from (optional) - the conditioning to append. Connect it to concatenate; leave it empty to pass the base straight out.

The single output is CONDITIONING - into your KSampler's positive (or negative) input, or the next stage of a conditioning chain.

Installing it

ComfyUI Manager: search ComfyUI Image Saver, install, restart. Or:

cd ComfyUI/custom_nodes
git clone https://github.com/alexopus/ComfyUI-Image-Saver
cd ComfyUI-Image-Saver
pip install -r requirements.txt

Restart, hard-refresh. No downloads.

Where people get tripped up

Know what concat does versus its siblings. Concat appends one conditioning after another (good for stacking a base prompt with an added chunk); Combine keeps them as separate guidance signals; Average interpolates between them. They produce different results - if a merged prompt isn't behaving how you expect, you may want Combine or Average instead, not concat.

This fits the Image Saver pack's world because the README suggests using proper conditioning for LoRA-in-prompt tricks (via ImpactWildcardEncode) rather than pasting LoRA strings into plain text, which do nothing. When you're assembling conditioning from multiple encoders, the optional second input means you can wire a modular chain that still runs when a branch is empty. Just don't expect concatenation to fix a prompt that's fighting itself - merging two contradictory conditionings gives you a muddle, cleanly joined.

Categoryconditioning

Inputs (2)

NameTypeDefaultDescription
conditioning_toCONDITIONINGbase conditioning to concat to (or pass through, if second is empty)
conditioning_fromoptCONDITIONINGconditioning to concat to conditioning_to, if empty, then conditioning_to is passed through unchanged

Outputs (1)

NameTypeDescription
CONDITIONINGCONDITIONING