Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

4 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

WatermarkOut

WatermarkOut

The only watermark remover you'll never have to pay for.

Free ยท Private ยท Open Source ยท Runs entirely in your browser

License: MIT Made in India PWA No telemetry Stars Issues

๐Ÿš€ Try it live ยท ๐Ÿ“ฅ Install Guide ยท ๐Ÿ’ก Why ยท ๐Ÿ›  Deploy your own ยท ๐Ÿค Contribute


WatermarkOut app interface preview

WatermarkOut removes watermarks from AI-generated images (Gemini, DALLยทE, Midjourney, Bing Image Creator, Adobe Firefly, Meta AI) and short videos โ€” entirely client-side. The AI model runs in your browser via WebAssembly. Your files never touch any server. There is no server.


๐Ÿš€ Quick start

There are 3 ways to use WatermarkOut. Detailed steps for each in INSTALL.md.

1๏ธโƒฃ Easiest: just open the link

๐Ÿ‘‰ https://iamramgarhia.github.io/free-ai-watermark-remover/

  1. Open the link
  2. Drop in an image or video
  3. Pick a preset (Gemini โœจ, DALLยทE, Midjourney, etc.) or draw your own rectangle
  4. Click Remove watermark
  5. Download the clean file

That's it. The file never left your browser.

2๏ธโƒฃ Install as a real desktop app (PWA)

Visit the URL โ†’ your browser shows an "Install" icon in the address bar โ†’ click it โ†’ WatermarkOut now has a real desktop icon and opens in its own window. Works on Windows, macOS, Linux, iOS, Android. Zero downloads from any app store.

๐Ÿ“ฅ Full install steps per OS in INSTALL.md โ†’

3๏ธโƒฃ Run locally (developers, offline forever, self-host)

git clone https://github.com/IamRamgarhia/free-ai-watermark-remover.git
cd free-ai-watermark-remover/static
python -m http.server 8000
# Open http://localhost:8000

No build step. No npm install. No compilation. Just static files.

๐Ÿ“ฅ Step-by-step in INSTALL.md โ†’


๐Ÿ’ก Why it exists

Online watermark removers charge โ‚น800โ€“โ‚น2,500 / month ($10โ€“$30), upload your private photos to unknown servers, and add their own watermark on the free tier. WatermarkOut runs the AI inside your browser tab โ€” verifiable in DevTools (Network tab stays empty after first load).

  • โœ… Free forever โ€” costs $0 to host on GitHub Pages
  • โœ… Open source under MIT โ€” fork, audit, modify
  • โœ… Works offline after first visit
  • โœ… Zero accounts, zero telemetry

โœจ Features

๐Ÿ–ผ Image watermark removal JPG, PNG, WEBP, BMP โ€” up to 100 MB
๐ŸŽฌ Video watermark removal MP4, WEBM, MOV โ€” audio preserved, real-time playback preview
๐Ÿค– MI-GAN inpainting Picsart Research ICCV 2023 model, 29 MB
โœจ Watermark presets Gemini, DALLยทE, Midjourney, Bing, Firefly, Meta AI
๐ŸŽจ Manual masking Rectangle, brush, eraser, undo
๐Ÿ”„ BEFORE/AFTER compare Toggle to see original vs cleaned
๐Ÿ”’ 100% offline AI After first load, zero outbound requests
๐Ÿ“ฑ Installable PWA Desktop icon, standalone window, offline support

๐Ÿ–ฅ System requirements

  • Any browser supporting WebAssembly + Service Workers:
    • Chrome / Edge 90+
    • Firefox 90+
    • Safari 16.4+ (macOS / iOS)
  • ~250 MB free storage (model + app cache)
  • WebGPU is auto-detected and used when available (huge speedup); falls back to WASM multi-threaded otherwise

๐Ÿงฉ How it works (technical)

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚  Your Browser Tab                                           โ”‚
โ”‚                                                             โ”‚
โ”‚  [Image] โ†’ [Canvas mask] โ†’ [MI-GAN AI (WebAssembly)]        โ”‚
โ”‚     โ”‚                            โ”‚                          โ”‚
โ”‚     โ”‚                            โ–ผ                          โ”‚
โ”‚     โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ†’ [Composite result] โ”€โ”€โ†’ โฌ‡ Download  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
                       โ†‘
              No server. No upload. No exit point.

The model

  • MI-GAN (Picsart Research, ICCV 2023). A GAN-based inpainting model designed specifically for mobile / browser deployment.
  • Exported to ONNX (29 MB) and hosted on Hugging Face.
  • Runs via ONNX Runtime Web with WebGPU โ†’ WebGL โ†’ WASM fallback chain.
  • Cached in IndexedDB after first download โ€” never re-downloads.

