Gemini 生图水印是怎么加上去的,又该怎么无损去掉

Gemini 生图水印是怎么加上去的,又该怎么无损去掉

拆解 Gemini 可见水印的 Alpha 混合原理,对比反向公式与 AI 修图的差异,附免费在线去除工具,帮你判断什么时候能用、什么时候不能用。

用 Google Gemini 生图之后,右下角会出现一枚半透明的星形水印。如果只是自己看看,无所谓;但如果要拿来做演示文稿、设计草图或者社交媒体配图,这块水印就很碍事。

大多数人的第一反应是找个修图工具"擦掉"它。但 Gemini 这个水印有一个特殊之处:它不是随机贴上去的涂鸦,而是一个固定模式、固定位置、按数学公式叠加上去的半透明图层。既然加上去的方式是确定的,去掉它的方式也可以是确定的——不需要 AI 猜,用反向公式算就行。

这篇文章拆解一下这个过程的原理,帮你判断什么时候能用、什么时候不能用。


Gemini 的水印到底是怎么加上去的

Gemini 的可见水印使用的是标准的 Alpha 混合(Alpha Compositing)。这不是什么黑科技,而是图形学里最基础的透明度合成公式:

watermarked = α × logo + (1 - α) × original

其中:

  • watermarked 是你最终看到的带水印像素值
  • original 是水印下面被覆盖的原始像素值
  • logo 是水印图案的颜色(Gemini 的星形水印是白色,即 255)
  • α 是水印在该像素位置的透明度(0 到 1 之间)

简单说:每个像素的最终颜色 = 水印颜色 × 透明度 + 原图颜色 × (1 - 透明度)。透明度越高,水印越明显,原图信息被"压"得越多。

这个过程有两个关键特征:

  1. 水印图案是固定的——每张 Gemini 生成图上的星形水印长得一样。
  2. 透明度分布是固定的——同尺寸水印在每个像素位置的 α 值不变。

这意味着只要有人把这个 α 分布图(Alpha Map)逆向出来,就能建立一套精确的反向公式。


反向 Alpha 混合:从数学上"算回"原图

知道了加水印的公式,反过来解方程就行:

original = (watermarked - α × logo) / (1 - α)

这是 Allen Kuo 在他的逆向研究中提出的核心思路。他通过在纯色背景上捕获水印图案,反推出完整的 Alpha Map,然后把公式应用到每一个被水印覆盖的像素上。

这套方法和"AI 修图"有本质区别:

反向 Alpha 混合AI 修图(Inpainting)
原理数学公式精确反解模型"猜测"被遮挡区域
精度像素级精确,误差极小取决于模型能力,可能出错
速度毫秒级秒到分钟级
适用范围仅限已知 Alpha Map 的固定水印可尝试任意遮挡修复
失败模式α 不准时会出现色块可能产生不自然纹理

一句话区别

反向 Alpha 混合是在"还原"——算出被覆盖的原始像素;AI 修图是在"补"——猜一个看起来合理的替代。


还原效果取决于什么条件

反向公式在理想条件下是精确的,但实际使用中效果好不好,取决于输入图片的状态:

效果最好的情况:

  • 直接从 Gemini 导出的原始 PNG(未经任何处理)
  • 图片没有被截图、缩放、重新压缩过
  • 水印区域下方的原始内容不是纯白或极接近白色

效果可能受影响的情况:

  • 图片经过了社交平台的压缩(微信、微博等会重新编码)
  • 图片被截图工具保存过(可能引入缩放或色彩空间变化)
  • 水印区域正好覆盖在接近纯白的背景上(α 接近 1 的位置信息损失大)

完全不适用的情况:

  • 非 Gemini 来源的水印(不同工具的 Alpha Map 不同)
  • Google 的 SynthID 隐写水印(嵌入在频域,不是可见图层叠加)
  • 图片被深度修改过,水印区域已经和原始不一致

SynthID 和可见水印是两回事

