About TouchUpPhoto
A tool somebody uses for ninety seconds in the middle of doing something else. That one constraint decided nearly everything here.
What this is
One page, five steps. The first is the tap fixes: you tap a place and a small disc around it is rebuilt from the picture beside it, or brightened, or cleared of red-eye, or the whole frame is turned once. Six of those per photograph, then it stops. After that come light, colour, detail and a finishing crop — each one a handful of numbers you can see, move and reset.
There is no account, no queue and no second screen. The file you open is decoded by the browser you are already using and never travels.
The ceiling, and why it is the product
Every feature request this page will ever get is a request to remove the ceiling. Let me set the size. Let me draw round anything. Let me run it again on the same spot. Let me have a seventh. Each of those is reasonable on its own and each of them, granted, turns this into a region tool that happens to have started small.
So the ceiling is written into the code rather than into an intention. Six is counted before a tap is accepted. Ground that has already been fixed refuses a second tap. The fill itself reports when the thing under it carries on past the disc, and that report rolls the fix back rather than shrugging.
- No size, hardness, feather, opacity or strength on a fix.
- No clone source point and no painted mask. The one drawn shape, the Patch loop, stops at 4 % of the frame.
- No layer list and no blend mode.
- Whole-frame controls stop at the everyday ones: light, colour, smoothing, sharpening, crop and straighten.
What it is built on
A static site with no server behind it. The fixes are arithmetic in a background thread: a search for matching patches over a bounded tile, a tone curve with a cosine falloff, a red-channel pull for red-eye, and a rotation with an inward crop. The whole-frame steps are lookup tables, an edge-keeping blur, an unsharp mask and one resample for the crop. No tap, slider or save needs a model, a download or anything to agree to.
That point is worth stating plainly. Opening this page fetches no weights and shows no consent panel. Two things can arrive on demand: a decoder for HEIC, only if a HEIC is opened, and an optional face finder (YuNet, MIT licence, about 230 KB, plus the runtime that runs it from this site), only after you press Find faces and agree. The face finder runs on this device, proposes boxes and rings, and changes nothing until you choose.
Where it stops
A tap cannot remove a person, a sign or a car. Anything large enough to need a region drawn round it is beyond a disc, and the tool says so rather than smear it. It does not reshape faces, apply makeup or lighten skin, it does not rebuild torn corners or colourise a black-and-white print, and it does not invent resolution a photograph never had.
Those limits are stated where they bite: in the refusal that replaces the hint when a tap is too big, in the note beside the stage when a photograph reads as a portrait or as dark everywhere, and in the honest-limit line on every task page.


