Nodes/ER VFX Nodepack/ER Video Comparer
ComfyUI Node

ER Video Comparer

A/B your renders with a wipe line, not a side-by-side squint

By esperandoelrender·Created 2 days ago·Updated 2 days ago· 0
ER Video Comparer
  • video_a
  • video_b
    fps0.0

    Comparing two videos by watching them one after another is genuinely hard - your eyes adapt, you forget the first one's artifacts by the time the second finishes, and "which one flickers less?" becomes a memory test. The wipe comparator is the pro answer: put both videos on screen at once and drag a vertical line back and forth so both play in sync, and the difference announces itself the instant the wipe crosses an artifact.

    ER Video Comparer (class VideoCompareSlider) is that tool for ComfyUI, from the ER VFX Nodepack by Héctor Gallego (ER Academy). It's a pure preview node - it exists to let you look, so it has no output sockets at all. It takes two frame-batch videos and plays them in sync inside the node with a draggable wipe.

    Wiring it up

    Three inputs, all on the node's face:

    • video_a - your generated video, shown on the left of the wipe line.
    • video_b - your reference video, on the right. The convention is usually A = new render, B = the one you're comparing against (or the source, when you're checking how much a change moved things).
    • fps - playback rate. The default 0 is the smart setting: it auto-detects the frame rate by walking your workflow upstream - finding the source video file or an explicit fps on a video node - so you don't have to match it by hand. Set a number to override.

    Run the workflow once and both videos get encoded to MP4 (H.264 via PyAV) in the temp folder, then play in sync. Drag or click anywhere on the video to move the wipe line; ⏸/▶ pauses or plays both at once; the timeline scrubs both frame-by-frame together. Mismatched resolutions get aligned automatically (letterboxed if needed), and if the videos have different durations, B loops in sync against A so they never drift apart.

    The honest gotchas

    • PyAV is required - it's the H.264 encoder under the hood. Recent ComfyUI bundles it; if you get an import error at load, run pip install av in your ComfyUI environment and restart.
    • The previews live in ComfyUI's temp folder, which clears on every server restart. If the node comes up empty after a restart, re-run the workflow to regenerate the MP4s - that's expected behavior, not a bug.
    • It compares whole videos, so both inputs should be the same length for a fair wipe (or accept the B-loop behavior).

    When it's the right tool

    Reach for it the moment you're iterating on anything temporal - is this version of the clip steadier, less flickery, better graded in motion? - or when you've applied a grade/lens pass to a render and want to confirm the change reads as an improvement rather than a wash. It pairs naturally with the pack's ER Video Color Correct (graded vs. ungraded wipe) and the ER Wedge Sequencer Video results (compare two wedged settings in motion).

    Installing

    ER Video Comparer ships in the ER VFX Nodepack. ComfyUI Manager → search "ER VFX Nodepack" → install, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/esperandoelrender/ComfyUI-ER-VFX-Nodepack.git
    

    Restart and find it under preview (search "ER Video"). Delete any older individual er_video_comparer pack you have installed first - this pack replaces it.

    Categorypreview

    Inputs (3)

    NameTypeDefaultDescription
    video_aIMAGEGenerated video (left side of the slider)
    video_bIMAGEReference video (right side of the slider)
    fpsFLOAT0.00–1200 = auto-detect from the source video in this workflow; set a value to override

    Outputs (0)

    No outputs