Watermark Remover
/install snowsand-watermark-remover
Watermark Remover
Automatically detect and remove watermarks (especially MLS watermarks) from listing photos using Florence-2 for detection and IOPaint (LaMa) for inpainting.
Prerequisites
pip install iopaint transformers torch pillow
# Optional OCR fallback:
pip install paddleocr paddlepaddle
Models auto-download on first run (~560MB total): LaMa (~100MB) + Florence-2 (~460MB).
Quick Start
# Single image
python ~/.openclaw/workspace/skills/watermark-remover/scripts/remove_watermark.py \
--input photo.jpg --output photo_clean.jpg
# Batch directory
python ~/.openclaw/workspace/skills/watermark-remover/scripts/remove_watermark.py \
--input ./photos/ --output ./photos_clean/ --suffix _clean
Script: remove_watermark.py
--input— file or directory--output— file or directory (created if missing)--suffix— append to output filenames (e.g._clean)--model—lama(default),mat,migan, orldm--device—cpu,cuda, ormps(auto-detected)--confidence— detection threshold 0.0–1.0 (default: 0.5)--padding— mask expansion in pixels (default: 10)--dry-run— detect only, skip inpainting--preserve-exif— copy EXIF metadata (default: on)
Supported: .jpg, .jpeg, .png, .webp, .tiff
Pipeline
- Detect — Florence-2 object detection (or PaddleOCR fallback) finds watermark regions
- Mask — Generate binary mask with padding around detected boxes
- Inpaint — IOPaint LaMa fills masked region with contextually appropriate pixels
Model Selection
- LaMa (default) — Fast, excellent for small text watermarks. Handles ~90% of MLS watermarks.
- MAT — Same speed/quality, different artifacts. Try if LaMa isn't clean enough.
- MIGAN — Lightest (~30MB). For CPU-only or low-VRAM environments.
- LDM — Slow but highest quality. For complex textures (patterned carpet, wallpaper).
Start with lama. Switch to ldm only if LaMa leaves visible artifacts.
Troubleshooting
- Ghost text remains — increase
--paddingor tryldm - Blurry patch — switch to
ldmfor complex backgrounds - Watermark not detected — lower
--confidenceto 0.3 - OOM — use
--device cpuormiganmodel - Color mismatch — add
--match-histograms(IOPaint ≥1.5)
Notes
- Original images never modified in-place
- Fully deterministic (LaMa is non-stochastic)
- MLS watermarks (VMLS, CRMLS, etc.) are ideal LaMa use case: small, corner-positioned, semi-transparent text
See references/model-comparison.md for detailed model benchmarks.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install snowsand-watermark-remover - After installation, invoke the skill by name or use
/snowsand-watermark-remover - Provide required inputs per the skill's parameter spec and get structured output
What is Watermark Remover?
Remove watermarks from images using Florence-2 detection + IOPaint (LaMa) inpainting. Supports batch processing and manual/automatic modes. It is an AI Agent Skill for Claude Code / OpenClaw, with 45 downloads so far.
How do I install Watermark Remover?
Run "/install snowsand-watermark-remover" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Watermark Remover free?
Yes, Watermark Remover is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Watermark Remover support?
Watermark Remover is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Watermark Remover?
It is built and maintained by snowsand-enterprises (@snowsand-enterprises); the current version is v1.0.0.