SP Custom Checkpoint Save
Save a checkpoint without being forced to bundle CLIP and VAE
- model
- clip_opt
- vae_opt
ComfyUI's stock Save Checkpoint node wants a MODEL, a CLIP and a VAE together, no exceptions - which is fine if you're saving a full working checkpoint, and annoying the moment you're not. SP Custom Checkpoint Save relaxes that: MODEL is still required, but CLIP and VAE are optional. That matters most right after a model merge - this pack ships a pile of merge nodes (CheckpointTwoMerger, CheckpointThreeMerger, LoRA mergers among them, and the README's own "Model Merging" section is built around exactly this workflow) - where you've just produced a new UNet and don't necessarily want to re-bundle the same CLIP and VAE into every merge experiment you save.
How it works
It's a straightforward save node - point it at a MODEL, give it a filename prefix, and it writes a checkpoint file. The difference from the stock node is entirely in what's required versus optional: skip CLIP or VAE and the saved file just won't include them, which is the right call if you're only iterating on the UNet weights and already have the text encoder and VAE living separately.
Inputs and outputs
model(MODEL, required) - the model to save. This is the one thing you can't skip.filename_prefix(STRING, required, defaultcheckpoints/ComfyUI) - path and prefix for the output file, same convention as ComfyUI's built-in save nodes.clip_opt(CLIP, optional) - include it if you want a self-contained checkpoint.vae_opt(VAE, optional) - same idea.
No outputs - this is a terminal node, marked as an output node, so it runs and writes the file regardless of what's (or isn't) connected downstream.
Installing it
ComfyUI Manager - search "SP-Nodes", install, restart. Manually:
cd ComfyUI/custom_nodes
git clone https://github.com/bananasss00/ComfyUI-SP-Nodes
then restart ComfyUI. No model downloads for the node itself - obviously the checkpoints it writes can be large, so make sure wherever filename_prefix resolves to has the disk space.
Common issues & troubleshooting
The saved file is huge for what feels like a small change. A checkpoint is the full model weights, not a diff - saving after every minor merge experiment adds up fast on disk. If you're iterating, consider whether you actually need a full checkpoint per attempt or whether a LoRA extraction (several of this pack's other nodes handle that) gets you the same result far smaller.
You skipped CLIP/VAE and the resulting checkpoint won't load somewhere else. That's expected, not a bug - a checkpoint saved without CLIP or VAE is only a UNet. Some loaders and workflows assume a full checkpoint bundle; if you're planning to hand the file to someone else or load it fresh later without also loading a matching CLIP/VAE separately, include them here.
filename_prefix writes somewhere unexpected. It follows the same relative-to-output-directory convention as ComfyUI's stock save nodes - if you're not sure where a save landed, check your output/ directory tree rather than the pack's folder.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model | MODEL | — | |
| filename_prefix | STRING | checkpoints/ComfyUI | — |
| clip_optopt | CLIP | — | |
| vae_optopt | VAE | — |
Outputs (0)
No outputs