Install
$ agentstack add skill-godot-fun-godot-framework-image-remove-watermark-gemini ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Image Remove Gemini Watermark
Remove the Gemini sparkle logo (bottom-right corner) with GeminiWatermarkTool — reverse alpha blending plus optional library cleanup (--denoise soft/ai/...) for residual sparkle edges on dark or textured backgrounds.
Scope: Gemini visible corner watermark only. Does not remove SynthID (invisible watermark), arbitrary logos, or non-Gemini marks.
Rules
When this skill applies, read and follow [skill-dependency-manager](../../rules/skill-dependency-manager.md) — run scripts as documented, install missing tools into .dependency/.
- Run
remove_watermark.pythrough.dependency/python/python.exe. The script calls the bundled GeminiWatermarkTool binary only. Never use hostpythonor tools outside.dependency/. - Do not customize removal. No custom alpha tuning — the wrapper handles paths/batch; pixel processing is delegated to GeminiWatermarkTool.
populated: falseis not a reason to skip. Install first, setpopulated: true, retry the same command.- Never overwrite sources. Output goes into a
no-watermark/subfolder beside each source image (same directory as the input file). - Never copy or move input images. Pass the user's actual file or directory path (absolute paths are fine).
- Never use Cursor attachment cache paths. Chat-attached images are copied to
.cursor/projects/.../assets/— that is not the user's source. Use the path the user provides (e.g.C:\Users\...\Downloads\foo.png) or ask if unclear.
Setup (first run)
From project root, download GeminiWatermarkTool v0.3.1 for your platform and extract to .dependency/gemini-watermark-tool/:
| Platform | Release asset | |----------|---------------| | Windows | GeminiWatermarkTool-Windows-x64.zip → GeminiWatermarkTool.exe | | Linux | GeminiWatermarkTool-Linux-x64.zip → GeminiWatermarkTool | | macOS | GeminiWatermarkTool-macOS-Universal.zip → GeminiWatermarkTool |
Register in .dependency/manifest.json:
"gemini-watermark": {
"populated": true,
"bin": ".dependency/gemini-watermark-tool/GeminiWatermarkTool.exe"
}
Use GeminiWatermarkTool (no .exe) on Unix. Dependencies: portable GeminiWatermarkTool binary only.
Quick Start
Default: create /no-watermark/ next to each input file (never overwrites sources):
# Single file — output beside the source
# C:\Users\...\Downloads\foo.png → C:\Users\...\Downloads\no-watermark\foo.png
.dependency/python/python.exe .cursor/skills/image-remove-watermark-gemini/scripts/remove_watermark.py C:\Users\...\Downloads\foo.png
# Project-relative path
.dependency/python/python.exe .cursor/skills/image-remove-watermark-gemini/scripts/remove_watermark.py image/title-screens/tank-battle-1.png
# → image/title-screens/no-watermark/tank-battle-1.png
# Directory batch (flat)
.dependency/python/python.exe .cursor/skills/image-remove-watermark-gemini/scripts/remove_watermark.py image/title-screens
# Recursive batch — each image gets its own sibling folder
.dependency/python/python.exe .cursor/skills/image-remove-watermark-gemini/scripts/remove_watermark.py image --recursive
Custom output folder name:
.dependency/python/python.exe .cursor/skills/image-remove-watermark-gemini/scripts/remove_watermark.py image/title-screens \
--output-subdir clean
Shared output directory:
.dependency/python/python.exe .cursor/skills/image-remove-watermark-gemini/scripts/remove_watermark.py image/title-screens \
--output-dir out
Detection
GeminiWatermarkTool uses three-stage NCC detection with confidence scoring:
- Spatial / gradient / variance — confidence threshold (default 25%)
- Profile selection — V2 (Gemini 3.5+) by default; automatic V1 legacy fallback
- Optional cleanup — gradient-masked inpaint or AI denoise on residual sparkle edges
| Profile | Small logo | Large logo | Notes | |---------|------------|------------|-------| | V2 (default) | 36×36 | 96×96 | Gemini 3.5+ shifted margins | | V1 (legacy) | 48×48 | 96×96 | Pre-Gemini 3.5 outputs |
High-resolution example: 2752×1536 → 96×96 at (2464, 1248), profile V2.
Options
| Option | Default | Notes | |--------|---------|-------| | Output folder | /no-watermark/ per image | Sibling folder beside each input file | | --output-subdir | no-watermark | Subfolder name beside each source file | | --output-dir | (none) | Shared output root under input path | | --denoise | soft | Cleanup: ai, ns, telea, soft, off | | --legacy | off | Pin V1 profile only (pre-Gemini 3.5) | | --no-legacy | off | Disable V2→V1 automatic fallback | | --json | off | Print structured metadata per image | | --pattern | *.png | Also matches .jpg, .jpeg, .webp, .bmp | | --recursive | off | Search subdirectories |
# Default: reverse alpha + soft inpaint cleanup (CPU, no GPU required)
.dependency/python/python.exe .cursor/skills/image-remove-watermark-gemini/scripts/remove_watermark.py image/foo.png
# GPU-accelerated AI denoise (FDnCNN; falls back to ns without Vulkan)
.dependency/python/python.exe .cursor/skills/image-remove-watermark-gemini/scripts/remove_watermark.py image/foo.png --denoise ai
# Reverse alpha only, no cleanup pass
.dependency/python/python.exe .cursor/skills/image-remove-watermark-gemini/scripts/remove_watermark.py image/foo.png --denoise off
# Verbose metadata
.dependency/python/python.exe .cursor/skills/image-remove-watermark-gemini/scripts/remove_watermark.py image/foo.png --json
Direct CLI equivalent (single file):
.dependency/gemini-watermark-tool/GeminiWatermarkTool.exe -i input.png -o output.png --denoise soft --no-banner
Agent workflow
- Confirm source — inputs should be Gemini-generated images with the sparkle logo.
- Use the user's real path — e.g.
C:\Users\...\Downloads\image.png. Do not use Cursor chat attachment paths under.cursor/projects/.../assets/. - Run on the user's path directly — do not copy images into
image/or other folders. - Inspect output — cleaned files appear in
/no-watermark/beside the originals. - Skipped images — GWT exit code 1 means no watermark detected; check
--jsonforapplied: false. - Revert — delete the output folder; sources are never modified.
Troubleshooting
| Issue | Fix | |-------|-----| | GeminiWatermarkTool not found | Download v0.3.1 release into .dependency/gemini-watermark-tool/ | | Watermark faint or halo | Try --denoise ai (GPU) or --denoise telea | | Dark patch in corner | Use default --denoise soft (already on); avoid --denoise off on dark backgrounds | | Legacy Gemini image skipped | Re-run with --legacy | | Watermark not removed | Image may not be a Gemini visible watermark |
Related
- Script: [scripts/removewatermark.py](scripts/removewatermark.py)
- Engine: allenk/GeminiWatermarkTool
- Algorithm write-up: Reverse Alpha Blending (Medium)
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: godot-fun
- Source: godot-fun/godot-framework
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.