Old Photo Studio

Hoe het werkt

Old Photo Studio herstelt foto’s in je webbrowser. Je foto blijft van begin tot eind op je eigen apparaat.

Je foto blijft op je apparaat

Als je een foto kiest, leest je browser die van je apparaat in het geheugen. Je eigen apparaat doet het herstellen, met kleine modelbestanden en de software die ze draait. Beide komen van onze website. Je foto wordt nooit naar ons of naar iemand anders gestuurd. Wanneer je een resultaat opslaat, kies je zelf waar het naartoe gaat. Op een smartphone opent “Foto opslaan” het deelmenu van je telefoon, waar je de foto in je foto’s of je bestanden kunt opslaan. Als je browser geen bestanden kan delen, wordt de foto gedownload zoals elk ander bestand.

De eerste keer dat je het hulpmiddel gebruikt, downloadt je browser de modellen en hun software. Je browser bewaart een kopie, zodat ze bij latere bezoeken niet opnieuw hoeven te worden gedownload. Deze bestanden bevatten geen informatie over jou of je foto’s.

Wat er met je foto gebeurt

  1. Je kiest een foto. JPEG-, PNG- en WebP-bestanden werken. Is de foto zijwaarts gemaakt, dan wordt hij eerst rechtop gezet. Heel grote foto’s worden eerst kleiner gemaakt, zodat je apparaat ze aankan.
  2. Krassen en stof worden gemarkeerd. Een beschadigingsmodel zoekt naar krassen, stof en stipjes en markeert ze in rood. Gezichten laat het buiten beschouwing, omdat het het licht in de ogen voor stipjes aanziet. De markeringen zijn een suggestie: op echte foto’s mist het model een deel van het stof en fijne krassen. Het kan ook een gescheurde of gerafelde kaartrand als schade aanmerken, dus snijd de randen eraf voordat je begint.
  3. Je controleert de krasmarkeringen. Schilder met “Schilderen” over schade die het model heeft gemist, wis met “Wissen” de markeringen die geen schade zijn, en gebruik “Ongedaan maken” als je iets wilt terugdraaien. Kies dan “Invullen en herstellen”, of “Deze stap overslaan” om de foto ongewijzigd te laten.
  4. De gemarkeerde delen worden ingevuld. Een invulmodel schildert alleen de gemarkeerde delen opnieuw, op basis van de foto eromheen. Het werkt op een kopie van ongeveer 1.024 pixels aan de lange zijde. De invulling wordt alleen binnen de markeringen in je volledige foto teruggezet. De rest van de foto blijft ongemoeid.
  5. De tonen worden in balans gebracht. Een vaste stap rekt de lichte en donkere tonen van vervaagde foto’s uit, zodat de donkerste delen donker zijn en de lichtste delen licht. Deze stap verandert de kleurtint van de foto niet. Als je in stap 7 de kleur uitzet, behoudt een sepia- of bruintinte foto zijn toon.
  6. Het verbeteringsmodel maakt de foto schoner en groter. Het model werkt op de lichte en donkere details van de foto: korrel, onscherpte en de blokjes van JPEG-compressie. Het maakt de foto 4 keer zo breed en 4 keer zo hoog. De kleuren van de foto worden met een gewone vergrotingsmethode vergroot en daarna teruggezet, dus dit model verandert ze niet.
  7. Kleur wordt toegevoegd, als je dat wilt. Bij een zwart-witfoto of sepiafoto stelt een kleurmodel kleuren voor, op basis van de ingevulde en in balans gebrachte foto. De kleuren worden daarna gecombineerd met het vergrote resultaat, zodat ze op volledige grootte komen. Kleur staat standaard aan voor foto’s zonder kleur en uit voor foto’s die al kleur hebben. Met de schakelaar “Kleur toevoegen” zet je het aan of uit. Met de schuifregelaar “Kleursterkte”, van Gedempt tot Levendig, worden de kleuren gedempter of levendiger, en het resultaat verandert meteen. De kleuren zijn een schatting van het model, niet de echte. Zwart-wit foto inkleuren geeft tips voor betere kleur.
  8. Je vergelijkt en slaat op. Je kunt het origineel en het resultaat bekijken, en daarna het resultaat opslaan als nieuw PNG-bestand, met de naam van je foto en “-restored” erachter. Je originele bestand blijft ongewijzigd. Het nieuwe bestand bevat de verborgen gegevens van het origineel niet, zoals de opnamedatum of de camera die is gebruikt.

Hoe snel is het?

