Retour au classement

GargantuaX/gemini-watermark-remover

JavaScriptpilio.ai/gemini-watermark-remover

A high-performance, 100% client-side tool for removing Gemini AI image & video watermarks. Built with pure JavaScript using mathematically precise Reverse Alpha Blending. / 基于 JavaScript 的纯浏览器端 Gemini AI 图像和视频无损去水印工具,使用数学精确的反向 Alpha 混合算法

geminigemini-watermark-removerskillsuserscriptwatermark-removerchrome-extensiongemini-video-watermark-remover
Croissance des étoiles
Étoiles
5k
Forks
675
Croissance hebdomadaire
Issues
4
3k4k
déc. 25févr. 26mai 26juil. 26
Artefactsnpmnpm install gemini-watermark-remover
README

中文文档

🔥 Tired of Gemini watermarks? Try the more powerful GPT Image 2 at pilio.ai — free for a limited time.

Gemini Watermark Remover — Lossless Watermark Removal Tool

An open-source tool to remove Gemini watermarks from AI-generated images with high-fidelity, reproducible results on supported outputs. Built with pure JavaScript, the engine uses a mathematically exact Reverse Alpha Blending algorithm instead of unpredictable AI inpainting.

🚀 Looking for the Online Gemini Watermark Remover (Recommended)? Try geminiwatermarkremover.io — free, no install, works directly in your browser.

💡 Got watermarks that Gemini Watermark Remover can't handle? Try the general-purpose AI watermark remover: pilio.ai/image-watermark-remover

Online Tool  Video Watermark Remover  Chrome Extension  Userscript  General Watermark Remover

Features

  • 100% Local Processing - All image processing happens locally in your browser or on your machine. Nothing is uploaded.
  • Mathematical Precision - Based on the Reverse Alpha Blending formula, not "hallucinating" AI models.
  • Auto-Detection - Automatically identifies watermark size and position using Gemini's known output catalog and local anchor search.
  • Flexible Usage - Online tool for quick use, Chrome extension or userscript for seamless Gemini page integration, CLI and Skill for scripting and automation.
  • Video Support - Remove watermarks from Gemini-generated videos at geminiwatermarkremover.io/video.
  • Cross-Platform - Works in modern browsers (Chrome, Firefox, Safari, Edge) and Node.js environments.

Gemini Watermark Removal Examples

Click to Expand/Collapse Examples
Original Image Watermark Removed

⚠️ Disclaimer

[!WARNING] USE AT YOUR OWN RISK

This tool modifies image files. While it is designed to work reliably, unexpected results may occur due to:

  • Variations in Gemini's watermark implementation
  • Corrupted or unusual image formats
  • Edge cases not covered by testing

The author assumes no responsibility for any data loss, image corruption, or unintended modifications. By using this tool, you acknowledge that you understand these risks.

[!NOTE] Note: Disable any fingerprint defender extensions (e.g., Canvas Fingerprint Defender) to avoid processing errors. https://github.com/GargantuaX/gemini-watermark-remover/issues/3

How to Remove Gemini Watermarks

For all users — the fastest and easiest way to remove Gemini watermarks from images:

  1. Open geminiwatermarkremover.io.
  2. Drag and drop or click to select your Gemini-generated image.
  3. The engine will automatically process and remove the watermark.
  4. Download the cleaned image.

Online Video Watermark Remover (New!)

For Gemini-generated videos with visible watermarks:

  1. Open geminiwatermarkremover.io/video.
  2. Upload or drag-and-drop your Gemini-generated video.
  3. The tool will automatically detect and remove the watermark from the video.
  4. Download the cleaned video.

Note: Video watermark removal runs entirely in your browser — no files are uploaded to any server.

Chrome Extension

Use this if you do not want a userscript manager but still want automatic Gemini page integration for previews, copy, and download actions.

  1. Open Gemini Watermark Remover on the Chrome Web Store.
  2. Click Add to Chrome and confirm the install.
  3. Open Gemini. The extension will automatically process supported Gemini images.

The popup includes an "Enable on Gemini" toggle. If Gemini becomes slow, behaves unexpectedly, or you need to troubleshoot the page, turn the toggle off and refresh Gemini.

Chrome Web Store installs update automatically. If the Web Store is not reachable in your network, the matching verified zip (gemini-watermark-remover-extension-v*.zip) remains available from GitHub Releases and the official website download entry for manual unpacked installation.

