移除 Gemini AI 水印:深度解析反向 Alpha 混合技术
一个用于干净清除 AI 生成图像中那些讨厌水印的开源工具
问题所在:精美的图像,碍眼的水印
如果你一直在使用 Google 的 Gemini AI 生成图像——无论是 Gemini Nano、Gemini Flash 还是 Gemini Pro——你可能已经注意到了:每张生成的图像在右下角都带有一个半透明的水印。
别误会,我理解 Google 添加这些水印的原因。AI 生成内容的透明度非常重要。但在某些合法场景下,这些水印会变得非常令人头疼:
- 演示文稿 —— 你正在为商务会议准备幻灯片,而那个水印在尖叫着“这是我用 AI 做的”。
- 设计原型 —— 水印与你精心排版的设计布局格格不入。
- 个人创意项目 —— 你只是想要一张干净的图片用于情绪板或概念艺术。
- 社交媒体内容 —— 水印分散了观众对视觉故事本身的注意力。
我发现自己不得不每次在 Photoshop 中手动抠掉这些水印。在处理到第十张图片时,我想:一定有更好的办法。
于是,我写了一个工具。
Gemini 水印工具简介
Gemini Watermark Tool 是一个轻量级、独立的命令行工具,可以精确、高效地移除图像中的 Gemini 水印。
Gemini 水印工具(Gemini Watermark Tool)
核心功能
- 一键移除 —— 将图像拖放到可执行文件上即可完成。
- 批量处理 —— 数秒内处理数百张图像。
- 数学级精确 —— 使用反向 Alpha 混合(Reverse Alpha Blending)技术,而非粗糙的图像修复(Inpainting)。
- 零依赖 —— 单个
.exe文件,无需安装。 - 开源 —— 基于 MIT 协议,免费使用和修改。
如何使用
最简单的方法:拖拽
- 从 GitHub 发布页面 下载
GeminiWatermarkTool.exe。 - 将带水印的图像拖到该可执行文件上。
- 大功告成 —— 水印将被原位移除。
命令行用法
如需更多控制,请使用命令行:
Bash
# 移除水印并保存为新文件
GeminiWatermarkTool.exe -i watermarked.jpg -o clean.jpg
Bash
# 处理整个文件夹
GeminiWatermarkTool.exe -i ./input_folder/ -o ./output_folder/
# 强制指定水印大小(如果自动检测失败)
GeminiWatermarkTool.exe -i image.jpg -o output.jpg --force-small
水印尺寸检测
Gemini 会根据图像尺寸使用不同的水印大小:
| 图像尺寸 | 水印大小 | 边距 |
| W ≤ 1024 或 H ≤ 1024 | 48×48 像素 | 32px |
| W > 1024 且 H > 1024 | 96×96 像素 | 64px |
该工具会自动检测应使用的尺寸,但你也可以根据需要使用 --force-small 或 --force-large 进行覆盖。
技术原理:反向 Alpha 混合
现在进入有趣的部分 —— 这到底是如何运作的?
理解 Gemini 如何添加水印
大多数人认为水印只是简单地“盖”在图像上。但 Gemini 使用了更复杂的技术:Alpha 混合(Alpha Blending)。
其公式为:
其中:
watermarked是你看到的最终像素值。original是原始像素值(我们想要恢复的内容)。\alpha(alpha) 是透明度因子(0 = 完全透明,1 = 完全不透明)。
这便产生了你在 Gemini 图像中看到的半透明叠加效果。
重建 Alpha 映射表
这是最巧妙的部分,也是关键所在。通过对 Alpha 相关数值进行统计分析和比较,我们可以重建出一个完全正确或极其接近的 Alpha 映射表。
逆向过程
既然我们知道了每个像素的 \alpha 值,我们就可以在代数上反转混合公式:
这是核心等式。对于水印区域的每个像素:
- 从预计算的 Alpha 映射中获取 alpha 值。
- 应用反向公式。
- 将结果钳制(Clamp)在有效范围 [0, 255] 内。
结果如何?数学上精确还原了原始像素值。
为什么这种方法优于其他方案
其他方法如:
- 图像修复 (Inpainting) —— 猜测像素应该是多少,经常产生伪影。
- 仿制图章 (Clone stamping) —— 手动操作且不连贯。
- 内容识别填充 (Content-aware fill) —— 可能产生模糊或扭曲的结果。
- 体积 —— 我的方案非常快速、简单且微小(磁盘占用约 4MB)。
我们的方法不是猜测,而是利用已知的水印模式计算出确切的原始值。唯一的误差来源于 8 位量化(像素值 ±1 的偏差),这在肉眼看来是无法察觉的。
边缘处理
你可能会好奇水印的边缘,那里的像素是半透明的。这实际上由 Alpha 映射表本身完美处理了。边缘像素具有较低的 alpha 值(例如 0.1 或 0.2),反向公式自然地考虑了这一点,从而产生平滑的过渡,没有可见的缝隙。
开源
我已基于 MIT 协议 发布了此工具。完整的源代码可在 GitHub 上获得:
🔗 https://github.com/allenk/GeminiWatermarkTool
当前版本:v0.1.2
功能:
- 独立模式(单个可执行文件,内嵌资源)
- 普通模式(供想要自定义的开发者使用)
- 使用 vcpkg 依赖的 CMake 构建系统
- 支持 Windows x64、Linux、macOS (Apple Silicon + Intel) 和 Android
从源码构建
# 克隆仓库
git clone https://github.com/allenk/GeminiWatermarkTool.git
cd GeminiWatermarkTool
# 使用 vcpkg 配置
cmake -B build -S . \
-DCMAKE_TOOLCHAIN_FILE=[vcpkg-root]/scripts/buildsystems/vcpkg.cmake \
-DVCPKG_TARGET_TRIPLET=x64-windows-static \
-DSTANDALONE_MODE=ON
# 构建
cmake --build build --config Release
重要免责声明
⚠️ 本工具仅供个人及教育用途使用。
请记住以下几点:
- 处理前请务必备份原始图像。该工具可能会直接修改原文件。
- 尊重内容政策。移除水印可能会产生法律或伦理影响,具体取决于你如何使用生成的图像。
- 此工具仅移除可见水印。它不会影响可能嵌入在图像数据中的任何不可见/隐写水印。
下一步计划
我正在考虑在未来版本中加入以下改进:
- GUI 版本 —— 针对更喜欢图形界面的用户。
- 完善 macOS/Linux 支持 —— 目前主要在 Windows 上测试。
- 预览模式 —— 在保存前查看效果。
- 撤销功能 —— 在元数据中存储原始数据。
如果你有功能建议或发现 Bug,请 在 GitHub 上提交 Issue。
结语
最初只是因为个人的一点困扰,最终变成了一个有趣的技术挑战。Alpha 混合背后的数学原理非常优雅,逆向执行它可以产生令人惊讶的干净结果。
如果你厌倦了手动修掉 Gemini 生成图像中的水印,不妨试试这个工具。如果你是对图像处理感兴趣的开发者,希望源代码能为你提供一些有用的启发。
下载地址: GitHub Releases
源代码: github.com/allenk/GeminiWatermarkTool
原文: