Last Frame Save
Pin the exact frame a scene ends on — Last Frame Save
- image
- Image
The name undersells it, but this is the cleanest way to force a scene to end on a frame of your choosing instead of whatever the video happened to land on.
When you run the ComfyUI Video Progression loop, the pack's Story Scene Switch reads the last frame out of the latest Infinite_Video*.mp4 and feeds it back into the sampler as the starting point for the next scene. That's automatic and usually great. But auto-extraction doesn't care about your artistic intent - the video can end on a blur, a flicker, or a frame that would send the next scene drifting off-character. Last Frame Save exists for exactly that moment: you hand it an image, it writes it to output/temp_last_frame.png, and the switch picks that file up as the fixed last frame instead of the video's.
Mechanically it's as thin as a node gets. Feed it any IMAGE tensor. It takes the first frame of the batch, converts it to a PNG, deletes any previous temp_last_frame.png, and writes the new one. Then it passes your image through untouched, so you can drop it inline in a wire without breaking the flow.
Inputs and outputs, the whole schema:
image(IMAGE) - what you want pinned as the last frameImage(IMAGE) - the same tensor, passed through unchanged
Where does it sit in the graph? Practically, right after a VAE Decode - or after the pack's Vace Resolution Wizard if you're normalizing canvas size first - before the frames head to Whole Video. Run it once, and the next time Story Scene Switch runs a further generation it reads temp_last_frame.png and uses that as the seed image. The switch cleans those temp files up when you start a fresh first scene, so you never manage the file by hand.
Install is the whole pack's install, and it's genuinely light - no model downloads, no GPU-hungry extras:
cd ComfyUI/custom_nodes
git clone https://github.com/pmarmotte2/Comfyui-Video-Progression
then restart ComfyUI. Or skip the terminal entirely: ComfyUI Manager → Install Custom Nodes → search "Comfyui-Video-Progression" → install → restart.
Two gotchas, both real, both grounded in the code. First, it only writes the first frame of whatever batch you feed it - a multi-frame video batch in means only frame 0 gets saved. If you want a later frame pinned, slice it out upstream first. Second, if torch isn't importable it silently passes the image through without saving anything; in a normal ComfyUI install that can't really happen, but if your forced frames keep getting ignored, open your output folder and check that temp_last_frame.png actually exists. If it's not there, the write failed for a reason the node only printed to the console.
That's the whole node. It doesn't write video, it doesn't rewrite prompts, it doesn't even transform your image. It's the "pin this frame" button for the progression loop - boring, small, and the difference between a story that flows and one that drifts.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| Image | IMAGE | — |