图片去水印
纯本地反向 Alpha 混合算法无损去除 Gemini 图片/视频水印
🔥 厌倦了 Gemini 水印?试试更强大的 GPT Image 2,访问 pilio.ai —— 限时免费。
Gemini Watermark Remover —— 无损水印去除工具
一款开源工具,用于去除 Gemini 水印,在支持的输出上实现高保真、可复现的结果。采用纯 JavaScript 构建,引擎使用数学上精确的反向 Alpha 混合算法,而非不可预测的 AI 修复。
🚀 寻找
在线 Gemini 水印去除工具(推荐)?试试 geminiwatermarkremover.io —— 免费、无需安装,直接在浏览器中运行。💡 遇到 Gemini Watermark Remover 无法处理的水印?试试通用 AI 水印去除工具:pilio.ai/image-watermark-remover
功能特性
- ✅ 100% 本地处理 - 所有图像处理均在浏览器或本地机器上完成。不会上传任何内容。
- ✅ 数学精度 - 基于反向 Alpha 混合公式,而非“幻觉”AI 模型。
- ✅ 自动检测 - 利用 Gemini 已知的输出目录和本地锚点搜索,自动识别水印大小和位置。
- ✅ 灵活使用 - 在线工具快速使用,Chrome 扩展或用户脚本无缝集成 Gemini 页面,CLI 和 Skill 用于脚本和自动化。
- ✅ 视频支持 - 在 geminiwatermarkremover.io/video 去除 Gemini 生成视频中的水印。
- ✅ 跨平台 - 适用于现代浏览器(Chrome、Firefox、Safari、Edge)和 Node.js 环境。
Gemini 水印去除示例
点击展开/折叠示例
| 原始图像 | 去除水印后 |
|---|---|
![]() | ![]() |
⚠️ 免责声明
[!WARNING] 使用风险自负
本工具会修改图像文件。尽管设计上可靠,但以下情况可能导致意外结果:
- Gemini 水印实现的差异
- 损坏或异常图像格式
- 测试未覆盖的边缘情况
作者对任何数据丢失、图像损坏或意外修改概不负责。使用本工具即表示您已了解这些风险。
[!NOTE] 注意:请禁用任何指纹防御扩展(例如 Canvas Fingerprint Defender),以避免处理错误。https://github.com/GargantuaX/gemini-watermark-remover/issues/3
如何去除 Gemini 水印
在线 Gemini 水印去除工具(推荐)
面向所有用户 —— 最快、最简单的去除 Gemini 图像水印的方法:
- 打开 geminiwatermarkremover.io。
- 拖放或点击选择您的 Gemini 生成图像。
- 引擎将自动处理并去除水印。
- 下载清理后的图像。
在线视频水印去除工具(新!)
适用于带有可见水印的 Gemini 生成视频:
- 打开 geminiwatermarkremover.io/video。
- 上传或拖放您的 Gemini 生成视频。
- 工具将自动检测并去除视频中的水印。
- 下载清理后的视频。
注意:视频水印去除完全在浏览器中运行 —— 不会上传任何文件到服务器。
Chrome 扩展
如果您不想使用用户脚本管理器,但仍希望 Gemini 页面自动集成预览、复制和下载操作,请使用此扩展。
- 打开 Chrome 网上应用店中的 Gemini Watermark Remover。
- 点击添加至 Chrome 并确认安装。
- 打开 Gemini。扩展将自动处理支持的 Gemini 图像。
弹出窗口包含一个“在 Gemini 上启用”开关。如果 Gemini 变慢、行为异常或需要排查页面问题,请关闭开关并刷新 Gemini。
Chrome 网上应用店安装会自动更新。如果您的网络无法访问网上应用店,可从 GitHub Releases 和官方网站下载入口获取匹配的已验证压缩包(gemini-watermark-remover-extension-v*.zip),用于手动解压安装。
用户脚本
- 安装用户脚本管理器(例如 Tampermonkey 或 Greasemonkey)。
- 打开 gemini-watermark-remover.user.js。
- 脚本将自动安装。
- 导航至 Gemini 对话页面。
- 页面上符合条件的 Gemini 预览图像在处理后会被原地替换。
- Gemini 原生的“复制图像”和“下载图像”操作也会返回处理后的结果。
当前用户脚本的限制:
- 没有注入每个图像的控制按钮
- 没有弹出 UI 或批量操作界面
- 页面预览和原生复制/下载流程均会在源图像可访问时进行处理
- 预览图像在处理期间保持原始可见,并带有淡化的“处理中…”覆盖层
- 如果预览处理失败,原始页面图像保持可见且可用
Skill
适用于涉及 AI 编码代理的工作流程:
skills/gemini-watermark-remover/包含一个打包的 Skill,代理可以发现并调用。- 使用
skills.sh安装:
pnpm dlx skills add GargantuaX/gemini-watermark-remover --skill gemini-watermark-remover
- 仅当你的本地环境需要时,才添加诸如
--agent、--yes或--copy之类的标志。 - 用法:
node skills/gemini-watermark-remover/scripts/run.mjs remove <input> --output <file>
- 关于智能体集成的详细信息,请参阅
SKILL.md。
CLI
对于脚本、CI 以及本地批量处理工作流程,请直接使用 CLI:
# 仓库本地
node bin/gwr.mjs remove <input> --output <file>
# 全局安装
gwr remove <input> [--output <file> | --out-dir <dir>] [--overwrite] [--json]
如果你没有全局安装 gwr,请使用:
pnpm dlx @pilio/gemini-watermark-remover remove <input> --output <file>
默认的 CLI 文件解码器/编码器使用 sharp。仅使用浏览器或 ImageData API 的 SDK 使用者则无需安装。如果你在自己的项目中使用了 CLI 文件路径,请同时安装 sharp 该包:
pnpm add sharp
无法去除你的水印?
此工具专门针对 Gemini 的可见水印(位于右下角的半透明徽标)。如果你的图像水印与已知的 Gemini 格式不匹配,或者你需要去除其他类型的图像水印,请尝试通用 AI 水印去除工具:
👉 pilio.ai/image-watermark-remover
开发者预览
该仓库仍然在 /dev-preview.html 保留了本地内部预览工具,用于单张图像对比、复制和下载验证。
- 这是一个保留的内部调试界面,并非公开产品网站。
- 根路径
/现在仅将用户重定向到官方网站、用户脚本产物以及内部预览页面。 - 面向公众的使用应优先选择官方网站或用户脚本,而不是此本地预览工具。
开发
# 安装依赖
pnpm install
# 开发构建
pnpm dev
# 生产构建
pnpm build
# 本地静态服务
pnpm serve
注意:
- 根路径
/现在是一个轻量级入口页面,指向官方网站、用户脚本产物以及保留的内部预览页面。 - 内部浏览器预览工具位于
/dev-preview.html,现在保留为一个仅中文的静态单张图像对比工具,用于本地算法/UI 调试,不再维护面向公众的语言或主题切换功能。 pnpm dev/pnpm serve仍然承载用户脚本、探测页面及这些静态资源。
在 macOS 上调试 Tampermonkey
对于该仓库在 macOS 上的固定配置文件工作流程:
# 构建最新的用户脚本
pnpm build
# 如果需要,启动本地 dist 服务器
pnpm dev
# 打开启用了远程调试的固定 Chrome 配置文件
./scripts/open-fixed-chrome-profile.sh --url https://gemini.google.com/app
注意:
- 固定配置文件位于
.chrome-debug/tampermonkey-profile - 默认的 CDP 端口为
9226 - 默认代理为
http://127.0.0.1:7890;如果不需要,可以使用--proxy off禁用它 - 从正在运行的本地
pnpm dev服务器重新安装最新的用户脚本 pnpm dev从http://127.0.0.1:4173/开始探测,如果该端口已被占用,则自动递增- 如果你正在跟随之前录制的调试会话,其端口可能不同;请以当前
pnpm dev的输出为准,而不是硬编码4173
SDK 用法(高级 / 内部)
该包的根目录仍然暴露 SDK,但此路径适用于高级或内部集成场景:
import {
createWatermarkEngine,
removeWatermarkFromImage,
removeWatermarkFromImageData,
removeWatermarkFromImageDataSync,
} from '@pilio/gemini-watermark-remover';
当你已经有了解码的 ImageData 时,请使用纯数据 API:
const result = await removeWatermarkFromImageData(imageData, {
adaptiveMode: 'auto',
});
console.log(result.meta.decisionTier);
当你有一个 HTMLImageElement 或 HTMLCanvasElement 时,请使用浏览器图像 API:
const { canvas, meta } = await removeWatermarkFromImage(imageElement);
document.body.append(canvas);
console.log(meta.applied, meta.decisionTier);
如果需要处理多张图像,请复用单个引擎实例,以便 Alpha 映射保持缓存:
const engine = await createWatermarkEngine();
const first = await removeWatermarkFromImageData(imageDataA, { engine });
const second = await removeWatermarkFromImageData(imageDataB, { engine });
对于 Node.js 集成,请使用专用子路径并注入你自己的解码器/编码器:
import { removeWatermarkFromBuffer } from '@pilio/gemini-watermark-remover/node';
const result = await removeWatermarkFromBuffer(inputBuffer, {
mimeType: 'image/png',
decodeImageData: yourDecodeFn,
encodeImageData: yourEncodeFn,
});
运行时要求
Web 与用户脚本
- 现代 Chrome / Firefox / Safari / Edge 类浏览器
- ES modules
- Canvas API
- Async/Await
- TypedArray (
Float32Array,Uint8ClampedArray) - 对于网站复制按钮:
navigator.clipboard.write(...)和ClipboardItem
CLI 与技能
- 能够运行此包的本地 Node.js 运行时
- 使用默认 CLI 文件解码器/编码器时安装
sharp - 对本地输入/输出路径的文件系统访问权限
- 对于仓库本地使用:
node bin/gwr.mjs remove <input> --output <file>
node skills/gemini-watermark-remover/scripts/run.mjs remove <input> --output <file>
- 对于分布式技能使用,本地环境必须能够执行打包后的
gwrCLI 边界
测试
# 运行所有测试
pnpm test
回归测试包括来自 src/assets/samples/ 的图像测试样例。
源测试样例保留在 git 中。
这些测试样例的命名和保留规则记录在 src/assets/samples/README.md 中。
复杂的预览/下载验证说明记录在 docs/complex-figure-verification-checklist.md 中。
src/assets/samples/fix/ 下的本地文件是可选的快照输出,用于手动回归检查,并且故意不被 git 跟踪。
发布说明
查看 CHANGELOG.md 了解发布历史,查看 RELEASE.md 了解本地发布检查清单。
Gemini 水印去除原理
Gemini 水印生成过程
Gemini 使用标准的 Alpha 合成来应用水印:
$$watermarked = \alpha \cdot logo + (1 - \alpha) \cdot original$$
其中:
watermarked:带有水印的像素值。α:Alpha 通道值(0.0 - 1.0)。logo:水印徽标颜色值(白色 = 255)。original:我们要恢复的原始像素值。
反向求解
要去除水印,我们求解 original:
$$original = \frac{watermarked - \alpha \cdot logo}{1 - \alpha}$$
通过在已知的纯色背景上捕获水印,我们重建精确的 Alpha 映射,并应用逆公式零损失地恢复原始像素。
检测规则
该引擎使用分层检测来定位和验证水印:
- 尺寸目录查找 —— 将图像尺寸与 Gemini 的已知输出尺寸进行匹配,以预测水印大小和位置。
- 局部锚点搜索 —— 通过扫描预期水印区域周围的像素数据来优化预测位置。
- 恢复验证 —— 在应用去除之前确认检测到的水印是真实的。
默认水印配置:
| 条件 | 水印尺寸 | 右边距 | 底边距 |
|---|---|---|---|
| 较大的 Gemini 输出 | 96×96 | 64px | 64px |
| 较小的 Gemini 输出 | 48×48 | 32px | 32px |
项目结构
gemini-watermark-remover/
├── bin/ # 已发布的 CLI 入口点 (`gwr`)
├── public/
│ ├── index.html # 官方网站 / 用户脚本 / 内部预览的入口页面
│ ├── dev-preview.html # 为本地调试保留的内部浏览器预览容器
│ └── tampermonkey-worker-probe.* # 用于用户脚本/调试流程的探测页面
├── skills/
│ └── gemini-watermark-remover/ # 可分发的 agent skill 包
├── src/
│ ├── assets/ # 校准资产和回归样本
│ ├── cli/ # CLI 参数解析和文件工作流
│ ├── core/ # 水印数学、评分和还原
│ ├── page/ # Gemini 页面集成的页面端运行时
│ ├── sdk/ # 高级/内部 SDK 接口
│ ├── shared/ # 共享的 DOM、blob 和会话辅助函数
│ ├── userscript/ # 用户脚本入口点和浏览器钩子
│ ├── workers/ # Worker 运行时
│ ├── app.js # 内部单图预览容器的入口点
│ └── utils.js # 内部预览页面的共享浏览器辅助函数
├── tests/ # 单元、回归、打包和冒烟测试
├── scripts/ # 本地自动化和调试启动器
├── dist/ # 构建输出目录
├── build.js # 构建脚本
└── package.json
架构概述
src/core/包含水印检测、候选选择、恢复指标和反向 Alpha 去除流程。src/userscript/、src/page/和src/shared/实现了真实的 Gemini 页面集成,包括预览替换以及复制/下载拦截。src/cli/和bin/gwr.mjs提供了面向文件的本地自动化功能。skills/gemini-watermark-remover/提供了一个可分发的 Skill,它保持在 CLI 边界上,而不是直接导入仓库内部组件。src/sdk/仍可供高级/内部集成使用,但不再是主要的公共入口点。
限制
- 仅移除 Gemini 可见水印 (右下角的半透明标志)
- 支持图像和视频水印去除——视频处理可通过在线工具使用
- 不移除不可见/隐写水印。(了解更多关于 SynthID)
- 专为 Gemini 当前可见水印模式设计(已验证至 2026 年 4 月的仓库版本)
法律声明
本项目采用 MIT 许可证 发布。
根据您所在的司法管辖区以及图像的预期用途,去除水印可能产生法律影响。用户应全权负责确保其使用本工具的行为符合适用法律、服务条款和知识产权。
作者不纵容或鼓励将本工具用于侵犯版权、虚假陈述或任何其他非法目的。
本软件“按原样”提供,不附带任何明示或暗示的保证。在任何情况下,作者均不对因使用本软件而产生的任何索赔、损害或其他责任负责。
致谢
本项目是 Allen Kuo(@allenk)的 Gemini Watermark Tool 的 JavaScript 移植版本。
反向 Alpha 混合方法和校准后的水印掩模基于 © 2024 AllenK (Kwyshell) 的原始作品,以 MIT 许可证授权。

