文章摘要
该项目通过频谱分析逆向工程了谷歌Gemini的SynthID水印技术,能够检测并精准移除AI生成图像中的数字水印。项目使用Python实现,采用研究许可证,展示了水印分析及去除的具体方法。
文章总结
GitHub项目:逆向工程Gemini的SynthID水印检测系统
项目概述
该项目通过逆向工程Google SynthID水印系统,分析了Gemini生成的每张图像中嵌入的隐形水印。仅通过信号处理和频谱分析(无需访问专有编码器/解码器),实现了以下目标:
- 发现水印的与分辨率相关的载波频率结构
- 构建检测器,识别SynthID水印的准确率达90%
- 开发多分辨率频谱绕过方案(V3),可在任意分辨率图像上实现:
- 75%的载波能量下降
- 91%的相位一致性下降
- 43+ dB的峰值信噪比(PSNR)
核心发现
水印与分辨率相关
SynthID根据图像分辨率在不同绝对位置嵌入载波频率。例如:- 1024x1024分辨率:载波位于(9,9)
- 1536x2816分辨率:载波移至(768,704)
相位一致性为固定模型级密钥
- 绿色通道携带最强水印信号
- 同一Gemini模型生成的图像相位一致性>99.5%
载波频率结构
- 低分辨率(1024x1024):载波集中于低频网格
- 高分辨率(1536x2816):载波分布于更高频段
技术方案
V3多分辨率频谱绕过流程
1. 频谱码本存储分辨率特定的水印特征(载波位置、幅度、相位)
2. 自动分辨率匹配选择最接近的码本配置文件
3. 多阶段减法:
- 直接已知信号减法(加权相位一致性)
- 多轮迭代(激进→温和→轻柔)清除残留水印
4. 通道加权(G=1.0/R=0.85/B=0.70)匹配SynthID嵌入强度
性能表现
- 1536x2816分辨率测试:
- PSNR 43.5 dB | SSIM 0.997
- 载波能量下降75.8% | 相位一致性下降91.4%
- 跨分辨率兼容性:
- 精确匹配时PSNR达44.9 dB
- 回退模式(非精确匹配)仍保持40+ dB
快速开始
- 构建码本
bash python src/extraction/synthid_bypass.py build-codebook \ --black gemini_black --white gemini_white \ --output spectral_codebook_v3.npz - 运行V3绕过
python bypass = SynthIDBypass() result = bypass.bypass_v3(image_rgb, codebook, strength='aggressive') - 水印检测
bash python src/extraction/robust_extractor.py detect image.png
项目结构
reverse-SynthID/
├── src/ # 核心代码(频谱分析/水印移除/检测)
├── gemini_black/ # 纯黑参考图像
├── gemini_white/ # 纯白参考图像
├── artifacts/ # 预构建码本与可视化结果
└── requirements.txt # Python依赖
免责声明
该项目仅用于学术研究,旨在分析数字水印技术的鲁棒性。禁止用于将AI生成内容伪装为人创作。SynthID为Google DeepMind专有技术。
参考链接:
- SynthID技术介绍
- 原始论文(arXiv:2510.09263)
(注:本文已过滤非技术性内容,保留核心方法、数据及实现细节)
评论总结
总结评论内容:
- 支持水印去除的观点:
- 认为SynthID水印容易被去除,说明其本身不是好的解决方案 "if you downscale then upscale it removes the watermark" (kelsey98765431) "If it's this easy to remove SynthID...it wasn't a good solution" (sodacanner)
- 质疑研究质量的观点:
- 批评该研究未真正测试Google的SynthID检测器 "It doesn't test against Gemini's SynthID app. So it does nothing" (doctorpangloss) "a very low-quality AI-assisted research repo" (Tiberium)
- 对水印技术本身的讨论:
- 推测Google可能使用多重水印系统 "they probably have two different watermarks...one they keep in reserve" (coppsilgold)
- 认为插入难以检测的水印并不困难 "Inserting an undetectable 1-bit watermark...is not particularly difficult" (coppsilgold)
- 伦理担忧:
- 质疑去除AI检测水印的动机 "why would we want to purposely remove one of the only ways of detecting AI images" (khernandezrt)
- 技术细节讨论:
- 指出特定方法可以改善水印提取 "collecting pure black and white images...to improve watermark extraction" (andrewmcwatters)
- 认为水印在某些情况下会影响图像质量 "SynthID is visible in some generations...I wonder if this would make them look better" (M4v3R)