2025-12-19 09:10:36 +00:00
|
|
|
|
[English](README.md)
|
|
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
# Gemini & NotebookLM 无损去水印工具
|
2025-12-19 09:10:36 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
基于浏览器的隐私优先去水印工具,专为处理 Gemini 和 NotebookLM 生成的内容(图片及 PDF)而设计。项目采用原生 JavaScript 构建,结合了数学精确的无损还原算法与鲁棒的智能修补技术。
|
2025-12-19 09:10:36 +00:00
|
|
|
|
|
|
|
|
|
|
<p align="center">
|
|
|
|
|
|
<img src="https://count.getloli.com/@gemini-watermark-remover?name=gemini-watermark-remover&theme=minecraft&padding=7&offset=0&align=top&scale=1&pixelated=1&darkmode=auto" width="400">
|
|
|
|
|
|
</p>
|
|
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
## ✨ 功能特性
|
2025-12-19 09:10:36 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
- **多格式支持**:完美支持 Gemini 生成的标准图片 (`.jpg`, `.png`, `.webp`) 以及 NotebookLM 文档 (`.pdf`)。
|
|
|
|
|
|
- **无损还原**:针对 Gemini 标准图片,采用 **反向 Alpha 混合 (Reverse Alpha Blending)** 算法,像素级还原原图,拒绝模糊。
|
|
|
|
|
|
- **智能修补**:针对 NotebookLM 的条状水印或 PDF 幻灯片,采用 **智能克隆 (Simple Clone)** 技术,自动采样邻近像素进行修补融合。
|
|
|
|
|
|
- **隐私优先**:100% 纯浏览器本地处理,任何文件都不会上传至服务器。
|
|
|
|
|
|
- **批量处理**:支持多文件拖拽上传,处理完成后可打包为 ZIP 一键下载。
|
|
|
|
|
|
- **现代 UI**:支持深色/浅色模式切换,界面简洁响应快。
|
|
|
|
|
|
- **PDF 预览**:PDF 处理时实时显示页码进度,完成后可预览处理好的首页。
|
2025-12-19 09:10:36 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
## 🛠️ 技术栈
|
2025-12-19 09:10:36 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
- **核心逻辑**: Vanilla JavaScript (ES Modules)
|
|
|
|
|
|
- **PDF 处理**: `pdfjs-dist` (解析) & `jspdf` (生成)
|
|
|
|
|
|
- **UI 样式**: Tailwind CSS (CDN)
|
|
|
|
|
|
- **构建工具**: `esbuild`
|
2025-12-20 07:30:01 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
## 🧩 原理说明
|
2025-12-20 07:30:01 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
本工具根据文件类型自动选择两种不同的处理策略:
|
2025-12-19 09:10:36 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
### 1. 反向 Alpha 混合 (适用于 Gemini 图片)
|
|
|
|
|
|
Gemini 添加水印使用的是标准的 Alpha 合成公式:
|
|
|
|
|
|
$$Pixel_{watermarked} = \alpha \cdot Pixel_{logo} + (1 - \alpha) \cdot Pixel_{original}$$
|
2025-12-19 09:10:36 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
我们通过反向推导来恢复原始像素:
|
|
|
|
|
|
$$Pixel_{original} = \frac{Pixel_{watermarked} - \alpha \cdot Pixel_{logo}}{1 - \alpha}$$
|
2025-12-19 09:10:36 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
利用预先提取的 Alpha Map(48px/96px),我们可以精确计算出原始像素值,实现近乎零损失的还原。
|
2025-12-19 09:10:36 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
### 2. 智能克隆修补 (适用于 NotebookLM & PDF)
|
|
|
|
|
|
对于 NotebookLM 的条状水印或某些 PDF 页面,由于缺乏固定的 Alpha Map,工具采用 **Simple Clone** 技术。它自动定位水印区域,从紧邻水印上方或周围的区域“克隆”像素块覆盖水印,并对边缘进行羽化融合,从而达到视觉上的消除效果。
|
2025-12-19 09:10:36 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
## 🔗 致谢与参考
|
2025-12-26 10:14:05 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
本项目站在巨人的肩膀上,特别感谢开源社区的杰出贡献:
|
2025-12-19 09:10:36 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
- **原项目**: [gemini-watermark-remover](https://github.com/journey-ad/gemini-watermark-remover) by [journey-ad](https://github.com/journey-ad)。
|
|
|
|
|
|
- *提供了项目的基础架构、Alpha Map 核心逻辑及反向混合算法的初始实现。*
|
2025-12-20 06:11:23 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
- **算法起源**: [Gemini Watermark Tool](https://github.com/allenk/GeminiWatermarkTool) by [Allen Kuo](https://github.com/allenk)。
|
|
|
|
|
|
- *最早发现并公开了该数学原理及水印掩膜数据。*
|
2025-12-19 09:10:36 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
## 🚀 使用指南
|
2025-12-20 06:11:23 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
### 本地开发
|
|
|
|
|
|
1. 克隆代码仓库:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
git clone http://git.unissense.tech/mula/gemini_watermark_cleaner.git
|
|
|
|
|
|
```
|
|
|
|
|
|
2. 安装依赖:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
pnpm install
|
|
|
|
|
|
```
|
|
|
|
|
|
3. 启动开发模式(持续监听变化):
|
|
|
|
|
|
```bash
|
|
|
|
|
|
pnpm dev
|
|
|
|
|
|
```
|
|
|
|
|
|
4. 启动本地预览服务:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
pnpm serve
|
|
|
|
|
|
```
|
|
|
|
|
|
5. 构建生产版本:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
pnpm build
|
|
|
|
|
|
```
|
2025-12-20 06:11:23 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
### Docker 部署
|
|
|
|
|
|
1. 构建并启动容器:
|
|
|
|
|
|
```bash
|
|
|
|
|
|
docker-compose up -d --build
|
|
|
|
|
|
```
|
|
|
|
|
|
2. 访问 `http://localhost:3000`(或在 `.env` 中配置的端口)即可使用应用。
|
2025-12-20 06:11:23 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
### 浏览器使用
|
|
|
|
|
|
构建完成后打开 `dist/index.html`,或直接访问部署好的站点。将文件拖入上传区域即可:
|
|
|
|
|
|
- **图片**:即时预览去水印结果。
|
|
|
|
|
|
- **PDF**:显示处理进度(页码),完成后预览并支持下载。
|
2025-12-20 06:11:23 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
## 📄 许可证
|
2025-12-20 06:11:23 +00:00
|
|
|
|
|
2026-02-03 05:13:33 +00:00
|
|
|
|
[MIT License](./LICENSE)
|