Local-first · no default storage
AW
AI WATERMARK TOOLS / 01

Detect and remove AI watermarks

Scan text, code, images, and video for invisible watermark clues. Clean supported markers, download the result, and see exactly what was checked.

BUILD 2026.08
Runs this session00Waiting for input
Supported inputs04Text / image / video / code
Evidence confidenceShown after a scan
Edge target50msCloudflare Workers
01 / REMOVE & DETECT

Choose what to clean

TEXT INPUT

Paste text to scan

Text

Check for statistical AI-writing signals and invisible Unicode carriers. A result is a clue, not proof of authorship.

0 characters
Balanced
0 characters
UTF-8
0 lines
Moving marks and long videos run as an async GPU job. Known fixed Gemini marks can use a browser processor.
Processed in this browser session
SIGNAL REPORT

What we found

Not run
Your result appears here

Run a scan to see the watermark signal, confidence, and limits.

02 / EVIDENCE

See what was checked

Every result keeps its source and limits
Text patterns

Sentence length, vocabulary, repetition, and carriers.

TEXT
Media metadata

EXIF, XMP, C2PA, and provider clues.

MEDIA
Code structure

Comments, naming, templates, and hidden Unicode.

CODE
03 / OPEN TOOLCHAIN

Open-source engines

TOOLCHAIN / 02

Detector catalog

Use the browser for fast local checks, the Worker for validation, and a GPU service for heavy media jobs.

CapabilityRuns onStatusEvidence
AI text signalLanguage statistics / pluggable detectorsEdge / GPUReadyScore + features
Text watermark cleanupZero-width carriers + pattern rewriteBrowserReadyBefore / after scan
Gemini visible markReverse-alpha browser SDKBrowserReadyApplied / tier
Video visible markFixed / moving region repairBrowser / GPUAsyncFrame samples
SynthID image / videoRequires a provider verifierProviderThree-stateDetected / not detected / unknown
Code AI signalStructure, comments, and templatesEdge / GPUExperimentalScore + features
License note

MIT and Apache-2.0 components can be integrated under their terms. OpenNoMark and reverse-SynthID stay reference-only until their commercial licenses are resolved.

DEPLOYMENT / 03

API & Cloudflare

Pages hosts the interface, the Worker validates requests, and R2 + Queue handle media jobs.

01Pages UILocal scan and preview
02Worker APIValidate / rate-limit / route
03R2 + QueueShort-lived media jobs
04GPU adapterLong video / heavy repair
POST/api/scan/text
{ "text": "...", "language": "en" }
score · confidence · carriers[]
POST/api/scan/media
multipart/form-data\nfile + detectors[]
provenance · visible · synthid
POST/api/video/jobs
{ "operation": "remove_visible", "dryRun": true }
202 queued · progress events
READY CHECKDeployment checklist
Vite / Pages static buildREADY
Worker API and video job contractREADY
Bind R2, Queue, KV, and a GPU/FFmpeg consumerACTION
Add Cloudflare secrets in GitHub ActionsACTION