π¬ CYH Video | Preview Video
Preview a video on disk without re-encoding it
- video
- video_path
- video_info
ComfyUI's video ecosystem is split between "the video just got generated" and "the video is sitting in a folder and I want to look at it or use it in a workflow." Most preview nodes assume the first. This one is for the second: you hand it a file path, it displays the video in the UI and hands the path - and rich metadata - to the rest of your graph, without re-encoding or copying anything needlessly.
It's the sole node in the Chye ComfyUI Toolset's video category, and it's built for the "video already on the hard drive" case - the README calls out using it to preview generated videos from other nodes or to wire an existing video into processing pipelines.
How it works
Give it video_path (absolute or relative), and it does three things:
- Displays it - the node resolves whether the file is inside ComfyUI's web-accessible output/input/temp directories. If it is, it previews in place. If it isn't, it copies the file to the temp directory (only when the file's modification time differs, so it doesn't re-copy every run) and previews from there. No re-encode, no transcode - it's a passthrough preview.
- Returns the path - the
video_pathoutput echoes the resolved absolute path back out, so downstream nodes can consume the same file. - Returns metadata - the
video_infooutput is a formatted text block: file size, last-modified, and - when ffprobe is available - codec, resolution, frame rate, duration, bitrate, and audio codec.
The video output is typed VIDEO, the newer ComfyUI video type, so it can feed the Core video-processing nodes that expect one. When a video can't be found, it degrades gracefully: empty UI, the raw path echoed, and a video_info that says the file doesn't exist.
The inputs that matter
One input: video_path (the tooltip - "Absolute or relative path to the video file to preview." - is the whole contract). Relative paths resolve against ComfyUI's working directory, so output/foo.mp4 style paths work. Outputs: video (VIDEO), video_path (STRING), video_info (STRING).
The gotchas
The metadata depth depends on ffprobe being on your PATH - that comes with FFmpeg, and it's the same tool most video nodes need anyway. Without it, video_info falls back to basic file info and an honest "requires ffprobe (FFmpeg)" note. If the info section looks thin, that's the cause, not a bug.
Second: the preview works by making the file web-accessible, which means a copy to temp for files outside ComfyUI's directories. It's smart about not re-copying unchanged files, but a video living somewhere random on your disk will still get duplicated into temp. If that matters, keep videos in your output/input folders.
Install
ComfyUI Manager (search "Chye ComfyUI Toolset"), or:
cd ComfyUI/custom_nodes
git clone https://github.com/chyer/Chye-ComfyUI-Toolset
cd Chye-ComfyUI-Toolset
pip install -r requirements.txt
Restart after. Needs nothing beyond the pack's standard deps for previewing itself; add FFmpeg/ffprobe for full metadata. Zip installs need .git/.cnr-id (Chye-ComfyUI-Toolset) per the README.
Verdict
A genuinely useful utility if your video workflows bounce files around disk, and the no-re-encode design is the right call. If you only ever preview fresh generations, you don't need it. The video_info output alone is worth it for debugging what codec/resolution you're actually dealing with.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| video_path | STRING | Absolute or relative path to the video file to preview. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | β |
| video_path | STRING | β |
| video_info | STRING | β |