ComfyUI Node

Video Comparer

Compare two videos side by side, or A/B against your last generation

By AEmotionStudio·Created about a year ago·Updated 3 months ago· 66
Video Comparer
  • video_a
  • video_b
    fps8.00
    auto_filltrue

    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.

    Categoryutils

    Inputs (4)

    NameTypeDefaultDescription
    fpsFLOAT8.000.01–60
    auto_fillBOOLEANtrue
    video_aoptIMAGE
    video_boptIMAGE

    Outputs (0)

    No outputs