Dat hangt af van je apparaat en de grootte van de foto. In browsers die WebGPU ondersteunen, gebruikt het hulpmiddel de grafische chip van je apparaat, die meestal sneller is. In andere browsers gebruikt het de hoofdprocessor, die langzamer is. De eerste foto moet ook wachten tot de modellen zijn gedownload.

De modellen

We hebben de modellen zelf getraind, op oude foto’s die Flickr vermeldt als publiek domein, als CC0 (geen rechten voorbehouden) of als “no known copyright restrictions” (Flickr Commons). Die foto’s komen uit de Megalith-10M-dataset. Elk model heeft deels geleerd van een groter open-sourcemodel, dat tijdens het trainen als referentie is gebruikt. We publiceren alleen onze eigen getrainde modellen. De referentiemodellen maken geen deel uit van de site.

Krassen- en stofmarkeringen

  • Door ons getraind op oude foto’s met opzettelijk toegevoegde schade, en op echte beschadigde foto’s die zijn gemarkeerd door de krasdetector uit Microsoft’s “Bringing Old Photos Back to Life” (oude foto’s weer tot leven brengen; MIT-licentie). Die detector is tijdens het trainen als referentiemodel gebruikt.

Het invullen van de markeringen

  • Door ons getraind, met LaMa (Apache-2.0-licentie) als referentiemodel tijdens het trainen.

Kleur

  • Ons ColorNet-model. De encoder begint bij het MobileNetV3-Large-model uit torchvision, vooraf getraind op ImageNet (BSD-3-Clause-licentie).
  • Door ons getraind, met DDColor (Apache-2.0-licentie) als referentiemodel tijdens het trainen.

Verbeteren (korrel en onscherpte verminderen, 4 keer vergroten)

  • Netwerkontwerp: SRVGGNetCompact, gepubliceerd met Real-ESRGAN door Xintao Wang en anderen (BSD-3-Clause-licentie).
  • Getraind met Real-ESRGAN-modellen als referentiemodellen tijdens het trainen: general-x4v3 met zijn ruisreductiemodel op sterkte 0,5 (BSD-3-Clause, © 2021 Xintao Wang), en RealESRGAN_x4plus (dezelfde licentie) in een eerdere trainingsfase. Ons model heeft geleerd hun resultaten op onze foto’s te benaderen.

Software die de modellen draait

  • ONNX Runtime Web, van Microsoft (MIT-licentie).

Onze modellen

  • De herstelmodellen op deze site zijn door ons getraind. We verlenen geen licentie om ze te kopiëren, te extraheren of opnieuw te gebruiken. De open-sourcelicenties die we noemen, horen bij die projecten, en onze eigen modellen worden niet onder die licenties uitgebracht.

Links: Bringing Old Photos Back to Life https://github.com/microsoft/Bringing-Old-Photos-Back-to-Life · LaMa https://github.com/advimman/lama · DDColor https://github.com/piddnad/DDColor · torchvision https://github.com/pytorch/vision · Real-ESRGAN https://github.com/xinntao/Real-ESRGAN · ONNX Runtime https://github.com/microsoft/onnxruntime · Megalith-10M https://huggingface.co/datasets/madebyollin/megalith-10m

Grenzen

  • Wat weg is, kan het niet terughalen. Afgescheurde hoeken, gaten en zware krassen door een gezicht laten niets over waar het mee kan werken.
  • Het schat fijne details. Als het een foto vergroot, vult het korrel en structuur in op basis van de oude foto’s waarvan het heeft geleerd. Gezichten en tekst kunnen gladder of iets anders uitkomen dan het origineel. Controleer ze voordat je afdrukt.
  • De krasmarkeringen zijn een suggestie. Het beschadigingsmodel mist een deel van het stof en fijne krassen, en laat gezichten buiten beschouwing. Controleer de rode markeringen voordat je ze invult. Vlekken verwijdert het niet.
  • Ingevulde delen zijn een schatting. Het invulmodel schildert wat er waarschijnlijk stond, op basis van het gebied eromheen. Controleer gezichten, ogen en tekst.
  • Kleuren zijn een schatting. Het kleurmodel kent de echte kleuren niet. Een jurk of een auto kan een andere kleur hebben gehad. Maak de kleuren met de schuifregelaar “Kleursterkte” gedempter, of zet “Kleur toevoegen” uit.
  • Het is geen kopie van het origineel. Het resultaat is een nieuwe afbeelding, gemaakt van je foto. Bewaar je originele afdruk en je eerste scan. Het Amerikaanse nationaal archief (National Archives) adviseert originelen te bewaren nadat je ze hebt gedigitaliseerd.

Bron: National Archives, “Digitizing Family Papers and Photographs” (in het Engels). https://www.archives.gov/preservation/family-archives/digitizing.html (gelezen op 4 november 2026)