Load Latents Conditioning (CRT)
Re-open a saved latent + conditioning pair by seed — and grab the matching audio for free
- latent
- conditioning
- file_name
- total_files
- audio
This is the "read" half of the pack's save/load latent pair. If SaveLatentsConditioning freezes a latent and its conditioning into one .safetensors, this node unpacks them again - and it picks which file to load by seed, which is the neat part. Instead of typing a filename, you give it a folder and a seed, and it selects a file deterministically from the folder. Combined with ComfyUI's seed controls (fixed, increment, randomize), you get a scrubbable "scene browser": bump the seed, get the next saved scene.
How it works
Point it at folder_path, set a seed, and it lists the .safetensors files in that folder (crawling subfolders if you enable it), selects one by seed, and decodes it back into a latent and a conditioning. Because the conditioning was saved already-encoded, this node never touches the CLIP - you can regenerate from a saved scene without re-encoding text, which is both faster and immune to prompt-encoding drift between runs.
The party trick is the audio output. The loader looks next to the selected .safetensors for a same-stem audio file (.wav, .mp3, .flac, .ogg, .opus, .m4a, .aac, .wma in that priority order) and returns it as a ComfyUI AUDIO dict - or None if nothing matches. So the full pattern is: save a scene, drop a music track beside it, and reload the whole thing - latent, conditioning, and audio - with one seed. Audio nodes downstream get their waveform and sample rate directly.
The outputs
Five of them, though you won't always use them all:
latent- the saved latents, straight into a sampler.conditioning- the saved conditioning, into the same sampler.file_name- which file got selected; feed this to a text preview so you can see what scene a given seed resolved to.total_files- how many files were in the folder, handy for a loop or a "random scene within range" expression.audio- the matching audio file, orNone.
One honest gotcha
The file must have been written by SaveLatentsConditioning (or be byte-compatible with its metadata format) - this isn't a general safetensors latent loader, and random latent files won't decode. Use the pair together and it's seamless. Also note the loader is picky by design: no matching audio means None, not an error, so graphs that expect audio should tolerate the empty output.
Install
Part of CRT-Nodes, same routine:
cd ComfyUI/custom_nodes
git clone https://github.com/PGCRT/CRT-Nodes
pip install -r requirements.txt
Or ComfyUI Manager → search CRT-Nodes, restart. The loader uses PyAV under the hood for audio decode (mirroring ComfyUI's own audio nodes), so if your install skipped the audio bits of requirements.txt, install av for the audio path - the latent/conditioning load itself works without it.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| folder_path | STRING | — | |
| seed | INT | 00–18446744073709550000 | — |
| crawl_subfolders | BOOLEAN | false | — |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | — |
| conditioning | CONDITIONING | — |
| file_name | STRING | — |
| total_files | INT | — |
| audio | AUDIO | — |