📺 Video Preview (OreX)
Video Preview (OreX)
- images
- video
- audio
- video
You generated a video and now you need it out of the graph: previewed, saved somewhere findable, maybe with music on top and a workflow baked in so dragging the file back restores the graph. 📺 Video Preview (OreX) does that whole finishing job in one node. Feed it a batch of raw frames from an image-to-video sampler or an already-encoded VIDEO clip, optionally drop an AUDIO track beside it, and you get an inline preview plus a saved file. It's the exit door of your pipeline.
Honest context: by 2026 ComfyUI core ships its own native Save Video / Preview Video nodes with the same container and codec options, so a third-party finisher is less essential than it was in the VideoHelperSuite days. The case for this node is the bundling. It takes an IMAGE frame batch straight from a sampler, and it mixes an external audio track against whatever audio the video already carries - neither of which core's plain preview does.
How it works
The node runs on ComfyUI's modern native video machinery. It's written against comfy_api, the new native node API in ComfyUI core - which matters for your ComfyUI version, more below. Inside, it does four things in order:
- Pick a source. If you wire
images(a plain IMAGE tensor, like the frames out of an AnimateDiff, Wan, or LTX sampler), it treats them as a clip atfps_for_images(default 30 - set it to your real generation fps or motion looks wrong). Wirevideoinstead and it takes the clip at its native frame rate, keeping whatever audio is already embedded. Wire both andimagessilently wins, so don't leave a stray wire. One of the two is required. - Rescale if you ask. The
resolutiondropdown (360p up through 2160p, defaultoriginal) fits the footage into that box in software - aspect-preserving bilinear resize that works down or up, dimensions nudged even for the encoder. - Mix audio. Feed an
audioinput (AUDIO type, e.g. from the pack's 🔉 Audio Load) and it trims or pads it to exactly match the clip duration and - when the clip already had sound - blends the two byaudio_mix(0–100). Here's the trap: the default is 100, meaning the external track at full volume and the original video audio at zero. Want both? Set it around 50. - Encode and save.
bit_depthauto means 8-bit for sRGB, 10-bit for HDR (the author's own tooltip), andcolor_spaceoffers sRGB, HDR, and HDR PQ. It encodes through ComfyUI's native video pipeline, shows the result inline, and returns the clip as avideo(VIDEO) output you can keep wiring downstream.
The few controls you'll actually touch
save_output- defaults OFF. Off sends the file to ComfyUI's temp folder (note thetemp_filename prefix) for previewing. Flip it ON and it lands inComfyUI/output/usingfilename_prefix(defaultvideo/ComfyUI, i.e.output/video/ComfyUI_00001_.mp4). If you "saved" something and can't find it, this is why.embed_workflow(default ON) - bakes the graph into the file's metadata so dragging the mp4 back onto the canvas restores the workflow, same trick as embedded PNG metadata.format/codec- leave both onautoand you get the sensible mp4/H.264 that plays everywhere; pick AV1 and auto format falls back to webm. The node doesn't second-guess impossible combos, so only touch these if you know the target container.
Install
ComfyUI Manager - search "OreX" and install comfyui-OreX - or:
cd ComfyUI/custom_nodes
git clone https://github.com/orex2121/comfyui-OreX
pip install -r comfyui-OreX/requirements.txt # just Pillow + soundfile
# restart ComfyUI
No model downloads, no ffmpeg binary to hunt down - encoding rides ComfyUI's own video stack. The pack is by OreX: a small, actively-developed collection whose README is in Russian and lags the code (it still only documents image load/save and LM Studio nodes), so treat the code as truth for anything newer.
Gotchas
- It demands a recent ComfyUI. The node imports
comfy_apiat module load, and that API only landed in ComfyUI mid-2025 and is still changing fast. On an older install the entire pack fails to import - so if the node is missing from your list, update ComfyUI before blaming the pack. - The author says delete and reinstall. The README opens with a blunt instruction (translated): remove the nodes from custom_nodes and install them again. When the pack misbehaves after an update, do exactly that - wipe the folder, clone fresh, restart.
audio_mixdefaults to drowning out the original audio (100 = external only), andsave_outputdefaults to preview-only. Both are silent gotchas until you flip them.
If your day is "frames in, clean mp4 with a soundtrack out," this is the rare finish-line node that actually finishes the job.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| save_output | BOOLEAN | false | — |
| embed_workflow | BOOLEAN | true | — |
| filename_prefix | STRING | video/ComfyUI | — |
| fps_for_images | FLOAT | 301–120 | — |
| format | COMBO | mp4 | 4 options: auto, mp4, mkv, webm |
| codec | COMBO | h264 | 3 options: auto, h264, av1 |
| bit_depth | COMBO | auto | Auto uses 8-bit for sRGB and 10-bit for HDR. |
| color_space | COMBO | sRGB | 3 options: sRGB, HDR, HDR PQ |
| resolution | COMBO | original | 10 options: original, 360p (640x360) nHD, 480p (854x480) SD, 720p (1280x720) HD, 1080p (1920x1080) Full HD, 1152p (2048x1152) 2K, +4 |
| audio_mix | FLOAT | 1000–100 | — |
| imagesopt | IMAGE | — | |
| videoopt | VIDEO | — | |
| audioopt | AUDIO | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |