個人 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.