IAMCCS FlashVSR Panel Batch Restore
Get your original shot count back after FlashVSR
- frames
- images
- report
This node is the other half of a two-node handshake. FlashVSRPanelBatchPrep duplicates your few storyboard frames so the FlashVSR upscaler has a full clip to work on; FlashVSRPanelBatchRestore runs after the upscaler and picks the original frames back out of the result. Together they let you upscale a 6-frame panel sequence through a video upscaler without ending up with 24 frames you have to manually thin down.
It's a tiny node, and it's honest about being a utility - but it's the one that keeps your timeline clean, and that's worth more than it sounds.
How it works
The source is straightforward: you give it the upscaled frames batch plus the two numbers the Prep node produced - original_count and repeat_factor. Since Prep interleaved each original frame repeat_factor times in a row, the restore step picks frame indices at every repeat_factor-th position:
picks = [min(i * repeat_factor, total - 1) for i in range(original_count)]
So for a 24-frame batch that was really 6 frames repeated 4×, it grabs frames 0, 4, 8, 12, 16, 20 - one representative frame per original shot. Outputs:
images- the thinned-down batch, back to your original count.report- the picked indexes and shapes, so you can sanity-check that it actually restored what Prep created.
The min() guard means even if the upscaler returned a slightly different frame count than expected, it won't index out of bounds.
Inputs that matter
frames- the upscaled output from FlashVSR.original_countandrepeat_factor- wire these straight from the Prep node's outputs, don't type them by hand. That's the whole setup, and getting it wrong is the only real failure mode.
Install
Ships with IAMCCS-nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Or ComfyUI Manager → "IAMCCS" → install → restart. No extra dependencies.
Gotchas
The chain only round-trips cleanly if you keep Prep → FlashVSR → Restore wired in order and pass the exact original_count/repeat_factor through. If you typed them manually and they disagree with what Prep computed, you'll get a frame count that's off or - worse - duplicated frames that look like a stutter in your edit. Also remember that since Prep duplicated still frames rather than creating new motion, Restore is picking the least bad representative of each shot, not inventing intermediate motion. If you need real temporal detail, interpolate between the originals before upscaling instead.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| frames | IMAGE | — | |
| original_count | INT | 61–512 | — |
| repeat_factor | INT | 41–64 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| images | IMAGE | — |
| report | STRING | — |