Superside Image Compare
Before/after labels without the afterthought — a labeled side-by-side compare node
- image1
- image2
- image
Every time you tweak a setting, you end up staring at two images and asking which is actually better. This node is the low-effort answer: it pastes two images side by side with big labels under them and hands you a single composited image you can actually read. It's the in-house Superside clone of Comfyroll's CR Simple Image Compare, built so a workflow made entirely from this pack doesn't depend on Comfyroll at all - a pattern this package applies to a whole shelf of core and third-party utility nodes.
The labels are the point, and they're the thing most hand-rolled compare setups skip. On a canvas, "which was the retouched one" is a question you answer by remembering; in a labeled composite it's written on the image. That matters even more once you export the result - a PNG with "BEFORE" / "AFTER" baked in survives being emailed, posted, or dropped into a report with the context intact.
The inputs that matter
image1/image2- the two frames. Order them however you like; the labels are your business.text1(defaultBEFORE) andtext2(defaultAFTER) - the captions. Multiline, so you can put "Retouch pass 1" if a generic "BEFORE" isn't informative enough.mode-normalordark. Dark mode gives the composite a black footer/background, which looks better for portfolios and worse for printing. There's no right answer; pick the one that doesn't fight the images.border_thickness(default 20),footer_height(default 100),font_size(default 50) - the layout dials. The defaults are fine; you'll touch these mostly when one input is a weird aspect ratio and the footer crowd-sources.
The single output is the composited IMAGE, which is a normal tensor - save it, preview it, or feed it onward. This is a pure local node: no API key, no network, no fal credits. It never leaves your machine.
How it works
Mechanically it's unglamorous and that's the point: the two images are resized to match, placed side by side, the labels are drawn into a footer panel with PIL, and the whole thing is returned as one tensor. The work being boring is a feature - it's exactly the kind of plumbing node (per the KB's own framing, maybe 70% of every workflow is this layer) that should behave predictably and never surprise you.
Installing it
It comes with the Superside pack:
cd ComfyUI/custom_nodes
git clone https://github.com/Superside/comfyui-superside-nodes
pip install -r requirements.txt
Restart ComfyUI and look under the Superside category. No model files, no key, nothing else to configure.
Why bother when you could just... look?
Fair question. If you're A/B-ing two results live on your canvas, your eyes are the tool and a compare node adds a step. Where this earns its keep is volume and sharing: when you're checking a batch of retouched vs. original shots, or when the person you're sending the image to wasn't in the room when you generated it, a labeled composite beats squinting at two tabs. It's a small tool with one job, and it does it without needing an account or a model download.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| text1 | STRING | BEFORE | — |
| text2 | STRING | AFTER | — |
| footer_height | INT | 1000–1024 | — |
| font_size | INT | 500–1024 | — |
| mode | COMBO | 2 options: normal, dark | |
| border_thickness | INT | 200–1024 | — |
| image1opt | IMAGE | — | |
| image2opt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |