MarkMyAss

Illustration: two pirates chase three different ghosts scattering away from a stack of files

Every kind of ghost, one determined crew.

AI Watermark Remover#

"AI watermark" means at least five different mechanisms. No single algorithm removes all of them.#

Most tools that call themselves an "AI watermark remover" are actually one narrow tool (usually a metadata stripper or an EXIF cleaner) wearing a broad label. MarkMyAss instead treats each mechanism as what it is — a separate technical signal, with its own detection method, its own removal method, and its own honest limitations.

The five categories#

Category What it is MarkMyAss support
Hidden Unicode Invisible characters embedded in text Detect + remove
File metadata EXIF/XMP/IPTC/PDF fields describing origin/tool Detect + remove
C2PA / Content Credentials A structured provenance manifest embedded in a file Partial (structural only)
Statistical text watermarks A bias in how a model samples tokens (Claude, Gemini, GPT) Not implemented — no public detector exists for any provider
Pixel/model-embedded image watermarks A signal baked into image pixels at generation time (e.g. Google's SynthID) Not implemented

Live, per-signal detail (with "last tested" dates) is at /lab — this page is the overview; the Lab is the maintained source of truth.

Clean a file or text now →


Why "one-click removal" claims should make you suspicious#

A tool that promises to remove "the AI watermark" in one click is either:

  1. Scoped to one mechanism (usually visible pixel watermarks or file metadata) and using "AI watermark" as a marketing umbrella term, or
  2. Claiming to defeat a provider's private statistical watermark with no published, independently reproducible method to back that up.

MarkMyAss takes the first path but says so explicitly, and refuses the second path entirely. If a provider (Anthropic, Google, OpenAI) ever publishes a real, reproducible statistical-watermark detector, MarkMyAss has a defined plug-in interface (src/ghostmark/detectors/statistical.py) ready for it — but implementing a fake one now to look more capable would defeat the entire point of the project.

What MarkMyAss actually removes, and how it's verified#

What MarkMyAss does not remove#

Reproducible evidence, not a claimed score#

Every "supported" row in the table above is backed by MarkMyAss's public test corpus and regression suite, with real pass/fail numbers published at /benchmarks — generated by actually running the pipeline, not typed in by hand.

Sources#