ComfyUI Node
π¨ Easy Checkpoint Merger
A ComfyUI node in Checkpoint/Experimental with 28 inputs and 6 outputs.
π¨ Easy Checkpoint Merger
- checkpoint_data_a
- checkpoint_data_b
- checkpoint_data_c
- model
- clip
- vae
- checkpoint_data
- output_path
- forensic_report
βmethodlinearβΊ
βdensity1.00βΊ
βcheckpoint_aβΎβΊ
βcheckpoint_bβΎβΊ
βcheckpoint_cβΎβΊ
βweight_a1.00βΊ
βweight_b1.00βΊ
βweight_c1.00βΊ
βweight_unet1.00βΊ
βweight_clip1.00βΊ
βweight_vae1.00βΊ
βweight_te1.00βΊ
βblend_modeautoβΊ
βbalancing_modedisabledβΊ
βmagnitude_scalingnoneβΊ
βuniqueness0.70βΊ
βthreshold0.00βΊ
βblend0.50βΊ
βdeviceautoβΊ
βprecisionautoβΊ
βbatch_size64βΊ
βsave_triggerfalseβΊ
βfilenamemerged_checkpointβΊ
βsave_folder/tmp/ComfyUI/models/checkpointsβΊ
βmetadata_modemerge_basicβΊ
CategoryCheckpoint/Experimental
Inputs (28)
| Name | Type | Default | Description |
|---|---|---|---|
| method | COMBO | linear | Choose merging method |
| density | FLOAT | 1.000.1β1 | Keep top % of weights after merging. WARNING: Values < 1.0 sparsify checkpoint weights, which may degrade quality. Only reduce if you understand the risk. |
| checkpoint_aopt | COMBO | 1 options: None | |
| checkpoint_bopt | COMBO | 1 options: None | |
| checkpoint_copt | COMBO | 1 options: None | |
| checkpoint_data_aopt | CHECKPOINT | β | |
| checkpoint_data_bopt | CHECKPOINT | β | |
| checkpoint_data_copt | CHECKPOINT | β | |
| weight_aopt | FLOAT | 1.00-5β5 | Global strength of first checkpoint. For linear method: weights should sum close to 1.0 (e.g., 0.5+0.5) to avoid doubling magnitudes β 1.0+1.0 produces noise. |
| weight_bopt | FLOAT | 1.00-5β5 | Global strength of second checkpoint. For linear method: weights should sum close to 1.0 (e.g., 0.5+0.5) to avoid doubling magnitudes β 1.0+1.0 produces noise. |
| weight_copt | FLOAT | 1.00-5β5 | Global strength of third checkpoint. For linear method: weights should sum close to 1.0 (e.g., 0.5+0.5) to avoid doubling magnitudes β 1.0+1.0 produces noise. |
| weight_unetopt | FLOAT | 1.000β2 | Component scaling for UNET weights |
| weight_clipopt | FLOAT | 1.000β2 | Component scaling for CLIP visual encoder |
| weight_vaeopt | FLOAT | 1.000β2 | Component scaling for VAE |
| weight_teopt | FLOAT | 1.000β2 | Component scaling for Text Encoder |
| blend_modeopt | COMBO | auto | auto: Smart choice based on trainer metadata (match β dense, mismatch β active) | dense: Traditional weighted sum |
| balancing_modeopt | COMBO | disabled | disabled: Use weights as given (no equalization) | safe: Subtle equalization for cross-architecture merges | creative: Looser equalization (experimental) |
| magnitude_scalingopt | COMBO | none | Signal magnitude scaling before merging β scales checkpoint B and C to match A's energy using RMS or topβX% percentile. |
| 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 | 6 options: auto, float32, bfloat16, float16, fp8_e4m3fn, fp8_e5m2 |
| batch_sizeopt | INT | 641β256 | Number of keys to process per batch. DeviceManager.suggest_batch_size() can auto-tune based on VRAM. |
| save_triggeropt | BOOLEAN | false | β |
| filenameopt | STRING | merged_checkpoint | β |
| save_folderopt | STRING | /tmp/ComfyUI/models/checkpoints | β |
| metadata_modeopt | COMBO | merge_basic | How to handle metadata from source checkpoints |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| model | MODEL | β |
| clip | CLIP | β |
| vae | VAE | β |
| checkpoint_data | CHECKPOINT | β |
| output_path | STRING | β |
| forensic_report | STRING | β |