ComfyUI Node

Any Model

Load *any* safetensors as a merge ingredient — checkpoints, LoRAs, even diffusers-style files

By ljleb·Created 3 years ago·Updated about a month ago· 101
Any Model
    • recipe
    model_path
    model_config
    merge_spacedefault

    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. auto guesses from the file; the rest are the explicit layouts (sd1, sdxl, sd3, flux, kohya variants, diffusers variants, lycoris lora, kohya lora, singleton-mecha for mecha-format files). Pick the one that matches what the file actually is.
    • merge_space - the crucial one. default (which resolves to weight), weight, delta, or param. 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 as weight instead of delta will 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.

    Categorymecha

    Inputs (3)

    NameTypeDefaultDescription
    model_pathCOMBO0 options:
    model_configCOMBO18 options: auto, singleton-mecha, sdxl-supermerger_blocks, sdxl-sgm, sdxl-kohya_lycoris_lora, sdxl-kohya_kohya_lora, +12
    merge_spaceoptCOMBOdefault4 options: default, weight, delta, param

    Outputs (1)

    NameTypeDescription
    recipeMECHA_RECIPE