Nodes/ComfyUi-MpiNodes/Mpi Prompt List Join
ComfyUI Node

Mpi Prompt List Join

The glue that builds prompt chains

By MadPonyInteractive·Created 11 months ago·Updated 5 days ago· 3
Mpi Prompt List Join
  • prompt_list
  • added
  • prompt_list

ComfyUI's prompt-system plumbing has a recurring shape: you have two bundles of prompt lists, and you want them to travel together as one unit so a single downstream node sees both. Mpi Prompt List Join is the node that does that - it takes a prompt_list and an added list (or chain) and outputs them combined as one PROMPT_LST. The "chain" concept in ComfyUi-MpiNodes is built entirely on this.

How it works

Two inputs, both PROMPT_LST:

  • prompt_list - the existing chain or single list.
  • added - the chain or list to append to it.

One output, prompt_list - the joined bundle. From the processor's point of view, a chain of four lists joined this way is identical to four separate lists wired into the same processor: every list in the bundle gets evaluated, its _title_ replaced where it appears in the template. Joining is pure bundling; it doesn't merge options or change selection logic.

When you'd use it

The natural build order is: join two lists that belong together structurally - a "hair" list and a "hair color" list that should always be offered together - so they can flow as one unit through a MpiPromptListSelector or MpiPromptChainSelector. It's also the honest answer to "my graph has too many wires": once a group of lists is joined, it travels on one wire and you can reroute the bundle cleanly.

Installing it

cd ComfyUI/custom_nodes
git clone https://github.com/MadPonyInteractive/ComfyUi-MpiNodes

Restart, or ComfyUI Manager → search ComfyUi-MpiNodes. No deps, pure Python, AGPL-3.0 from v1.2.7 (MIT through 1.2.6).

The honest take

It's a boring node, and that's the compliment. Joining is the operation that turns "a pile of prompt lists" into "a chain," and chains are what let the selector nodes work on a whole theme at once. The trap to avoid: joining lists that should stay separate because they have different probability or block semantics. A join doesn't flatten block rules - if two lists in a joined bundle block each other, that behavior survives the join, which can surprise you when you expected a clean merge. When in doubt, join for structure, keep the blocks/probability logic inside the individual lists.

CategoryMpiNodes/PromptGen

Inputs (2)

NameTypeDefaultDescription
prompt_listPROMPT_LSTAdds a chain or list to an existing chain
addedPROMPT_LSTThe prompt chain or list to add

Outputs (1)

NameTypeDescription
prompt_listPROMPT_LST