JSPM

@vylio/gemini-veo-watermark-remover

0.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 14
  • Score
    100M100P100Q50570F
  • License MIT

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

Package Exports

  • @vylio/gemini-veo-watermark-remover
  • @vylio/gemini-veo-watermark-remover/browser
  • @vylio/gemini-veo-watermark-remover/gemini
  • @vylio/gemini-veo-watermark-remover/node

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

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

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

License

MIT