Image Comparer Slider
A/B testing that doesn't require a third eye
- image_1
- image_2
- image_3
- image_4
- image_5
- image_6
- image_7
- image_8
- image_9
- image_10
- image_11
- image_12
- image_13
- image_14
- image_15
- image_16
- image_17
- image_18
- image_19
- image_20
Comparing two images in ComfyUI is the eternal pain point: load them, zoom into one tab, tab back, scroll to the same spot, squint. The Image Comparer Slider exists to end that - a draggable slider that sweeps between two or more images at the exact same zoom, so differences pop instead of hiding behind a browser tab. It's the 3R3BOS Pack's take on a tool that already has a famous version in rgthree-comfy, and it goes further in one direction: up to 20 image inputs, with auto-play for video frames.
If you've used rgthree's Image Comparer, you know the pattern. This one's angle is scale and motion: connect however many images you want, and it builds a slider with synchronized pan and zoom plus a play mode that scrolls through everything in a smooth forward/reverse ping-pong loop. That last bit is what makes it useful for video work - you can flip through frames of an LTX or Wan generation without opening a player.
How it works
It's an output node, meaning it produces no data downstream - the display is the output. The backend writes each input frame to a temp cache folder, cleans that folder at the start of each run (so you never accumulate stale frames), and returns the file list through ComfyUI's UI channel. The JavaScript frontend then renders the slider, caches everything client-side for fast scrubbing, and tracks which source node each image came from so you can see "KSampler Face" vs "Upscale 4x" under the slider.
The dynamic inputs are a nice touch: you start with image_1 required, and slots 2 through 20 appear as you connect wires - no need to add twenty inputs upfront.
Inputs and outputs
- image_1 (IMAGE) - required.
- image_2 through image_20 (IMAGE) - optional, created on demand.
No outputs. It's a terminal display node: put it at the end of a branch and look.
Installing it
Part of the 3R3BOS Pack, same install as the rest. No models, no extra dependencies. Manager: search 3R3BOS Pack, install, restart. Or:
cd ComfyUI/custom_nodes
git clone https://github.com/3R3BOS/ComfyUI-3R3BOS-Pack
then restart ComfyUI.
Where people get burned
First, the obvious one: there's no output wire, so if you expected to pipe something out of it, you're looking at the wrong node - this one is a reviewer, not a transformer. Second, the slider UI is canvas JavaScript, so the usual rules apply: no slider rendered means the JS didn't load, and a ComfyUI restart or hard browser refresh is the fix. Third, if you're comparing wildly different resolutions, zoom-to-fit can hide detail differences at the edges - the synchronized pan/zoom exists for a reason, so use it before judging.
Should you switch from rgthree's comparer? Honestly, only if you need the multi-image play mode or the sheer input count. For a plain two-up A/B, the rgthree one is older and more battle-tested, and this is a young solo pack whose comparer is polished but hasn't seen the same years of community abuse. Where this one earns its keep is batch testing - checkpoints, LoRAs, upscale settings - where sliding through a dozen variants at identical zoom beats any other workflow I've tried.
Inputs (20)
| Name | Type | Default | Description |
|---|---|---|---|
| image_1 | IMAGE | — | |
| image_2opt | IMAGE | — | |
| image_3opt | IMAGE | — | |
| image_4opt | IMAGE | — | |
| image_5opt | IMAGE | — | |
| image_6opt | IMAGE | — | |
| image_7opt | IMAGE | — | |
| image_8opt | IMAGE | — | |
| image_9opt | IMAGE | — | |
| image_10opt | IMAGE | — | |
| image_11opt | IMAGE | — | |
| image_12opt | IMAGE | — | |
| image_13opt | IMAGE | — | |
| image_14opt | IMAGE | — | |
| image_15opt | IMAGE | — | |
| image_16opt | IMAGE | — | |
| image_17opt | IMAGE | — | |
| image_18opt | IMAGE | — | |
| image_19opt | IMAGE | — | |
| image_20opt | IMAGE | — |
Outputs (0)
No outputs