DavchaConditioningConcat
Join two prompts without the shape errors
- conditioning_to
- conditioning_from
- CONDITIONING
Concatenating two conditionings is a staple move: you generate with one prompt, then bolt a second conditioning chunk onto it. ComfyUI ships a ConditioningConcat for exactly that, and this is the davcha version with one practical upgrade - it doesn't explode when the two inputs have different batch shapes.
It lives in comfyui_davcha, the "personal QoL and experimental nodes" pack, and this is a small QoL refinement of a stock node rather than a new idea.
How it works
Stock ConditioningConcat fails when the two conditionings have mismatched batch dimensions, which happens more often than you'd think once one side comes from a list or a schedule. This version handles it: it takes the cond tensor from conditioning_from, moves it to the same device as conditioning_to, then repeats each side along the batch axis until they match the larger one before concatenating along the token axis. If either input is empty, it just returns the other one. Same output as the core node, fewer ways to trip over shapes.
Inputs: conditioning_to (the base), conditioning_from (the chunk being appended). Output: CONDITIONING.
When you'd reach for it
- Prompt + style chunk - keep a clean main prompt, append a style or quality conditioning built separately.
- Combining schedules - when one conditioning comes from a prompt-editing node and another from a plain encode, batch sizes routinely disagree and this swallows the mismatch.
- Negative compositing - stitch negative prompt fragments together before feeding the sampler.
Installing it
# ComfyUI Manager → Install Custom Nodes → search "comfyui_davcha" → Install → Restart
# or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/dchatel/comfyui_davcha
cd comfyui_davcha
pip install -r requirements.txt
The usual pack catch applies: nodes.py imports llama_cpp and cv2 at module load while requirements.txt only lists webp and rapidfuzz. Pack not showing up? pip install llama-cpp-python opencv-python, restart.
Nothing exotic to troubleshoot here - the whole point is that the shape error you'd hit with the stock node becomes a non-event. The one thing to remember is that concatenation adds tokens, so a long base prompt plus a long append can push you past a model's effective token ceiling; that's what ConditioningCompress in the same pack is for.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| conditioning_to | CONDITIONING | — | |
| conditioning_from | CONDITIONING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |