
Gemini Watermark Remover
- 1.7k installs
- 928 repo stars
- Updated July 25, 2026
- rookie-ricardo/erduo-skills
gemini-watermark-remover is an agent skill for Remove the visible Gemini AI watermark from images using reverse alpha blending. Use when asked to strip Gemini watermarks, batch-process Gemini images, or build/modify a CL
About
Remove the visible Gemini AI watermark from images using reverse alpha blending Use when asked to strip Gemini watermarks batch-process Gemini images or build modify a CLI script that removes the bottom-right Gemini watermark without HTML or server-side components The gemini-watermark-remover skill documents workflows and patterns from the repository SKILL md name gemini-watermark-remover description Remove the visible Gemini AI watermark from images using reverse alpha blending Use when asked to strip Gemini watermarks batch-process Gemini images or build modify a CLI script that removes the bottom-right Gemini watermark without HTML or server-side components Gemini Watermark Remover Dependencies Python 3 9 Pillow install with pip install r requirements txt Quick start 1 Install dependencies in the scripts folder cd skills gemini-watermark-remover scripts pip install r requirements txt 2 Run the CLI python remove_watermark py input-image output-image CLI usage Parameters input-image path to the Gemini watermarked image output-image path for the cleaned image format inferred from extension Example python remove_watermark py in png out png What this skill provides scripts remove_wa.
- Gemini Watermark Remover
- Pillow (install with `pip install -r requirements.txt`)
- `cd skills/gemini-watermark-remover/scripts && pip install -r requirements.txt`
- `python remove_watermark.py <input-image> <output-image>`
- `input-image`: path to the Gemini watermarked image
Gemini Watermark Remover by the numbers
- 1,714 all-time installs (skills.sh)
- +3 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #289 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
- Security screen: LOW risk (skills.sh audit)
- Data as of Aug 5, 2026 (Skillselion catalog sync)
gemini-watermark-remover capabilities & compatibility
- Capabilities
- gemini watermark remover · pillow (install with `pip install r requirement · `cd skills/gemini watermark remover/scripts && p · `python remove_watermark.py <input image> <outpu · `input image`: path to the gemini watermarked im
- Use cases
- documentation
What gemini-watermark-remover says it does
--- name: gemini-watermark-remover description: Remove the visible Gemini AI watermark from images using reverse alpha blending.
Use when asked to strip Gemini watermarks, batch-process Gemini images, or build/modify a CLI script that removes the bottom-right Gemini watermark without HTML or server-side components.
- `assets/bg_48.png`, `assets/bg_96.png`: Pre-captured watermark alpha maps.
- `references/algorithm.md`: Math, detection rules, and limits.
npx skills add https://github.com/rookie-ricardo/erduo-skills --skill gemini-watermark-removerAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 1.7k |
|---|---|
| repo stars | ★ 928 |
| Security audit | 3 / 3 scanners passed |
| Last updated | July 25, 2026 |
| Repository | rookie-ricardo/erduo-skills ↗ |
What problem does gemini-watermark-remover solve for developers using the documented workflows?
Remove the visible Gemini AI watermark from images using reverse alpha blending. Use when asked to strip Gemini watermarks, batch-process Gemini images, or build/modify a CLI script that removes the b
Who is it for?
Developers working with gemini-watermark-remover patterns described in the skill documentation.
Skip if: Skip when docs are empty or the task is outside the skill documented scope.
When should I use this skill?
Remove the visible Gemini AI watermark from images using reverse alpha blending. Use when asked to strip Gemini watermarks, batch-process Gemini images, or build/modify a CLI script that removes the b
What you get
Grounded guidance and workflows from SKILL.md for gemini-watermark-remover.
- watermark-free image files
By the numbers
- Detects 96×96 logos on images larger than 1024×1024 with 64px margins
- Detects 48×48 logos on smaller images with 32px margins
Files
Gemini Watermark Remover
Dependencies
- Python 3.9+
- Pillow (install with
pip install -r requirements.txt)
Quick start
1) Install dependencies in the scripts folder:
cd skills/gemini-watermark-remover/scripts && pip install -r requirements.txt
2) Run the CLI:
python remove_watermark.py <input-image> <output-image>
CLI usage
- Parameters:
input-image: path to the Gemini watermarked imageoutput-image: path for the cleaned image (format inferred from extension)
Example:
python remove_watermark.py ./in.png ./out.pngWhat this skill provides
scripts/remove_watermark.py: CLI entry point and core algorithm.assets/bg_48.png,assets/bg_96.png: Pre-captured watermark alpha maps.references/algorithm.md: Math, detection rules, and limits.
Workflow
1) Use remove_watermark.py for one-off processing. 2) If you need to adjust detection rules or alpha logic, read references/algorithm.md.
Notes
- The script uses Pillow for image IO and per-pixel edits.
- Output format is inferred from the output file extension by Pillow.
Gemini watermark removal algorithm
Reverse alpha blending
Gemini visible watermark uses alpha compositing:
watermarked = α logo + (1 - α) original
Solve for original:
original = (watermarked - α * logo) / (1 - α)
Logo value is white (255). Alpha values come from pre-captured watermark maps.
Alpha map construction
Compute alpha per pixel by taking the max RGB channel of the captured watermark image and normalizing to [0, 1].
Detection rules
If image width > 1024 AND height > 1024:
- logo size: 96x96
- margin right: 64px
- margin bottom: 64px
Otherwise:
- logo size: 48x48
- margin right: 32px
- margin bottom: 32px
Limits
- Only removes the visible Gemini watermark in the bottom-right corner.
- Does not remove invisible/steganographic watermarks.
- Works on images that match the current watermark pattern.
#!/usr/bin/env python3
import os
import sys
from typing import List, Tuple
from PIL import Image
ALPHA_THRESHOLD = 0.002
MAX_ALPHA = 0.99
LOGO_VALUE = 255
def detect_watermark_config(width: int, height: int) -> Tuple[int, int, int]:
if width > 1024 and height > 1024:
return 96, 64, 64
return 48, 32, 32
def calculate_position(width: int, height: int, logo_size: int, margin_right: int, margin_bottom: int) -> Tuple[int, int]:
return width - margin_right - logo_size, height - margin_bottom - logo_size
def load_alpha_map(logo_size: int) -> List[float]:
script_dir = os.path.dirname(os.path.abspath(__file__))
asset_name = "bg_48.png" if logo_size == 48 else "bg_96.png"
asset_path = os.path.abspath(os.path.join(script_dir, "..", "assets", asset_name))
with Image.open(asset_path) as img:
img = img.convert("RGB")
if img.width != logo_size or img.height != logo_size:
raise ValueError(f"Unexpected asset size for {asset_name}: {img.width}x{img.height}")
pixels = list(img.getdata())
alpha_map: List[float] = [0.0] * (logo_size * logo_size)
for i, (r, g, b) in enumerate(pixels):
max_channel = r if r >= g and r >= b else (g if g >= b else b)
alpha_map[i] = max_channel / 255.0
return alpha_map
def remove_watermark(input_path: str, output_path: str) -> None:
with Image.open(input_path) as img:
img = img.convert("RGBA")
width, height = img.size
logo_size, margin_right, margin_bottom = detect_watermark_config(width, height)
start_x, start_y = calculate_position(width, height, logo_size, margin_right, margin_bottom)
alpha_map = load_alpha_map(logo_size)
pixels = img.load()
for row in range(logo_size):
y = start_y + row
if y < 0 or y >= height:
continue
alpha_row_offset = row * logo_size
for col in range(logo_size):
x = start_x + col
if x < 0 or x >= width:
continue
alpha = alpha_map[alpha_row_offset + col]
if alpha < ALPHA_THRESHOLD:
continue
if alpha > MAX_ALPHA:
alpha = MAX_ALPHA
one_minus_alpha = 1.0 - alpha
r, g, b, a = pixels[x, y]
r_out = int(round((r - alpha * LOGO_VALUE) / one_minus_alpha))
g_out = int(round((g - alpha * LOGO_VALUE) / one_minus_alpha))
b_out = int(round((b - alpha * LOGO_VALUE) / one_minus_alpha))
r_out = 0 if r_out < 0 else (255 if r_out > 255 else r_out)
g_out = 0 if g_out < 0 else (255 if g_out > 255 else g_out)
b_out = 0 if b_out < 0 else (255 if b_out > 255 else b_out)
pixels[x, y] = (r_out, g_out, b_out, a)
output_ext = os.path.splitext(output_path)[1].lower()
if output_ext in {".jpg", ".jpeg"}:
img = img.convert("RGB")
img.save(output_path)
def usage() -> str:
script_name = os.path.basename(sys.argv[0])
return f"Usage: python {script_name} <input-image> <output-image>"
def main() -> int:
if len(sys.argv) != 3:
print(usage(), file=sys.stderr)
return 1
input_path, output_path = sys.argv[1], sys.argv[2]
try:
remove_watermark(input_path, output_path)
except Exception as exc:
print(f"Failed: {exc}", file=sys.stderr)
return 1
print(f"Removed watermark -> {output_path}")
return 0
if __name__ == "__main__":
raise SystemExit(main())
Pillow>=10.4.0
Related skills
FAQ
Who is Gemini Watermark Remover for?
Developers and software engineers working with gemini-watermark-remover patterns from the skill documentation.
When should I use Gemini Watermark Remover?
Remove the visible Gemini AI watermark from images using reverse alpha blending. Use when asked to strip Gemini watermarks, batch-process Gemini images, or build/modify a CLI script that removes the bottom-right Gemini w
Is Gemini Watermark Remover safe to install?
Review the Security Audits panel on this page before installing in production.