Oliver's Notesblog.mrakovics.com
Back

How to Remove SynthID Watermark From Gemini Images

I came across a project called reverse-SynthID that got me digging into how to remove SynthID watermark tags from Gemini images, and the honest answer is that it is a lot harder than dragging a sticker off a photo.

I came across a GitHub repository claiming to have reverse engineered Google's "unhackable" AI watermark. That sent me down a rabbit hole, and this post is what I wrote while trying to remove SynthID watermark protections from a Gemini-generated image, and whether that's even a good idea.

What Even Is SynthID?

SynthID is Google DeepMind's AI image watermark system, and it also covers text, audio, and video. It quietly embeds a signal into content the moment it is created by tools like Gemini, Imagen, Veo, and Lyria.

For images, the watermark is not a logo or a stamp. It is a pattern baked directly into the pixel values, spread across the whole picture instead of sitting in one corner. That is very different from the little sparkle icon Gemini also slaps on the corner of an image, which is just a visible logo layered on top.

Google built SynthID so the signal survives normal editing: resizing, cropping, recompressing, screenshotting, even color adjustments. A detector can scan the file later and flag it as AI generated with fairly high confidence, according to Google DeepMind.

Why Removing the Visible Watermark Isn't Enough

Here is the part that trips people up. If you crop out the little Gemini logo, or paint over it, you have only dealt with the cosmetic layer. The invisible SynthID signal is still sitting inside the pixels, untouched!

That matters because the visible logo and the invisible watermark are two completely separate systems. Deleting one does nothing to the other. Anyone running a SynthID detector on your "cleaned" image will still get a positive match, because the actual watermark data was never touched.

Okay, Sometimes Visual Removal is Enough

To be fair, plenty of people only care about the visible logo, not the invisible provenance signal. If your goal is just a clean looking image without the sparkle icon in the corner, a couple of free tools handle that fine.

  • Photopea, a free Photoshop alternative that runs in the browser, has a Spot Healing Brush Tool that blends the watermark area with the surrounding pixels in a couple of seconds. It works well on small logo watermarks sitting on simple backgrounds.
  • geminiwatermarkremover.io is a free Gemini watermark remover built specifically for the Gemini logo. Everything runs locally in your browser, so the image never leaves your device.

If you only need a screenshot without a corner logo for a presentation or a mockup, these tools are perfectly reasonable and fast.

What Is the reverse-SynthID GitHub Repo?

This is where things get genuinely interesting. reverse-SynthID is an open source research project by developer Alosh Denny that tries to reverse engineer Google Gemini SynthID using pure signal processing, without any access to Google's actual encoder or decoder.

How It Works

Rather than treating the watermark as a picture to paint over, the project treats it as a hidden signal buried in the frequency domain of an image. Every image can be converted into a frequency representation using an FFT, or Fast Fourier Transform, which describes a picture as a sum of wave patterns instead of pixels. SynthID's signal shows up in that representation as a handful of specific, repeating wave frequencies, called carriers, sitting at consistent positions.

To find those carrier positions without access to Google's own detector, the researchers fed Gemini pure black and pure white images. On a plain black image, almost the entire pixel content actually is the watermark, since there is no real photo content to hide it in. Comparing black and white versions let them confirm which frequencies were genuinely part of SynthID rather than noise, by checking that the phase values lined up in the way you would expect from an inverted signal.

Amplified SynthID carrier pattern extracted from a pure-white Gemini image. Source: GitHub Repo
Amplified SynthID carrier pattern extracted from a pure-white Gemini image. Source: GitHub Repo

Two findings made this hard. First, the carrier positions are resolution-dependent, meaning a 1024x1024 image hides its watermark at completely different frequency positions than a 1536x2816 image, so a fingerprint built for one size is useless on another. Second, the watermark's phase pattern is consistent across every image from the same Gemini model, and it shows up strongest in the green color channel, which is why the project weighs green, red, and blue channels differently when removing it.

Those findings get stored in what the project calls a SpectralCodebook, essentially a lookup table of carrier frequencies and phase values for each image resolution Gemini can output. At removal time, the tool matches an image to the closest resolution profile in the codebook, then subtracts the known watermark signal directly out of that image's frequency spectrum in several passes, each one weaker than the last, so it does not overcorrect. The project has gone through three versions of this approach, starting with simple JPEG recompression, moving to broader multi-stage transforms, and landing on this direct spectral subtraction, which the repo's own benchmarks report as the strongest: roughly a 75 percent drop in carrier energy and over 90 percent drop in phase coherence, while image quality (PSNR) stays above 43 dB, meaning the picture still looks basically identical to the human eye.

How Can You Use It?

The project is a set of Python scripts, not a one click app, so using it takes a bit of setup. In broad strokes:

  1. Clone the repository from GitHub and install the Python requirements listed in the repo.
  2. Download the reference black and white Gemini images from the project's Hugging Face dataset using the included download script.
  3. Build a SpectralCodebook from those reference images, which maps out the carrier frequencies for each resolution.
  4. Run the V3 bypass script against your own image, pointing it at the codebook file, and choose a strength level from gentle to maximum.
  5. Optionally run the included detector script afterward to check whether the watermark signal actually dropped.

The maintainer is also actively asking contributors to submit more pure black and white Gemini outputs to Hugging Face, since more reference images at more resolutions make the codebook more accurate.

The project's own README is blunt about scope: this is signal processing research built without access to Google's proprietary encoder or decoder, and results vary by resolution and by how aggressively you strip the signal.

Why You Probably Shouldn't Remove SynthID At All

Here is my honest take after reading through all of this. SynthID and similar watermarking systems exist specifically to help people tell real photos from AI generated ones. Stripping that signal out defeats the entire point, and it can cause real harm.

Journalists, fact checkers, and platforms rely on these signals to catch AI generated misinformation before it spreads. If a fake image of a public figure or an event gets its SynthID watermark scrubbed, it becomes far easier to pass off as authentic, which is exactly the scenario watermarking was built to prevent.

There is also a fairness angle. Some artists and photographers use their own watermarks to prove ownership of their work. Stripping any watermark, AI or human made, and passing the result off as your own original creation edges into misrepresentation, and in some contexts it can raise real intellectual property questions.

Even the reverse-SynthID repo says outright that the project is for research and educational purposes, explicitly warning against using it to misrepresent AI generated content as human made. That is good advice to follow no matter which tool you are using.