Gemini 图片可能同时包含可见水印(右下角星形)和 SynthID 不可见水印。反向 Alpha 混合只处理可见的部分,SynthID 是完全不同的技术路线。


Gemini 水印的两种常见尺寸

根据 开源仓库 的实测数据,Gemini 目前使用两种水印尺寸:

  • 48×48 像素:出现在较小分辨率的生成图上
  • 96×96 像素:出现在较大分辨率的生成图上

两者的 Alpha Map 图案相同(都是四角星形),但边距和缩放不一样。正确识别尺寸是精确去除的关键——如果用错了 Alpha Map,反向计算的结果会出现明显色偏。

我们的 Gemini 水印去除工具 会自动检测水印尺寸并匹配对应的 Alpha Map,不需要用户手动选择。


自己动手:原理并不复杂

如果你是开发者,想自己实现或者理解底层逻辑,核心代码并不多。整个过程可以拆成三步:

第一步:加载 Alpha Map

Alpha Map 记录了水印图案中每个像素的透明度值。它可以通过在纯黑背景上截取水印来校准:如果纯黑(0)上显示的值是 v,那 α = v / 255。

第二步:定位水印区域

Gemini 的水印固定在图片右下角,距离边缘有固定的 margin。知道 margin 和水印尺寸,就能算出水印覆盖的精确区域。

第三步:逐像素反向计算

对水印区域内的每个像素,用反向公式还原:

// 对 R、G、B 三个通道分别计算
for (let ch = 0; ch < 3; ch++) {
  const watermarked = imageData[pixelIndex + ch];
  const alpha = alphaMap[mapIndex];
  const logo = 255; // 白色水印
  
  // 反向 Alpha 混合
  const original = (watermarked - alpha * logo) / (1 - alpha);
  
  // 限制到有效范围
  imageData[pixelIndex + ch] = Math.round(
    Math.max(0, Math.min(255, original))
  );
}

完整实现可以参考我们的 开源仓库,里面包含了 Alpha Map 文件、双尺寸自动检测逻辑、Web Worker 并行处理,以及 Tampermonkey 用户脚本。


为什么这个操作可以在浏览器里完成

反向 Alpha 混合的计算量很小——本质上就是对几千个像素做一次加减乘除。不需要 GPU,不需要模型推理,一个普通的 JavaScript 线程就能在几十毫秒内跑完。

利用 Web Worker 做多线程处理后,即使批量处理几十张图,也只需要秒级。这就是为什么这件事可以做成纯前端工具,不需要上传到服务器——计算发生在你自己的浏览器里,图片不离开你的设备。

这对处理未公开的设计稿、商业素材或内部方案图来说,隐私上比较安心。


实际使用建议

根据不同场景,这里给几个实际建议:

处理 Gemini 直出的 PNG

这是最理想的输入。直接拖进 工具页 就能得到干净结果,通常肉眼看不出水印痕迹。

处理从聊天记录中保存的图片

如果你是在 Gemini 对话页面右键"另存为"得到的图片,通常也没问题。但如果用的是截图工具,图片可能经历了缩放或色彩空间转换,效果会打折。

处理被转发过的图片

经过微信、Telegram 等平台压缩后的图片,水印区域的像素值已经被重新编码。反向公式可能仍能改善观感,但无法做到完美还原。

批量处理

工具支持一次拖入多张图片批量处理。但建议先拿一两张试验效果,确认输入条件合适后再大批量操作。

如果你遇到的不是 Gemini 水印,而是其他来源的图片水印,可以参考 图片去水印技术路径全解析,了解从传统算法到扩散模型的完整方案对比。


技术归因与使用边界

反向 Alpha Blending 方法来自 Allen Kuo 的 原始研究 和他的 Gemini Watermark Tool(MIT 许可)。我们的 开源仓库 是在此基础上的 JavaScript 移植与产品化实现。

使用层面需要注意:这个工具面向个人和教育用途。去除水印可能涉及平台规则或版权问题,请根据你所在地区的法律和使用场景自行判断。


参考资料