# Image difference overlay

- Human page: https://happytails.ai/en/image-tools/image-difference-overlay/
- Markdown: https://happytails.ai/en/image-tools/image-difference-overlay.md
- Structured JSON: https://happytails.ai/agents/en/image-tools/image-difference-overlay/index.json
- Visibility: public

## Tool capabilities

| Property | Value |
| --- | --- |
| Tool ID | `image-difference-overlay` |
| Category | image-tools |
| Implementation | Registered implementation. Registration alone is not a production-quality guarantee. |
| Browser execution | Use the visible action or interactive controls. |
| Browser processing | Browser; see tool notes for network behavior. |
| HTTP API | Not callable through HTTP. |
| Browser-agent interface | run_current_tool |

### Implementation notes

Files stay in this browser. Use still PNG, JPEG or WebP images, up to 20 MiB per file, 40 MiB combined and 16 million decoded pixels combined. Outputs total at most 100 MiB. Processing stops after 30 seconds. Source metadata and color profiles are not copied.

### Inputs and settings

No free-text input is required. Use the file inputs and/or settings below.

Accepted browser files: `.png,.jpg,.jpeg,.webp`. Multiple files are supported.

Browser file-input limit: 41943040 bytes in total. HTTP limits can differ.

| Setting | Meaning | Control type | Default | Constraints |
| --- | --- | --- | --- | --- |
| `offsetX` | Second image horizontal offset | number | 0 | min=-16384 max=16384 step=1 |
| `offsetY` | Second image vertical offset | number | 0 | min=-16384 max=16384 step=1 |
| `threshold` | Channel difference threshold | number | 0 | min=0 max=255 step=1 |
| `opacity` | Highlight opacity | number | 0.65 | min=0 max=1 step=0.05 |

### Browser-agent workflow

1. Open the human page in a browser that supports WebMCP.
2. Discover the interface exposed by that page; use its actual schema.
3. Select files on the page first when the tool requires files.
4. Call `run_current_tool` with valid input and settings.
5. Inspect the returned result or error and the displayed output. Retrieve files from the displayed download links.

Calls do not automatically copy or download results. Browser permissions still apply. Interface availability alone is not proof of successful execution.

### Planning specification

Files stay in this browser. Use still PNG, JPEG or WebP images, up to 20 MiB per file, 40 MiB combined and 16 million decoded pixels combined. Outputs total at most 100 MiB. Processing stops after 30 seconds. Source metadata and color profiles are not copied.

This describes intended requirements. Use the implementation notes, interface schema and observed output to determine current support.

### Complete machine-readable capability record

```json
{
  "id": "image-difference-overlay",
  "category": "image-tools",
  "built": true,
  "requirements": "Files stay in this browser. Use still PNG, JPEG or WebP images, up to 20 MiB per file, 40 MiB combined and 16 million decoded pixels combined. Outputs total at most 100 MiB. Processing stops after 30 seconds. Source metadata and color profiles are not copied.",
  "implementation": {
    "fields": [
      {
        "key": "offsetX",
        "label": "Second image horizontal offset",
        "value": 0,
        "type": "number",
        "min": -16384,
        "max": 16384,
        "step": 1
      },
      {
        "key": "offsetY",
        "label": "Second image vertical offset",
        "value": 0,
        "type": "number",
        "min": -16384,
        "max": 16384,
        "step": 1
      },
      {
        "key": "threshold",
        "label": "Channel difference threshold",
        "value": 0,
        "type": "number",
        "min": 0,
        "max": 255,
        "step": 1
      },
      {
        "key": "opacity",
        "label": "Highlight opacity",
        "value": 0.65,
        "type": "number",
        "min": 0,
        "max": 1,
        "step": 0.05
      }
    ],
    "registrationFamily": "raster-image-studio",
    "files": true,
    "input": false,
    "multiple": true,
    "accept": ".png,.jpg,.jpeg,.webp",
    "maxFileBytes": 41943040,
    "deferImagePreview": true,
    "note": "Files stay in this browser. Use still PNG, JPEG or WebP images, up to 20 MiB per file, 40 MiB combined and 16 million decoded pixels combined. Outputs total at most 100 MiB. Processing stops after 30 seconds. Source metadata and color profiles are not copied.",
    "experience": {
      "automatic": false,
      "single": false,
      "inputMaxLength": 1000000,
      "inputMode": "text",
      "label": "Your text",
      "placeholder": "Type or paste your input…",
      "help": "Up to 1,000,000 characters. Review the settings before running.",
      "action": null
    },
    "mode": "explicit",
    "interactive": false
  },
  "execution": "Browser interface",
  "api": null,
  "browser_agent": {
    "supported": true,
    "name": "run_current_tool",
    "discovery": "WebMCP on the human page in a supporting browser",
    "verification": "See audit/API-AUDIT.md; availability is not verification"
  }
}
```

## Page guide

Compare two images on the same pixel grid. Download the difference image, highlighted overlay and change mask.

How can we improve this tool?

Report a problem or share an idea.

Please leave out private information. Your message and the tool name go to our team via PostHog.

### How to use Image difference overlay

1. Choose two still images in the order shown in the file list.
2. Align the second image with horizontal and vertical offsets, then set a difference threshold.
3. Run the comparison and download the images or report.

## Useful next steps

- [Image to ASCII art](https://happytails.ai/en/image-tools/image-to-ascii-art/) ([Markdown](https://happytails.ai/en/image-tools/image-to-ascii-art.md))

- [Replace image color](https://happytails.ai/en/image-tools/image-color-replacement/) ([Markdown](https://happytails.ai/en/image-tools/image-color-replacement.md))

## Align before comparing

Offsets place the second image within the first image’s coordinate grid. Regions without overlap are shown in magenta on the difference image and mask, and counted separately.

### A precise pixel comparison

A pixel changes when its largest decoded RGBA channel difference is greater than the threshold. The red overlay shows changed pixels. This is not a perceptual similarity score.