The pipeline (matches Picsart's official Python demo.py):

  1. Find user's mask bounding box; crop image with context.
  2. Resize crop to model's fixed 512ร—512.
  3. Normalize image to [-1, 1], mask to 1=keep / 0=inpaint (yes, the polarity is inverted from LaMa).
  4. Build 4-channel input: [mask-0.5, R*mask, G*mask, B*mask].
  5. Run model. Output is [-1, 1] float32; map to [0, 255] via (v * 0.5 + 0.5) * 255.
  6. Composite into original at full resolution โ€” only masked pixels are replaced, rest stays pixel-identical.

Cross-Origin Isolation

A service worker injects COOP / COEP headers so the page is crossOriginIsolated. This unlocks WebAssembly multi-threading + SIMD + WebGPU. Without it, inference is single-threaded WASM (~5ร— slower).


๐Ÿ›  Deploy your own

Option 1: GitHub Pages (recommended โ€” free forever)

  1. Fork or clone this repo.
  2. Push to your own GitHub.
  3. Settings โ†’ Pages โ†’ Source: Deploy from a branch โ†’ main / /static
  4. Your site is live at https://<username>.github.io/watermarkout/.

Option 2: Cloudflare Pages / Netlify / Vercel

Connect the repo, set the publish directory to static/, deploy. All free for static sites.

Custom domain

  1. Create a CNAME file in static/ containing your domain (e.g. watermarkout.dicecodes.com).
  2. Add a DNS CNAME record pointing to <username>.github.io.
  3. Free HTTPS is auto-provisioned by GitHub Pages.

๐Ÿง‘โ€๐Ÿ’ป Local development

# Just serve the static/ folder over HTTP. ANY static server works.
cd static
python -m http.server 8000
# Then open http://localhost:8000

There is no build step. No Node, no npm, no bundler. Edit a file, refresh, see the change. The Service Worker is registered at first visit; for code changes during dev:

  • Ctrl+R โ€” pick up code changes (preserves the cached AI model)
  • Ctrl+Shift+R โ€” hard refresh (bypasses Service Worker; will redownload model)

โŒจ๏ธ Keyboard shortcuts

Key Action
R Rectangle tool
B Brush tool
E Eraser tool
Space Toggle BEFORE / AFTER compare
Ctrl+Z Undo brush stroke
Esc Start over (with confirm)
D Download result

๐Ÿ” Privacy

  • No telemetry. No analytics, no error reporting, no "anonymous usage statistics."
  • No accounts. No email, no signup, ever.
  • No cloud. The model fetches once from Hugging Face. After that, nothing leaves your device.
  • Auditable. Open DevTools โ†’ Network tab โ†’ use the app โ†’ see zero requests. Source is MIT and inspectable.

โš ๏ธ Honest limitations

Limit Why Workaround
Image cap ~100 MB Browser tab memory ceiling Resize before upload
Short videos only (~30 s) Per-frame processing overhead + memory Trim long clips first
Model is fixed 512ร—512 MI-GAN ONNX export Internally we crop + resize for higher effective resolution at the mask
Static-mask video mode One AI pass + copy patch onto all frames Best for corner watermarks (95% case); moving content behind the watermark may show a static patch
Complex backgrounds (faces, fine text, architecture) LaMa/MI-GAN inpainting limitation, not a bug Use a tighter mask; consider desktop tools like IOPaint for hard cases
WebGPU not in all browsers yet Browser support catching up Auto-falls back to WASM multi-threading

๐Ÿ“ Project structure

watermarkout/
โ”œโ”€โ”€ README.md
โ”œโ”€โ”€ LICENSE
โ”œโ”€โ”€ CONTRIBUTING.md
โ”œโ”€โ”€ WATERMARKOUT_BUILD_SPEC.md
โ”œโ”€โ”€ .gitignore
โ””โ”€โ”€ static/                  โ† deploy this folder
    โ”œโ”€โ”€ index.html           main app
    โ”œโ”€โ”€ about.html           about page (DiceCodes branding)
    โ”œโ”€โ”€ offline.html         shown when offline & uncached
    โ”œโ”€โ”€ manifest.webmanifest PWA manifest
    โ”œโ”€โ”€ sw.js                Service Worker (offline + COI headers)
    โ”œโ”€โ”€ css/
    โ”‚   โ”œโ”€โ”€ app.css
    โ”‚   โ””โ”€โ”€ about.css
    โ”œโ”€โ”€ js/
    โ”‚   โ”œโ”€โ”€ app.js               main controller
    โ”‚   โ”œโ”€โ”€ coi-bootstrap.js     enables Cross-Origin Isolation
    โ”‚   โ”œโ”€โ”€ inpainter.js         MI-GAN ONNX inference
    โ”‚   โ”œโ”€โ”€ model-cache.js       IndexedDB model caching
    โ”‚   โ”œโ”€โ”€ mask.js              canvas brush/rect/eraser
    โ”‚   โ”œโ”€โ”€ upload.js            drag-drop, validation
    โ”‚   โ”œโ”€โ”€ video.js             video pipeline (decode โ†’ mask โ†’ encode)
    โ”‚   โ”œโ”€โ”€ fs-folder.js         File System Access API integration
    โ”‚   โ”œโ”€โ”€ debug.js             diagnostic helpers (no UI)
    โ”‚   โ”œโ”€โ”€ toast.js             notifications
    โ”‚   โ”œโ”€โ”€ updates.js           Service Worker update flow
    โ”‚   โ””โ”€โ”€ version.js
    โ””โ”€โ”€ assets/
        โ”œโ”€โ”€ logo.svg
        โ”œโ”€โ”€ logo-icon.svg
        โ”œโ”€โ”€ prince-avatar.png   (optional, falls back to GitHub avatar)
        โ””โ”€โ”€ icons/              PWA icons (192/512/maskable)

๐Ÿ‘จโ€๐Ÿ’ป About the maker

Built solo by Prince Ramgarhia (DiceCodes) in Batala, Punjab ๐Ÿ‡ฎ๐Ÿ‡ณ.

Solo-built. No VC. No growth team. Just one developer trying to make pro-grade creative tooling permanently free for everyone.

Other free tools by DiceCodes

Support

If WatermarkOut saved you money, time, or a privacy headache:


๐Ÿ™ Credits


License

MIT โ€” fork, modify, use commercially. Made with โค๏ธ in India ๐Ÿ‡ฎ๐Ÿ‡ณ.