Nodes/ComfyUI-SaveIntermediates/Get Intermediate Images
ComfyUI Node

Get Intermediate Images

Turn those saved steps back into frames — timelapse fuel, straight from the folder

By workordie·Created 8 months ago·Updated 8 months ago· 0
Get Intermediate Images
  • latent
  • images
job_id
output_folderprogress

The other two nodes in this pack write intermediate steps to disk. This one reads them back. SaveIntermediateSteps and its Advanced sibling save a pile of step_0000.jpeg files to ComfyUI/output/progress/..., and GetIntermediateImages collects every one of those into a single IMAGE batch, in step order. From there it's a wire to a preview or save node - or, more fun, a video encoder, which turns your generation into a genuine timelapse animation of the image drawing itself.

That's the use case that sells it: you can't pipe files on disk into a video encoder, but you can pipe an IMAGE batch. Feed this node's images into a VHS_VideoCombine or similar and you've got an "image forms from noise over 20 frames" clip you can post without any extra scripting.

How it works

The trick is in the latent input. It doesn't touch the latent's contents at all - it's there to enforce ordering. In ComfyUI, node execution follows the graph, so by connecting the LATENT output of your sampler into this node, you guarantee it runs after sampling finishes and the save node has flushed its files. It then lists the target folder, grabs files that start with step_ and end in .jpeg or .png, sorts them by filename (which is zero-padded, so step order is preserved), and stacks them into a batch.

Inputs: latent (required, from your sampler - just a sequencing hook), plus job_id and output_folder, which must match what the save node used. Output: a single images IMAGE tensor.

Where it bites

Two real footguns, both in the source. First, if it finds no files - say you changed the filename_prefix on the save node, since it only globs step_*, or the job_id doesn't match - it doesn't error. It silently returns a blank 64×64 black tensor. No red text, no hint; you'll just get a black image or a one-frame black video and wonder what happened. Match your job_id and output_folder exactly between the save node and this one.

Second, if you leave job_id blank on both nodes, the save node created a timestamped folder - and this node guesses by scanning for the most recently modified subfolder. That usually works, but on a busy machine with several runs finishing close together it's a race you don't need. Give both nodes a real job_id and the whole pack becomes deterministic.

Install is the same as the rest of the pack - ComfyUI Manager, or:

cd ComfyUI/custom_nodes
git clone https://github.com/DanielBartolic/ComfyUI-SaveIntermediates.git

Then restart. No extra dependencies. It's a thin node - genuinely thin - but it's the piece that turns a folder of previews into something you can actually show someone.

Categorysampling/streaming

Inputs (3)

NameTypeDefaultDescription
latentLATENT
job_idoptSTRING
output_folderoptSTRINGprogress

Outputs (1)

NameTypeDescription
imagesIMAGE