SD Slicer — Save (any)
Save any state_dict to disk — the writer that closes every merge loop
- any
SD Slicer - Save (any) is the pack's wildcard writer: it takes a state_dict from any input - a VAE, a CLIP, a raw LoRA, a plugin type, or the output of the pack's Merge (any) node - and writes it to a .safetensors file in whatever folder you point at. Where Save Model is the full-checkpoint finisher, this is the catch-all. Merged something into a raw state_dict? This is how it leaves your workflow as a file you can actually load next time.
It's the natural end of the LoRA chain the pack's README diagrams:
Load LoRA (raw) ┐
├─► Merge (any) ─► Save (any) (destination: models/loras)
Load LoRA (raw) ┘
Without this node, Merge (any) would hand you a dict and then what? With it, the loop closes: blend two LoRAs, save the result into models/loras, and it shows up in your stock LoraLoader's dropdown like any other LoRA. Same idea applies to a tuned VAE or a ControlNet experiment.
Inputs and fields
any- wildcard input. Anything the pack can extract weights from: raw dict, VAE, CLIP, ModelPatcher, or an object exposingget_sd()/state_dict(). If it has weights, this can write them.filename_prefix- defaultsd_slicer/state_dict; a counter gets appended, so no accidental overwrites.destination- the widest list in the pack:output, plusmodels/checkpoints,models/diffusion_models,models/vae,models/loras,models/controlnet,models/clip,models/clip_vision,models/upscale_models. Pick the folder whose loader you want to see the file.
It's an output node with no return sockets - it runs, writes the file, and reports the path in its widget text so you can confirm where things landed.
How it works
Under the hood it reuses the same extraction helper as the rest of the pack (it handles plain dicts and the common ComfyUI object types) and then calls ComfyUI's own save_torch_file, so the .safetensors it writes is a standard, loadable one. The one thing to remember is the mirror of Merge (any)'s warning: the pack writes what you give it, but whether the contents are valid is your problem. It won't refuse to save a merge of mismatched shapes that loads as garbage - the loadability test happens on the way back in.
The realistic workflow: save into output while experimenting (nothing in your loaders' lists gets touched), and only promote the file into models/loras or models/vae once you've confirmed the result actually loads and generates sanely. It's a small node that does exactly one job, and it's the difference between merges being a demo and merges being something you keep. Install comes free with the pack - ComfyUI Manager (search "SD Slicer") or:
cd ComfyUI/custom_nodes
git clone https://github.com/kuschanow/ComfyUI-SD-Slicer
then restart ComfyUI. No extra dependencies, no model downloads, nothing to configure.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| any | * | — | |
| filename_prefix | STRING | sd_slicer/state_dict | — |
| destination | COMBO | 9 options: output, models/checkpoints, models/diffusion_models, models/vae, models/loras, models/controlnet, +3 |
Outputs (0)
No outputs