🖼️ Load Scene Keyframe
Bring the scene's starting frame back into the loop
- IMAGE
Chunked video has a continuity problem: each chunk is generated somewhat independently, and without a shared reference, scene 2 drifts from scene 1 - different face, different lighting, different everything. The fix the pack uses is keyframes: save the last frame of a scene, then feed it back as the starting image of the next scene's generation. LoadSceneKeyframe is the loader half of that pair - it takes a file path and hands you the image as a tensor.
It's deliberately small. Its sibling SaveSceneKeyframe writes the image (and marks the scene done in the pack's state machine); this node reads it back. Together they're the "continuity across decoupled flows" mechanism the README describes - they let a split workflow survive the fact that each scene runs in its own loop cycle, or even a completely separate workflow.
How it works
You give it file_path (STRING) - typically the image_load_path that DynamicSceneDirector outputs, i.e. something like output/{audio_filename}_Keyframes/scene_2.png. It opens the image, applies EXIF transpose (for phone photos that would otherwise come out rotated), converts to RGB, and returns it as a standard IMAGE tensor ready for an image-to-video or image conditioning input.
The failure mode is friendly: if the file doesn't exist, it returns a black 512×512 tensor instead of crashing. That keeps the loop alive on a missing keyframe, but it also means a typo'd path silently gives you a black image - which is a great way to burn a cycle wondering why generation looks like a void. Check the path once, then trust it.
Outputs
IMAGE- the loaded frame. That's the entire output surface of the node. Feed it into your image encoder / I2V conditioning.
Where it fits
The intended loop: SaveSceneKeyframe at the end of scene N writes the last frame → on the next cycle, LoadSceneKeyframe reads it back → that image becomes the first-frame conditioning for scene N+1. In LTX 2.3 workflows this is especially natural, since LTX is a first-frame/last-frame conditioned model and the keyframe is exactly the "first frame" it wants. You could load the file with a generic Load Image node, but this one is built to be fed by the Director's path output, and it doesn't add the usual filename-widget friction.
Install
ComfyUI Manager → search "comfyui-sequential-batcher", or:
cd ComfyUI/custom_nodes
git clone https://github.com/Meisoftcoltd/comfyui-sequential-batcher
Restart ComfyUI. No models, no heavy dependencies. Pack-wide note: launch without --highvram, and remember the keyframe files live in ComfyUI's output directory under a folder named after your audio project.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| file_path | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |