个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证AI-powered watermark removal tool for images, PDFs, and PPTX files. Drop a file, get a clean version.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗
AI-powered watermark removal for images, PDFs, and PPTX files. Layered detection pipeline with neural inpainting — drop a file, get a clean version.
Unwatermark detects and removes baked-in watermarks from images, PDF documents, and PowerPoint presentations. It was built to solve a specific problem: tools like NotebookLM export slide decks where every slide is a single PNG with the watermark composited directly into the image — there's no layer to delete.
Rather than simple cloning or blurring, Unwatermark uses a layered AI detection pipeline paired with LaMa neural inpainting to reconstruct the area beneath the watermark while preserving surrounding content.
Live at unwatermark.cushlabs.ai
Image → EasyOCR (text watermarks — free, deterministic, local)
↓ found? → refine with SAM → inpaint
↓ nothing?
Florence-2 via Replicate (text + visual detection)
↓ found? → refine with SAM → inpaint
↓ nothing?
Grounded SAM (detection + pixel mask in one call)
↓ found? → inpaint
↓ nothing?
Claude Vision (legacy fallback for non-standard watermarks)
↓ found? → refine with SAM → inpaint
↓ nothing?
Heuristic fallback (position-based guess)
Each detection result is refined through SAM pixel-perfect masking to produce a binary mask (white = watermark, black = keep). This feeds directly into LaMa inpainting so only actual watermark pixels are removed — no collateral damage.
Images go through up to 3 detect-remove cycles to catch residual watermarks exposed after the first pass.
| Component | Technology |
|---|---|
| Language | Python 3.10+ |
| Text Detection | EasyOCR |
| Visual Detection | Florence-2, Grounded SAM (Replicate) |
| AI Fallback | Claude Vision (Anthropic SDK) |
| Inpainting | LaMa (Replicate) |
| Web Framework | FastAPI + Uvicorn |
| Image Processing | Pillow, NumPy |
| PDF Processing | PyMuPDF (fitz) |
| PPTX Processing | python-pptx |
| CLI | Click |
| Deployment | Docker, Caddy, Hetzner VPS |
ANTHROPIC_API_KEY (required), REPLICATE_API_TOKEN (required for production detection/inpainting)# Clone the repository
git clone https://github.com/RCushmaniii/cushlabs-ai-unwatermark.git
cd cushlabs-ai-unwatermark
# Create virtual environment
python -m venv .venv
.venv\Scripts\Activate.ps1
# Install with all extras
pip install -e ".[all]"
# Copy environment config
cp .env.example .env
# Edit .env with your API keys
uvicorn unwatermark.web:app --reload
Open http://localhost:8000 — drag and drop a file, get a clean version with real-time progress.
# Remove watermark from an image
unwatermark input.png
# Process a PPTX with annotation hint
unwatermark presentation.pptx --annotate "NotebookLM watermark bottom-right"
# Skip AI detection (OCR + heuristic only)
unwatermark document.pdf --no-ai
src/unwatermark/
├── cli.py # Click CLI entry point
├── web.py # FastAPI web UI (NDJSON streaming progress)
├── config.py # API keys, provider/backend selection
├── core/
│ ├── ocr_detector.py # EasyOCR-based detection (primary)
│ ├── detector.py # Layered routing: OCR → AI → heuristic
│ ├── analyzer.py # Claude Vision / GPT-4o integration
│ ├── multipass.py # Multi-pass detect-remove loop
│ ├── remover.py # Strategy router → technique dispatch
│ ├── strategies.py # Strategy selection (prefers LaMa)
│ └── techniques/
│ ├── lama_inpaint.py # LaMa neural inpainting
│ ├── clone_stamp.py # Clone-stamp fallback
│ └── solid_fill.py # Solid/gradient fill fallback
├── handlers/
│ ├── image.py # Standalone image processing
│ ├── pdf.py # PDF render → clean → reassemble
│ └── pptx.py # PPTX image blob replacement
├── models/
│ ├── analysis.py # WatermarkAnalysis, WatermarkRegion
│ └── annotation.py # UserAnnotation dataclass
└── pages/
└── app.py # Inline HTML/JS for the web UI
Optimized for corner watermarks — NotebookLM, copyright text, small logos. Works well for watermarks covering <25% of the image. Not designed for stock photo tiled patterns or large diagonal overlays across the full image.
Robert Cushman — CushLabs AI Services Guadalajara, Mexico
[email protected] | GitHub | LinkedIn | cushlabs.ai
© 2026 Robert Cushman. All rights reserved.