Automated summary
This skill removes visible Gemini AI watermarks from images by reversing the alpha blending used for the logo.
Strengths
- Automatically detects the watermark size from the image dimensions
- Supports both single-image and whole-directory batch processing
- Preserves the input format and can write to a separate output file
Limitations
- Removes only the visible Gemini watermark, not the invisible SynthID watermark
- The change may be subtle when the background is close to the watermark's white color
- Requires the local script and running it through uv
Use this skill when you need to clean up slides, diagrams, screenshots, or other Gemini-generated images that have the visible bottom-right watermark.
Do not use it for watermarks from other tools, opaque watermarks, or the invisible SynthID watermark.
Security analysis
CautionNo dangerous shell patterns (no curl|sh, rm -rf, base64 payloads, or secret exfiltration) appear in the instructions; it only invokes a local Python image-processing script. Risk is moderate because the actual script and mask assets are external/unreviewed and the default mode modifies images in place, so a user could lose originals. Additionally, the tool intentionally strips visible watermarks, which is an ethical/attribution concern rather than a runtime security one. Hence 'caution' rather than 'safe' or 'risky'.
- •Executes a bundled Python script via `uv run` that is not shown/auditable in SKILL.md, so its behavior cannot be verified from the listing
- •Default single-image mode overwrites the original file in place (backup is only advised, not enforced)
- •Requires external alpha-mask assets extracted from a third-party GitHub repo (extract_masks.py from GeminiWatermarkTool), introducing an unaudited external dependency
- •Tool's purpose is removing visible provenance watermarks from AI-generated images, which may raise attribution/ToS concerns even though it is not a code-execution risk
- •No network calls, secret access, obfuscation, or destructive commands present; SynthID limitation is honestly disclosed
Examples
I have a Gemini-generated image with a visible watermark. Please remove it and keep the original file intact.Remove the Gemini watermarks from all images in ./gemini_images/ and save the cleaned versions to ./cleaned_images/.The watermark size wasn't detected correctly on this image. Remove it using the large Gemini watermark setting.name: Watermark Remover description: Remove visible Gemini AI watermarks from images using reverse alpha blending. Use when user mentions "remove watermark", "Gemini watermark", "去水印", or wants to clean AI-generated images.
Watermark Remover
Instructions
This skill removes visible Gemini AI watermarks from images using mathematically accurate reverse alpha blending. It is based on GeminiWatermarkTool by Allen Kuo.
Important Notes
- This tool removes VISIBLE watermarks only (the semi-transparent logo in bottom-right corner)
- It does NOT remove SynthID invisible watermarks - those are embedded during image generation and cannot be separated from the image
- Best results on: slides, documents, UI screenshots, diagrams, logos, text-heavy images
- Always backup original images before processing
How It Works
Gemini adds watermarks using alpha blending:
watermarked = alpha × logo + (1 - alpha) × original
This tool reverses the equation:
original = (watermarked - alpha × logo) / (1 - alpha)
Watermark Size Detection
The tool automatically detects watermark size based on image dimensions:
| Image Size | Watermark | Position | |------------|-----------|----------| | W ≤ 1024 OR H ≤ 1024 | 48×48 | Bottom-right, 32px margin | | W > 1024 AND H > 1024 | 96×96 | Bottom-right, 64px margin |
Usage
Remove watermark from a single image (in-place):
uv run .claude/skills/watermark-remover/scripts/watermark_remover.py remove image.jpg
Remove watermark and save to new file:
uv run .claude/skills/watermark-remover/scripts/watermark_remover.py remove input.jpg output.jpg
Batch process a directory:
uv run .claude/skills/watermark-remover/scripts/watermark_remover.py remove ./input_folder/ ./output_folder/
Force specific watermark size:
# Force small (48x48) watermark
uv run .claude/skills/watermark-remover/scripts/watermark_remover.py remove image.jpg --force-small
# Force large (96x96) watermark
uv run .claude/skills/watermark-remover/scripts/watermark_remover.py remove image.jpg --force-large
Verbose output:
uv run .claude/skills/watermark-remover/scripts/watermark_remover.py remove image.jpg -v
Show tool information:
uv run .claude/skills/watermark-remover/scripts/watermark_remover.py info
Supported Formats
- Input:
.jpg,.jpeg,.png,.webp,.bmp - Output: Same as input format (preserves quality settings)
Examples
Example 1: Quick Watermark Removal
User request:
I have a Gemini-generated image with a watermark. Can you remove it?
You would:
- Ask for the image path
- Run the removal command:
uv run .claude/skills/watermark-remover/scripts/watermark_remover.py remove /path/to/image.jpg -v - Confirm the watermark was removed
Example 2: Batch Processing
User request:
I have a folder of AI-generated images that all have watermarks. Can you clean them?
You would:
- Process the entire directory:
uv run .claude/skills/watermark-remover/scripts/watermark_remover.py remove ./gemini_images/ ./cleaned_images/ -v - Report how many images were processed
Example 3: Preserve Original
User request:
Remove the watermark but keep my original file intact.
You would:
- Specify a different output path:
uv run .claude/skills/watermark-remover/scripts/watermark_remover.py remove original.png cleaned.png -v
Troubleshooting
"The image doesn't look different after processing"
The watermark is semi-transparent. If the original background was similar to the watermark color (white), the difference may be subtle. Try viewing at 100% zoom in the watermark area (bottom-right corner).
"Wrong watermark size detected"
Use --force-small or --force-large to manually specify the watermark size.
"Alpha map not found"
The skill requires alpha mask files in the assets/ directory. If missing, run:
python3 .claude/skills/watermark-remover/scripts/extract_masks.py /path/to/GeminiWatermarkTool/assets/embedded_assets.hpp
Credits
- Original algorithm and masks by Allen Kuo
- Based on GeminiWatermarkTool (MIT License)
- Technical write-up: Removing Gemini AI Watermarks: A Deep Dive into Reverse Alpha Blending
From the file to a first result
The download contains exactly the content displayed on this page. This copy may differ from the latest version in the source repository.
View the source and supporting filesThis download contains SKILL.md only. Any scripts, references, templates and dependencies are not included. Get the required files from the source, preserving their directory structure, before continuing.
1. Download the file
Download SKILL.mdFrom the root of a test project, save the file as .skill-downloads/watermark-remover-mryiqh7e/SKILL.md, or use the command below. This folder is for inspecting the skill before installation.
Command for macOS/Linux or WSL: requires a POSIX shell and curl. On Windows without WSL, use the download button and create the folder manually.
mkdir -p '.skill-downloads/watermark-remover-mryiqh7e' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/watermark-remover-mryiqh7e/download' --output '.skill-downloads/watermark-remover-mryiqh7e/SKILL.md.part' && mv '.skill-downloads/watermark-remover-mryiqh7e/SKILL.md.part' '.skill-downloads/watermark-remover-mryiqh7e/SKILL.md'2. Check prerequisites
Read SKILL.md before using it. If it references scripts or external services, inspect them and prepare the required access in your test environment.
No recognized prerequisites section in this file. This does not mean it is self-contained: libraries, tools and access requirements may be mentioned elsewhere in the content or source repository.
The platforms on this page are catalog indications. The paths below follow tool documentation; they do not prove this skill has been run in those tools. No minimum tool version is confirmed for this listing.
3. Load the skill
This file does not provide a usable name/description header for this native procedure. It remains available to download and inspect; use the manual method below.
Manual method or another tool: attach SKILL.md to a conversation, or open it in an agent that can read files. Include any required supporting resources. No universal folder is recognized by every tool.
4. Try a first task
Use a short, synthetic input: an API endpoint, a small document or an interface brief. In a new conversation, attach the file or give the agent its path, then adapt this request:
Read .skill-downloads/watermark-remover-mryiqh7e/SKILL.md and apply its instructions to this example: [describe a test input]. Identify any missing files, dependencies or access. Produce the result requested by the skill without inventing data or running unreviewed scripts.Expected result: output matching the skill instructions, or a precise list of missing prerequisites. A read confirmation alone does not validate a first use. If an external resource is unavailable, that path remains untested.
Writing Fragments
Content
Mine raw writing fragments through a relentless interview, without imposing structure. Capture ideas, quotes, and leading words for later use.
UI Copywriting & Auditing
Content
Write or audit user-facing UI copy including buttons, errors, empty states, and tooltips across the monorepo, following the design system source of truth.
Music MIDI Extraction
Content
Extracts the MIDI or score from an existing music production via the CogMusic MCP tool and confirms availability.