Nodes/ComfyUI-easygoing-nodes/Image Difference Checker
ComfyUI Node

Image Difference Checker

Prove which image is better, not just feel it

By easygoing0114·Created 12 months ago·Updated 5 days ago· 5
Image Difference Checker
  • image1
  • image2
  • color_diff_map
  • grayscale_diff_map
  • result_image
  • result_text
ui_scale3.2
dark_modetrue
show_original_imagetrue
show_difference_maptrue
show_tone_analysisfalse

Every time you compare two similar images by eye - VAE before and after, upscaler A vs upscaler B, two seeds that look "almost the same" - you're doing sloppy science. Image Difference Checker is the node that turns that into numbers: it takes two same-resolution images, computes exactly where they differ, and hands you a diff map, a similarity score, and a composited report image. It's the closest thing ComfyUI has to a lab bench for "did my change actually do anything?"

What it outputs

Four sockets, each a different view of the same comparison:

  • color_diff_map - per-pixel absolute difference across RGB. Bright = changed a lot.
  • grayscale_diff_map - the same idea as a single luminance-like channel.
  • result_image - the composited visual report: the two inputs side by side, the diff maps, the metrics, and (if you ask) tone-curve graphs and per-channel tone tables.
  • result_text - a Markdown summary with the numbers, ready to dump into a text display or save alongside the image.

The metrics matter more than they look: MAE is the mean absolute pixel error on a 0–255 scale (with an inverted "similarity %"), and SSIM is a structural similarity score, computed here with a global non-windowed formula over Rec. 601 luminance. MAE punishes gross differences; SSIM rewards same-structure-different-brightness. Together they tell you "how different" and "different in what way."

The inputs you'll touch

  • image1, image2 - the pair to compare. They must be the same resolution; the node throws a Resolutions mismatch error if not, so upscale or crop to match first.
  • show_tone_analysis (default off) - adds per-channel tone-curve graphs and tone tables to both the report and the text. This is the feature that makes it a real tool for color-work: it shows you where in the histogram the two images diverge, not just that they do.
  • ui_scale (3.2), dark_mode (true), show_original_image, show_difference_map - cosmetic controls for how the report image is laid out. Bump ui_scale if the report text is tiny.

How it fits

The classic uses are the ones the README calls out: checking VAE reconstruction accuracy (compare decoded latent vs. source) and comparing upscaler outputs. Also great for LoRA on/off, two CFG settings, or before/after a color grade - anywhere you want evidence instead of vibes. The node re-runs on every execution (not_idempotent), and the README's tip is the right one: when you're iterating on settings, use ComfyUI's partial execution - the blue play button - to re-run from this node onward instead of redoing the whole pipeline.

Install

From the ComfyUI Manager search Easygoing, or:

cd ComfyUI/custom_nodes
git clone https://github.com/easygoing0114/ComfyUI-easygoing-nodes.git

Restart ComfyUI. No pip extras. One requirement: a ComfyUI build with the V3 node API - this pack is written against comfy_api.latest, and on older builds none of its nodes register.

The one thing to remember

Images must match in resolution or it errors immediately - that's a feature, not a bug, since comparing mismatched sizes would silently lie to you. And keep your expectations calibrated on the scores: SSIM here is a simplified global metric, not a full windowed SSIM, so treat it as a directional signal ("closer" vs "farther") rather than a universal quality grade.

Categoryimage/analysis

Inputs (7)

NameTypeDefaultDescription
image1IMAGEFirst image to compare.
image2IMAGESecond image to compare.
ui_scaleFLOAT3.21–8Scale factor for the composited report image (labels, padding, graphs).
dark_modeBOOLEANtrueUse a dark background for the report image.
show_original_imageBOOLEANtrueInclude the two input images in the report.
show_difference_mapBOOLEANtrueInclude the color/grayscale difference maps in the report.
show_tone_analysisBOOLEANfalseInclude per-channel tone-curve graphs and tone tables in the report and in the text summary.

Outputs (4)

NameTypeDescription
color_diff_mapIMAGE
grayscale_diff_mapIMAGE
result_imageIMAGE
result_textSTRING