Nodes/ComfyUI-FBnodes/Get Video Components+
ComfyUI Node

Get Video Components+

Tear a video apart into frames, audio, and metadata without eating your VRAM

By FranckyB·Created 6 months ago·Updated 3 days ago· 13
Get Video Components+
  • video
  • images
  • audio
  • fps
  • filepath
  • latent
  • width
  • height
  • frame_count
  • duration

Get Video Components+ is the Swiss-army extractor for VIDEO in ComfyUI: it takes a VIDEO object and pulls out the frames, the audio, the fps, the dimensions, the file path, the frame count, and the duration - and it does it without loading the whole video into memory unless you actually need it. It's the natural companion to the pack's Load Video+ and Save Video+, and the reason it exists is that a lot of video work is just "I need this clip's frames as an IMAGE batch for an img2vid pass" or "I need its audio for muxing."

It's part of ComfyUI-FBnodes, François Beaudry's utility pack.

How it works - the smart part

The headline trick is lazy decoding. The node probes the video's metadata up front, and only decodes the heavy outputs - images and audio - if those sockets are actually connected to something. Leave them dangling and it hands back lightweight placeholders, which makes the node cheap to drop into a workflow just to read dimensions or duration. The README calls it "metadata-first," and it's a genuinely nice design: most inspection nodes decode everything because they can't know better; this one reads the graph.

When you do connect images, it decodes in fixed chunks of 128 frames to keep memory flat - so a 500-frame clip gets decoded as four batches rather than one giant tensor. It also automatically looks for a .latent file saved beside the video (the format Save Video+ writes) and exposes it on the latent output, so you can recover the original latent without a lossy video round-trip.

The outputs you'll actually use

Nine outputs, but the ones people wire:

  • images (IMAGE) - the frames as a batch. Feed into a KSampler for img2vid or a preview node.
  • audio (AUDIO) - the clip's track, ready for audio nodes or muxing.
  • latent (LATENT) - auto-loaded matching .latent file, if one exists.
  • fps (FLOAT), width/height (INT), frame_count (INT), duration (FLOAT) - the numbers you feed into schedulers, filename templates, and math.
  • filepath (STRING) - where the video lives on disk.

Single input: video (VIDEO).

Installing it

ComfyUI Manager - search "ComfyUI-FBnodes" - or:

cd ComfyUI/custom_nodes
git clone https://github.com/FranckyB/ComfyUI-FBnodes.git
pip install -r ComfyUI-FBnodes/requirements.txt

Restart ComfyUI. This node leans on av (PyAV) for decoding, which is the pack's one real dependency and gets installed with it.

Common issues

The lazy-decode behavior is the thing to understand before you debug: if images comes back as a 1×1 placeholder, you don't have a bug, you just haven't wired that output to anything - that's the design working. And if the latent output is empty, there's no .latent file beside the video (Save Video+ needs its "Save Latent" option on to write one). For decode-heavy jobs, remember chunked decoding means it's slower but gentler on VRAM than a full decode - the right trade when you're extracting frames from a long clip on a modest card.

CategoryFBnodes

Inputs (1)

NameTypeDefaultDescription
videoVIDEOThe video to extract components from.

Outputs (9)

NameTypeDescription
imagesIMAGE
audioAUDIO
fpsFLOAT
filepathSTRING
latentLATENT
widthINT
heightINT
frame_countINT
durationFLOAT