Transparent method

How the local watermark checker works

Watermark Tidy is a static browser application. It checks a defined set of text code points and PNG/JPEG metadata structures, reports exact supported findings, and removes only reviewed ranges. It does not upload content or claim universal watermark detection.

Use the watermark checker

Text inspection

The text path iterates through Unicode code points and classifies supported zero-width characters, joiners, bidirectional controls, tag characters, variation selectors, and unusual spaces. Results include the character name, code point, count, and first positions.

Every finding is preserved by default. After review, you can explicitly select supported character types to remove or normalize in a separate output. The selected types are scanned again before copy. The original input is not overwritten because matched characters can have legitimate uses in emoji, scripts, and typography.

PNG and JPEG inspection

The image path checks magic bytes and validates container boundaries before reading metadata. PNG inspection validates chunk order and CRCs, then decodes bounded text metadata, including compressed zTXt and iTXt. JPEG inspection parses marker segments up to the image scan and reconstructs supported JPEG-XT/JUMBF groups.

A JPEG C2PA finding requires the manifest-store structure, exact C2PA UUID, and c2pa label. Fragment groups are checked for declared length and the C2PA contiguity rule. Extended XMP is reconstructed only when its GUID, total length, offsets, and coverage are consistent.

Targeted removal and re-checking

Removal operates on byte ranges identified during inspection. Dedicated PNG metadata chunks and complete C2PA groups can be removed; shared XMP is review-only because deleting the entire packet could discard unrelated information. PNG IDAT data and the JPEG scan are copied byte-for-byte.

The cleaned file is parsed and decoded again before download. This verifies that supported removable findings are gone and that the browser can still decode the result. The tool does not canvas-reencode images, strip every metadata block, or alter pixels.

Local processing and defense in depth

  • No application server, upload route, account, database, analytics, or remote model.
  • A Content Security Policy blocks application network connections and form submissions.
  • Browser spellcheck, autocorrect, autocomplete, and form serialization are disabled for text.
  • File limits cap compressed bytes and decoded image dimensions before preview.
  • Object URLs are revoked when files change or the page closes.

Read the complete privacy explanation.

What a result means

ResultWhat it meansWhat it does not mean
Supported text matchA listed Unicode code point existsAI authorship or intentional watermarking
C2PA container foundA supported manifest-store structure existsValid signature, trusted signer, or AI origin
AI metadata field foundA recognized source field/value existsPixel-level AI detection
No supported findingThe implemented checks found nothingWatermark-free, authentic, or human-made

References and implementation history

The initial rules were adapted from Guillaume Meyer's MIT-licensed watermarks-remover project. The browser implementation intentionally narrows broad upstream heuristics, validates container structure, bounds decompression, separates C2PA from AI claims, and uses targeted removal rather than stripping most metadata.

Method last reviewed August 12, 2026.