LC VAE Save
The boring node you need the moment you merge a VAE
- vae
- path
What it does
Writes a VAE to models/vae, ready for Load VAE. Wire a vae in, give it a filename, pick a precision, queue. It's the least exciting node in the pack and the one you'll actually need, because a merged VAE only exists inside your graph until you write it to disk.
The natural pairing is LC VAE Merge: merge the decoders, look at the report, save the result, then wire the saved file into a real workflow with Load VAE. Without this step the merge is gone the next time you restart ComfyUI, and you'll be rebuilding sliders from memory.
The inputs
vae - any VAE, from a loader, from LC VAE Merge, or from anywhere else in the graph.
filename (default LC_merged_vae) - saved under models/vae, subfolders work, and it never overwrites: a number is appended if the name is taken. Worth using real names here, a Krea2_wan_decoder_qwenmid beats LC_merged_vae_7 when you come back in a month.
precision - and this is the only real decision. fp32 is the default and the safest thing you can do with a VAE; keep it there unless disk space is genuinely the problem. bf16 and fp16 halve the size, and on a VAE the visible cost is banding in smooth gradients - skies, studio backdrops, soft skin, exactly the places the decoder was doing subtle work. If you save in half precision and your gradients start showing steps, that's the cause, and re-saving in fp32 fixes it.
enabled - off skips the save entirely, nothing written. Like the other save nodes in this pack, it's a real toggle rather than a bypass, so you can convert it to an input and gate saving from a switch elsewhere in the graph.
One output: path, the file you just wrote, as a string.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/lonecatone23/ComfyUI_LC_ModelBuilder_nodes
Restart. No dependencies - this is safetensors and ComfyUI core, nothing the base install doesn't already have.
Where people get burned
The quiet one is precision. A VAE saved in bf16 loads and renders fine, so nothing tells you the difference; you just get slightly banded gradients months later and blame the sampler. VAEs are small - tens to a few hundred megabytes - so fp32 costs you a rounding error in disk terms and removes the question entirely.
The other is expecting the saved file to behave like a checkpoint VAE. It's the VAE only, and a merged one carries vae_a's encoder by construction, so it belongs with models built on vae_a. Load it into a model trained on a different family's latents and you get noise or flat colour, not a subtly wrong picture - which at least is unambiguous.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| vae | VAE | — | |
| filename | STRING | LC_merged_vae | Saved in models/vae, ready for Load VAE. A subfolder works. An existing file is never overwritten. |
| precision | COMBO | fp32 | fp32 keeps every bit (the safest for a VAE). bf16 / fp16 halve the size; bf16 can band a little in smooth gradients. |
| enabled | BOOLEAN | true | Off skips the save. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| path | STRING | — |