DLSS5 Video Info
Find out what your clip actually is before you wreck it
- video_info
- width
- height
- fps
- frame_count
What it's for
The pack works on video files, not tensors. You point a path at DLSS5 Enhance (Video), it hands back a path, and at no point does anything tell you what that file turned out to be. If you asked for Scale 2.0 on a 1920-wide clip, is the output 3840? Did the frame count survive the reconstruction? Is the frame rate still 23.976, or did something round it to 24?
This node answers that. Give it a path, get the real numbers. It's a probe, not a processor.
It's the least glamorous node in the pack and the one I'd install the pack for, honestly. Every "my upscale looks wrong" thread starts with nobody having checked the actual dimensions.
How it works
It validates the path, then shells out to ffprobe if it can find one. Failing that it falls back to the ffmpeg binary bundled with imageio-ffmpeg, parsing the Duration:/Video: lines out of its stderr. It reports fps by dividing the stream's avg_frame_rate fraction, and frame count from nb_frames - or, when the container doesn't declare that, by decoding the whole file with a null output and counting frames.
That last detail is the one to know about: on a container without frame metadata, counting frames means reading every frame. A two-minute 4K clip can sit there for a while. It's not hung.
Nothing errors on a bad probe, either. If both tools fail, you get zeros back rather than an exception, so an all-zero result means "couldn't read it", not "corrupt file, panic".
Inputs and outputs
One input: Video Path (STRING). Type it relative to ComfyUI's input/ folder, or link it - the tooltip says it's designed to take an output_path from DLSS5 Enhance (Video), which is exactly the intended wiring. Absolute paths are accepted only if they resolve inside input/ or output/; anything else gets rejected, on purpose.
Five outputs, and it's worth knowing which is which:
video_info- aSTRINGof JSON. Holds fps, frame count, duration, width and height. Good for a text-preview node or a debug console.widthandheight-INT.fps-FLOAT.frame_count-INT.
Wire them anywhere a number is wanted. One ComfyUI quirk bites beginners here: these are sockets, and most parameters (a resize node's width field, say) are widgets. Right-click the widget and choose Convert widget to input to get a socket you can plug into. That's the standard plumbing move, not anything specific to this pack.
The two ways people actually use it
Sanity-check an upscale. Selector → Enhance (Video) → Video Info, and read width. If you asked for 2x and got the source resolution back, the upscale stage never ran - most often because in-render DLSS SR and the Enhance Scale flag got crossed up, or because Scale was left at 1.0.
Feed the numbers forward. fps into a frame-interpolation or combine node, frame_count to budget render time before you commit to a 4K pass. This is the difference between "the clip is broken" and "the clip is 59.94fps and my combine node assumes 30".
One thing it won't do: it doesn't decode to an IMAGE batch. It gives you metadata only. If you want frames in ComfyUI, that's a video loader's job - this pack deliberately stays out of the tensor path for video.
Install
Part of the pack, category DLSS5_v17, no runtime needed. It uses ffprobe from your system PATH when present, otherwise imageio-ffmpeg's bundled binary - which is why that library is in requirements.txt.
cd ComfyUI/custom_nodes
git clone https://github.com/Strix-3D/ComfyUI-DLSS5-Enhancer-v15
.\python_embeded\python.exe -m pip install -r ComfyUI\custom_nodes\ComfyUI-DLSS5-Enhancer-v15\requirements.txt
Restart. You do not have to run install.py (the ~700MB runtime download) to use this node - it never calls the CLI. It's only the Enhance nodes that need it, and they'll fail with a missing VE_CLI.exe message if you skipped it.
Gotchas
- Relative paths are relative to
input/. A file sitting in the ComfyUI root is invisible. Files that Enhance (Video) wrote live inoutput/, which is fine to link to because the validator allows both folders. - Zeros mean unreadable. Non-zero exit from both
ffprobeand the fallback leaves all five outputs at 0 instead of raising. Check the path before you suspect the file. avg_frame_rateis an average. Variable-frame-rate phone footage will report something like 29.97 and the count won't divide cleanly. That's the source, not the probe.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| Video Path | STRING | Video path. Designed to accept links, e.g. from DLSS5 Enhance (Video) output_path. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| video_info | STRING | — |
| width | INT | — |
| height | INT | — |
| fps | FLOAT | — |
| frame_count | INT | — |