如何从 Gemini 图片中移除 SynthID 水印
我最近发现了一个叫 reverse-SynthID 的项目,这让我开始深入研究如何从 Gemini 图片中移除 SynthID 水印标签,说实话,这比从照片上撕下一张贴纸要难得多。
我最近发现了一个 GitHub 仓库,声称已经逆向工程了 Google 那套「无法破解」的 AI 水印。这把我带进了一个深坑,这篇文章就是我在尝试从一张 Gemini 生成的图片中移除 SynthID 水印保护时所发现的东西,以及这到底是不是个好主意。
SynthID 到底是什么?
SynthID 是 Google DeepMind 的 AI 图片水印系统,同时也覆盖文本、音频和视频。它会在内容被 Gemini、Imagen、Veo、Lyria 等工具创建的那一刻,悄悄地把一个信号嵌入其中。
对于图片来说,水印不是 logo,也不是印章。它是一种直接烘焙进像素值里的图案,散布在整张图片上,而不是待在某个角落里。这跟 Gemini 还会往图片角落贴上的那个小星星图标完全不同,后者只是叠在上面的可见 logo。
Google 设计 SynthID 是为了让这个信号扛住常规编辑:缩放、裁剪、重新压缩、截图,甚至调色。根据 Google DeepMind 的说法,检测器之后可以扫描文件,并以相当高的置信度将其标记为 AI 生成。
为什么移除可见水印还不够
这里就是很多人栽跟头的地方。如果你裁掉那个小 Gemini logo,或者把它涂掉,你只是处理了表面那一层。看不见的 SynthID 信号仍然藏在像素里,纹丝未动!
这很重要,因为可见 logo 和隐形水印是完全独立的两套系统。删掉其中一个,对另一个毫无影响。任何人对你的「清理过」的图片跑 SynthID 检测器,仍然会得出阳性匹配,因为真正的水印数据从未被触碰。
好呀,有时候视觉移除就够了
公平地说,很多人只在乎可见 logo,不在乎那个隐形的溯源信号。如果你的目标只是一张看起来干净的图片,角落里没有星星图标,有几个免费工具就能搞定。
- Photopea,一款免费的 Photoshop 替代品,在浏览器里运行,自带 Spot Healing Brush Tool(污点修复画笔工具),几秒钟就能把水印区域和周围像素融合在一起。对付简单背景上的小 logo 水印效果很好。
- geminiwatermarkremover.io 是一款免费的 Gemini 水印移除工具,专门为 Gemini logo 打造。一切都在浏览器本地运行,所以图片永远不会离开你的设备。
如果你只是需要一张没有角落 logo 的截图来做演示或 mockup,这些工具完全合理,而且很快。
reverse-SynthID GitHub 仓库是什么?
事情从这里开始变得真正有意思。reverse-SynthID 是开发者 Alosh Denny 的一个开源研究项目,试图用纯信号处理来逆向工程 Google Gemini SynthID,完全无法访问 Google 实际的编码器或解码器。
它是怎么工作的
这个项目不是把水印当作一张需要涂掉的图片来处理,而是把它当作埋在图片频域里的隐藏信号。每张图片都可以用 FFT(快速傅里叶变换)转换成频域表示,把图片描述为波形模式的叠加,而不是像素。SynthID 的信号在这种表示里会显现为少数几个特定的、重复的波形频率,叫做载波(carrier),位于固定的位置。
要在没有 Google 自家检测器的情况下找到这些载波位置,研究人员向 Gemini 喂了纯黑和纯白的图片。在一张纯黑图片上,几乎整个像素内容实际上就是水印,因为没有真正的照片内容可以把它藏起来。通过对比黑白两个版本,他们可以确认哪些频率真正属于 SynthID 而不是噪声,方法是检查相位值是否以反转信号应有的方式对齐。

有两个发现让这件事变得很难。首先,载波位置是分辨率相关的,也就是说 1024x1024 的图片把水印藏在完全不同的频率位置上,跟 1536x2816 的图片不一样,所以为一种尺寸建立的指纹在另一种尺寸上毫无用处。其次,水印的相位模式在同一个 Gemini 模型的每张图片上都保持一致,而且在绿色通道上表现最强,这就是为什么项目在移除时会以不同权重处理绿、红、蓝三个通道。
这些发现被存储在项目称为 SpectralCodebook 的结构里,本质上是一个查找表,记录了 Gemini 能输出的每种图片分辨率对应的载波频率和相位值。移除时,工具会把图片匹配到 codebook 中最接近的分辨率配置,然后直接从该图片的频谱中减去已知的水印信号,分多轮进行,每一轮都比上一轮更弱,以免过度校正。这个项目经历了三个版本的迭代:从简单的 JPEG 重新压缩开始,到更广泛的多阶段变换,最终落到这种直接频谱减法上,仓库自己的基准测试报告这是效果最强的:载波能量大约下降 75%,相位相干性下降超过 90%,而图片质量(PSNR)保持在 43 dB 以上,意味着肉眼看起来基本一模一样。
你怎么用它?
这个项目是一组 Python 脚本,不是一键式应用,所以用起来需要一点配置。大致步骤如下:
- 从 GitHub 克隆仓库,并安装仓库中列出的 Python 依赖。
- 用附带的下载脚本,从项目的 Hugging Face 数据集 下载参考用的黑白 Gemini 图片。
- 用这些参考图片构建 SpectralCodebook,映射出每种分辨率的载波频率。
- 对你的图片运行 V3 bypass 脚本,指向 codebook 文件,并从温和到最大选择强度级别。
- 可选地,之后运行附带的检测器脚本,检查水印信号是否真的下降了。
维护者还在积极呼吁贡献者向 Hugging Face 提交更多纯黑白 Gemini 输出,因为更多分辨率下的参考图片能让 codebook 更准确。
项目自己的 README 对适用范围说得很直白:这是在没有 Google 专有编码器或解码器访问权限的情况下构建的信号处理研究,结果会因分辨率和你去信号的激进程度而异。
为什么你可能根本不该移除 SynthID
通读这一切之后,这是我的真实看法。SynthID 和类似的水印系统存在的目的就是帮助人们区分真实照片和 AI 生成的图片。把这个信号剥掉,完全违背了初衷,而且可能造成真正的伤害。
记者、事实核查人员和平台依赖这些信号来在AI 生成的虚假信息传播之前抓住它们。如果一张关于公众人物或事件的假图片被擦掉了 SynthID 水印,它就更容易被当成真的传出去,而这正是水印系统被设计出来要防止的场景。
还有一个公平性的问题。有些艺术家和摄影师用自己的水印来证明作品的所有权。剥掉任何水印,不管是 AI 的还是人做的,然后把结果当作自己的原创来呈现,这就踩进了误导的边界,在某些情境下还可能引发真正的知识产权问题。
就连 reverse-SynthID 仓库也直说了,这个项目是用于研究和教育目的,明确警告不要用它来把 AI 生成的内容伪装成人类创作。不管你用哪个工具,这都是值得遵守的好建议。