ꘇ image compare
Wipe two batches side by side without saving anything
- a
- b
- a
- b
Comparing two images is weirdly hard in ComfyUI
Every workflow comparison question - did this LoRA make it worse, did the new sampler actually help, which of these two upscales is less mushy - reduces to "put these two images next to each other and look." ComfyUI's stock answer is two Preview Image nodes and a mental diff, or a save-then-open-a-viewer round trip.
ꘇ image compare takes an a and a b, and gives you back an a and a b, unchanged. In between it renders a live viewer with a wipe slider, a side-by-side mode and a difference view. It's a display-only node, which is why the passthrough matters: your batches come out the other side exactly as they went in, so you can drop it inline in a working graph to check something and keep going.
The mechanism
It's built on the same encoder as the pack's ꘇ image preview. Each side takes the first frame, scales the pixels into 8-bit, thumbnails them with bilinear resampling, and encodes a data URL - JPEG at quality 85 for opaque images, PNG when the image has real transparency, so alpha isn't punched to black.
Two consequences worth knowing. First, it encodes frame zero of each batch - the passthrough carries the whole batch, but the display shows the first image of each. If you're comparing batches element by element, that isn't what this node does.
Second, the difference view is a display mode, not a data operation. Nothing is computed into your graph; the a/b outputs are the originals. If you need an actual difference image to feed somewhere (a mask, a threshold, an error visualisation), you need real image arithmetic - this node is for your eyes.
It's also an output node, so it runs on Queue automatically even if nothing downstream consumes it. That's the point: add it, look, delete it.
Inputs and outputs
a-IMAGE, required.b-IMAGE, required.a-IMAGEout, the original batch.b-IMAGEout, the original batch.
That's the whole schema. No mode widget, no scaling options - those live in the viewer, as a display choice that doesn't affect what's queued. Both inputs are required, so a half-wired node stops the run rather than showing you one image and an empty half.
The obvious wiring: two branches of a workflow that differ in exactly one thing - a sampler swap, a LoRA strength, a checkpoint - both into a and b, then continue with the outputs as if the node weren't there. Because the outputs are passthroughs, you can put the compare node before a save node rather than alongside it.
How this compares to what people already use
The usual recommendation for this job is rgthree-comfy's Image Comparer, which shows up in "what do you actually install" answers alongside ComfyUI Manager and Impact Pack - a quality-of-life node so assumed that it's a dependency of shared workflows rather than a thing people start threads about. That one hangs off an existing node's output. This one takes two inputs and passes both through, which is the better shape when the two images live on different branches and neither is "the node I'm looking at."
If you already live in rgthree, you probably don't need to switch. If you don't, this pack gives you a compare node with no extra dependency - and since Genereti's install is one line of requirements, that's a cheap addition.
Install
Part of the Genereti pack. Manager → search Genereti (publisher liuboto) → install → restart → hard-refresh the browser, since the viewer is frontend JavaScript. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/languel/genereti.git genereti
cd ..
./.venv/bin/python -m pip install -r custom_nodes/genereti/requirements.txt
ComfyUI's own interpreter please - .venv on a checkout, python_embeded\python.exe on Windows Portable. Requirements: one line, comfyui-frontend-package>=1.53.6. No models, no extra packs, no inference server. ComfyUI 0.38.2+, Python 3.11+.
Gotchas
- Frame zero only. Batch comparisons aren't element-wise.
- Difference view is cosmetic. Don't wire this hoping for an image you can threshold.
- It costs an encode per side per run. At preview scale that's negligible; it is not free at 4K, because the thumbnail is computed from full-resolution pixels.
- Alpha pack, zero community footprint. I checked the Reddit corpus for the pack name and got literally nothing. The README's own posture - "super alpha - early classroom testing… back up your workflows before updating" - is the only warranty you get.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| a | IMAGE | — | |
| b | IMAGE | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| a | IMAGE | — |
| b | IMAGE | — |