npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@vylio/gemini-veo-watermark-remover

v0.1.0

Published

Remove Gemini 3.5+/legacy image watermarks and Veo video watermarks locally with reverse alpha blending. Browser, CLI, SDK, extension, userscript.

Readme

Gemini & Veo Watermark Remover — Lossless Watermark Removal Tool

An open-source tool to remove Gemini 3.5+/legacy image watermarks and Veo video watermarks from AI-generated content with pixel-perfect, reproducible results. Built with pure JavaScript, the engine uses a mathematically exact Reverse Alpha Blending algorithm instead of unpredictable AI inpainting.

🆕 Gemini 3.5+ support — the image engine targets the current Gemini profile by default and automatically falls back to the legacy pre-3.5 profile when no watermark is detected.

🚀 Looking for the Online Watermark Remover? Try removegeminiwatermark.io — free, no install, works directly in your browser.

💡 Need to remove other AI watermarks? Try our general-purpose AI watermark remover (coming soon).

Features

  • Gemini + Veo — First tool to handle both Gemini image and Veo video watermarks
  • Gemini 3.5+ + Legacy — Current 36×36/96×96 Gemini profile with automatic legacy fallback.
  • 100% Local Processing — All processing happens locally. Nothing is uploaded.
  • Mathematical Precision — Reverse Alpha Blending formula, not AI hallucination.
  • Auto-Detection — NCC template matching identifies watermark size and position.
  • Flexible Usage — Online tool, Chrome extension, userscript, CLI, SDK, and AI Agent Skill.
  • Cross-Platform — Works in modern browsers and Node.js environments.

Watermark Removal Examples

| Original Image | Watermark Removed | | --- | --- | | Before | After |

How to Remove Watermarks

Online Watermark Remover (Recommended)

The fastest and easiest way — works for both Gemini images and Veo videos:

  1. Open removegeminiwatermark.io.
  2. Drag and drop your Gemini image or Veo video.
  3. The engine will automatically process and remove the watermark.
  4. Download the cleaned file.

Chrome Extension

Automatically removes watermarks from Gemini-generated images on Gemini pages:

  1. Install from the Chrome Web Store (coming soon) or load unpacked from src/extension/.
  2. Open Gemini. The extension automatically processes supported images.
  3. Preview, copy, and download actions all return cleaned images.

Userscript (Tampermonkey / Violentmonkey)

  1. Install a userscript manager (e.g., Tampermonkey).
  2. Install gemini-veo-watermark-remover.user.js from src/userscript/.
  3. Navigate to Gemini conversation pages.
  4. Images are automatically cleaned in-place.

CLI

For scripting, CI, and local batch workflows:

# Using npx (zero install)
npx gemini-veo-watermark-remover remove image.png
npx gemini-veo-watermark-remover remove video.mp4

# Or install globally
npm i -g gemini-veo-watermark-remover
vwr remove image.png -o clean.png
vwr remove video.mp4 --verbose
vwr remove image.jpg --json  # machine-readable output
vwr remove old-gemini.png --legacy
vwr remove image.jpg --no-legacy

Supported formats:

  • Images: PNG, JPEG, WebP, BMP, TIFF (Gemini watermark)
  • Videos: MP4, WebM, MOV, AVI, MKV (Veo watermark)

SDK Usage

// Browser — remove Gemini watermark from image
import { removeGeminiWatermark } from 'gemini-veo-watermark-remover/browser';

const { blob, detected, confidence } = await removeGeminiWatermark(file);
if (detected) {
  const url = URL.createObjectURL(blob);
  // Use cleaned image...
}

// Browser — process Veo video
import { processVideoFile } from 'gemini-veo-watermark-remover/browser';

const cleanBlob = await processVideoFile(videoFile, {
  onProgress: (current, total) => console.log(`${current}/${total} frames`),
});

// Node.js — file-based API
import { processVideoFile } from 'gemini-veo-watermark-remover/node';
await processVideoFile('input.mp4', 'output.mp4');

// Gemini-only lightweight import (no video deps)
import { processImage, createImageProcessor } from 'gemini-veo-watermark-remover/gemini';

Can't Remove Your Watermark?

This tool targets Gemini's visible watermark (logo/star overlay) and Veo's visible text watermark. For other types of watermarks, try our general-purpose AI watermark remover (coming soon).

How It Works

