在处理由 Gemini 系列模型生成的图片时,许多用户都会遇到一个现实问题:右下角的半透明水印
它在演示文稿、技术文档、UI 截图和示意图中尤为显眼,往往会影响内容本身的清晰度与专业呈现。

Gemini Watermark Tool 正是围绕这个问题而设计的一款命令行工具
它的目标并不是“修复”或“猜测”图像内容,而是基于确定性的数学方法,还原被水印影响的像素值

本文将完整介绍这个工具的设计理念、使用方式、适用场景、技术原理与限制,帮助你判断它是否适合你的实际需求。


这个工具解决的是什么问题?

Gemini 在生成图片时,会在右下角叠加一个可见水印。
该水印并非简单覆盖,而是通过 Alpha 混合(Alpha Blending) 的方式与原图像素进行融合。

这意味着:

  • 原始像素并没有被完全替换
  • 图像信息仍然存在于结果中
  • 理论上存在“逆向恢复”的可能

Gemini Watermark Tool 正是基于这一事实,通过反向 Alpha 混合计算,对图像进行像素级重建。


设计原则:不猜测、不修补、不涂抹

在很多图像处理工具中,去除水印往往意味着:

  • 使用生成式修复(Inpainting)
  • 对文字和边缘进行“猜测性补全”
  • 导致字形变形、线条扭曲、间距错误

该工具明确选择了一条不同的路径:

它不做内容生成,只做数学反演。

这也是 README 中反复强调的一个特点:

  • Deterministic(确定性)
  • Not Inpainting(非生成修复)
  • Mathematically Accurate(数学精确)

换句话说,只要输入相同,输出结果始终一致。


工具核心能力一览

在功能层面,Gemini Watermark Tool 提供了以下能力:

  • 支持单文件和批量目录处理
  • 支持原地覆盖或指定输出路径
  • 自动识别水印尺寸
  • 跨平台运行
  • 零运行时依赖
  • 单一可执行文件

这些能力并非为了“功能堆砌”,而是围绕工程实用性展开。


支持的平台与运行环境

该工具提供预编译的二进制文件,覆盖常见系统:

平台 架构
Windows x64
Linux x64
macOS Intel + Apple Silicon
Android ARM64

所有版本均为静态链接,不依赖系统环境中的额外库。


实际效果展示

在 README 中,作者提供了多组对比示例,尤其强调了一个关键使用场景:

文本密集型幻灯片

在这种场景下,生成式修复常见的问题包括:

  • 字体边缘被拉伸
  • 字距被破坏
  • 笔画被“脑补”

而通过反向 Alpha 混合恢复的方式,文本结构保持清晰,字符形态稳定。

示例预览

CLI Preview
Demo
Side by Side Comparison

如何使用:从最简单开始

拖拽即用(Windows)

这是最简单的使用方式:

  1. 下载 GeminiWatermarkTool-Windows-x64.exe
  2. 将图片文件拖到该程序上
  3. 程序自动处理并覆盖原文件

无需参数、无需配置。


命令行基础用法

原地处理(最简)

GeminiWatermarkTool image.jpg

该方式会直接覆盖原文件。


指定输入与输出

GeminiWatermarkTool -i watermarked.jpg -o clean.jpg

这是更安全、也更推荐的方式。


批量处理目录

GeminiWatermarkTool -i ./watermarked_images/ -o ./clean_images/

工具会自动遍历目录,并处理支持的图片格式:

  • jpg / jpeg
  • png
  • webp
  • bmp

水印尺寸是如何判断的?

Gemini 的可见水印并非固定尺寸。
工具通过图像尺寸自动判断水印规格。

判断规则如下:

图像尺寸条件 水印尺寸 位置
宽 ≤ 1024 或 高 ≤ 1024 48 × 48 右下角,32px 边距
宽 > 1024 且 高 > 1024 96 × 96 右下角,64px 边距

示例:

图像尺寸 判断结果
800 × 600 小水印
1024 × 1024 小水印
1920 × 1080 大水印

如需手动指定,可使用:

--force-small
--force-large

命令行参数说明

参数 简写 说明
--input <path> -i 输入文件或目录
--output <path> -o 输出文件或目录
--remove -r 移除水印(默认行为)
--force-small 强制使用 48×48
--force-large 强制使用 96×96
--verbose -v 输出详细日志
--quiet -q 仅输出错误
--banner -b 显示 ASCII Banner
--version -V 显示版本信息
--help -h 帮助信息

技术原理:反向 Alpha 混合

Gemini 的水印叠加方式

水印生成公式为:

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

这是标准的 Alpha Blending。


反向恢复公式

通过构建 Alpha Map 并进行反演,可求得原始像素:

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

这是一个确定性数学过程,不是概率推断。

README 明确指出:

  • Alpha Map 通过统计分析获得
  • 结果是精确或极其接近的恢复
  • 不涉及生成或补全逻辑

常见问题解答(FAQ)

处理后看不出变化?

水印是半透明的。
如果背景颜色与水印接近,肉眼差异可能较小。

建议:

  • 放大到 100%
  • 查看右下角区域

水印尺寸识别错误怎么办?

使用强制参数:

GeminiWatermarkTool -i image.jpg -o output.jpg --force-small

或:

--force-large

提示无法写入文件?

请检查:

  • 输出路径是否可写
  • 文件是否正在被其他程序占用

工具的明确限制

该工具并非“万能水印清除器”,README 明确列出限制:

  • 仅支持 Gemini 可见水印
  • 不支持隐写水印或隐藏标记
  • 依赖当前 Gemini 的水印模式
  • 不保证适配未来变化

法律与使用声明(原文精神保留)

该工具:

  • 仅供个人与教育用途
  • 使用者需自行确认符合法律与服务条款
  • 作者不鼓励任何形式的侵权或误用
  • 软件按“原样”提供,不提供任何担保

从源码构建(高级用户)

如果你希望自行构建:

依赖工具

工具 要求
CMake 3.21+
C++ 编译器 C++17
vcpkg 最新版
Ninja 推荐

构建流程在 README 中已给出完整示例,涵盖:

  • Windows
  • Linux
  • macOS(Universal)
  • Android

项目结构一览

gemini-watermark-tool/
├── CMakeLists.txt
├── CMakePresets.json
├── vcpkg.json
├── src/
│   ├── main.cpp
│   ├── watermark_engine.cpp
│   ├── blend_modes.cpp
│   └── ascii_logo.hpp
└── resources/

总结

Gemini Watermark Tool 的价值,并不在于“去掉一个角落的标志”,而在于:

  • 它使用的是可解释、可复现的数学方法
  • 它避免了生成式修复带来的结构破坏
  • 它在工程层面考虑了真实使用场景

如果你处理的是文档型、演示型、界面型图片,并且希望结果可控、稳定、可验证,这类工具具备明确的使用意义。