

Black and white portrait
Washed-out greys and scratches. Blacks back, no colour added.
Add a scratched, faded or dusty photo. The marks are found and closed for you, one tap brings the colour back, then download.


No photo handy?
Real results
Drag across any picture to see the before and after.


Washed-out greys and scratches. Blacks back, no colour added.


A warm, pale print with dust. Colour and contrast restored.


Hairline scratches across the frame, closed from the picture around them.
How these were made: scratches, dust, a fold and fading were added to photographs of our own, then each one was repaired by this site with its automatic settings. Nothing was retouched afterwards.
Three steps
Choose a scan or a phone picture of the print, drop it on the page, or paste it.
Scratches and dust are found and shown in colour, then closed up. One tap brings faded colour back.
Save the repaired photo as PNG or JPG at full size. Touch up anything by hand first if you like.
On the bench
A scan comes in marked, torn or faded. The damage is found, shown to you, and filled from the picture around it — on this device, at full resolution, with a written account of every change.
Drop a scan of a damaged print. Nothing is filled in until the marks are on screen and you have looked at them.
Detection runs the moment a scan opens, so the first thing on screen is what this page believes is damage rather than a picture it has already altered.
JPG, PNG, WebP, GIF, BMP and ICO are read here. HEIC pulls a decoder the first time one arrives. A flatbed TIFF is read by this site's own TIFF reader, the first time one arrives.
A file that will not open at all? Open a broken file instead
All tools
Every job this site does. Each one opens ready to work.
Folds and creasesClose up a line where the print was bent
Restore old photosBring back the colour and contrast of a pale, yellowed print
Repair a PNG fileRescue a PNG that will not open or shows half a picture
Scratches and dustEvery mark found and shown to you, then wiped away
AI photo restorationLet AI redraw a missing corner or a wide tear, when you ask
Repair a corrupted JPEGRescue a JPG that is grey, cut off or will not open
Black and white photosDeep blacks back, and no colour added
Faded colour photosFix prints that have turned orange or pink
Torn photosClose the tear line; redraw a missing piece if you choose
Photo of a photoStraighten a phone snap of a print, then clean it up
A whole album at onceRestore a whole box of scans and download one ZIP
Fix corrupted photosCheck a card's worth of broken files at once
Water damageEven out a tide line or a tape stain
Foxing and mouldBrown spots found for you, then cleared
Cracked photosClose a whole network of fine cracks
NegativesTurn a scanned negative into a photo
Newspaper photosTake out the printed dots, then repair
Print itPick a lab size and see if it will print sharpan illustration, not a reading
Damage falls into three classes, because the three are repaired by different means and one of them is not repaired at all. The counts below are an illustration of how a scan sorts; the bench today reports regions, marked pixels and the share of the frame for the scan you open, and does not yet sort them into these classes. Each class has a page that goes into it properly.
Recovery record · 5,201 px closed · 18,940 px generated
Those two figures are the whole of the honesty here: one of them is the picture that survived and was put back, the other is the picture that did not and was made up. The record is written for the scan you open, copied out with one press, and the second figure is zero unless you asked for the model.
A different question · the container rather than the picture
Everything above is about damage to a photograph. These two are about damage to a file — a card that failed mid-write, a download that stopped, a backup that copied most of the way. They read the bytes, say what survived and at which offset it stopped, and save the surviving original bytes with a proper end. Nothing is re-encoded on the way, and each page counts the rows that still decode.
Damage on a print is not one problem. It is a handful of different physical events that happen to a sheet of paper and an emulsion, and they leave marks with different widths, different shapes and different amounts of surviving information underneath them. A speck of platen dust is two pixels across and the picture continues underneath it. A fold has crushed the emulsion along a line. A torn corner has no picture underneath it at all, because the corner is in a different envelope.
The distinction that matters is width. Anything narrow enough that the picture either side of it still agrees about what should be there can be closed by looking at the neighbours: that is dust, hairline scratches, cat hairs on the glass, the speckle of foxing, and most of what a scanner adds on the way in. Anything wide has to be invented, and the local engine on this page does not invent — it will tell you it has nothing to work from rather than guess. There is now a second path beside it, taken deliberately and never by default: a model you choose to download, knowing its exact size, that draws a plausible continuation into a hole instead of averaging one. The word for what it produces is still invented, and nothing here calls it anything else. What this page ships is the narrow half done properly, the wide half done by something that guesses, and an account of which is which.
| Damage | How it is found | What happens to it |
|---|---|---|
| Dust and specks | Darker or brighter than its surroundings and narrower than the detector | Marked, then filled from intact picture within a few pixels |
| Hairline scratches | Fails the structure test and the median test together, along a thin run | Marked with a one-pixel margin for the shadow, then filled along the boundary normal |
| Fading and colour cast | Measured, not detected: each channel's histogram is read for its real endpoints | Stretched back to full range per channel, with an optional density curve |
| Tears, creases, missing corners | Wide enough that the fill has nothing local to work from | Smeared by the local fill, which says so. Redrawn by the optional model pass, which invents a continuation and says that |
Three things are worth saying plainly before you spend an evening on a photograph of your grandmother:
The order below is the order the engine runs in, and the same five functions run on screen and on save. One thing deliberately does differ, and it is worth knowing which. The preview works on a copy no more than about two and a half thousand pixels on the long edge, because that is what redraws at the speed of a slider. When you save, detection is measured again over every pixel of the original rather than the preview mask being scaled up — a scratch three pixels wide on a full scan is one pixel wide on the preview, and enlarging that mask would fill three times what the damage occupies. So the settings you approved are the settings that run, and the mask they produce at full resolution is a closer fit to the damage than the one you were looking at.
Forty steps of history are kept, listed beside the picture, and any state can be kept as a snapshot to come back to. Z steps back and Shift + Z steps forward; M hides and shows the mask; A runs the automatic pass; C splits the picture into scan and repair; K shows the loupe, which puts the scan and the repair side by side under the pointer at twice their size. History stores your brushwork run-length encoded rather than as flat planes, which is what makes forty steps affordable on a phone.
JPG, PNG, WebP, GIF, BMP and ICO decode here through the browser’s own image pipeline. HEIC is decoded by a WebAssembly codec fetched the first time one is opened and not before, so nobody pays for it who does not use it. TIFF matters more on this page than on most, because TIFF is what flatbed scanning software writes by default and a scan is the usual way a damaged print arrives. Only Safari reads TIFF natively, so this site carries its own TIFF reader, fetched from this domain the first time a TIFF is opened: uncompressed, LZW, Deflate and PackBits, 8- or 16-bit, greyscale or RGB, first page. A 16-bit scan is worked at 8 bits per channel, and a TIFF that uses something else (JPEG inside TIFF, CMYK, a palette) is refused with the name of what it uses.
Orientation is settled before anything else happens. A two-pixel probe JPEG with a known rotation flag is decoded with the browser’s own orientation handling switched off, which reveals whether this particular engine applies the EXIF flag by itself. The flag is then applied by hand only if the browser did not — the alternative is a scan that arrives rotated twice on some machines and once on others.
| Limit | Figure | What the page does |
|---|---|---|
| File size | 120 MB | Refused, with the size it actually was. The two file-recovery routes use the same ceiling |
| Soft pixel cap | About 32 megapixels, 16 on iOS | Offers a lighter working copy as a choice, with two equal ways forward |
| Hard pixel cap | About 100 megapixels, 40 on iOS | Refused, naming the scanning resolution that would have fitted |
| Bit depth | 16-bit PNG | Reduced to 8 bits per channel on the way in |
| Animation | GIF and animated WebP | The first frame is taken and the rest discarded |
A CMYK JPEG — the kind a print shop’s workflow produces — gets no special handling on the way in, and that is worth knowing before you open one. Nothing here reads a file for its colour-space marker; what becomes of such a scan is whatever this browser’s own decoder does with it, which on some engines is a refusal and on others is a picture whose colours are wrong. If a scan opens looking inverted or unaccountably cold, save it again as RGB before repairing it, because otherwise the detector is reading a photograph nobody meant to make. Saving offers PNG or JPG. PNG is the better end for a picture you intend to keep working on, because a repaired JPG re-encoded as a JPG is a second generation of loss on top of whatever the scanner already cost you.
A damaged print usually arrives carrying several complaints at once, and only one of them is damage. The others are separate jobs with their own methods and their own ways of going wrong, and running them from inside a restorer is how a photograph ends up looking restored instead of looking like itself. This page closes the marks and stops there, on purpose.
| The job | What it actually is | Why it is not on this page |
|---|---|---|
| Putting colour into a monochrome print | Invention of a hue that nothing ever recorded | Fade recovery stretches a range the scan already holds. On a grey print there is no separate range to stretch into a colour, so there is nothing here to build it from |
| Making a soft scan look crisp | A guess about the lens, the focus and the paper grain | Sharpening after a fill amplifies the fill along with everything else. It is a reasonable next step in another tool and a bad step in this one |
| Painting out the stranger at the edge of the frame | Removal of something real, intact and wanted by nobody | The fill is fed by picture within a few pixels of each mark. A person is wider than that by two orders of magnitude, and what comes back is a blur in their shape |
| Smoothing the face in the photograph | A judgement about a person, not about paper | Damage lying on top of a face is repaired here. The face underneath is left exactly as the emulsion recorded it, because nothing on this page is entitled to an opinion about it |
| Making a small scan into a large one | New pixels reasoned out between the ones you have | Scan the print again at 600 dpi instead. Enlarging a scan enlarges every scratch in it, and then the detector has a wider problem to solve than it started with |
None of the five is forbidden and none of them is hard. They are simply other tools, run at other moments. The sequence that works is: scan flat and honest, close the damage, and only then do whatever else you meant to do to the picture. Taken the other way round, every later operation is applied to the scratches as faithfully as it is applied to the photograph.
Four of these open this same workbench with different controls already in front, because a scratched print, a faded one, a creased one and a torn one want different things within reach first. Nothing about the engine changes between them. The fifth address is the reading: four written pieces behind one index. The two file-recovery routes are listed further up the page instead, because they answer a different sentence and belong beside each other rather than beside a photograph.
What the written pieces cover: which scanner settings decide whether a repair is possible at all, how print damage sorts by the amount of picture surviving underneath it, the point where recovering a measurement becomes inventing one, and the four kinds of loss that live in the paper rather than in the file.