Files
SnapOtter/apps/docs/tools/image/compare.md
T
SnapOtter 8532f3227b docs: audit all 157 tool pages against live schemas
Reconcile every tool page's parameters, defaults, and response shape against the tool's Zod settings schema and executionHint in code. Notable fixes: color-palette (add count + format params, hex output, median-cut algorithm), favicon (add 5 params, was documented as having none), qr-generate (add logoDataUri), convert (add ppm/eps/tga formats), video-loudnorm (-16 LUFS not -14), smart-crop (async 202 not sync 200), images-to-video (1080x1080 square), and several output-filename and behavior-note corrections.

Also normalize API endpoint paths to /api/v1/tools/<id> (no modality segment) and standardize curl examples on the Docker API port 1349. Verified with a clean docs build.
2026-06-18 14:12:28 +08:00

2.4 KiB

description
description
Compare two images side by side with pixel-level diff visualization and similarity score.

Image Compare

Upload two images to compute a pixel-level difference map and a numerical similarity percentage. The output is a diff image highlighting changed regions in red.

API Endpoint

POST /api/v1/tools/compare

Accepts multipart form data with two image files. No settings field is needed.

Parameters

This tool has no configurable parameters. Upload exactly two image files.

Field Type Required Description
file (first) file Yes The first image
file (second) file Yes The second image

Example Request

curl -X POST http://localhost:1349/api/v1/tools/compare \
  -H "Authorization: Bearer si_your-api-key" \
  -F "file=@original.jpg" \
  -F "file=@modified.jpg"

Example Response

{
  "jobId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "similarity": 94.52,
  "dimensions": { "width": 1920, "height": 1080 },
  "downloadUrl": "/api/v1/download/a1b2c3d4-e5f6-7890-abcd-ef1234567890/diff.png",
  "originalSize": 4900000,
  "processedSize": 280000
}

Response Fields

Field Type Description
jobId string Job identifier for downloading the diff image
similarity number Percentage similarity between the two images (0 to 100)
dimensions object Width and height used for comparison
downloadUrl string URL to download the generated diff image
originalSize number Combined size of both input images in bytes
processedSize number Size of the diff output image in bytes

Notes

  • Both images are resized to the same dimensions (the maximum of each axis) before comparison.
  • The diff image highlights differences in red with opacity proportional to the magnitude of change. Identical or near-identical pixels (difference < 10) are shown as semi-transparent versions of the original.
  • Similarity is calculated as the inverse of the average pixel difference across all pixels, expressed as a percentage.
  • A similarity of 100% means the images are pixel-identical (at the comparison resolution).
  • The diff output is always PNG format regardless of input formats.
  • Both images are validated and decoded (HEIC, RAW, PSD, SVG supported) before comparison.
  • EXIF orientation is auto-applied on both images before processing.