Doop
Doop: 오픈소스 멀티플레이어 디자인 캔버스 및 AI 에이전트용 MCP
AI로 이미지·PDF·프레젠테이션의 워터마크를 무료·신속·프라이버시 보장하게 제거
Remove watermarks from images, PDFs, and presentations with AI. Free, fast, and private — no signup required. Powered by LaMa neural inpainting.
디자인Python · ShellGitHub @RCushmaniii온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기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.