Nodes/comfyui_bmad_nodes/ExtendCondList
ComfyUI Node Runs on cloud

ExtendCondList

Merge conditioning lists before they hit the sampler

By bmad4ever·Created 3 years ago·Updated 9 months ago· 70
ExtendCondList
    • CONDITIONING
    inputs_len2

    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_N sockets (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 CLIPEncodeMultiple with half your prompts and a second one with the rest - ExtendCondList joins 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 FromListGetConds to 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 - CLIPEncodeMultiple output 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.

    CategoryBmad/Lists/Extend

    Inputs (1)

    NameTypeDefaultDescription
    inputs_lenINT20–32

    Outputs (1)

    NameTypeDescription
    CONDITIONINGCONDITIONING