A1 Load Latent
Pick a saved latent from a dropdown instead of re-running the sampler
- samples
A1 Load Latent is the read half of ComfyUI LatentSaver, and it's the node that makes the whole idea comfortable. Instead of typing a path or remembering where you parked a file, you open the node and a dropdown lists every latent saved anywhere under ComfyUI's output folder. You click one, and a ready-to-use LATENT comes out the other side. No path setup, no fumbling.
The typical reason you're here: you ran a long video generation, the sampler finished, Decode crashed with a VRAM OOM, ComfyUI died, and you'd rather not burn another hour re-sampling. If you saved the latent right after sampling (with the pack's A1 Save Latent), you restart ComfyUI, drop in this node, pick the file, and connect it straight to VAE Decode. The decode OOM is now the only thing left to solve - usually by picking a smaller tiled decode or a different VAE - and the expensive diffusion work is already done. It's also just a nice latent library: save a few good samples, then iterate on decode settings, upscalers, or video post-processing without touching the sampler.
How it works
The clever bit is how the file list is built. When ComfyUI asks for the node's inputs, the code walks the entire output directory recursively, collects every .pt file, strips the extension, and feeds them in as the dropdown choices. That scan is why you never type a path: nested subfolders are searched automatically, so output/MyProject/golden_shot.pt shows up as just MyProject/golden_shot in the list. It's also why you need to refresh the page after saving something new - the list is only rebuilt when the workflow loads. This is the pack's real edge over ComfyUI's built-in Load Latent node, and the honest read is that the built-in one works fine; it just makes you deal with paths more manually. The author made this specifically because that annoyed him during Wan video runs, and the community reaction to his announcement post was largely "huh, but ComfyUI already has one" - so know what you're paying for: convenience, not capability.
Under the hood it loads with torch.load(map_location="cpu") and weights_only=True when your torch supports it (with a fallback for older versions), so it's safe against the pickle-tampering class of attacks and won't squat on VRAM. It also handles both shapes of saved data - the standard dict, or a bare tensor from a node that saved one - and wraps the latter into the {"samples": ...} dict format ComfyUI expects.
The inputs and output
There's exactly one input: name, the dropdown of latent files found under output. Everything else is handled for you. The single output is samples (type LATENT), which you wire into VAE Decode, a latent img2img sampler, an upscaler that takes latents, or anything else with a LATENT input. Remember the VAE caveat: a latent only decodes correctly through a VAE from the same model family - the latent space is model-specific.
Installing
ComfyUI Manager (search ComfyUI LatentSaver) or the standard clone:
cd ComfyUI/custom_nodes
git clone https://github.com/A1-multiply/ComfyUI-LatentSaver
Restart ComfyUI. The pack has no dependencies and downloads no models - this one's purely utility.
Common gotchas
If a file you just saved isn't in the dropdown, refresh the browser page first; the list is built at page load. If the file genuinely isn't there, check it was saved to output - this node only scans that folder, not input. And if load fails with a "latent not found" error, it's almost always a stale list or a file that got moved after the page loaded - reload and try again. That's about the whole failure surface: this is a small, boring, reliable node.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| name | COMBO | Select a latent file to load from the ComfyUI output directory. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| samples | LATENT | — |