Remove–AI–Watermarks – CLI and library for removing AI watermarks from images

· ai · Source ↗

TLDR

  • Python CLI/library strips visible Gemini sparkle logos, invisible SynthID/StableSignature/TreeRing watermarks, and C2PA/EXIF/XMP metadata from AI-generated images.

Key Takeaways

  • Visible Gemini “Nano Banana” sparkle removal uses reverse alpha blending with NCC detection; runs in ~0.05s, CPU-only, no GPU needed.
  • Invisible watermark removal (SynthID v1+v2, StableSignature, TreeRing) uses diffusion regeneration via SDXL at ~1024px native resolution; requires GPU, downloads ~2GB model on first run.
  • Metadata stripping covers C2PA provenance manifests, XMP DigitalSourceType, EXIF/PNG text chunks – removes triggers for Instagram/Facebook/X “Made with AI” labels.
  • SDXL replaced SD-1.5 as default pipeline in May 2026 after SD-1.5 failed against SynthID v2 on Gemini 3 Pro outputs.
  • Legal notice: the US COPIED Act (2025) criminalises removal of provenance info with intent to deceive; EU AI Act marking obligations take effect December 2026.

Hacker News Comment Review

  • Commenters dispute how effective invisible watermark removal actually is: diffusion regeneration at 1024px will degrade detail and won’t cleanly handle 4K outputs from GPT Image 2 or Nano Banana 2.
  • A privacy-vs-arms-race debate emerged: some argue stripping watermarks resists corporate “barcoding” of users; others counter that running local open-source models is the principled fix, not fighting a corporate arms race you’ll lose.
  • Commenters note SynthID v2 encodes a 136-bit user/session identifier, so stripping the watermark from a copy doesn’t erase Google’s server-side link to the generating account.

Notable Comments

  • @dostick: Gemini’s visible watermark is a client-side overlay; blocking the watermark HTTP request in DevTools removes it without any tool.
  • @airstrike: “the path forward is proving authenticity of non-AI resources rather than attempting to watermark all the AI-generated ones.”

Original | Discuss on HN