ComfyUI Node
🎨 Easy LoRA Merger
A ComfyUI node in LoRA/Experimental with 29 inputs and 5 outputs.
🎨 Easy LoRA Merger
- model
- clip
- lora_data_a
- lora_data_b
- lora_data_c
- lora
- model
- clip
- output_path
- forensic_report
◄methodlinear►
◄density1.00►
◄lora_a▾►
◄lora_b▾►
◄lora_c▾►
◄weight_a1.00►
◄weight_b1.00►
◄weight_c1.00►
◄blend_modeauto►
◄energy_preservationtrue►
◄balancing_modesafe►
◄magnitude_scalingnone►
◄active_thresholdtrue►
◄uniqueness0.70►
◄threshold0.00►
◄blend0.50►
◄deviceauto►
◄precisionauto►
◄batch_size32►
◄streamingtrue►
◄save_triggerfalse►
◄filenametriple_merged►
◄save_folder/tmp/ComfyUI/models/loras►
◄metadata_modemerge_basic►
CategoryLoRA/Experimental
Inputs (29)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| clip | CLIP | — | |
| method | COMBO | linear | 15 options: linear, ties_strict, ties_gentle, dare_lite, dare_rescale, subtract, +9 |
| density | FLOAT | 1.000.1–1 | — |
| lora_aopt | COMBO | 1 options: None | |
| lora_bopt | COMBO | 1 options: None | |
| lora_copt | COMBO | 1 options: None | |
| lora_data_aopt | LORA | — | |
| lora_data_bopt | LORA | — | |
| lora_data_copt | LORA | — | |
| weight_aopt | FLOAT | 1.00-5–5 | Strength of first LoRA |
| weight_bopt | FLOAT | 1.00-5–5 | Strength of second LoRA |
| weight_copt | FLOAT | 1.00-5–5 | Strength of third LoRA |
| blend_modeopt | COMBO | auto | auto: Smart choice based on trainer metadata (match → dense, mismatch → active) | dense: Traditional weighted sum |
| energy_preservationopt | BOOLEAN | true | Preserve energy distribution during merge (recommended). Disable for raw weighted sum. |
| balancing_modeopt | COMBO | safe | Auto-weight-balancing: safe (hard-match energy on shared layers only, rank-independent), creative (preserve ratio with reduced magnitude), intensity (peak-energy detection for cross-concept merges), impact (intensity + sparsity correction for sparse-vs-dense merges like Anima), disabled (no adjustment). |
| magnitude_scalingopt | COMBO | none | Signal magnitude scaling before merging – scales LoRA B and C to match LoRA A's energy using RMS or top‑X% percentile. |
| active_thresholdopt | BOOLEAN | true | Enable active region detection (threshold value from config.py). Disable for dense-style behavior. |
| uniquenessopt | FLOAT | 0.700.1–1 | For feature_mix: higher = preserve more unique features |
| thresholdopt | FLOAT | 0.000–1 | For subtract: minimum magnitude to subtract |
| blendopt | FLOAT | 0.500–1 | For magnitude: 0=strict, 1=blended |
| deviceopt | COMBO | auto | 3 options: auto, cuda, cpu |
| precisionopt | COMBO | auto | 4 options: auto, float32, bfloat16, float16 |
| batch_sizeopt | INT | 321–256 | Number of keys to process per batch. DeviceManager.suggest_batch_size() can auto-tune based on VRAM. |
| streamingopt | BOOLEAN | true | Stream tensors to save VRAM |
| save_triggeropt | BOOLEAN | false | — |
| filenameopt | STRING | triple_merged | — |
| save_folderopt | STRING | /tmp/ComfyUI/models/loras | — |
| metadata_modeopt | COMBO | merge_basic | How to handle metadata from source LoRAs |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| lora | LORA | — |
| model | MODEL | — |
| clip | CLIP | — |
| output_path | STRING | — |
| forensic_report | STRING | — |