skills/gemini-watermark/SKILL.md
Remove visible Gemini AI watermarks from images via reverse alpha blending. Use for cleaning Gemini-generated images, removing the star/sparkle logo watermark, batch watermark removal.
npx skillsauth add agiseek/agent-skills gemini-watermarkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Remove the visible Gemini AI watermark (star/sparkle logo) from generated images using mathematically accurate reverse alpha blending.
Fully offline — pure Python, no external binary downloads, no network access.
pip install Pillow numpy
# Recommended: use uv for faster, isolated installs
uv pip install Pillow numpy
Requires: Python ≥ 3.9. No Rust toolchain, no compiled binaries, no downloads.
# Single image (auto-detect watermark, save as photo_cleaned.jpg)
python3 scripts/remove_watermark.py photo.jpg
# Specify output path
python3 scripts/remove_watermark.py photo.jpg -o clean_photo.jpg
# Batch process directory
python3 scripts/remove_watermark.py ./input_dir -o ./output_dir
# Force removal without detection
python3 scripts/remove_watermark.py photo.jpg -o clean.jpg --force
Gemini adds a semi-transparent white star/sparkle logo to generated images using alpha blending:
watermarked = alpha * 255 + (1 - alpha) * original
This tool reverses the equation to recover the original pixels:
original = (watermarked - alpha * 255) / (1 - alpha)
The alpha map (watermark transparency pattern) is generated mathematically as a 4-pointed star (central Gaussian core + 4 elongated cardinal rays) at two sizes:
For improved accuracy you can supply your own alpha map derived from a background
capture of the Gemini watermark on a white background (--alpha-map).
Before removal, a three-stage algorithm checks whether a watermark is present:
Images without detected watermarks are automatically skipped.
| Parameter | Short | Default | Description |
|-----------|-------|---------|-------------|
| input | | (required) | Input image file or directory |
| --output | -o | {name}_cleaned.{ext} | Output file or directory |
| --force | -f | false | Skip detection, process unconditionally |
| --threshold | -t | 0.35 | Detection confidence threshold (0.0–1.0) |
| --force-small | | false | Force 48×48 watermark size |
| --force-large | | false | Force 96×96 watermark size |
| --alpha-map | | (built-in) | Custom grayscale alpha map image |
| --verbose | -v | false | Enable detailed output |
| --quiet | -q | false | Suppress all non-error output |
| Format | Read | Write | |--------|------|-------| | JPEG (.jpg, .jpeg) | Yes | Yes (quality 100) | | PNG (.png) | Yes | Yes | | WebP (.webp) | Yes | Yes | | BMP (.bmp) | Yes | Yes |
# Verbose output (shows detection confidence, watermark coordinates)
python3 scripts/remove_watermark.py photo.png -o clean.png -v
# Lower detection threshold (more sensitive)
python3 scripts/remove_watermark.py photo.jpg -t 0.15
# Force large watermark size regardless of image dimensions
python3 scripts/remove_watermark.py photo.jpg --force-large -o clean.jpg
# Batch process, quiet mode
python3 scripts/remove_watermark.py ./gemini_images/ -o ./cleaned/ -q
# Supply a custom alpha map for higher accuracy
python3 scripts/remove_watermark.py photo.jpg --alpha-map my_alpha.png
For pixel-perfect removal, capture the Gemini watermark on a pure white background and compute:
alpha(x, y) = max(R, G, B) / 255
Save the result as a grayscale PNG and pass it via --alpha-map.
-o path, or {name}_cleaned.{ext} by default--force)-t 0.1--force--force)--force-small or --force-large to match the correct sizeThe image dimensions are smaller than the watermark region. This typically means the image does not have a Gemini watermark.
pip install Pillow numpy
# or
uv pip install Pillow numpy
--alpha-map with a captured reference for exact resultsdata-ai
Local Qwen3-TTS speech synthesis on Apple Silicon via MLX. Use for offline narration, audiobooks, video voiceovers, and multilingual TTS.
data-ai
High-performance image processing with libvips. Use for resizing, converting, watermarking, thumbnails, and batch image operations with low memory usage.
development
Maintainer-only workflow for handling GitHub Secret Scanning alerts on OpenClaw. Use when Codex needs to triage, redact, clean up, and resolve secret leakage found in issue comments, issue bodies, PR comments, or other GitHub content.
development
Maintainer workflow for OpenClaw releases, prereleases, changelog release notes, and publish validation. Use when Codex needs to prepare or verify stable or beta release steps, align version naming, assemble release notes, check release auth requirements, or validate publish-time commands and artifacts.