DD Video Frame Extractor
Grab the first or last frame of a clip without touching code
- 视频
- 图像
In ComfyUI, a "video" is just an IMAGE batch - frames stacked on the batch dimension. That means extracting a frame is a tensor slice, and DD Video Frame Extractor is the node that wraps exactly two of those slices: video[0] for the first frame, video[-1] for the last. It's about as simple as a node gets, and it earns its keep in video workflows that need a representative still.
How it works
One required input, 视频 (Video) - any IMAGE batch from a video loader, a frame-sequence generator, or an image-to-video output. The 提取模式 (Extract Mode) dropdown has two options: 首帧 (First Frame) and 尾帧 (Last Frame). It keeps the batch dimension (so the output is [1, H, W, C], a valid single-frame image), prints the total frame count to the console, and emits one 图像 (Image) output. Nothing else - no frame number input, no stride, no video-file path. This is deliberately the dumb version of a frame extractor.
When you'd reach for it
The pattern that made it worth building: video models like Wan 2.2's I2V path anchor on a first frame, and people routinely want to pull that anchor back out of a generated clip to reuse or inspect it. First-frame extraction is also the standard way to get a poster/thumbnail from a video, and last-frame extraction is the classic "where did it end up" check when a video went off the rails. Because the output is a plain IMAGE, it feeds directly into a VAE encode, a save node, or an img2img pass.
Installation
Part of the DD-Nodes pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Dontdrunk/ComfyUI-DD-Nodes
cd ComfyUI-DD-Nodes && pip install -r requirements.txt
Restart ComfyUI or use ComfyUI Manager (search "ComfyUI-DD-Nodes"). Pure torch slicing - no models, no ffmpeg dependency (it never touches a video file directly; it only sees an in-memory frame batch).
Honest take
It's two slices wrapped in a UI, and it will happily coexist with - or be beaten by - any of the dozen similar extractors in the ecosystem. What it has going for it: zero config, it's already installed with the pack, and it errors loudly (rather than silently) if you hand it an empty batch. The limits are worth knowing: it only does first/last, not "frame 42," and it doesn't accept a file path, so a plain video file still needs a video-loader node upstream of it. If all you need is a start/end still from an in-memory clip, this is the one. Labels are Chinese-first; the pack has an English locale in ComfyUI settings.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| 视频 | IMAGE | — | |
| 提取模式 | COMBO | 首帧 | 2 options: 首帧, 尾帧 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| 图像 | IMAGE | — |