Nodes/TrentNodes/Grab First Frame
ComfyUI Node

Grab First Frame

The First Frame, in One Node, With Zero Settings

By TrentHunter82·Created 9 months ago·Updated 4 days ago· 36
Grab First Frame
  • 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.

CategoryTrent/Image

Inputs (1)

NameTypeDefaultDescription
imagesIMAGEBatch of images

Outputs (1)

NameTypeDescription
imageIMAGE