Userscript

  1. Install a userscript manager (e.g., Tampermonkey or Greasemonkey).
  2. Open gemini-watermark-remover.user.js.
  3. The script will install automatically.
  4. Navigate to Gemini conversation pages.
  5. Eligible Gemini preview images on the page are replaced in place after processing.
  6. Gemini's native "Copy Image" and "Download Image" actions also return processed results.

Current userscript boundaries:

  • no injected per-image controls
  • no popup UI or bulk action surface
  • page previews and native copy/download flows are both processed when the source image is reachable
  • preview images keep the original visible while processing, with a subdued Processing... overlay
  • if preview processing fails, the original page image stays visible and usable

Skill

For workflows that involve AI coding agents:

  • skills/gemini-watermark-remover/ contains a packaged Skill that agents can discover and invoke.
  • Install it with skills.sh using:
pnpm dlx skills add GargantuaX/gemini-watermark-remover --skill gemini-watermark-remover
  • Add flags like --agent, --yes, or --copy only if your local setup needs them.
  • Usage:
node skills/gemini-watermark-remover/scripts/run.mjs remove <input> --output <file>
  • See SKILL.md for agent integration details.

CLI

For scripting, CI, and local batch workflows, use the direct CLI:

# repo-local
node bin/gwr.mjs remove <input> --output <file>

# installed globally
gwr remove <input> [--output <file> | --out-dir <dir>] [--overwrite] [--json]

If you do not have gwr installed globally, use:

pnpm dlx @pilio/gemini-watermark-remover remove <input> --output <file>

The default CLI file decoder/encoder uses sharp. SDK consumers that only use browser or ImageData APIs do not need it. If you use the CLI file path in your own project, install sharp alongside this package:

pnpm add sharp

Can't Remove Your Watermark?

This tool targets Gemini's visible watermark (the semi-transparent logo in the bottom-right corner). If your image watermark doesn't match a known Gemini format, or you need to remove other types of image watermarks, try the general-purpose AI watermark remover:

👉 pilio.ai/image-watermark-remover

Developer Preview

The repository still keeps a local internal preview harness at /dev-preview.html for single-image comparison, copy, and download verification.

  • This is a retained internal debugging surface, not the public product website.
  • The root path / now only redirects users toward the official website, the userscript artifact, and the internal preview page.
  • Public-facing usage should prefer the official website or the userscript instead of this local preview harness.

Development

# Install dependencies
pnpm install

# Development build
pnpm dev

# Production build
pnpm build

# Local static serving
pnpm serve

Notes:

  • The root path / is now a lightweight entry page that points to the official website, the userscript artifact, and the retained internal preview page.
  • The internal browser preview harness lives at /dev-preview.html, is now kept as a static Chinese-only single-image compare harness for local algorithm/UI debugging, and no longer maintains public-facing locale or theme-switching features.
  • pnpm dev / pnpm serve still host the userscript, probe pages, and these static assets.

Tampermonkey Debugging on macOS

For the repo's fixed-profile workflow on macOS:

# Build the latest userscript
pnpm build

# Start a local dist server if needed
pnpm dev

# Open the fixed Chrome profile with remote debugging enabled
./scripts/open-fixed-chrome-profile.sh --url https://gemini.google.com/app

Notes:

  • the fixed profile lives under .chrome-debug/tampermonkey-profile
  • default CDP port is 9226
  • default proxy is http://127.0.0.1:7890; disable it with --proxy off if not needed
  • reinstall the latest userscript from the active local pnpm dev server
  • pnpm dev starts probing from http://127.0.0.1:4173/ and auto-increments if that port is already occupied
  • if you are following a previously captured debugging session, its port may differ; trust the current pnpm dev output instead of hardcoding 4173

SDK Usage (Advanced / Internal)

The package root still exposes an SDK, but this path is intended for advanced or internal integration scenarios:

import {
  createWatermarkEngine,
  removeWatermarkFromImage,
  removeWatermarkFromImageData,
  removeWatermarkFromImageDataSync,
} from '@pilio/gemini-watermark-remover';

Use the pure-data API when you already have decoded ImageData:

const result = await removeWatermarkFromImageData(imageData, {
  adaptiveMode: 'auto',
});

console.log(result.meta.decisionTier);

Use the browser image API when you have an HTMLImageElement or HTMLCanvasElement:

const { canvas, meta } = await removeWatermarkFromImage(imageElement);
document.body.append(canvas);
console.log(meta.applied, meta.decisionTier);

If you need to process many images, reuse a single engine instance so alpha maps stay cached:

const engine = await createWatermarkEngine();
const first = await removeWatermarkFromImageData(imageDataA, { engine });
const second = await removeWatermarkFromImageData(imageDataB, { engine });

