Nodes/kentskooking-nodes/Checkpoint Preview Loader
ComfyUI Node

Checkpoint Preview Loader

Reload the render that ComfyUI killed at frame 900

By Kentskooking·Created 10 months ago·Updated 15 days ago· 8
Checkpoint Preview Loader
    • latent
    checkpoint_path

    Iterative video renders are the kind of job you start at bedtime. Six hours in, at frame 900, the power blips and your GPU politely forgets the last three hundred frames it worked on. That's what this node is for: Checkpoint Preview Loader is the reload side of this pack's checkpointing system, and it's the difference between "re-render everything" and "pick up where I died."

    Let's be honest about the name first, because it's a lie in a useful direction. It's called "Preview Loader," but it outputs a LATENT, not an image. You feed the .latent checkpoint file that the samplers saved mid-run, and it hands you back the latent tensor so you can decode it with a VAE and actually look at what the render looked like at the last save. If that sounds like a preview, great - but the same latent is also what you need to resume, so the node does double duty.

    How it works

    The ImageIterativeSampler and VideoIterativeSampler write rolling checkpoints as safetensors files with a .latent extension, plus a preview PNG beside each one. This node takes your checkpoint_path string, resolves it against the default ComfyUI/output/video_checkpoints/ directory, and loads the tensors. It's smart about the filenames: drop the video_ckpt_ or image_ckpt_ prefix and the .latent extension, and it'll still find the file. Under the hood it pulls the latent_tensor key out of the safetensors and wraps it in the LATENT dict ComfyUI's decoder expects.

    The one required input is:

    • checkpoint_path (STRING) - the run id, a filename, or a path to the .latent file.

    Output is a single latent. Wire it into a VAE Decode to preview the last saved frame, or into the iterative sampler (with IterativeCheckpointController set to load) to resume the run.

    Where it fits

    The full loop is: IterativeCheckpointController → sampler (saves checkpoints every N iterations) → this node → VAE Decode → look at your progress. And because the preview PNGs are saved with embedded metadata - the workflow prompt and the checkpoint run id - you can restore the workflow state from the preview image itself, per the pack README.

    Installing it

    This node ships in kentskooking-nodes, so you install the whole pack once and all its nodes land together. Easiest: ComfyUI Manager → Install Custom Nodes → search kentskooking-nodes → install, restart ComfyUI. Or manually:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Kentskooking/kentskooking-nodes
    

    Restart after cloning. No model downloads - the pack runs on torch, numpy, Pillow and safetensors, all already present in a stock ComfyUI.

    Common issues

    • FileNotFoundError listing both video_ckpt_...latent and image_ckpt_...latent - that's the node telling you it couldn't find your run id. Check the output/video_checkpoints/ folder for the actual filename; the run id is the timestamp portion (like 20260826_031512).
    • "checkpoint_path must be a non-empty string" - you gave it an empty path. The run id you pass to the loader must match what the sampler wrote; the IterativeCheckpointController is what remembers it for you.
    • No preview image? The preview PNGs are only written when a VAE is connected to the sampler. No VAE, no preview - the checkpoint still saves.

    The trap most people hit: treat the run id as opaque. Don't guess it, read it off the filename in output/video_checkpoints/.

    Categorykentskooking/checkpointing

    Inputs (1)

    NameTypeDefaultDescription
    checkpoint_pathSTRING

    Outputs (1)

    NameTypeDescription
    latentLATENT