Extract Frame From Video
Frame out of a video, locally, with one input
- video
- IMAGE
The one DeepGen node that doesn't call home
DeepGen_VTI0 pulls a single frame out of a video and hands it to the graph as an IMAGE. No API key, no credits, no network - it's a local utility that happens to live in a pack full of cloud nodes. If you've ever wanted a poster frame from a generated clip to feed into an img2img node or a review pass, this is the thing.
It's a deliberately boring node, and that's the appeal. The whole job is: open the video with OpenCV, jump to a frame index, convert it from OpenCV's BGR to ComfyUI's RGB, normalize to 0–1, hand back a tensor. Nothing about your footage leaves the machine.
Inputs and output
- frame_index - the frame you want, 0-based, default 0, up to 10000.
- video - the pack's VIDEO type, from any DeepGen generation node or DeepGen_LVID (Load Video).
Output: IMAGE, one frame as a (1, H, W, 3) tensor that wires straight into anything that eats an image.
Two practical notes. First, frame 0 (the default) is rarely the frame you want - for a poster frame, go a third or halfway in and dial the index until you hit a good one. Second, the failure mode is silent: if the video can't be opened or the index doesn't exist, you get a blank 512×512 black image, not an error. A black frame in your graph isn't a crash, it's this node giving up politely. Watch for it.
Install
It's part of ComfyUI-DeepGen-API, so the install is the pack's: ComfyUI Manager → search "ComfyUI-DeepGen-API", or clone https://github.com/deepiksdev/ComfyUI-DeepGen-API.git into custom_nodes and pip install -r requirements.txt. The one dependency that actually matters here is opencv-python - this node imports cv2 at the top of its module, so if requirements.txt wasn't installed, the whole pack fails to load, not just this node. Restart and you're done. No API key needed for this one.
Why the deprecation flag might confuse you
If you see "⚠️ [Deprecated] Extract Frame From Video" (VideoToImage_deepgen) in your node list, that's the old name for this same node. Old workflows that reference it still load - the pack maps the legacy name to a deprecated copy - but new graphs should use DeepGen_VTI0.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| frame_index | INT | 00–10000 | — |
| videoopt | VIDEO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | — |