LoRA Merge Full Rank (Yogurt Nodes)
Merge up to five LoRAs into one file — exactly, not approximately
- lora1
- lora2
- lora3
- lora4
- lora5
- merged_lora
- merged_pairs_count
- report
Stacking LoRAs in a workflow works, but it doesn't travel. The moment you want to hand someone a workflow with three LoRAs baked into one file - or ship a single LoRA to CivitAI - you need an actual merge, not "apply all three and hope." YogurtLoraMerge is the pack's answer: it merges up to five standard LoRAs into one by concatenating their rank dimensions. The result is a single LoRA whose model-side effect is exactly the sum of the inputs.
That "exactly" is the whole pitch, and it's why this is the better tool than the pack's YogurtLoraSimpleAdd when correctness matters. It's part of ComfyUI-YogurtNodes (yogurt7771's 150+ node all-in-one, MIT-licensed, auto-generated README, no community footprint) - and honestly, this corner of the pack is where the value hides.
How it works
Five input slots, each with a strength: lora1/strength1 (required), then lora2 through lora5 (optional). Feed them from YogurtLoadLoraOnly, and each gets a strength between -10 and 10.
The mechanism is rank concatenation: a LoRA's delta is written as A·B where A is down-projection and B is up-projection. Merging stacks the A's and B's side by side along the rank axis. Because the math works out to A1·B1 + A2·B2 + ..., the combined LoRA reproduces the summed effect of the inputs exactly - no SVD, no approximation, and it's fast. The trade-off is right there in the name: Full Rank. Output rank is the sum of input ranks, so file size grows. Five rank-32 LoRAs become one rank-160 LoRA that's roughly five times the size.
Three outputs: merged_lora (the result), merged_pairs_count (how many .lora_down/.lora_up pairs actually got merged), and report (a text summary of what happened - read it to confirm nothing was skipped).
Where you'll use it
- Baking a character + style + concept stack into a single portable file.
- Reducing a workflow from three LoRA slots to one, at the cost of disk space.
- Merge-then-compress: use this for exactness, then
YogurtLoraRankCompressto shrink the result back down.
The caveats
The node's own description is blunt: it does not support DoRA or LoCon/reshape variants. If your LoRA has non-standard keys, the pairs won't merge - run it through YogurtLoraStatViewer first and check for standard .lora_down/.lora_up layout. And since rank grows, this is the wrong tool if your goal is a smaller file - that's the compressor's job, used after.
Install
ComfyUI Manager, search ComfyUI-YogurtNodes, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/yogurt7771/ComfyUI-YogurtNodes
cd ComfyUI-YogurtNodes
pip install -r requirements.txt
Restart, look under "Yogurt Nodes". No model downloads - the inputs are LORA objects you loaded yourself. Save the result to a new filename with YogurtSaveLora; the original files stay untouched.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| lora1 | LORA | First LoRA. | |
| strength1 | FLOAT | 1.00-10–10 | — |
| lora2opt | LORA | Second LoRA. | |
| strength2opt | FLOAT | 1.00-10–10 | — |
| lora3opt | LORA | Third LoRA. | |
| strength3opt | FLOAT | 1.00-10–10 | — |
| lora4opt | LORA | Fourth LoRA. | |
| strength4opt | FLOAT | 1.00-10–10 | — |
| lora5opt | LORA | Fifth LoRA. | |
| strength5opt | FLOAT | 1.00-10–10 | — |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| merged_lora | LORA | — |
| merged_pairs_count | INT | — |
| report | STRING | — |