Video Info (Source) π₯π ₯π π ’
Video Info (Source)
- video_info
- fpsπ¨
- frame_countπ¨
- durationπ¨
- widthπ¨
- heightπ¨
When you load a video in ComfyUI you often need to know things about it - what frame rate was it shot at? How many frames? How big? - so you can feed those numbers back into the rest of the graph instead of hardcoding them. Video Info (Source) is the node that reads those numbers off the file for you and hands them out as wires.
The key word is Source. This node reports the video as it exists on disk, before any of the Load Video node's options touch it. If you set force_rate, frame_load_cap, or select_every_nth on the loader, those don't change what this node tells you - it's describing the original file. VHS ships a sibling node for the post-load numbers; this one is deliberately the "what did I actually import" answer, untouched by your load settings.
Why you'd reach for it
The classic use is matching your output frame rate to your input. You loaded a 24fps clip, ran it through some vid2vid pipeline, and now you want Video Combine to play back at 24fps too - but you don't want to type "24" and have it silently wrong the day you swap in a 30fps source. Wire fps from this node into the frame rate of Video Combine and the whole thing self-adjusts to whatever you feed it. Same story for driving crops, resizes, or loop math off the real width/height/frame count.
How it works
It takes a single connection from a Load Video node - a bundle VHS passes around as a VHS_VIDEOINFO type - and unpacks it into individual typed outputs you can wire anywhere. There's no computation to configure and no widget to set; it's a splitter for metadata the loader already gathered.
Inputs and outputs
One input:
- video_info - plug this into the
video_infooutput of a Load Video node. That's the only thing it accepts.
Five outputs, each a plain number you can route into any node that wants an INT or FLOAT:
- fps (FLOAT) - the source frame rate.
- frame_count (INT) - total frames in the file, before frame-rate or select-every-nth adjustments.
- duration (FLOAT) - length in seconds.
- width (INT) and height (INT) - the original pixel dimensions.
Most people grab fps and maybe frame_count; the rest are there when you need them.
Installing it
On comfy.icu, VideoHelperSuite is pre-installed - nothing to do.
Locally, use ComfyUI Manager: search ComfyUI-VideoHelperSuite, install, restart. Or clone it:
cd ComfyUI/custom_nodes
git clone https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite
and restart. It's Kosinkadink's pack - the video-workflow standard in ComfyUI - so it's almost certainly already in your custom_nodes if you do any video work at all.
Common issues
The number-one confusion is the Source vs Loaded distinction. If your frame_count reads higher than the number of frames that actually came out of the loader, that's not a bug - you capped the load with frame_load_cap or thinned it with select_every_nth, and this node is faithfully reporting the original file. Grab the Loaded variant if you want the post-load count.
Beyond that, the only real failure mode is the pack not loading at all: if VHS shows "import failed" in Manager (usually a missing ffmpeg or a NumPy version clash), this node won't appear. Check the ComfyUI startup log - the actual error is printed there - and reinstall through Manager.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| video_info | VHS_VIDEOINFO | β |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| fpsπ¨ | FLOAT | β |
| frame_countπ¨ | INT | β |
| durationπ¨ | FLOAT | β |
| widthπ¨ | INT | β |
| heightπ¨ | INT | β |