Compare Images
The slider that settles every A/B test
- compare_view
- image_a
- image_b
Half of AI image work is deciding between two outputs that look identical until you squint. Compare Images gives you a slider to drag back and forth between two images so your eyes can settle it, instead of flipping between tabs and losing your place. It's a tiny node with one job, and it does it exactly right.
What it is
It takes two optional inputs - image_a and image_b - plus a compare_view widget, and displays the pair with a wipe/slider interface. Drag the divider left and right to see image A give way to image B in the same spot. That's the whole mechanism: no tensor math, no outputs, no saving. It's a viewing node, an output node, and nothing else.
The interesting design detail is that both image inputs are optional, and the compare view is itself an input of type IMAGECOMPARE. You can wire both A and B from different branches of your graph and compare two live generations, or wire just one and leave the other as a fixed reference you keep on the node - the natural setup for "new attempt vs. the one I liked." Under the hood it saves each side to a temp preview (comfy.compare.a / comfy.compare.b) and serves the slider from those, which is why it has no pass-through output: it's the end of a branch, not a link in one.
Where it fits
This is the core-built-in version of a tool that power users have been bolting on for years. The custom-node culture loved rgthree's Image Comparer - the ecosystem essay on ComfyUI notes that when ComfyUI's own frontend rewrite broke it, users complained that they had it "on almost every workflow" and wanted a core replacement. Core's answer is this node: no pack required, no compat risk, just a slider.
You'll reach for it during iteration, not production: comparing sampler A vs. sampler B on the same seed, checkpoint vs. LoRA-stacked checkpoint, upscale method 1 vs. method 2, denoise 0.4 vs. 0.55. It's the visual half of the "lock the seed and change one thing" debugging loop the inpainting guide teaches. Because it holds two images side by side in one frame, it's also quietly the best way to show someone else the difference - screenshot it and the answer travels.
Where it's fiddly
Both inputs optional means it's easy to wire only one and wonder why the slider shows nothing on one side - drag all the way over and there's just empty space. And because it's an output node with no tensor out, you can't chain it: it has to sit at the end of a branch, with the images you want to keep also wired to a Save/Preview node. The images it displays are temp previews, so if you need the winner as a file, save it with a regular Save Image - this node won't hand you the pixels back.
Getting it
Ships with ComfyUI core, a newer experimental addition in comfy_extras/nodes_image_compare.py - nothing to install. It's one of those quality-of-life nodes you don't think about until you're six attempts into a seed comparison, and then you wonder how you ever did it with alt-tab.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| compare_view | IMAGECOMPARE | — | |
| image_aopt | IMAGE | — | |
| image_bopt | IMAGE | — |
Outputs (0)
No outputs