ComfyUI Node

Recipe List

Bundle any number of recipes into one wire — the input every multi-model merge needs

By ljleb·Created 2 years ago·Updated 29 days ago· 101
Recipe List
  • 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
count2

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 - an INT (default 2, up to 64) controlling how many recipe_N sockets 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_0recipe_63 - the recipes to bundle, all optional MECHA_RECIPE inputs. The node packs the first count of 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 mechaMecha 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.

Categorymecha

Inputs (65)

NameTypeDefaultDescription
countINT20–64
recipe_0optMECHA_RECIPE
recipe_1optMECHA_RECIPE
recipe_2optMECHA_RECIPE
recipe_3optMECHA_RECIPE
recipe_4optMECHA_RECIPE
recipe_5optMECHA_RECIPE
recipe_6optMECHA_RECIPE
recipe_7optMECHA_RECIPE
recipe_8optMECHA_RECIPE
recipe_9optMECHA_RECIPE
recipe_10optMECHA_RECIPE
recipe_11optMECHA_RECIPE
recipe_12optMECHA_RECIPE
recipe_13optMECHA_RECIPE
recipe_14optMECHA_RECIPE
recipe_15optMECHA_RECIPE
recipe_16optMECHA_RECIPE
recipe_17optMECHA_RECIPE
recipe_18optMECHA_RECIPE
recipe_19optMECHA_RECIPE
recipe_20optMECHA_RECIPE
recipe_21optMECHA_RECIPE
recipe_22optMECHA_RECIPE
recipe_23optMECHA_RECIPE
recipe_24optMECHA_RECIPE
recipe_25optMECHA_RECIPE
recipe_26optMECHA_RECIPE
recipe_27optMECHA_RECIPE
recipe_28optMECHA_RECIPE
recipe_29optMECHA_RECIPE
recipe_30optMECHA_RECIPE
recipe_31optMECHA_RECIPE
recipe_32optMECHA_RECIPE
recipe_33optMECHA_RECIPE
recipe_34optMECHA_RECIPE
recipe_35optMECHA_RECIPE
recipe_36optMECHA_RECIPE
recipe_37optMECHA_RECIPE
recipe_38optMECHA_RECIPE
recipe_39optMECHA_RECIPE
recipe_40optMECHA_RECIPE
recipe_41optMECHA_RECIPE
recipe_42optMECHA_RECIPE
recipe_43optMECHA_RECIPE
recipe_44optMECHA_RECIPE
recipe_45optMECHA_RECIPE
recipe_46optMECHA_RECIPE
recipe_47optMECHA_RECIPE
recipe_48optMECHA_RECIPE
recipe_49optMECHA_RECIPE
recipe_50optMECHA_RECIPE
recipe_51optMECHA_RECIPE
recipe_52optMECHA_RECIPE
recipe_53optMECHA_RECIPE
recipe_54optMECHA_RECIPE
recipe_55optMECHA_RECIPE
recipe_56optMECHA_RECIPE
recipe_57optMECHA_RECIPE
recipe_58optMECHA_RECIPE
recipe_59optMECHA_RECIPE
recipe_60optMECHA_RECIPE
recipe_61optMECHA_RECIPE
recipe_62optMECHA_RECIPE
recipe_63optMECHA_RECIPE

Outputs (1)

NameTypeDescription
recipesMECHA_RECIPE_LIST