Video Comparer
Compare two videos side by side, or A/B against your last generation
- video_a
- video_b
Video is where the ShaderNoiseKSampler pack gets genuinely useful - people run it on WAN and other video models - and once you're generating clips, you need a way to compare them. The Video Comparer is an output node that shows two videos in the browser for comparison. Six viewing modes: plain playback with A/B switching, side-by-side, stacked, a draggable slider, onion-skin with adjustable opacity, and sync compare, which keeps both clips frame-locked so you're looking at the same moment in each. The one that does the real work is sync compare with frame-by-frame navigation - that's how you actually tell whether a motion fix helped at frame 40.
How it works
"Video" here means an IMAGE tensor with a time dimension - the same thing a WAN, LTXV, or AnimateDiff pipeline hands you after VAE decode, not an mp4 file. The node takes those frames, compresses them server-side (it auto-adjusts resolution and quality so big clips stay usable), writes them to temp files, and streams them to the frontend under a cache budget it actively manages - the code tracks memory usage and cleans up as it grows. That's the "unlimited frames" in the node's description: it avoids loading the whole clip into your browser tab at once, which is what makes long comparisons crash other approaches.
The inputs
video_a/video_b- both optional IMAGE inputs: the frame batches from your video sampler's VAE Decode.fps- playback speed for the comparison, default 8. This only controls how the preview plays; it doesn't touch the clip's actual frame rate.auto_fill- BOOLEAN, default true. Same trick as the Advanced Image Comparer: wire up just the new clip and it pulls the previous generation from the session cache into the other slot, so you can A/B the latest run against the one before it without wiring anything else.
No outputs - it's a sink/display node. Connect the two decodes, watch, tweak.
Gotchas
- Want to compare clips you already saved? You need a video loader node feeding the frames back in as IMAGE - this node doesn't read files.
- The auto-fill cache is session-scoped. Right after a ComfyUI restart there's nothing cached, so the first run shows only the clip you wired. Generate once and it starts filling in.
- Big, high-resolution batches are still slow to chew through server-side even with the compression. It's memory-conscious, not instant.
Install
Same pack, same deal. ComfyUI Manager → Install Custom Nodes → search "ComfyUI-ShaderNoiseKSampler", or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/AEmotionStudio/ComfyUI-ShaderNoiseKSampler.git
Restart ComfyUI. No pip dependencies.
It's a small utility and it won't make your videos better - but if you're already in this pack for the shader sampler, it turns video A/B testing from "open two files in VLC and pray" into something you can do mid-workflow.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| fps | FLOAT | 8.000.01–60 | — |
| auto_fill | BOOLEAN | true | — |
| video_aopt | IMAGE | — | |
| video_bopt | IMAGE | — |
Outputs (0)
No outputs