Nodes/comfyui-ap-tools/AP Image Compare
ComfyUI Node

AP Image Compare

Stop opening images in another app

By Snoopick·Created 5 months ago·Updated 4 months ago· 0
AP Image Compare
  • image_1
  • image_2

    Every serious ComfyUI user has been here: two generations, same prompt, different seed or LoRA weight, and you're alt-tabbing between image viewers trying to spot the difference. AP Image Compare kills that dance. It takes up to two images and shows them on one canvas in two ways: overlay - image 1 over image 2 with a transparency slider - or split - a divider you drag left and right like a before/after slider. Add zoom (up to 8x), panning, mouse-wheel zoom, and Center/Reset buttons, and you've got a proper diffing tool that never leaves the graph.

    The workflow context is A/B testing, which is 90% of why you'd install it. Compare two seeds, two CFG values, two LoRA weights, two upscalers - without the widget-juggling of external tools. It fits the same niche as rgthree's Image Comparer (the ecosystem doc calls the slide-compare "one of the reasons people install rgthree at all"), but AP adds the overlay mode and the zoom/pan, which genuinely helps when the difference is a subtle texture or a hand. If you already run rgthree or Impact Pack you might not need it; if you don't, this is a perfectly good lightweight option.

    How it works

    Like its preview sibling, the Python side just saves the inputs to ComfyUI's temp folder as compare_<timestamp>_in<label>_<n>.png and hands the file list to the frontend through the ui dict. The JavaScript then renders them onto a canvas with the mode selector, the alpha slider (0–100%, default 50%), the zoom slider, and the draggable splitter. It's all browser-side, so nothing about the compare touches your model or your save output - it's an output node that produces no outputs.

    Inputs and outputs

    Two inputs, none out:

    • image_1 (IMAGE, required) - the first image.
    • image_2 (IMAGE, optional) - the second. You need both for a meaningful compare, but the schema only insists on the first.

    No outputs; display only. It's is_output_node, so it always runs.

    One thing to know that the README gets wrong: the README's feature list and screenshots describe four inputs (image_3, image_4), but the shipped code - and the registry schema - only have image_1 and image_2. Don't go hunting for a third input; the two-input version is what you actually get. READMEs rot, the source doesn't.

    Real-world notes

    • Temp files, again. The comparison images live in ComfyUI's temp folder and are cleaned up by ComfyUI. They're for the widget, not archival.
    • It doesn't save the comparison. There's no "export this side-by-side" button. If you need a PNG of the compare for a report or a Reddit post, screenshot the node or wire the inputs to a Save node separately.
    • Image 1 is the top layer in overlay mode. With alpha at 100% you see only image 1; drag it down to reveal image 2 beneath.

    Install

    ComfyUI Manager → search "ap-tools" → install → restart, or:

    cd ComfyUI/custom_nodes
    git clone https://github.com/Snoopick/comfyui-ap-tools
    

    Then restart ComfyUI; the node sits under the ap-tools category. No models, no extra Python packages, pure frontend plus temp-file handling.

    If you're still tab-swapping between viewers to compare generations, this is the cheapest fix in the pack - install it, wire two outputs into it, and wonder why you didn't sooner.

    Categoryap-tools

    Inputs (2)

    NameTypeDefaultDescription
    image_1IMAGE
    image_2optIMAGE

    Outputs (0)

    No outputs