UseEasy Image Compare
The before/after slider that survives ComfyUI's Nodes 2.0 rewrite
- image_a
- image_b
Every serious ComfyUI user develops a before/after habit. Bump the CFG, lock the seed, drop the sampler by a step - and you want a slider you can flick between old and new to see whether it actually got better. The community's favorite tool for that, rgthree's Comparer, was one of the casualties when ComfyUI rolled out its Nodes 2.0 frontend rewrite: people in the big threads said they kept the legacy canvas running just to keep their compare nodes working. UseEasy Image Compare is a from-scratch take written against the new architecture, which makes it one of the few compare sliders that doesn't care which renderer you're on.
What it actually is
It's an output node with two optional IMAGE inputs (image_a, image_b) and no outputs. You wire in two images - say, a VAE Decode from run A and run B - hit queue, and a draggable divider appears right on the node. Drag left, drag right, eyeball the difference. That's the whole interface, and it's genuinely all most A/B work needs.
How it works
The Python side does almost nothing. On execute it hands each incoming image to the exact same save code ComfyUI's PreviewImage uses (scratch files in temp/, tagged use_easy.compare.a and use_easy.compare.b) and returns the file references in its UI payload. The real comparing happens in a DOM widget the pack's React frontend mounts onto the node. When the run finishes, the widget loads the two /view URLs, stacks one image on top of the other, and clips the top layer with a CSS clip-path that follows your pointer. Two details worth knowing:
- It requires an actual pointer drag. No hover-follow. If you've used the hovery compare widgets this feels deliberate, and it is - drag-to-compare is easier to control when you're hunting for a tiny artifact.
image_bends up on the left half,image_aon the right. The naming doesn't tell you this; just know whichever you call "before" goes left.
The gotchas
- Nothing shows until you've queued it once. The images arrive in the node's
onExecutedcallback after a run, so a freshly-added node is a blank box until you click Queue. - It shows one frame, not a batch. The backend saves every image in your batch, but the widget only loads the first frame from each input. Batch-compare silently means "compare frame 0."
- Previews live in
temp/. ComfyUI clears that directory, so a restart wipes your comparison. Re-run to repopulate it. - It's a baby. The whole pack is at 0.1.1 and sits in a corner of the ecosystem with essentially no userbase yet. It works, but expect the rough edges of something this new, not Impact Pack's decade of polish.
Install
No heavy lifting here. Search "ComfyUI Use Easy" in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/cy745/ComfyUI-Use-Easy.git
Restart ComfyUI and you're done. The requirements.txt is effectively empty - torch is already provided by ComfyUI - and there are no model files to download. The built frontend (dist/) is committed to the repo, so a plain clone works without npm install.
One honest caveat: this pack is really a React-extension starting point (sidebar, subgraph blueprints, the works) with these two nodes as its practical demos. Image Compare is the more useful of the two - if your old compare node died in the Nodes 2.0 migration, this is a frictionless replacement.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image_aopt | IMAGE | — | |
| image_bopt | IMAGE | — |
Outputs (0)
No outputs