A local, privacy-first tool to remove Gemini AI and Nano Banana watermarks from images. All processing happens in your browser - your images never leave your device.
- 🔒 100% Local Processing - Images are processed entirely in your browser
- ⚡ Instant Results - No upload delays, immediate watermark removal
- 🎯 Mathematical Precision - Uses reverse alpha blending, not AI guessing
- 🌍 Multi-language Support - English, 中文, 日本語, 한국어
- 📱 Responsive Design - Works on desktop and mobile
This tool uses Reverse Alpha Blending to mathematically recover the original pixels from watermarked images.
The formula used:
Original = (Watermarked - α × Logo) / (1 - α)
Where:
Watermarkedis the pixel value in the watermarked imageα(alpha) is the transparency value from the watermarkLogois the watermark color (white, 255)
- Vue 3 - Composition API with
<script setup> - Vite - Fast development and build
- vue-i18n - Internationalization
- Lucide Vue - Beautiful icons
- Node.js 18+
- pnpm (recommended) or npm
# Install dependencies
pnpm install
# Start development server
pnpm devpnpm buildThe built files will be in the dist directory.
| Command | Description |
|---|---|
pnpm dev |
Start development server |
pnpm build |
Build for production |
pnpm preview |
Preview production build |
pnpm format |
Format code with Prettier |
pnpm format:check |
Check code formatting |
src/
├── components/
│ ├── Header.vue # Navigation with language switcher
│ ├── Main.vue # Image upload and processing
│ ├── Guide.vue # How it works section
│ ├── Footer.vue # Copyright footer
│ └── Toast.vue # Notification component
├── composables/
│ └── useToast.js # Toast state management
├── i18n/
│ └── index.js # Translations (en, zh, ja, ko)
├── utils/
│ └── watermarkRemover.js # Core watermark removal logic
├── assets/
│ ├── bg_48.png # Alpha map for small images
│ └── bg_96.png # Alpha map for large images
├── App.vue
├── main.js
└── style.css
- Gemini AI generated images (48x48 and 96x96 watermarks)
- Nano Banana watermarks
- Any watermark using similar alpha blending technique