FromListGet1Image
Pick One Frame From an Image List
- list
- IMAGE
FromListGet1Image returns the single IMAGE at a given index in an image list. When your workflow has turned a batch of frames into a list and you need one specific frame - the first one, the middle one, frame 12 - this is the node that pulls it without you touching the batch dimension by hand.
Why you'd reach for it
Video and image-batch work generate lists of frames constantly, and the frame you care about is rarely the only one. FromListGet1Image is how you extract "just the first frame" as a thumbnail, isolate a reference frame for a ControlNet, or inspect one generation out of a grid. It's the other half of the pattern where ImageBatchToList (same pack) converts a batch into a list and this node picks from it.
The killer feature is the modifiable index. Wire a counter into index and the same node walks through the list over successive runs - frame-by-frame review, or feeding sequential frames to a detail pass without rebuilding the graph.
How it works
Index lookup with index % len(list), zero-based, negative indexes count from the end (-1 = last frame). The list input is forced: it must be connected to something emitting an IMAGE list. This is where the family's one persistent trap lives - a sampler's IMAGE output is a tensor batch, not a list, so it won't connect until you run it through ImageBatchToList. The index widget accepts a connection for dynamic selection. Output is a single IMAGE.
Install
It's part of bmad4ever's pack:
cd ComfyUI/custom_nodes
git clone https://github.com/bmad4ever/comfyui_bmad_nodes
then restart ComfyUI. Manager users search "comfyui_bmad_nodes".
Common issues
- "Why won't my image connect to
list?" Because it's a batch, not a list.ImageBatchToListfirst, then this node. - Zero-based, negative-friendly. Index 0 is the first frame;
-1is the last. Great for grabbing the tail of a video. - Wrapping. Out-of-range indexes wrap around (
index % len), so frame 200 on a 24-frame list returns frame 8 - correct, but easy to misread as a bug.
One frame out, exactly the one you pointed at. That's the whole contract, and it's reliable.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| list | IMAGE | — | |
| index | INT | 0 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |