PM Della
Prune adaptively, keep the big changes, drop the small ones
- MergeMethod
DARE prunes randomly and Breadcrumbs prunes both extremes. DELLA takes the smarter route: it looks at each row of the task vector and prunes adaptively, so bigger-magnitude parameters in a row are more likely to survive and small ones are more likely to get dropped. The result is a merge that keeps the significant changes and reduces interference, without the randomness of DARE or the two-sided carve-out of Breadcrumbs.
You reach for it when DARE's random pruning feels wasteful - when you have a strong sense that certain parameter directions genuinely matter and you don't want them to be lottery tickets. It needs two or more LoRAs plus a base model, and it extends DARE's rescaling.
How it works
Within each row of the delta parameters, DELLA assigns each parameter a keep-probability that's scaled between density − epsilon (for the row's smallest element) and density + epsilon (for its largest). So the top of each row has a higher chance of surviving the random draw, the bottom a lower one. Then it applies DARE-style rescaling to preserve magnitude, and optionally TIES sign consensus (the ties toggle). The epsilon knob sets how wide that probability spread is: bigger epsilon, more aggressive preference for large magnitudes.
The inputs that matter
density- target fraction of weights retained (default 0.85).epsilon- half-width of the keep-probability range (default 0.1). Must satisfydensity − epsilon > 0anddensity + epsilon < 1, or the probabilities go out of bounds - the node will reject invalid combos.ties- add TIES sign consensus (default off).rescale_norm- rescaling strategy (l1,l2,linf,none,default).normalize- weight normalization for contributors (default true).
Output is a MergeMethod config for PM LoRA Merger.
Installing
Ships in the LoRA Power-Merger pack. ComfyUI Manager (search "LoRA Power-Merger") or:
cd ComfyUI/custom_nodes
git clone https://github.com/larsupb/LoRA-Merger-ComfyUI
cd LoRA-Merger-ComfyUI
pip install -r requirements.txt
Restart ComfyUI. Dependencies: PyTorch, lxml, mergekit.
Common issues
The parameter-boundary error is the classic first run: cranking density to 0.95 with epsilon at 0.1 breaks the density + epsilon < 1 rule. Keep epsilon modest (0.05–0.1) and density in the 0.7–0.9 range and you'll stay legal. If the merge barely differs from DARE, your epsilon is too small to matter - the adaptive pruning is what distinguishes them. And mismatched ranks between LoRAs fail at the merger: reconcile them first with PM LoRA Stack Decompose (rSVD). Like the rest of the family, the "(Mergekit)" label is legacy - current versions run DELLA on the pack's own delta-space code.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| sign_consensus | BOOLEAN | false | TIES sign consensus. ON: elect one sign per weight element (majority vote across the LoRAs) and keep only contributions that agree with it — cancels conflicting edits between LoRAs. OFF: plain weighted combine (the '_linear' variant, no sign vote). |
| rescale_norm | COMBO | default | Rescaling strategy: • default: Auto-select (L1 for methods needing it, none otherwise) • l1: L1 norm preservation (precise, preserves magnitude sum) • l2: L2 norm preservation (precise, preserves Euclidean norm) • linf: L-infinity norm (preserves max absolute value, prevents amplification) • none: No rescaling (may reduce merge strength) |
| density | FLOAT | 0.850–1 | Fraction of weights in differences from the base model to retain. |
| epsilon | FLOAT | 0.100–1 | Maximum change in drop probability based on magnitude. Drop probabilities assigned will range from density - epsilon to density + epsilon. |
| average_weights | BOOLEAN | false | ON: divide by the per-element sum of contributing weights — a weighted AVERAGE, so per-LoRA strengths act as ratios (two LoRAs at strength 1.0 each land at ~50%). OFF: additive SUM, so strengths act as gains and stacked LoRAs keep full magnitude (matches ComfyUI's native LoRA stacking, the default). Turn ON only to blend/interpolate LoRAs. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| MergeMethod | MergeMethod | — |