(Deno) Video Compare
A/B your videos on the canvas, not in two separate players
- video_a
- video_b
- audio_a
- audio_b
- comparison
Judging whether an upscale actually improved a clip means comparing it to the original, and comparing two videos by juggling windows is a terrible way to do it. (Deno) Video Compare puts video A and video B in one node on the ComfyUI canvas with a slider, side-by-side, difference, and toggle views - the same A/B toolkit you know from image comparison, but for frame batches.
How it works
Both sides play on a shared timeline at the same duration, so A/B stay frame-exact. That detail matters more than it sounds: an upscale keeps the same frame count, so the two are locked frame-for-frame and the slider lands on identical moments; an FPS-interpolation result (say, RIFE taking 24fps to 48fps) just plays smoother over the same length rather than going out of sync. All compositing is pure tensor work - no external encoder is launched - with the in-node player drawing a downscaled WebP frame sequence on a canvas, audio played via WebAudio. Files go to ComfyUI's temp dir and auto-clear on restart.
The player gives you the essentials: hover-move slider, click to play/pause, scrub bar, frame step, speed, loop, and hover to hear the selected side's audio. fps (default 24) sets the preview rate, and burn_labels optionally bakes A/B labels plus resolution badges into the saved output frames.
Inputs and outputs
video_a/video_b- IMAGE frame batches. This is the pair you're judging.audio_a/audio_b- optional AUDIO for preview sync, e.g. from VHSLoad Video.mode-Slider,Side by Side,Difference,Toggle;split_positionandtoggle_imagetune the view,swapflips A and B.comparison- the output worth noting. It's a full-resolution, lossless IMAGE of whichever mode you selected, ready to wire straight into a save orVHS VideoCombinenode. So the node isn't just a preview - it can hand your chosen comparison view to an encoder.
Install and context
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/Deno2026/comfyui-deno-custom-nodes.git
# restart ComfyUI
No extra dependencies. If the node feels heavy on your machine, the same pack (and the README) points to a no-install browser tool at deno2026.github.io/comfyui-deno-custom-nodes/video-compare/ that does the same comparison for already-rendered files - worth knowing when you just want to A/B two exported clips without loading ComfyUI at all.
The natural workflow is right after an upscale or interpolation node: render the source and the result through to this node, flip to Difference to see exactly where the changes are, then use Side by Side for the final judgment. One honest caveat: Difference mode on heavily processed video can look alarming - interpolation shifts every pixel slightly, so a large difference mask doesn't always mean a bad result. Judge with the slider, not just the difference view.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | Slider | Comparison view for two video frame batches. |
| split_position | FLOAT | 0.500.02–0.98 | Slider split position between video A and video B. |
| toggle_image | COMBO | B | Which video is shown first in Toggle mode. |
| swap | BOOLEAN | false | Swap A and B before previewing or outputting. |
| fps | FLOAT | 24.001–240 | Preview frame rate for playback. |
| burn_labels | BOOLEAN | false | Burn A/B labels into the output frames. |
| video_aopt | IMAGE | First video frame batch. | |
| video_bopt | IMAGE | Second video frame batch. | |
| audio_aopt | AUDIO | Optional audio for video A preview sync. | |
| audio_bopt | AUDIO | Optional audio for video B preview sync. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| comparison | IMAGE | Composited comparison frame batch. |