[English](README.md) # Gemini & NotebookLM 无损去水印工具 基于浏览器的隐私优先去水印工具,专为处理 Gemini 和 NotebookLM 生成的内容(图片及 PDF)而设计。项目采用原生 JavaScript 构建,结合了数学精确的无损还原算法与鲁棒的智能修补技术。

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