Any Model
Load *any* safetensors as a merge ingredient — checkpoints, LoRAs, even diffusers-style files
- recipe
Model Mecha Recipe handles checkpoints. Lora Mecha Recipe handles LoRAs. This is the "no, everything" option: Any Model Mecha Recipe points at any .safetensors file anywhere in your ComfyUI model folders - checkpoints, loras, unets, VAEs, embeddings, diffusers dumps - and turns it into a MECHA_RECIPE with full control over what merge space it lands in. It's the escape hatch the pack keeps for files that don't fit the tidy categories, and it's genuinely useful more often than you'd think.
Inputs
model_path- a dropdown of every safetensors file in your checkpoints, loras, clip, unet, vae, and embeddings folders. If it's on disk and ends in.safetensors, it's here.model_config- the key layout. 18 choices, more than any other loader.autoguesses from the file; the rest are the explicit layouts (sd1, sdxl, sd3, flux, kohya variants, diffusers variants, lycoris lora, kohya lora,singleton-mechafor mecha-format files). Pick the one that matches what the file actually is.merge_space- the crucial one.default(which resolves toweight),weight,delta, orparam. This declares what kind of thing the recipe is: full weights, a difference-from-base, or a weighting layer. Get this right; a LoRA loaded asweightinstead ofdeltawill quietly poison any merge that feeds on it.
Output: one recipe (MECHA_RECIPE) in the merge space you chose.
Why it exists
Two recurring situations. First, the file that half-fits: an SDXL LoRA with unusual key naming that auto misreads, a diffusers-style UNet, a model you trained yourself with a nonstandard layout. Second, the power user move: you want to treat something as a delta or param that the category loaders would force into a default space - say, loading a mask file as a param recipe to multiply into a merge. The extra merge_space control is exactly what the specialized loaders don't give you.
The cost of that power: you're on the hook for correctness. The specialized nodes validate and convert (the LoRA loader, for instance, auto-converts kohya LoRAs to the base model's space). Any Model mostly hands you the raw recipe and trusts you to pick the right config and space. That's a feature for experts and a footgun for everyone else - if a merge comes out wrong with no obvious cause, suspect this node's model_config or merge_space before anything downstream.
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 after. Dependency is sd-mecha==1.1.7.
Keep the rules straight: the file must be safetensors, the config must match the file's key layout, and the merge space must match the file's semantic content - a delta loaded as a weight isn't a type error, it's a silent quality killer. When in doubt, the specialized Model or Lora loaders will keep you honest.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| model_path | COMBO | 0 options: | |
| model_config | COMBO | 18 options: auto, singleton-mecha, sdxl-supermerger_blocks, sdxl-sgm, sdxl-kohya_lycoris_lora, sdxl-kohya_kohya_lora, +12 | |
| merge_spaceopt | COMBO | default | 4 options: default, weight, delta, param |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| recipe | MECHA_RECIPE | — |