ExtendCondList
Merge conditioning lists before they hit the sampler
- CONDITIONING
Conditionings are the awkward data type of ComfyUI: most nodes that output them output one, and most batch-capable nodes want a list. ExtendCondList is the bridge - it takes two or more CONDITIONING lists and concatenates them into one, so you can collect conditionings from several sources and hand the sampler or batch consumer a single list.
It's the conditioning flavor of the pack's Extend*List family, and it pairs naturally with CLIPEncodeMultiple (which produces one) and ControlNetHadamard (which consumes matching lists). If you're feeding multiple prompts into a batch-capable sampler, this is how the lists get combined.
How it works
- inputs_len - INT, default 2, 0–32. How many list inputs the node has.
- Right-click → "update Inputs" to generate
conditioning_1,conditioning_2, ...conditioning_Nsockets (the pack's ❔ convention).
Each input is a CONDITIONING list (INPUT_IS_LIST is set). The node walks them in order and returns one flat CONDITIONING list, order preserved. The output is flagged OUTPUT_IS_LIST, so downstream nodes see the full list on a single port.
Wiring it up
Common patterns:
- Split prompt sources: a
CLIPEncodeMultiplewith half your prompts and a second one with the rest -ExtendCondListjoins them before a list-consuming sampler. - Append a special conditioning (a ControlNet-applied one, a style block) to a base list without rebuilding the source.
- Combine with
FromListGetCondsto pull individual items back out of a merged list by slot.
The list types have to match: all inputs must be CONDITIONING lists. If you've got single conditionings, wrap them with ToCondList before extending.
Gotchas
- The right-click ritual again: change
inputs_len, hit "update Inputs," rewire. Skipping it leaves the sockets mismatched. - Order matters and there's no dedup -
CLIPEncodeMultipleoutput order is preserved into the merged list, so keep track of which slot is which. - It concatenates; it doesn't combine (that's
ConditioningCombine, a different operation that merges conditionings semantically). If you want two prompts folded into one conditioning, this is the wrong node.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/bmad4ever/comfyui_bmad_nodes
cd comfyui_bmad_nodes
pip install -r requirements.txt
or install "comfyui_bmad_nodes" via ComfyUI Manager and restart. No models, no special deps. When your workflow grows past one prompt list, this is the node that keeps the graph flat instead of nested.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| inputs_len | INT | 20–32 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| CONDITIONING | CONDITIONING | — |