For Node.js integrations, use the dedicated subpath and inject your own decoder/encoder:

import { removeWatermarkFromBuffer } from '@pilio/gemini-watermark-remover/node';

const result = await removeWatermarkFromBuffer(inputBuffer, {
  mimeType: 'image/png',
  decodeImageData: yourDecodeFn,
  encodeImageData: yourEncodeFn,
});

Runtime Requirements

Web And Userscript

  • modern Chrome / Firefox / Safari / Edge class browser
  • ES modules
  • Canvas API
  • Async/Await
  • TypedArray (Float32Array, Uint8ClampedArray)
  • for the website copy button: navigator.clipboard.write(...) and ClipboardItem

CLI And Skill

  • a local Node.js runtime capable of running this package
  • sharp installed when using the default CLI file decoder/encoder
  • filesystem access for local input/output paths
  • for repo-local usage:
node bin/gwr.mjs remove <input> --output <file>
node skills/gemini-watermark-remover/scripts/run.mjs remove <input> --output <file>
  • for distributed Skill usage, the local environment must be able to execute the packaged gwr CLI boundary

Testing

# Run all tests
pnpm test

Regression tests include image fixtures from src/assets/samples/. Source samples stay in git. Naming and retention rules for those fixtures are documented in src/assets/samples/README.md. Complex preview/download validation notes are documented in docs/complex-figure-verification-checklist.md. Local files under src/assets/samples/fix/ are optional snapshot outputs for manual regression checks and are intentionally not tracked by git.

Release Notes

See CHANGELOG.md for release history and RELEASE.md for the local release checklist. The latest post-release closeout is documented in docs/release-1.0.29-post-release.md.

How Gemini Watermark Removal Works

The Gemini Watermarking Process

Gemini applies watermarks using standard alpha compositing:

$$watermarked = \alpha \cdot logo + (1 - \alpha) \cdot original$$

Where:

  • watermarked: The pixel value with the watermark.
  • α: The Alpha channel value (0.0 - 1.0).
  • logo: The watermark logo color value (White = 255).
  • original: The raw, original pixel value we want to recover.

The Reverse Solution

To remove the watermark, we solve for original:

$$original = \frac{watermarked - \alpha \cdot logo}{1 - \alpha}$$

By capturing the watermark on a known solid background, we reconstruct the exact Alpha map and apply the inverse formula to restore the original pixels with zero loss.

Detection Rules

The engine uses layered detection to locate and verify watermarks:

  1. Size catalog lookup — matches image dimensions against Gemini's known output sizes to predict watermark size and position.
  2. Local anchor search — refines the predicted position by scanning pixel data around the expected watermark region.
  3. Restoration validation — confirms the detected watermark is real before applying removal, avoiding false positives.

Default watermark configurations:

Condition Watermark Size Right Margin Bottom Margin
Larger Gemini outputs 96×96 64px 64px
Smaller Gemini outputs 48×48 32px 32px

Project Structure

gemini-watermark-remover/
├── bin/                   # Published CLI entrypoint (`gwr`)
├── public/
│   ├── index.html         # Entry page for official site / userscript / internal preview
│   ├── dev-preview.html   # Internal browser preview harness kept for local debugging
│   └── tampermonkey-worker-probe.*  # Probe pages for userscript/debug flows
├── skills/
│   └── gemini-watermark-remover/    # Distributable agent skill bundle
├── src/
│   ├── assets/            # Calibration assets and regression samples
│   ├── cli/               # CLI argument parsing and file workflows
│   ├── core/              # Watermark math, scoring, and restoration
│   ├── page/              # Page-side runtime for Gemini page integration
│   ├── sdk/               # Advanced/internal SDK surface
│   ├── shared/            # Shared DOM, blob, and session helpers
│   ├── userscript/        # Userscript entrypoints and browser hooks
│   ├── workers/           # Worker runtime
│   ├── app.js             # Internal single-image preview harness entry point
│   └── utils.js           # Shared browser helpers for the internal preview page
├── tests/                 # Unit, regression, packaging, and smoke tests
├── scripts/               # Local automation and debug launchers
├── dist/                  # Build output directory
├── build.js               # Build script
└── package.json

Architecture Overview

  • src/core/ contains watermark detection, candidate selection, restoration metrics, and the reverse-alpha removal pipeline.
  • src/userscript/, src/page/, and src/shared/ implement the real Gemini page integration, including preview replacement plus copy/download interception.
  • src/cli/ and bin/gwr.mjs expose file-oriented local automation.
  • skills/gemini-watermark-remover/ provides a distributable Skill that stays on the CLI boundary instead of importing repository internals directly.
  • src/sdk/ remains available for advanced/internal integrations, but it is no longer the primary public entrypoint.

