Nodes/VACE Tools/Save Latent (Absolute Path)
ComfyUI Node

Save Latent (Absolute Path)

Stop losing track of where your latents went

By ethanfel·Created 7 months ago·Updated 6 months ago· 9
Save Latent (Absolute Path)
  • samples
  • LATENT
path/path/to/latent.latent
overwritefalse

ComfyUI's built-in Save Latent writes into ComfyUI/output/ with an auto-generated filename, which is fine until you need to find the thing, or you want it somewhere deliberate - a backup drive, a shared folder, a named workspace directory. SaveLatentAbsolute replaces the mystery with one input: you give it the full path and it writes there. That's the entire pitch, and it's a good one for anyone doing long video or multi-pass pipelines where intermediates accumulate.

It's the writing half of the pack's latent pair. LoadLatentAbsolute reads these files back - including the extra metadata this node embeds - and the two together give you a portable .latent interchange that isn't tied to a specific ComfyUI install.

How it works

This is an output node (is_output_node: true), so it's a terminal in your graph: wire a LATENT into samples, set a path, run, done. The mechanism is worth knowing because it's what makes the round-trip lossless:

  • It expands ~, appends .latent if you forgot it, and creates parent directories automatically - no more "No such file or directory" because the folder didn't exist.
  • By default overwrite is false, so if the target already exists it appends _1, _2, … rather than clobbering. Flip overwrite to true when you actually want a deterministic filename (scripts, batch reruns).
  • It saves via safetensors with the device of each tensor and any JSON-serializable non-tensor data (like a noise_mask) stashed in the file header. Load it back with LoadLatentAbsolute and the tensors land on their original devices with their extra data intact.

The one output is a pass-through of the samples you put in - handy if you want to tee off the latent to a save node and keep the chain going, since an output node otherwise ends the wire.

How to install it

Part of ComfyUI-VACE-Tools, ethanfel's small utility pack (he's the same dev behind ComfyUI-LoRA-Optimizer and ComfyUI-Krea2TexTEncoder). One install gets you all seven nodes:

cd ComfyUI/custom_nodes/
git clone https://github.com/ethanfel/Comfyui-VACE-Tools.git

Restart ComfyUI afterwards, or search "VACE Tools" in ComfyUI Manager. Zero extra dependencies - the pack's pyproject declares none, so it runs on the torch and safetensors ComfyUI already ships, and it downloads no models.

Common issues

The most common gotcha is the overwrite default biting you in a script: rerun a workflow expecting the same filename and you'll quietly get _1, _2 files instead - that's the feature working as designed, not a bug. If you want to load a file you saved, remember the extension behavior: the save node appends .latent automatically, so a path you typed as /foo/bar becomes /foo/bar.latent on disk. Give the load node the same path and everything lines up.

Categorylatent

Inputs (3)

NameTypeDefaultDescription
samplesLATENT
pathSTRING/path/to/latent.latent
overwriteoptBOOLEANfalse

Outputs (1)

NameTypeDescription
LATENTLATENT