The Watermarking Process

Both Gemini and Veo apply watermarks using standard alpha compositing:

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

The Reverse Solution

We solve for the original pixel value:

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

By calibrating the exact Alpha map from known outputs, we reconstruct the original pixels with zero loss.

Detection

  1. Profile catalog lookup — matches image dimensions to predict the current Gemini 3.5+ watermark profile first, then legacy when needed.
  2. NCC template matching — Normalized Cross-Correlation search in the bottom-right region.
  3. Confidence threshold — only applies removal when detection confidence ≥ 50%.

Gemini 3.5+ Profile Support

Starting with Gemini 3.5, Google shifted the visible image watermark position and changed the small alpha map. The default image pipeline now tries the current profile first; if detection skips, it retries the legacy profile before reporting that no watermark was found.

| CLI usage | First attempt | Fallback | Use case | | --- | --- | --- | --- | | vwr remove image.png | Current / V2 | Legacy / V1 | Default for mixed folders | | vwr remove image.png --legacy | Legacy / V1 | — | Pre-Gemini 3.5 outputs | | vwr remove image.png --no-legacy | Current / V2 | — | Strict Gemini 3.5+ only | | vwr remove image.png --legacy --no-legacy | — | — | Conflict, exits 2 |

Exit codes:

| Code | Meaning | | --- | --- | | 0 | Processed successfully, or a video/batch run completed without real errors | | 1 | Single image skipped because no watermark was detected on any tried profile | | 2 | Real failure, such as bad args, conflicting flags, IO, decode, or encode error |

Supported Formats

Gemini Image Watermarks

| Condition | Watermark Size | Right Margin | Bottom Margin | | --- | --- | --- | --- | | Current / V2 large (>1024px on both axes) | 96×96 | 192px | 192px | | Current / V2 small | 36×36 | Aspect-aware | Aspect-aware | | Legacy / V1 large (>1024px on both axes) | 96×96 | 64px | 64px | | Legacy / V1 small | 48×48 | 32px | 32px |

Veo Video Watermarks

| Resolution | Orientation | Watermark Size | Status | | --- | --- | --- | --- | | 1280×720 | Landscape | 80×28 px | ✅ | | 720×1280 | Portrait | 80×28 px | ✅ | | 1920×1080 | Landscape | 120×42 px | ✅ | | 1080×1920 | Portrait | 120×42 px | ✅ |

Project Structure

gemini-veo-watermark-remover/
├── bin/                     # CLI entrypoint (vwr)
├── src/
│   ├── core/
│   │   ├── blendModes.js        # Shared reverse alpha blending algorithm
│   │   ├── veoConfig.js         # Veo watermark position catalog
│   │   ├── embeddedAlphaMaps.js # Veo alpha map registry
│   │   ├── frameProcessor.js    # Per-frame video processing
│   │   └── gemini/              # Gemini image watermark module
│   │       ├── geminiConfig.js      # Size/position detection
│   │       ├── geminiAlphaMaps.js   # Alpha map management
│   │       ├── imageProcessor.js    # Image processing pipeline
│   │       └── index.js            # Re-exports
│   ├── video/
│   │   ├── videoDecoder.js      # WebCodecs + ffmpeg.wasm decoder
│   │   ├── videoEncoder.js      # mp4-muxer + ffmpeg.wasm encoder
│   │   └── pipeline.js          # Full video pipeline
│   ├── sdk/
│   │   ├── index.js             # Universal entry point
│   │   ├── browser.js           # Browser API
│   │   └── node.js              # Node.js file-system API
│   ├── cli/
│   │   └── vwrCli.js            # CLI implementation
│   ├── extension/               # Chrome Extension (Manifest V3)
│   └── userscript/              # Tampermonkey userscript
├── dist/                        # Build output
├── build.js                     # esbuild build script
└── package.json

Development

# Install dependencies
npm install

# Build all bundles
node build.js

# Watch mode
node build.js --watch

Limitations

  • Only removes visible Gemini/Veo watermarks (logo overlay, text watermark)
  • Does not remove invisible SynthID or steganographic watermarks
  • Veo alpha maps are placeholder — contribute calibrated maps

Legal Disclaimer

This project is released under the MIT License. The removal of watermarks may have legal implications depending on your jurisdiction. Users are responsible for ensuring compliance with applicable laws.

Credits

Related Links

License

MIT