📥 Session Image Receiver
Keep the last good frame in RAM so the next chunk starts in the right place
- initial_image
- current_image
- log
Chunked video generation has a continuity problem: chunk two needs to start from the last frame of chunk one, but chunk two is a brand-new prompt execution that knows nothing about chunk one. ComfyUI has no memory between executions. SessionImageReceiver is the pack's answer - it remembers the last good frame in RAM and hands it back to you on the next cycle.
This is one half of the Sender/Receiver pair, and they're meant to bookend your generation: the Sender sits after your KSampler, the Receiver sits before it, and the last validated frame travels from the end of one chunk to the start of the next without ever touching the disk. It's part of comfyui-sequential-batcher's "retain and transfer images in memory across different cycles" job, and it's what lets image-to-video chunks stay visually locked together across the whole clip.
How it works
The node keeps a module-level cache (global_session_image) that survives between prompt executions in the same ComfyUI process. On cycle 0 - or whenever no cached image exists yet - it takes your initial_image and seeds the session with it. On every later cycle it returns the frame the Sender stashed away. It also reads the pack's global timeline (accumulated / total frames) and prints it to the log, which makes it a handy status beacon while a long render chugs along. It's an output node, so it renders a preview of whatever frame it's serving.
Inputs and outputs
initial_image(IMAGE) - your starting point: the video's first frame, a reference frame from the Video Analyzer, whatever seed image the clip should begin from.current_loop_index(INT) - feed this fromSequentialLoopStart; the node uses it to detect "first cycle."
Outputs: current_image (the IMAGE to feed your latent/VAE) and a log string. In a typical split-flow setup you'll see the pattern: Receiver → encode → KSampler → Sender.
Installing it
It's in comfyui-sequential-batcher, so one install covers it:
cd ComfyUI/custom_nodes
git clone https://github.com/Meisoftcoltd/comfyui-sequential-batcher
or search "comfyui-sequential-batcher" in ComfyUI Manager, then restart. No models, no extra deps.
Common issues
The one thing to internalize: the memory is in-process. Restart ComfyUI and the session cache is gone - cycle 0 logic kicks in again, which is fine if your loop_idx also resets, and a mess if it doesn't. Keep current_loop_index wired from the Loop Start and everything stays consistent. Also, the Receiver only knows what the Sender validated; if you bypass the Sender, it just returns the initial image every cycle, which looks like your video never advanced.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| initial_image | IMAGE | — | |
| current_loop_index | INT | 00–10000 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| current_image | IMAGE | — |
| log | STRING | — |