↔️ AGSoft Image Compare
A proper before/after viewer, not a screenshot collage
- image_1
- image_2
- image_1
- image_2
Comparing two images in ComfyUI usually means two preview windows and a lot of eye-crossing. ↔️ AGSoft Image Compare is a preview node built for the actual job: it overlays both images in one view with a draggable slider, shows pixel differences, or splits them side by side - and it lets you zoom and pan into the details instead of trusting your monitor at 100%. If you've ever tried to tell whether an upscale actually added detail by flicking between windows, this is the upgrade.
It's an output/preview node: it displays, it doesn't transform. And it passes both images through untouched, so you can drop it inline without disturbing the rest of the graph.
The three modes
- Slider (default) - one image revealed over the other behind a draggable divider. The classic before/after interaction, and the one you'll live in when comparing an upscale against its source.
- Difference - shows exactly where the two images differ (black = identical). This is the mode that settles arguments: if a "2x upscale" is really just a resize, the difference view tells you instantly whether anything changed besides size.
- Side-by-Side - a vertical split.
The controls that make it usable
zoom (0.1–10, default 1.0) magnifies both images, and pan_x/pan_y (default 0) scroll the view - the pair that lets you inspect a single eye or a patch of texture at full zoom instead of eyeballing thumbnails. And there's a nice production detail in the node description: hover the node and press Space to temporarily hide the second image, so you can compare at the pixel level without the overlay interfering.
Both image_1 and image_2 are optional inputs, and the node passes image_1 and image_2 right back out as outputs - so it can sit anywhere in a graph as a live inspection point without breaking the flow.
Where you'd use it
Everywhere you'd otherwise screenshot a comparison: upscale quality checks (the community's standing advice - decide whether you need more pixels or more detail before comparing, then use this to see it), inpaint seam checks, LoRA strength head-to-heads, before/after of a denoise sweep. Wire two branches of the same graph into it and you get a live A/B view that updates on every queue.
Installing it
Pack standard: ComfyUI Manager → search comfyui-AGSoft → install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/Art-xmaster/comfyui-AGSoft.git
No models, no dependencies beyond ComfyUI's preview infrastructure - it subclasses the built-in PreviewImage node and adds the comparison widgets.
Common issues
The usual suspects: two images of different sizes will compare oddly, so resize one side to match first (the pack's Image & Mask Resize is handy for that). In Difference mode, images must line up pixel-for-pixel to mean anything - a slightly different crop makes the whole frame light up and tells you nothing. And if the zoom/pan feel laggy, it's the preview pipeline, not the node - keep zoom at 1.0 unless you're inspecting a specific detail.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | Slider | Comparison mode: Slider: Interactive slider to reveal image_2 over image_1. Difference: Shows pixel differences (black means identical). Side-by-Side: Splits the view vertically. Режим сравнения: Slider: Интерактивный слайдер для проявления image_2 поверх image_1. Difference: Показывает различия пикселей (черный цвет означает идентичность). Side-by-Side: Делит вертикально пополам. |
| zoom | FLOAT | 1.00.1–10 | Zoom level for both images. 1.0 is 100% (fit to node). Уровень масштабирования обоих изображений. 1.0 — это 100% (вписать в ноду). |
| pan_x | INT | 0-5000–5000 | Horizontal pan offset in pixels. Useful with zoom > 1.0. Смещение по горизонтали в пикселях. Полезно при зуме > 1.0. |
| pan_y | INT | 0-5000–5000 | Vertical pan offset in pixels. Useful with zoom > 1.0. Смещение по вертикали в пикселях. Полезно при зуме > 1.0. |
| image_1opt | IMAGE | First image (Background layer). Первое изображение (Фоновый слой). | |
| image_2opt | IMAGE | Second image (Foreground layer). Второе изображение (Передний план). |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image_1 | IMAGE | — |
| image_2 | IMAGE | — |