ComfyUI Node
🔬 Easy LoRA Extractor
A ComfyUI node in EasyLoRAMerger/extraction with 20 inputs and 4 outputs.
🔬 Easy LoRA Extractor
- model
- clip
- model
- clip
- forensics
- lora_path
◄checkpoint_base▾►
◄checkpoint_tuned▾►
◄rank_modeauto►
◄rank64►
◄alpha_modeauto►
◄alpha64►
◄svd_modeauto_energy►
◄energy_threshold0.95►
◄noise_thresholdingtrue►
◄strength_multiplierauto►
◄detection_modeauto_fast►
◄save_triggerfalse►
◄filenameextracted_lora►
◄lora_formatnative►
◄deviceauto►
◄strength_model1.00►
◄strength_clip1.00►
◄save_folder/tmp/ComfyUI/models/checkpoints►
CategoryEasyLoRAMerger/extraction
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| checkpoint_base | COMBO | Reference (unedited) checkpoint — the 'before' state. | |
| checkpoint_tuned | COMBO | Fine-tuned checkpoint — the 'after' state whose concept to extract. | |
| rank_mode | COMBO | auto | auto: automatically determine optimal rank from SVD spectrum analysis. manual: use the specified rank value below. |
| rank | INT | 641–320 | Target rank (when rank_mode='manual') or upper bound (when rank_mode='auto'). |
| alpha_mode | COMBO | auto | auto: alpha = effective_rank × component_scale (e.g., TE=0.5×). manual: use the specified alpha value below. |
| alpha | FLOAT | 641–512 | Alpha value (only used when alpha_mode='manual'). |
| svd_mode | COMBO | auto_energy | auto_energy: automatic rank selection via energy threshold. manual: use specified rank. full: keep all singular values (no compression). |
| energy_threshold | FLOAT | 0.950.5–1 | Only used in 'auto_energy' mode. Energy retention threshold (0.50–1.0). Higher = more precision (higher effective rank). Lower = more compression. |
| noise_thresholding | BOOLEAN | true | Enable Marchenko-Pastur noise-aware SVD thresholding. Disable for cross-model deltas (e.g., Turbo vs. Base) where the noise model may incorrectly reject signal. |
| strength_multiplier | COMBO | auto | auto: automatically detect baking attenuation and compensate. 1.5/2.0/3.0: manual multiplier applied before SVD. |
| detection_mode | COMBO | auto_fast | auto_fast: sample 30 layers for quick attenuation estimate (default). auto_precise: analyze ALL layers for exact estimate. |
| save_trigger | BOOLEAN | false | — |
| filename | STRING | extracted_lora | Filename for the output LoRA (.safetensors added automatically). |
| lora_format | COMBO | native | native: standard CivitAI-compatible format (diffusion_model.* keys, merged QKV). diffusers: HuggingFace Diffusers format (transformer.* keys, QKV split). |
| device | COMBO | auto | auto: pick best available (CUDA if enough VRAM). cuda: force GPU. cpu: force CPU. |
| modelopt | MODEL | Optional: connect a model to preview the extracted LoRA applied to it. | |
| clipopt | CLIP | Optional: connect a CLIP to preview the extracted LoRA applied to it. | |
| strength_modelopt | FLOAT | 1.000–10 | Strength of the extracted LoRA when applied to the model (0.0–10.0). Ignored if model/clip not connected. |
| strength_clipopt | FLOAT | 1.000–10 | Strength of the extracted LoRA when applied to the CLIP (0.0–10.0). Ignored if model/clip not connected. |
| save_folderopt | STRING | /tmp/ComfyUI/models/checkpoints | Output folder. Leave blank to use ComfyUI's default loras folder. |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |
| clip | CLIP | — |
| forensics | STRING | — |
| lora_path | STRING | — |