Image Compare Edit X
An in-ComfyUI A/B editor that never touches your graph
- image1
- image2
Every serious workflow ends in a compare step - "is pass A or pass B better?" - and most people do it by saving two images and flipping between tabs. Image Compare Edit X is WorkflowX's in-canvas answer: it takes two images, puts them in a proper A/B compare editor with a draggable divider, and lets you paint, mask, blend, adjust, and curve-edit the result - all inside ComfyUI, without exporting a thing.
The honest read of this node starts with its design philosophy: it's a terminal output node, and it has no outputs. You feed it image1 and image2, and everything it produces lives in the browser. The compare divider, preview navigation, layers, masks, a blend mask, a brush, adjustments, curves, reset/copy/save - all of it stays on the canvas. No downstream tensor leaves the node. That's not a bug; it's the point. This is the "look at it, mess with it, decide, export" step at the end of a workflow, and the author is explicit that browser-side edits don't emit a downstream image.
If you need an editable node that does pass a composed result downstream, that's Image ProcessorX - WorkflowX ships both, and they're sibling products for different moments: ProcessorX is mid-pipeline with an output, Compare Edit X is the terminal review desk.
The editor was adapted from community patterns WorkflowX credits openly: the adjustment behavior from ComfyUI-Pixaroma and the curve-editor interaction from ComfyUI-Curve. So if those feel familiar, that's deliberate - established interaction models, unified into one node.
Inputs
image1(IMAGE) - first source image; becomes image1 in the compare UI.image2(IMAGE) - second source image; becomes image2 in the UI.
That's it. No widgets, no keys, no config. Drop two images in, open the editor.
Install
The pack is one install:
cd ComfyUI/custom_nodes
git clone https://github.com/haroonaslam/WorkflowX-Configurator
or search WorkflowX Configurator in ComfyUI Manager, restart ComfyUI, hard-refresh the browser - the refresh matters here, because this node's entire interface is a frontend extension, and a stale browser tab is the most common way it "doesn't show up." No pip deps, no models.
Where people trip
- Expecting an output. There is none, by design. If you wired this into a chain expecting an edited image downstream, you want Image ProcessorX instead.
- Missing UI buttons → hard refresh. The README's own first-line fix for "a UI button is missing" is to hard-refresh so the current frontend extension loads. Do that before blaming the install.
- It's compare-then-export, not compare-then-continue. The save/copy controls exist for getting the result out; the node will not feed it back into your generation loop.
For its narrow job - a professional-grade A/B desk at the end of a pipeline - it's genuinely nicer than flipping browser tabs. Just don't expect it to hand the winner back to the graph.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| image1 | IMAGE | First source image. It becomes image1 in the compare/editor UI. | |
| image2 | IMAGE | Second source image. It becomes image2 in the compare/editor UI. |
Outputs (0)
No outputs