Usage

All five tools follow the same shape: drop an image, adjust a couple of settings, download the result.

Compression and format conversion

Path: /

Drop in one or many images, pick an output format and quality, then download. This is pure encoding — no AI involved — so it is fast and unaffected by your hardware.

Choosing a format

FormatBest forNotes
WebP The safe default Excellent compatibility and much better compression than JPEG. If unsure, use this.
AVIF Smallest possible files Best compression at a given quality, but slower to encode and unsupported in older browsers.
JPEG Maximum compatibility Opens everywhere. A safe choice for photographic images.
PNG Transparency or lossless Large files. If you only need transparency, prefer WebP.
JPEG XL Experimental Promising, but browser support is still limited.
Higher quality is not always better. Dropping quality from 100 to 80 for a photo is usually imperceptible while cutting file size by more than half. Start there.

AI upscaling

Path: /upscale/

Enlarges images 4× with Real-ESRGAN. It reconstructs detail rather than interpolating pixels, which is why old photos and low-resolution assets come out noticeably sharper.

What it is and isn't good at

Hard limit: 64 megapixels of output. At 4× that means roughly 2000×2000 input. Larger images need cropping or downscaling first. This exists to keep a browser tab from running out of memory.

AI background removal

Path: /cutout/

Drop in an image, hit "Remove background", and get a transparent PNG. You can also switch to a white, red or blue backdrop — recolouring is an instant recomposite and does not re-run the model.

Choosing between the two models

TierDownloadBest for
MODNet (default) ~24 MB People and pets. Clean hair edges, a quarter the size of the HD tier. Always runs on CPU.
BiRefNet Lite (HD) ~94 MB Products, logos, and complex objects. Solid on both people and objects.
The default tier was picked for speed, not for coverage. MODNet is trained on people, so switch to the HD tier for products and logos. If the cutout comes out almost empty, the UI will tell you to switch — no need to guess why it broke.

One more thing: MODNet always runs on CPU and never touches your GPU (see the model notes). A better graphics card will not make it faster — for GPU acceleration, use the HD tier or Click to Cut.

Weights are cached by the browser afterwards, so later runs start instantly. A different browser or a cleared cache means downloading again.

Reading the result

Edges look too soft

The "Edge" setting has two modes: Sharp narrows the semi-transparent transition band for a cleaner look; Soft keeps the natural feathering, which suits hair and fur.

Nothing gets selected

The model looks for the most salient subject in the frame. That means:

In these cases, picking a different photo usually helps more than adjusting settings.

Click to Cut

Address: /segment/

Automatic cutout is "let the model decide who the subject is". Click to Cut flips that — you tell the model where the subject is. Reach for it when you want the second or third object in the frame, or when the automatic model keeps grabbing the wrong thing.

How to use it

  1. Drop an image and click the object you want to keep. The outline appears immediately.
  2. Not right? Keep clicking — every extra point joins the prompt and refines the result.
  3. To drop something that got included, hold Alt and click (or right-click) to mark it "exclude".
  4. Happy with it? The result appears on the right at the same time, so you can watch it change as you click — download the transparent PNG when it looks right.
The first click waits ten-odd seconds; every click after that is instant. The model encodes the whole image once (and downloads 45 MB of weights at the same time), and that encoding has nothing to do with where you clicked — so further points only re-run a very fast decoder. Changing the image means encoding again.

Click to Cut vs. automatic cutout

Clicking empty background gives you "nothing was selected". That is not a bug — SAM can only outline what you point at. Click on the subject itself.

Crop, rotate and slice

Address: /edit/

This one runs no model at all — plain Canvas maths, so there is nothing to download and nothing to wait for.

Crop

Drag a corner or an edge to resize the box, drag inside it to move it. The right-hand panel can lock the ratio to 1:1, 4:3, 3:4, 16:9 or 9:16; "Free" leaves it unconstrained. The output size updates live.

Rotate and auto-straighten

Rotating shrinks the crop box to the largest rectangle that contains no empty space. Looking at a rectangle from an angle, its corners necessarily fall outside the original. Reduce the angle to keep more of the frame, or pick a different ratio.

Grid slicing

Set the number of columns and rows (3 × 3, say) and the gap between tiles, then hit "Download slices (ZIP)". The slicing range is the current crop box, so crop first if you like. Leftover pixels are spread across the first few tiles rather than dumped into the last one, so you never end up with one conspicuously narrow strip.

Common questions

Why is the first run so slow?

Upscaling and background removal both download a model and initialise the inference engine first. That happens once; afterwards it comes from cache. See In-browser inference.

Why is it much slower without WebGPU?

With WebGPU, inference runs on the GPU. Without it, the work falls back to the CPU, where being several times slower is expected. Desktop Chrome and Edge have the best WebGPU support; recent Safari versions work too.

But do not measure the default tier against that. MODNet (the default) runs on CPU no matter what — it computes the wrong answer silently on WebGPU, so the code simply does not give it the GPU. In other words: for portraits, a good graphics card buys you nothing; switch to the HD tier or use Click to Cut to actually get GPU acceleration. The numbers and the reasoning are in the model notes.

How long does a hundred images take?

Compression accepts hundreds of images at once through a batch queue. Upscaling and background removal are one image at a time — they are heavy computation and you want to check each result anyway.