βοΈ CR Apply Model Merge
Blend a whole stack of checkpoints at once
- model_stack
- MODEL
- CLIP
- model_mix_info
- show_help
Model merging is the old community sport of averaging two or more checkpoints together to get a new one that borrows a bit from each - a realism model's skin plus an anime model's linework, that kind of thing. ComfyUI's native merge nodes handle two models at a time and chain awkwardly for more. This node takes a whole MODEL_STACK and merges the lot in one go.
It's the "apply" end of Comfyroll Studio's model-merge system (Suzie1 / RockOfFire), paired with CR Model Stack, which is where you list the checkpoints and their ratios. Merging in-graph like this is one of those things ComfyUI can do that a form-based UI simply can't - you can merge, generate, and compare without ever writing a checkpoint to disk.
How it works
You build a list of models with weights in a CR Model Stack node, then feed that MODEL_STACK here. The node walks the stack and blends the weights together according to your chosen method, producing one merged model (and a matching CLIP) you can sample with immediately. The result lives in memory - it's a temporary merge for this run, not a saved .safetensors, unless you separately add a save node.
The inputs that matter
model_stack- the list of checkpoints and their ratios, from CR Model Stack. This is the substance of the merge.merge_method-RecursiveorWeighted. Recursive blends them in sequence (each merge folded into the next); Weighted averages them by their assigned weights. Weighted is the more intuitive "50/50, 70/30" mental model; Recursive changes how influence compounds across more than two models.normalise_ratios(Yes/No) - rescale the stack's weights so they sum sensibly. Leave it onYesunless you know you want raw, unnormalized weights; off, it's easy to blow past 1.0 total and get a muddy result.weight_factor(0β1) - a global scaling dial over the blend.
Outputs: MODEL, CLIP, a model_mix_info string that reports what got merged (handy to route into a text/preview node so you remember the recipe), and the show_help link.
How to install it
- ComfyUI Manager: search
Comfyroll Studio, install, restart. - Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/Suzie1/ComfyUI_Comfyroll_CustomNodes.git, then restart.
Bring your own checkpoints in ComfyUI/models/checkpoints.
Common issues
Rule zero of merging: the models have to be the same architecture. You cannot merge an SD 1.5 checkpoint with an SDXL one - different shapes, it'll error or produce garbage. Keep the whole stack in one family.
If your merge comes out washed-out, low-contrast, or muddy, that's usually unnormalized weights summing past 1.0 - flip normalise_ratios to Yes and pull the individual ratios down. Merging is also memory-hungry: holding several full checkpoints to blend them can spike VRAM/RAM, so a stack of large models on a small card may OOM. And keep that model_mix_info output wired to a preview somewhere - merges are easy to stumble into a good one and then have no idea what you did. If the node is missing entirely, the Comfyroll pack failed to load, which is a pack-level problem rather than this node.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model_stack | MODEL_STACK | β | |
| merge_method | COMBO | 2 options: Recursive, Weighted | |
| normalise_ratios | COMBO | 2 options: Yes, No | |
| weight_factor | FLOAT | 1.000β1 | β |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | β |
| CLIP | CLIP | β |
| model_mix_info | STRING | β |
| show_help | STRING | β |