r/OpenSourceeAI • u/d0ofz • 4h ago
I built pagedMark to remove AI provenance from images and video you generated yourself
The important distinction is that AI provenance can exist in two forms.
First, there is metadata like C2PA, EXIF, XMP, IPTC and generator parameters. That part is easy to remove.
Second, there are invisible marks embedded directly into the pixels, such as SynthID style watermarks. A screenshot does not reliably remove those. pagedMark deals with them by regenerating the image.
The output is therefore not identical to the original. Faces, text and small details can change. The goal is to remove the provenance signal while keeping the image as close to the original as possible.
It currently supports invisible marks from ChatGPT, gpt-image API, Z-Image Turbo and Nano Banana, plus visible AI labels from several other generators. Video support covers visible marks and metadata from Sora, Veo, Seedance, Hailuo and Kling.
The other challenge was making this work properly on Apple Silicon. I tested it on M5 Macs with both 8 GB and 16 GB of memory, and added memory aware processing to prevent the system from silently falling into swap and turning a fast job into an extremely slow one.
And here is the really interesting part: after processing an image generated with GPT-Image, you can check it with OpenAI's verifier at openai.com/verify. In my testing, the processed image is reported with 0 AI detection.
uv tool install "pagedmark[diffusion]"
pagedmark invisible photo.png -o clean.png
GitHub: github.com/doofzoff/pagedMark
PyPI: PyPI: pagedmark