We combine smart watermark detection with state-of-the-art AI inpainting to reconstruct the image beneath the Gemini ✦ mark — invisibly and in seconds.
Gemini AI images carry a ✦ symbol in the bottom-right corner — always at the same relative position (approximately 78–100% horizontally, 85–100% vertically). CleanerWatermark automatically targets this zone with a precise mask.
No manual selection needed. You drop the image, we create the binary mask in milliseconds using canvas operations — a white rectangle over the watermark zone, black everywhere else.
💡 Technical note: The mask coordinates are computed as x = width × 0.78, y = height × 0.85, covering the remainder of the image. This matches the exact placement of the Gemini watermark across all aspect ratios.
The masked image is sent to our backend powered by IOPaint, running the LaMa (Large Mask inpainting) model. LaMa was developed by Samsung Research and uses Fast Fourier Convolutions (FFCResNetGenerator) to understand large-scale patterns and textures.
Unlike older approaches that simply blur or clone pixels, LaMa reconstructs the structure beneath the removed area — whether it's a gradient sky, fabric texture, or photographic detail.
High-resolution images require special handling to avoid memory issues and maintain quality. We use the Crop strategy: the model processes a cropped region around the mask with a margin of 196px, then seamlessly stitches the result back into the full image.
Images over 800px trigger this HD pathway automatically. For very large images (above 1280px on the longest side), a resize limit is applied before processing, then scaled back up for the output.
The inpainting backend runs on Railway (Hobby plan) with a dedicated GPU-enabled container. Requests are handled via a REST JSON API — your image is base64-encoded in the browser, sent over HTTPS, and the clean result is returned as a blob directly to your browser without being stored.
The frontend is a zero-dependency HTML/CSS/JS application hosted on Vercel's edge network — distributed globally for < 50ms load times anywhere in the world. No framework, no build step, no JavaScript runtime.