Recipe List
Bundle any number of recipes into one wire — the input every multi-model merge needs
- recipe_0
- recipe_1
- recipe_2
- recipe_3
- recipe_4
- recipe_5
- recipe_6
- recipe_7
- recipe_8
- recipe_9
- recipe_10
- recipe_11
- recipe_12
- recipe_13
- recipe_14
- recipe_15
- recipe_16
- recipe_17
- recipe_18
- recipe_19
- recipe_20
- recipe_21
- recipe_22
- recipe_23
- recipe_24
- recipe_25
- recipe_26
- recipe_27
- recipe_28
- recipe_29
- recipe_30
- recipe_31
- recipe_32
- recipe_33
- recipe_34
- recipe_35
- recipe_36
- recipe_37
- recipe_38
- recipe_39
- recipe_40
- recipe_41
- recipe_42
- recipe_43
- recipe_44
- recipe_45
- recipe_46
- recipe_47
- recipe_48
- recipe_49
- recipe_50
- recipe_51
- recipe_52
- recipe_53
- recipe_54
- recipe_55
- recipe_56
- recipe_57
- recipe_58
- recipe_59
- recipe_60
- recipe_61
- recipe_62
- recipe_63
- recipes
Mecha Recipe List exists for one structural reason: several merge nodes in this pack accept any number of recipes, and ComfyUI can't do "any number of wires." So the pack bundles recipes into a MECHA_RECIPE_LIST - one wire carrying many - and this node is the bundler. Set a count, plug in that many recipe_N inputs, and out comes a single recipes list you feed into the varargs socket of a Clamp (bounds), a Dropout (deltas), a Geometric Median (models), or any of the TIES-family multi-model merges.
It's a plumbing node - the ComfyUI equivalent of a tuple - and its only job is to be there when a merge needs a list. You'll use it constantly for multi-model merges and almost never think about it.
Inputs
count- anINT(default 2, up to 64) controlling how manyrecipe_Nsockets are visible. Bump it to match how many recipes you're bundling; a little JS in the pack (varargs.js) shows and hides the sockets so the node stays tidy.recipe_0…recipe_63- the recipes to bundle, all optionalMECHA_RECIPEinputs. The node packs the firstcountof them in order.
Output: recipes, a MECHA_RECIPE_LIST.
Notes from the siblings
There's a second list node in the pack, Mecha Subtract Recipe List, which does the same bundling but subtracts a base_recipe from every entry on the way through - handy when you're assembling multiple deltas all derived from one base. And the sockets on varargs merge nodes (like Dropout's deltas) are the consumers; Recipe List is the producer. If you see a MECHA_RECIPE_LIST socket on a merge node, this is what feeds it.
Install & gotchas
ComfyUI Manager → search mecha → Mecha Merge Node Pack, or:
cd ComfyUI/custom_nodes
git clone https://github.com/ljleb/comfy-mecha.git
pip install -r comfy-mecha/requirements.txt
Restart; only dependency is sd-mecha==1.1.7.
The gotchas are the boring but real ones. count and how many you actually plug in should match - a count of 3 with only 2 wired leaves a gap, and the pack reads the first count sockets. The list is ordered, so for methods where order matters (it usually doesn't in the sum-style merges, but check), the position of your wires is the position in the list. And remember this produces a list, not a recipe: wiring it into a single-recipe socket errors, and feeding a single recipe where a list is expected needs this node - you can't fake it. The 64-socket ceiling is a hard cap; if a merge method needs more models than that, you're in a rare place indeed.
Inputs (65)
| Name | Type | Default | Description |
|---|---|---|---|
| count | INT | 20–64 | — |
| recipe_0opt | MECHA_RECIPE | — | |
| recipe_1opt | MECHA_RECIPE | — | |
| recipe_2opt | MECHA_RECIPE | — | |
| recipe_3opt | MECHA_RECIPE | — | |
| recipe_4opt | MECHA_RECIPE | — | |
| recipe_5opt | MECHA_RECIPE | — | |
| recipe_6opt | MECHA_RECIPE | — | |
| recipe_7opt | MECHA_RECIPE | — | |
| recipe_8opt | MECHA_RECIPE | — | |
| recipe_9opt | MECHA_RECIPE | — | |
| recipe_10opt | MECHA_RECIPE | — | |
| recipe_11opt | MECHA_RECIPE | — | |
| recipe_12opt | MECHA_RECIPE | — | |
| recipe_13opt | MECHA_RECIPE | — | |
| recipe_14opt | MECHA_RECIPE | — | |
| recipe_15opt | MECHA_RECIPE | — | |
| recipe_16opt | MECHA_RECIPE | — | |
| recipe_17opt | MECHA_RECIPE | — | |
| recipe_18opt | MECHA_RECIPE | — | |
| recipe_19opt | MECHA_RECIPE | — | |
| recipe_20opt | MECHA_RECIPE | — | |
| recipe_21opt | MECHA_RECIPE | — | |
| recipe_22opt | MECHA_RECIPE | — | |
| recipe_23opt | MECHA_RECIPE | — | |
| recipe_24opt | MECHA_RECIPE | — | |
| recipe_25opt | MECHA_RECIPE | — | |
| recipe_26opt | MECHA_RECIPE | — | |
| recipe_27opt | MECHA_RECIPE | — | |
| recipe_28opt | MECHA_RECIPE | — | |
| recipe_29opt | MECHA_RECIPE | — | |
| recipe_30opt | MECHA_RECIPE | — | |
| recipe_31opt | MECHA_RECIPE | — | |
| recipe_32opt | MECHA_RECIPE | — | |
| recipe_33opt | MECHA_RECIPE | — | |
| recipe_34opt | MECHA_RECIPE | — | |
| recipe_35opt | MECHA_RECIPE | — | |
| recipe_36opt | MECHA_RECIPE | — | |
| recipe_37opt | MECHA_RECIPE | — | |
| recipe_38opt | MECHA_RECIPE | — | |
| recipe_39opt | MECHA_RECIPE | — | |
| recipe_40opt | MECHA_RECIPE | — | |
| recipe_41opt | MECHA_RECIPE | — | |
| recipe_42opt | MECHA_RECIPE | — | |
| recipe_43opt | MECHA_RECIPE | — | |
| recipe_44opt | MECHA_RECIPE | — | |
| recipe_45opt | MECHA_RECIPE | — | |
| recipe_46opt | MECHA_RECIPE | — | |
| recipe_47opt | MECHA_RECIPE | — | |
| recipe_48opt | MECHA_RECIPE | — | |
| recipe_49opt | MECHA_RECIPE | — | |
| recipe_50opt | MECHA_RECIPE | — | |
| recipe_51opt | MECHA_RECIPE | — | |
| recipe_52opt | MECHA_RECIPE | — | |
| recipe_53opt | MECHA_RECIPE | — | |
| recipe_54opt | MECHA_RECIPE | — | |
| recipe_55opt | MECHA_RECIPE | — | |
| recipe_56opt | MECHA_RECIPE | — | |
| recipe_57opt | MECHA_RECIPE | — | |
| recipe_58opt | MECHA_RECIPE | — | |
| recipe_59opt | MECHA_RECIPE | — | |
| recipe_60opt | MECHA_RECIPE | — | |
| recipe_61opt | MECHA_RECIPE | — | |
| recipe_62opt | MECHA_RECIPE | — | |
| recipe_63opt | MECHA_RECIPE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| recipes | MECHA_RECIPE_LIST | — |