Frame Select
Pull one frame out of a batch
- frames
- image
A batch of images comes in, one image comes out - the one at the index you pick. That's the whole node. It sounds trivial, and in isolation it is, but in a video workflow it's the thing you reach for constantly. Wan and other video models hand you a stack of frames; when you want to grab frame 0 to use as a still, or pull the last decent frame to feed as a starting point for the next clip, or just inspect one frame in the middle without previewing the whole sequence, this is how.
RES4LYF has a strong video-editing side - the README shows Wan vid2vid and frame-by-frame temporal prompting - so it makes sense the pack ships the small frame-wrangling helpers those workflows need. Frame Select is the simplest of them: an indexer for image batches.
How it works
An IMAGE in ComfyUI is really a batch tensor - a stack of frames, even when there's only one. This node indexes into that stack and returns a single frame as a one-image batch. Index 0 is the first frame, and it counts up from there.
The inputs that matter
Two inputs, both essential:
- frames (
IMAGE) - the batch you're selecting from. Usually the output of a video decode or a batch-image loader. - select (
INT, default 0) - which frame to grab, zero-indexed. 0 is the first, 1 the second, and so on.
The single output is image (IMAGE) - the one frame you picked.
Installing it
ComfyUI Manager: search RES4LYF, install, restart. Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/ClownsharkBatwing/RES4LYF/
cd RES4LYF
pip install -r requirements.txt
pip install in the venv or portable Python, restart, hard-refresh with F5. No downloads.
Where people get tripped up
The one real footgun is asking for a frame that isn't there. If your batch has 16 frames, they're numbered 0 through 15 - select of 16 is off the end. Different builds handle an out-of-range index differently (some clamp to the last frame, some error), so if you're getting the wrong frame or a red node, check that your index is within the batch length. When in doubt, wire the batch through a node that reports its frame count and keep select below that number.
Also worth stating plainly: this returns one frame, not a range. If you want frames 4 through 10, that's a job for Frames Slice, not this node. And if you're working before the VAE decode - pulling a still out of a video latent rather than a decoded image batch - you want the latent-side equivalent instead, since this node expects an IMAGE.
One last practical note: because the output is a single-image batch, it drops straight into anything that takes an image - a save node, an upscaler, or a second sampler pass using that frame as an init image. That last pattern, grabbing the final good frame of one clip to seed the next, is the whole reason this tiny node earns a permanent spot in video graphs.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| frames | IMAGE | — | |
| select | INT | 00–10000 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |