🛠️ Easy LoRA Merger Suite
Complexity Made Simple — Merge Anything
The Easy LoRA Merger Suite gives you a complete toolkit to merge, convert, extract, bake, and audit LoRAs and checkpoints — without worrying about tensor dimensions, sparsity mismatches, or arcane scaling math.
Every node is built with the same philosophy: powerful defaults when you need simplicity, full control when you need precision.
🔍 All Nodes at a Glance
The complete node suite — drag, connect, and merge.
📦 Node Catalog
| Node | Display Name | Purpose |
|---|---|---|
| 🎨 | Easy LoRA Merger | Merge 2–3 LoRAs with 15+ methods, auto‑format detection, smart defaults, and forensic reports. The core workhorse. |
| 🛡️ | Easy LoRA Studio | Universal LoRA analyzer and converter. Transforms between Standard WebUI, Comfy Native, and Forge‑Optimized formats. SVD compression, TE scaling, weight adjustment. |
| 🛡️ | Easy Checkpoint Studio | Precision surgery for full checkpoints — precision casting FP8/BF16/FP32, component stripping VAE/TE/CLIP, SVD compression, and structural remapping. |
| 🎨 | Easy Checkpoint Merger | Merge 2–3 full model checkpoints with Weight Block Map component‑wise scaling. Streaming engine for low RAM usage. |
| 🔬 | Easy LoRA Extractor | Extract a LoRA from the delta between a base and fine‑tuned checkpoint. SVD decomposition with auto‑energy rank selection. |
| 🔧 | Easy Component Extractor | Split a checkpoint into its building blocks — extract UNet, CLIP, or VAE as separate files with precision control. |
| 🧩 | Easy Component Combiner | Reassemble extracted UNet + CLIP + VAE components back into a single full checkpoint. |
| 🧩 | Easy Component Merger | Merge 2–3 component state dicts (e.g., two different CLIP sets or UNets) using the full merge method suite. |
| 🔥 | Easy LoRA Baker | Bake a LoRA (or merged LoRA) directly into a full checkpoint at the tensor level. Produces MODEL+CLIP+VAE with RAM Guard fallback. |
🎯 Merge Methods
| Method | Best for | Works on Checkpoints? |
|---|---|---|
| linear | Simple weighted average — the safe starting point for any merge | ✅ Yes |
| cross | Blending with a cross‑magnitude interaction term for richer mixes | ✅ Yes |
| ties_strict | Conflicting styles — only keeps weights where both sources agree | ⚠️ Limited (all-positive weights reduce effect) |
| ties_gentle | Softer version of TIES — applies only to strong disagreements | ⚠️ Limited (all-positive weights reduce effect) |
| ties_contrast | Amplify differences between two sources, mute agreements | ⚠️ Limited (best on LoRA deltas) |
| dare_lite | Random dropout — creates sparse, stochastic blends | ❌ LoRA only (risky on checkpoint weights) |
| dare_rescale | Random dropout with rescaling — preserves magnitude distribution | ❌ LoRA only (risky on checkpoint weights) |
| magnitude | Keep the stronger signal per-element from either source | ✅ Yes |
| subtract | Remove unwanted features by subtracting one source from another | ✅ Yes |
| feature_mix | Preserve unique features from each source — great for style + character | ✅ Yes |
| slerp | Smooth spherical interpolation between two vectors | ✅ Yes (2‑way only) |
| svd_preserve | SVD‑based rank reduction — keeps core structure while reducing noise | ✅ Yes |
| block_swap | Swap blocks between sources using a seeded random pattern | ✅ Yes |
| noise_aware | Suppress small noise values before merging for cleaner results | ✅ Yes |
| gradient_alignment | Weight contributions by directional similarity between sources | ✅ Yes |
💡 Tip: When in doubt, start with
linearormagnitude— they're the most versatile and work well across LoRAs and checkpoints alike.
🧠 Smart Diagnostics
Every merge node outputs a detailed forensic report with:
- ✅ Alignment verification — cross‑architecture key matching stats
- 📊 Layer‑by‑layer statistics — energy distribution, sparsity, component breakdown
- ⚠️ Clear warnings — mismatched trainers, conflicting trigger words, density risks
- 🔍 Sparsity + scaling reports — magnitude distribution per layer
Console output keeps you informed at every step without overwhelming.
🏗️ Supported Architectures (aspirational — not all fully tested)
| Architecture | Status |
|---|---|
| Flux.1‑Dev / Flux.1‑S | Tested |
| Flux Klein 4B / 9B | Tested |
| Z‑Image Turbo / Base | Tested |
| SDXL | Tested |
| SD1.5 | Tested |
| Anima | Early support |
| Lumina 2 | Early support |
| SD3 | Experimental |
🚀 Get Started
- Download: github.com/Terpentinas/EasyLoRAMerger
- Install: Drop into
ComfyUI/custom_nodes/and restart ComfyUI. - Explore: Drag
assets/nodes.pnginto the workflow area to see the suite in action. - Experiment: Connect a Easy LoRA Merger → Easy LoRA Baker pipeline, or use Easy Checkpoint Studio to shrink a 12GB checkpoint to FP8.
- Feedback: Open an issue on GitHub — contributions and ideas welcome.
⚙️ Precision Options
Different nodes expose different precision tiers depending on their capabilities:
Standard Tier — all float formats
Used by: Easy LoRA Merger, Easy LoRA Studio
| Option | Behavior |
|---|---|
auto |
Auto-select — defaults to BF16 on supported GPUs |
float32 |
Full precision, 4 bytes/param — maximum quality |
bfloat16 |
Half precision, 2 bytes/param — good balance |
float16 |
Half precision, 2 bytes/param — good balance |
Extended Tier — adds FP8 support
Used by: Easy Checkpoint Merger, Easy Component Extractor, Easy Component Combiner, Easy Component Merger, Easy LoRA Baker
| Option | Behavior |
|---|---|
| (all Standard options above) | |
fp8_e4m3fn |
FP8 quantization, 1 byte/param — memory efficient |
fp8_e5m2 |
FP8 quantization (wider range) — memory efficient |
Studio Tier — full conversion toolkit
Used by: Easy Checkpoint Studio
| Option | Behavior |
|---|---|
| (all Extended options above) | |
int8 |
Explicit INT8 quantization, 1 byte/param |
int8_convrot |
INT8 with convolution rotation handling |
svd_only |
SVD compression only, no dtype conversion |
💡 Tip: For everyday use, just leave it on
auto. The nodes will pick the best format for your hardware automatically.
📐 Design Philosophy
The suite is engineered for stability and SSD-friendly operation:
- No unnecessary disk writes — intermediate data stays in RAM. Temp files are created only when RAM Guard activates or
save_trigger=True. - Clean resource management — file handles from checkpoint loading are closed immediately after model objects are constructed, preventing stale handles from causing I/O during garbage collection.
- Predictable performance — no background cleanup threads. All file I/O is explicit and happens at known points in the pipeline.
- Memory-efficient streaming — large checkpoints are processed in configurable batch sizes, keeping peak RAM usage under control.
Built because merging different model formats shouldn't require a PhD in tensor math. 💪
