[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72667":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":16,"starSnapshotCount":16,"syncStatus":34,"lastSyncTime":35,"discoverSource":36},72667,"gemini-watermark-remover","GargantuaX\u002Fgemini-watermark-remover","GargantuaX","A high-performance, 100% client-side tool for removing Gemini AI watermarks. Built with pure JavaScript, it leverages a mathematically precise Reverse Alpha Blending algorithm rather than unpredictable AI inpainting.  \u002F 基于 Javascript 的纯浏览器端 Gemini AI 图像无损去水印工具，使用数学精确的反向 Alpha 混合算法","https:\u002F\u002Fpilio.io",null,"JavaScript",4385,516,9,4,0,42,107,358,126,30.14,"MIT License",false,"main",[26,27,5,28,29,30],"chrome-extension","gemini","skills","userscript","watermark-remover","2026-06-12 02:03:06","[中文文档](README_zh.md)\n\n> 🔥 Tired of Gemini watermarks? Try the more powerful **GPT Image 2** at [pilio.ai](https:\u002F\u002Fpilio.ai) — free for a limited time.\n\n# Gemini Watermark Remover — Lossless Watermark Removal Tool\n\nAn 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.\n\n> **🚀 Looking for the `Online Gemini Watermark Remover (Recommended)`? Try [geminiwatermarkremover.io](https:\u002F\u002Fgeminiwatermarkremover.io\u002F)** — free, no install, works directly in your browser.\n>\n> 💡 Got watermarks that Gemini Watermark Remover can't handle? Try the general-purpose AI watermark remover: [pilio.ai\u002Fimage-watermark-remover](https:\u002F\u002Fpilio.ai\u002Fimage-watermark-remover)\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgeminiwatermarkremover.io\u002F\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🛠️_Online_Tool-geminiwatermarkremover.io-blue?style=for-the-badge\" alt=\"Online Tool\">\u003C\u002Fa>&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Fgemini-watermark-remover\u002Fcjlmnfcfnofnglkphbcdclbpimdjkmdf\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🧩_Chrome_Extension-Install-blueviolet?style=for-the-badge\" alt=\"Chrome Extension\">\u003C\u002Fa>&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgeminiwatermarkremover.io\u002Fuserscript\u002Fgemini-watermark-remover.user.js\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🐒_Userscript-Install-green?style=for-the-badge\" alt=\"Userscript\">\u003C\u002Fa>&nbsp;\n  \u003Ca href=\"https:\u002F\u002Fpilio.ai\u002Fimage-watermark-remover\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F🧹_General_Remover-pilio.ai-gray?style=for-the-badge\" alt=\"General Watermark Remover\">\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fcount.getloli.com\u002F@gemini-watermark-remover?name=gemini-watermark-remover&theme=minecraft&padding=7&offset=0&align=top&scale=1&pixelated=1&darkmode=auto\" width=\"400\">\n\u003C\u002Fp>\n\n## Features\n\n- ✅ **100% Local Processing** - All image processing happens locally in your browser or on your machine. Nothing is uploaded.\n- ✅ **Mathematical Precision** - Based on the Reverse Alpha Blending formula, not \"hallucinating\" AI models.\n- ✅ **Auto-Detection** - Automatically identifies watermark size and position using Gemini's known output catalog and local anchor search.\n- ✅ **Flexible Usage** - Online tool for quick use, Chrome extension or userscript for seamless Gemini page integration, CLI and Skill for scripting and automation.\n- ✅ **Cross-Platform** - Works in modern browsers (Chrome, Firefox, Safari, Edge) and Node.js environments.\n\n## Gemini Watermark Removal Examples\n\n\u003Cdetails open>\n\u003Csummary>Click to Expand\u002FCollapse Examples\u003C\u002Fsummary>\n\n| Original Image | Watermark Removed |\n| :---: | :----: |\n| \u003Cimg src=\"docs\u002Fdemo-before.webp\" width=\"400\"> | \u003Cimg src=\"docs\u002Fdemo-after.webp\" width=\"400\"> |\n\n\u003C\u002Fdetails>\n\n## ⚠️ Disclaimer\n\n> [!WARNING]\n>  **USE AT YOUR OWN RISK**\n>\n> This tool modifies image files. While it is designed to work reliably, unexpected results may occur due to:\n> - Variations in Gemini's watermark implementation\n> - Corrupted or unusual image formats\n> - Edge cases not covered by testing\n>\n> 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.\n\n> [!NOTE]\n> **Note**: Disable any fingerprint defender extensions (e.g., Canvas Fingerprint Defender) to avoid processing errors. https:\u002F\u002Fgithub.com\u002FGargantuaX\u002Fgemini-watermark-remover\u002Fissues\u002F3\n\n## How to Remove Gemini Watermarks\n\n### Online Gemini Watermark Remover (Recommended)\n\nFor all users — the fastest and easiest way to remove Gemini watermarks from images:\n\n1. Open **[geminiwatermarkremover.io](https:\u002F\u002Fgeminiwatermarkremover.io\u002F)**.\n2. Drag and drop or click to select your Gemini-generated image.\n3. The engine will automatically process and remove the watermark.\n4. Download the cleaned image.\n\n### Chrome Extension\n\nUse this if you do not want a userscript manager but still want automatic Gemini page integration for previews, copy, and download actions.\n\n1. Open [Gemini Watermark Remover on the Chrome Web Store](https:\u002F\u002Fchromewebstore.google.com\u002Fdetail\u002Fgemini-watermark-remover\u002Fcjlmnfcfnofnglkphbcdclbpimdjkmdf).\n2. Click **Add to Chrome** and confirm the install.\n3. Open Gemini. The extension will automatically process supported Gemini images.\n\nThe 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.\n\nChrome 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](https:\u002F\u002Fgithub.com\u002FGargantuaX\u002Fgemini-watermark-remover\u002Freleases\u002Flatest) and the official website download entry for manual unpacked installation.\n\n### Userscript\n\n1. Install a userscript manager (e.g., Tampermonkey or Greasemonkey).\n2. Open [gemini-watermark-remover.user.js](https:\u002F\u002Fgeminiwatermarkremover.io\u002Fuserscript\u002Fgemini-watermark-remover.user.js).\n3. The script will install automatically.\n4. Navigate to Gemini conversation pages.\n5. Eligible Gemini preview images on the page are replaced in place after processing.\n6. Gemini's native \"Copy Image\" and \"Download Image\" actions also return processed results.\n\nCurrent userscript boundaries:\n\n- no injected per-image controls\n- no popup UI or bulk action surface\n- page previews and native copy\u002Fdownload flows are both processed when the source image is reachable\n- preview images keep the original visible while processing, with a subdued `Processing...` overlay\n- if preview processing fails, the original page image stays visible and usable\n\n### Skill\n\nFor workflows that involve AI coding agents:\n\n- `skills\u002Fgemini-watermark-remover\u002F` contains a packaged Skill that agents can discover and invoke.\n- Install it with `skills.sh` using:\n\n```bash\npnpm dlx skills add GargantuaX\u002Fgemini-watermark-remover --skill gemini-watermark-remover\n```\n\n- Add flags like `--agent`, `--yes`, or `--copy` only if your local setup needs them.\n- Usage:\n\n```bash\nnode skills\u002Fgemini-watermark-remover\u002Fscripts\u002Frun.mjs remove \u003Cinput> --output \u003Cfile>\n```\n\n- See [`SKILL.md`](skills\u002Fgemini-watermark-remover\u002FSKILL.md) for agent integration details.\n\n### CLI\n\nFor scripting, CI, and local batch workflows, use the direct CLI:\n\n```bash\n# repo-local\nnode bin\u002Fgwr.mjs remove \u003Cinput> --output \u003Cfile>\n\n# installed globally\ngwr remove \u003Cinput> [--output \u003Cfile> | --out-dir \u003Cdir>] [--overwrite] [--json]\n```\n\nIf you do not have `gwr` installed globally, use:\n\n```bash\npnpm dlx @pilio\u002Fgemini-watermark-remover remove \u003Cinput> --output \u003Cfile>\n```\n\n### Can't Remove Your Watermark?\n\nThis 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:\n\n👉 **[pilio.ai\u002Fimage-watermark-remover](https:\u002F\u002Fpilio.ai\u002Fimage-watermark-remover)**\n\n### Developer Preview\n\nThe repository still keeps a local internal preview harness at `\u002Fdev-preview.html` for single-image comparison, copy, and download verification.\n\n- This is a retained internal debugging surface, not the public product website.\n- The root path `\u002F` now only redirects users toward the official website, the userscript artifact, and the internal preview page.\n- Public-facing usage should prefer the official website or the userscript instead of this local preview harness.\n\n## Development\n\n```bash\n# Install dependencies\npnpm install\n\n# Development build\npnpm dev\n\n# Production build\npnpm build\n\n# Local static serving\npnpm serve\n```\n\nNotes:\n\n- The root path `\u002F` is now a lightweight entry page that points to the official website, the userscript artifact, and the retained internal preview page.\n- The internal browser preview harness lives at `\u002Fdev-preview.html`, is now kept as a static Chinese-only single-image compare harness for local algorithm\u002FUI debugging, and no longer maintains public-facing locale or theme-switching features.\n- `pnpm dev` \u002F `pnpm serve` still host the userscript, probe pages, and these static assets.\n\n### Tampermonkey Debugging on macOS\n\nFor the repo's fixed-profile workflow on macOS:\n\n```bash\n# Build the latest userscript\npnpm build\n\n# Start a local dist server if needed\npnpm dev\n\n# Open the fixed Chrome profile with remote debugging enabled\n.\u002Fscripts\u002Fopen-fixed-chrome-profile.sh --url https:\u002F\u002Fgemini.google.com\u002Fapp\n```\n\nNotes:\n\n- the fixed profile lives under `.chrome-debug\u002Ftampermonkey-profile`\n- default CDP port is `9226`\n- default proxy is `http:\u002F\u002F127.0.0.1:7890`; disable it with `--proxy off` if not needed\n- reinstall the latest userscript from the active local `pnpm dev` server\n- `pnpm dev` starts probing from `http:\u002F\u002F127.0.0.1:4173\u002F` and auto-increments if that port is already occupied\n- if you are following a previously captured debugging session, its port may differ; trust the current `pnpm dev` output instead of hardcoding `4173`\n\n## SDK Usage (Advanced \u002F Internal)\n\nThe package root still exposes an SDK, but this path is intended for advanced or internal integration scenarios:\n\n```javascript\nimport {\n  createWatermarkEngine,\n  removeWatermarkFromImage,\n  removeWatermarkFromImageData,\n  removeWatermarkFromImageDataSync,\n} from '@pilio\u002Fgemini-watermark-remover';\n```\n\nUse the pure-data API when you already have decoded `ImageData`:\n\n```javascript\nconst result = await removeWatermarkFromImageData(imageData, {\n  adaptiveMode: 'auto',\n  maxPasses: 4,\n});\n\nconsole.log(result.meta.decisionTier);\n```\n\nUse the browser image API when you have an `HTMLImageElement` or `HTMLCanvasElement`:\n\n```javascript\nconst { canvas, meta } = await removeWatermarkFromImage(imageElement);\ndocument.body.append(canvas);\nconsole.log(meta.applied, meta.decisionTier);\n```\n\nIf you need to process many images, reuse a single engine instance so alpha maps stay cached:\n\n```javascript\nconst engine = await createWatermarkEngine();\nconst first = await removeWatermarkFromImageData(imageDataA, { engine });\nconst second = await removeWatermarkFromImageData(imageDataB, { engine });\n```\n\nFor Node.js integrations, use the dedicated subpath and inject your own decoder\u002Fencoder:\n\n```javascript\nimport { removeWatermarkFromBuffer } from '@pilio\u002Fgemini-watermark-remover\u002Fnode';\n\nconst result = await removeWatermarkFromBuffer(inputBuffer, {\n  mimeType: 'image\u002Fpng',\n  decodeImageData: yourDecodeFn,\n  encodeImageData: yourEncodeFn,\n});\n```\n\n## Runtime Requirements\n\n### Web And Userscript\n\n- modern Chrome \u002F Firefox \u002F Safari \u002F Edge class browser\n- ES modules\n- Canvas API\n- Async\u002FAwait\n- TypedArray (`Float32Array`, `Uint8ClampedArray`)\n- for the website copy button: `navigator.clipboard.write(...)` and `ClipboardItem`\n\n### CLI And Skill\n\n- a local Node.js runtime capable of running this package and its dependencies\n- filesystem access for local input\u002Foutput paths\n- for repo-local usage:\n\n```bash\nnode bin\u002Fgwr.mjs remove \u003Cinput> --output \u003Cfile>\nnode skills\u002Fgemini-watermark-remover\u002Fscripts\u002Frun.mjs remove \u003Cinput> --output \u003Cfile>\n```\n\n- for distributed Skill usage, the local environment must be able to execute the packaged `gwr` CLI boundary\n\n## Testing\n\n```bash\n# Run all tests\npnpm test\n```\n\nRegression tests include image fixtures from `src\u002Fassets\u002Fsamples\u002F`.\nSource samples stay in git.\nNaming and retention rules for those fixtures are documented in `src\u002Fassets\u002Fsamples\u002FREADME.md`.\nComplex preview\u002Fdownload validation notes are documented in `docs\u002Fcomplex-figure-verification-checklist.md`.\nLocal files under `src\u002Fassets\u002Fsamples\u002Ffix\u002F` are optional snapshot outputs for manual regression checks and are intentionally not tracked by git.\n\n## Release Notes\n\nSee [CHANGELOG.md](CHANGELOG.md) for release history and [RELEASE.md](RELEASE.md) for the local release checklist.\n\n## How Gemini Watermark Removal Works\n\n### The Gemini Watermarking Process\n\nGemini applies watermarks using standard alpha compositing:\n\n$$watermarked = \\alpha \\cdot logo + (1 - \\alpha) \\cdot original$$\n\nWhere:\n- `watermarked`: The pixel value with the watermark.\n- `α`: The Alpha channel value (0.0 - 1.0).\n- `logo`: The watermark logo color value (White = 255).\n- `original`: The raw, original pixel value we want to recover.\n\n### The Reverse Solution\n\nTo remove the watermark, we solve for `original`:\n\n$$original = \\frac{watermarked - \\alpha \\cdot logo}{1 - \\alpha}$$\n\nBy 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.\n\n## Detection Rules\n\nThe engine uses layered detection to locate and verify watermarks:\n\n1. **Size catalog lookup** — matches image dimensions against Gemini's known output sizes to predict watermark size and position.\n2. **Local anchor search** — refines the predicted position by scanning pixel data around the expected watermark region.\n3. **Restoration validation** — confirms the detected watermark is real before applying removal, avoiding false positives.\n\nDefault watermark configurations:\n\n| Condition | Watermark Size | Right Margin | Bottom Margin |\n| :--- | :--- | :--- | :--- |\n| Larger Gemini outputs | 96×96 | 64px | 64px |\n| Smaller Gemini outputs | 48×48 | 32px | 32px |\n\n## Project Structure\n\n```text\ngemini-watermark-remover\u002F\n├── bin\u002F                   # Published CLI entrypoint (`gwr`)\n├── public\u002F\n│   ├── index.html         # Entry page for official site \u002F userscript \u002F internal preview\n│   ├── dev-preview.html   # Internal browser preview harness kept for local debugging\n│   └── tampermonkey-worker-probe.*  # Probe pages for userscript\u002Fdebug flows\n├── skills\u002F\n│   └── gemini-watermark-remover\u002F    # Distributable agent skill bundle\n├── src\u002F\n│   ├── assets\u002F            # Calibration assets and regression samples\n│   ├── cli\u002F               # CLI argument parsing and file workflows\n│   ├── core\u002F              # Watermark math, scoring, and restoration\n│   ├── page\u002F              # Page-side runtime for Gemini page integration\n│   ├── sdk\u002F               # Advanced\u002Finternal SDK surface\n│   ├── shared\u002F            # Shared DOM, blob, and session helpers\n│   ├── userscript\u002F        # Userscript entrypoints and browser hooks\n│   ├── workers\u002F           # Worker runtime\n│   ├── app.js             # Internal single-image preview harness entry point\n│   └── utils.js           # Shared browser helpers for the internal preview page\n├── tests\u002F                 # Unit, regression, packaging, and smoke tests\n├── scripts\u002F               # Local automation and debug launchers\n├── dist\u002F                  # Build output directory\n├── build.js               # Build script\n└── package.json\n```\n\n## Architecture Overview\n\n- `src\u002Fcore\u002F` contains watermark detection, candidate selection, restoration metrics, and the reverse-alpha removal pipeline.\n- `src\u002Fuserscript\u002F`, `src\u002Fpage\u002F`, and `src\u002Fshared\u002F` implement the real Gemini page integration, including preview replacement plus copy\u002Fdownload interception.\n- `src\u002Fcli\u002F` and `bin\u002Fgwr.mjs` expose file-oriented local automation.\n- `skills\u002Fgemini-watermark-remover\u002F` provides a distributable Skill that stays on the CLI boundary instead of importing repository internals directly.\n- `src\u002Fsdk\u002F` remains available for advanced\u002Finternal integrations, but it is no longer the primary public entrypoint.\n\n---\n\n## Limitations\n\n- Only removes **Gemini visible watermarks** \u003Csmall>(the semi-transparent logo in bottom-right)\u003C\u002Fsmall>\n- Does not remove invisible\u002Fsteganographic watermarks. \u003Csmall>[(Learn more about SynthID)](https:\u002F\u002Fsupport.google.com\u002Fgemini\u002Fanswer\u002F16722517)\u003C\u002Fsmall>\n- Designed for Gemini's current visible watermark pattern \u003Csmall>(validated against this repo through April 2026)\u003C\u002Fsmall>\n\n## Legal Disclaimer\n\nThis project is released under the **MIT License**.\n\nThe 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.\n\nThe author does not condone or encourage the misuse of this tool for copyright infringement, misrepresentation, or any other unlawful purposes.\n\n**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.**\n\n## Credits\n\nThis project is a JavaScript port of the [Gemini Watermark Tool](https:\u002F\u002Fgithub.com\u002Fallenk\u002FGeminiWatermarkTool) by Allen Kuo ([@allenk](https:\u002F\u002Fgithub.com\u002Fallenk)).\n\nThe Reverse Alpha Blending method and calibrated watermark masks are based on the original work © 2024 AllenK (Kwyshell), licensed under MIT License.\n\n## Related Links\n\n- [Gemini Watermark Tool](https:\u002F\u002Fgithub.com\u002Fallenk\u002FGeminiWatermarkTool)\n- [Removing Gemini AI Watermarks: A Deep Dive into Reverse Alpha Blending](https:\u002F\u002Fallenkuo.medium.com\u002Fremoving-gemini-ai-watermarks-a-deep-dive-into-reverse-alpha-blending-bbbd83af2a3f)\n\n## License\n\n[MIT License](.\u002FLICENSE)\n","Gemini Watermark Remover 是一个用于移除 Gemini AI 生成图像中的水印的高性能工具，完全在客户端运行。该工具基于纯 JavaScript 开发，采用数学精确的反向 Alpha 混合算法来确保无损去水印效果，避免了 AI 补全方法带来的不确定性。其核心功能包括100%本地处理、自动检测水印位置与大小以及支持多种使用方式如在线工具、Chrome 扩展和用户脚本等。适用于需要从 Gemini AI 输出中去除水印的各种场景，无论是快速在线处理还是集成到浏览器中进行无缝操作都非常方便。",2,"2026-06-11 03:43:04","high_star"]