Nodes/ComfyUI-Easy-Media/Compare Videos
ComfyUI Node

Compare Videos

A/B Your Generations Without Leaving the Canvas

By yolain·Created 3 months ago·Updated about 16 hours ago· 158
Compare Videos
  • compare_video
  • source
  • output

    The video version of that image before/after slider

    Anyone who's tuned an image model has used a compare node - the one that lets you drag a slider across a split view and watch old vs new morph into each other. Video workflows never quite got the same toy, which is absurd once you're iterating on generations. easy compareVideos fixes that: it's a terminal preview node that puts your source and output videos side by side with an interactive comparison slider and A/B toggle.

    The reason you want it: video iteration is expensive. When you change one thing (a prompt word, a sampler, a seed) and re-render, you need to see the difference, not squint at two tabs. This node is the honest A/B rig for that.

    How it works

    It's an output node - no data flows out, the results live in the UI. Under the hood it normalizes whatever you feed it, probes the videos for metadata (fps, frame count, duration), copies them into temp preview files, and hands the frontend a compare_videos payload that renders the slider.

    A few behaviors worth knowing:

    • VIDEO lists are tolerated: the first two items become source and output.
    • Playback duration follows the output video when both inputs are connected. So if your generated clip is a different length than the source, the comparison runs at the output's pace - which is usually what you want (you're comparing results, after all).
    • No inputs needed. If you don't wire anything, the widget itself can browse ComfyUI input files or a URL directly. That makes it a handy standalone media viewer too, not just a workflow terminal.

    Inputs

    There are only three, and two are optional:

    • compare_video - the widget. This is where the comparison settings live (mode, source/output selection, and in the node's own settings, whether to save the output to history with a filename prefix).
    • source (VIDEO, optional) - the "before." Usually your input clip or the previous render.
    • output (VIDEO, optional) - the "after." Usually the freshly sampled clip.

    That's the whole surface - it's an output node, so there are no outputs to wire.

    Setup and how to actually use it

    Install with the pack: ComfyUI Manager → ComfyUI-Easy-Media, or

    cd ComfyUI/custom_nodes
    git clone https://github.com/yolain/ComfyUI-Easy-Media.git
    

    restart, and the node shows up under the pack's Video category. Note that its comparison UI is frontend work, so if the slider isn't rendering, check that the pack's dist web assets loaded (the console will say something about an extension web dir) - this is one of those packs where the frontend is half the product.

    Practical usage:

    1. Wire source from wherever your original lives (a video load, an earlier decode) and output from the decode of your current generation.
    2. Queue. Watch it render, then scrub the slider in the preview to see exactly where they diverge.
    3. Toggle A/B mode when you want full-frame alternation instead of a split.

    The one gotcha: since duration follows the output, if you're comparing an upscaled vs non-upscaled render where the frame counts differ, the slider will feel uneven. Match your clip lengths if you want a fair fight. Other than that it's the rare node that's both genuinely useful and genuinely zero-maintenance.

    CategoryEasyUse/Video

    Inputs (3)

    NameTypeDefaultDescription
    compare_videoEASY_COMPARE_VIDEO
    sourceoptVIDEO
    outputoptVIDEO

    Outputs (0)

    No outputs