Grab First Frame
The First Frame, in One Node, With Zero Settings
- images
- image
Video-to-image work has one recurring need: give me the first frame. It's the anchor for image-to-video generation, the preview thumbnail, the "what does this clip start on" check, the starting condition for a first-frame alignment. Grab First Frame is that operation as a node - one input, one output, no settings, nothing to get wrong.
It's the kind of node that looks too trivial to exist until you realize how many workflows would otherwise need a "Get frame from batch" node configured, or a range node, just to do something a single images[0:1] should handle. This one hides that under a clean socket.
How it works
The whole mechanism is one tensor slice. Feed it an IMAGE batch - video frames, a sequence of generated images, whatever - and it returns the first frame (index 0) as a single-image batch. The output keeps the batch dimension (shape [1, H, W, C]), so it plugs straight into any node that expects an image: a VAE encode, a CLIP vision input, an image preview, a conditioning reference. No reshape, no "why is my single image a batch" confusion - it's already in the shape everything wants.
One input: images. One output: image. There are no optional knobs, no modes, no control_after_generate, no hidden gotchas. It does exactly one thing, which is the entire point of a node this small: when you reach for it, there's zero decision to make.
Where you'll actually use it:
- I2V conditioning - grab the first frame of a source clip and use it as the first-frame reference for image-to-video samplers.
- Preview / contact sheets - pull the opening frame to label or thumbnail a clip without loading the whole thing.
- Alignment and consistency checks - compare the first frame against a reference image to spot-drift before it accumulates.
- Batch-of-one helpers - when a downstream node chokes on multi-frame batches, this reduces the batch to its first element.
The README describes it as "one input, one output, zero settings," and that's not marketing - it's the honest spec.
Install
Search "Trent Nodes" in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/TrentHunter82/TrentNodes.git
cd TrentNodes
pip install -r requirements.txt
No dependencies beyond the pack's base stack - it's a single tensor slice, nothing to download. Restart ComfyUI after installing. (ComfyUI Manager has been flaky on this pack per the author's note about an early repo rename; manual clone is the dependable fallback.)
Common issues
- "It gave me a batch, not an image." The output is a 1-frame batch, which is exactly what most ComfyUI nodes want. If a node truly needs a non-batched tensor, that's unusual - and you'd see it fail on any other image output too.
- "I wanted the last frame." Then this isn't the node. It grabs the first frame, always - that's the entire contract. (The pack has a sibling node for the last-frame case on videos.)
For a tool this small there's almost nothing to troubleshoot, which is the compliment. Wire it, forget it, move on - it does the one job it exists for.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | Batch of images |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |