AP Image Compare
Stop opening images in another app
- 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.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image_1 | IMAGE | — | |
| image_2opt | IMAGE | — |
Outputs (0)
No outputs