Limitations

  • Only removes Gemini visible watermarks (the semi-transparent logo in bottom-right)
  • Supports both image and video watermark removal — video processing is available via the online tool
  • Does not remove invisible/steganographic watermarks. (Learn more about SynthID)
  • Designed for Gemini's current visible watermark pattern (validated against this repo through April 2026)

This project is released under the MIT License.

The removal of watermarks may have legal implications depending on your jurisdiction and the intended use of the images. Users are solely responsible for ensuring their use of this tool complies with applicable laws, terms of service, and intellectual property rights.

The author does not condone or encourage the misuse of this tool for copyright infringement, misrepresentation, or any other unlawful purposes.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY ARISING FROM THE USE OF THIS SOFTWARE.

Credits

This project is a JavaScript port of the Gemini Watermark Tool by Allen Kuo (@allenk).

The Reverse Alpha Blending method and calibrated watermark masks are based on the original work © 2024 AllenK (Kwyshell), licensed under MIT License.

License

MIT License

Dépôts similaires
f/prompts.chat

f.k.a. Awesome ChatGPT Prompts. Share, discover, and collect prompts from the community. Free and open source — self-host for your organization with complete privacy.

HTMLOtherchatgptai
prompts.chat
166.1k21.5k
langchain-ai/langchain

The agent engineering platform.

PythonPyPIMIT Licenseaianthropic
docs.langchain.com/langchain/
142.2k23.6k
google-gemini/gemini-cli

An open-source AI agent that brings the power of Gemini directly into your terminal.

TypeScriptnpmApache License 2.0geminigemini-api
geminicli.com
106.1k14.3k
Graphify-Labs/graphify

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local deterministic AST parsing, every edge explained, no vector store.

PythonPyPIMIT Licenseclaude-codegraphrag
graphify.com
92.4k9k
ChatGPTNextWeb/NextChat

✨ Light and Fast AI Assistant. Support: Web | iOS | MacOS | Android | Linux | Windows

TypeScriptnpmMIT Licensechatgptnextjs
nextchat.club
88.5k59.4k
lobehub/lobehub

🤯 LobeHub is your Chief Agent Operator, organizing your agents into 7×24 operations by hiring, scheduling, and reporting on your entire AI team.

TypeScriptnpmOtherchatgptopenai
lobehub.com
80.6k15.7k
ChatGPTNextWeb/ChatGPT-Next-Web

A cross-platform ChatGPT/Gemini UI (Web / PWA / Linux / Win / MacOS). 一键拥有你自己的跨平台 ChatGPT/Gemini/Claude LLM 应用。

TypeScriptnpmchatgptnextjs
nextchat.dev/chat
78.5k60k
code-yeongyu/oh-my-openagent

omo/lazycodex: The coding agent for tokenmaxxers;the one and only agent harness for complex codebases. For your Codex, for your OpenCode

TypeScriptnpmOtheropencodeai
omo.dev
66.3k5.4k
tw93/Pake

🤱🏻 Turn any webpage into a desktop app with one command.

Rustcrates.ioGNU General Public License v3.0rusttauri
60.1k12.2k
asgeirtj/system_prompts_leaks

Extracted system prompts from Anthropic - Claude Fable 5, Opus 4.8, Claude Code, Claude Design. OpenAI - ChatGPT GPT-5.6, Codex GPT-5.6, GPT-5.5. Google - Gemini 3.5 Flash, 3.1 Pro, Antigravity. xAI - Grok, Cursor, Copilot, VS Code, Perplexity, and more. Updated regularly.

JavaScriptnpmCreative Commons Zero v1.0 Universalaianthropic
59.3k9.7k
lobehub/lobe-chat

🤯 Lobe Chat - an open-source, modern-design AI chat framework. Supports Multi AI Providers( OpenAI / Claude 3 / Gemini / Ollama / DeepSeek / Qwen), Knowledge Base (file upload / knowledge management / RAG ), Multi-Modals (Plugins/Artifacts) and Thinking. One-click FREE deployment of your private ChatGPT/ Claude / DeepSeek application.

TypeScriptnpmOtherchatgptnextjs
chat-preview.lobehub.com
57.4k12.2k
Aider-AI/aider

aider is AI pair programming in your terminal

PythonPyPIApache License 2.0chatgptcli
aider.chat
47.6k4.7k