


About
About PictureEraser
A single-purpose page for a single operation: removing something from inside a photograph and letting the pixels around it decide what goes back.
The one thing it does
There is exactly one verb here. A region is painted, the pixels underneath it are discarded, and the surroundings are asked what belongs there instead. The frame does not change size. Nothing is separated from its background. Nothing is moved, straightened, brightened or sharpened. Every pixel outside the painted region and its soft edge is carried through to the saved file exactly as it arrived.
That narrowness is the point rather than a stage we intend to grow out of. A page that does one operation can put the whole of it on one screen, name its failure modes on the same screen, and be finished rather than configurable. A page that does eleven operations spends most of its interface helping you find the one you wanted.
Where the work happens
In the tab. The photograph is decoded into a canvas, the region is painted on the main thread so that it keeps up with a finger, and the four fills that ship in the page run in a worker so that the page keeps drawing while several seconds of arithmetic go past. The optional learned fill is a downloaded model, and it runs in a worker of its own for the same reason. Nothing is deployed here except files — markup, a stylesheet, some script, two typefaces and the WebAssembly runtime that model needs — with no application behind them. One file, the model itself, is fetched from our model file server, and only if somebody asks for that engine; the privacy page gives the byte count and what the request does and does not contain. The endpoint a photograph could be posted to does not exist to be misused.
The consequence worth stating is the other side of that bargain: everything is bounded by the machine you are on. A thirty-megapixel frame on a phone will be offered a reduced working copy, because the alternative is a tab that dies silently. On a picture larger than the screen, each removal is computed on the full-size picture and shown reduced, so it takes longer than a preview would — and what you see is what you save.
Things it will not be asked to do
- It will not cut a subject away from its background. The hard part there is the edge rather than the fill, which makes it another job for another page.
- It will not adjust exposure, colour or sharpness. A fill that also quietly re-graded the picture would be impossible to judge against the original.
- It will not guess at a folder. Dropping several photographs opens a batch that handles one narrow case — a mark in the same place on every frame, such as a film date imprint or a corner badge — and every file it cannot handle safely is listed with the reason rather than filled anyway. Anything else is drawn per photograph.
- It will not claim to recover what was behind the object. Nothing can. What it produces is a plausible continuation, and the difference between those two statements is the reason this page exists in the shape it does.
How it is paid for
It is not, for now. There are no adverts, no accounts, no credits and no paid tier, and the full-size file is never held back behind one. The page costs little to serve because it is only files, and the work happens on your machine.
If something is wrong
The most useful bug report names the picture and the region: what was in it, roughly how big the painted area was as a share of the frame, which engine the readout said had run, and what the result looked like. Fills are deterministic — the same region on the same picture produces the same answer every time — so a described failure can be reproduced rather than hunted.