gemini_watermark_cleaner/README_zh.md

92 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

[English](README.md)
# Gemini & NotebookLM 无损去水印工具
基于浏览器的隐私优先去水印工具,专为处理 Gemini 和 NotebookLM 生成的内容(图片及 PDF而设计。项目采用原生 JavaScript 构建,结合了数学精确的无损还原算法与鲁棒的智能修补技术。
<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>
## ✨ 功能特性
- **多格式支持**:完美支持 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 Map48px/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)