Old Photo Studio

仕組み

Old Photo Studio は、写真をウェブブラウザの中で修復します。写真は、最初から最後まで、お使いの端末の中にとどまります。

写真は端末の中にとどまります

写真を選ぶと、ブラウザは端末から写真を読み込み、メモリに置きます。修復を行うのは、お使いの端末です。使うのは、当サイトから配信される小さなモデルファイルと、それを動かすソフトウェアです。写真が当サイトや第三者に送られることはありません。結果を保存するときは、保存先をお選びいただけます。スマートフォンでは、「写真を保存」を押すとスマートフォンの共有メニューが開き、写真を写真アプリやファイルに保存できます。ブラウザがファイルの共有に対応していない場合は、写真はふつうのファイルと同じようにダウンロードされます。

最初にツールを使うとき、ブラウザはモデルとそのソフトウェアをダウンロードします。ブラウザがそのコピーを保管するので、次に訪れたときに、もう一度ダウンロードする必要はありません。これらのファイルには、皆さんや写真に関する情報は含まれていません。

写真に起きること

  1. 写真を選びます。 JPEG、PNG、WebP の写真が使えます。横向きに撮った写真は、先に正しい向きに回します。とても大きな写真は、お使いの端末で処理できるよう、先に小さくします。
  2. 傷とほこりに印をつけます。 損傷を見つけるモデルが、傷、ほこり、小さな点を探して、赤い印をつけます。顔は印の対象から外します。人の目の光を点と間違えるためです。印は目安にすぎません。実際の写真では、モデルが一部のほこりや細かい傷を見落とすことがあります。また、破れた部分や、ぎざぎざの縁を傷と判断することもあるので、作業を始める前に、写真の枠を切り取ってください。
  3. 印を確認します。 モデルが見落とした傷は塗り、傷ではない印は消せます。必要なら元に戻せます。そのあと「補修する」を選ぶか、「このステップをスキップ」を選んで、写真をそのまま残せます。
  4. 印をつけた部分を補修します。 補修するモデルは、印をつけた部分だけを、その周りの写真をもとに描き直します。作業は、長辺が約1,024ピクセルのコピーで行います。補修した部分は、写真全体の印の中だけになじませて戻します。印の外の部分には手を加えません。
  5. 色あせた明暗を整えます。 一定の処理で、色あせた写真の明暗の幅を広げます。いちばん暗い部分は暗く、いちばん明るい部分は明るくなります。この処理は写真の色合いを変えません。手順7で色をオフにしていれば、セピアや茶色っぽい写真は、その色合いを保ちます。
  6. ざらつきやぼけを整え、4倍に拡大します。 拡大するモデルは、写真の明暗の細部、つまりざらつき、ぼけ、ブロック状のノイズを扱います。写真は、横も縦も4倍の大きさになります。写真の色は標準的な方法で拡大してから戻すので、このモデルは色を変えません。
  7. 必要なら色をつけます。 白黒写真とセピア写真では、カラー化モデルが、補修して明暗を整えた写真をもとに色を提案します。その色を拡大した結果と合わせるので、色も原寸で仕上がります。色は、色のない写真では最初からオンで、カラー写真では最初からオフです。「色をつける」のスイッチで、オンとオフを切り替えられます。「色の強さ」スライダーで色をおだやかにも鮮やかにもでき、結果はすぐに変わります。色はモデルの推測で、本当の色ではありません。色をよくするコツは白黒写真のカラー化をご覧ください。
  8. 比べて、保存します。 元の写真と結果を見比べてから、結果を新しい PNG ファイルとして保存できます。ファイル名は、元の写真の名前に 「-restored」を付けたものです。元のファイルは変更されません。保存されたファイルには、元の写真にあった隠れた情報、たとえば撮影日や使ったカメラは残りません。

処理の速さ

処理の速さは、お使いの端末と写真の大きさによります。WebGPU に対応したブラウザでは、端末のグラフィックチップを使うので、たいてい速く処理できます。そのほかのブラウザでは、メインのプロセッサーを使うため、遅くなります。最初の写真は、モデルのダウンロードも待つ必要があります。

モデル

私たちは、モデルを自分たちで学習させました。学習に使ったのは、Megalith-10M データセットに含まれる古い写真のうち、Flickr がパブリックドメイン、CC0(権利を保有しない)、または「既知の著作権上の制限なし」(Flickr Commons)と記載している写真です。各モデルは、学習中に、より大きなオープンソースのモデルを参照として使いました。私たちが公開するのは、自分たちで学習させたモデルだけです。参照に使ったモデルは、このサイトには含まれていません。

傷とほこりの印

  • 傷を人工的に加えた古い写真と、実際に傷んだ写真で、私たちが学習させました。実際の写真の印は、Microsoft の「Bringing Old Photos Back to Life」の傷検出器(MIT ライセンス)がつけたもので、この検出器は学習中の参照モデルとして使いました。

印の補修

  • 私たちが学習させました。学習中の参照モデルとして LaMa(Apache-2.0 ライセンス)を使いました。

色

  • 私たちのカラー化モデル ColorNet です。エンコーダーは、torchvision の ImageNet 学習済み MobileNetV3-Large から始めています(BSD-3-Clause ライセンス)。
  • 私たちが学習させました。学習中の参照モデルとして DDColor(Apache-2.0 ライセンス)を使いました。

拡大(ざらつきとぼけを整え、4倍に拡大)

  • ネットワークの設計は SRVGGNetCompact です。Xintao Wang らが Real-ESRGAN とともに発表したもので、BSD-3-Clause ライセンスです。
  • 学習中の参照モデルとして、Real-ESRGAN のモデルを使いました。general-x4v3 と、そのノイズ除去モデル(強度 0.5)です。初期の学習段階では RealESRGAN_x4plus も使いました。いずれも BSD-3-Clause、© 2021 Xintao Wang です。私たちのモデルは、私たちの写真で、それらの結果に近づくように学習しました。

モデルを動かすソフトウェア

  • ONNX Runtime Web、Microsoft 製(MIT ライセンス)。

私たちのモデル

  • このサイトの修復モデルは、私たちが学習させたものです。複製、抽出、再利用のためにライセンスすることはありません。ここに挙げたライセンスは、挙げたオープンソースのプロジェクトのものです。私たちのモデルは、それらのライセンスのもとで公開していません。

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

限界

  • 失われたものは戻せません。 ちぎれて失われた角、穴、顔を横切る大きな傷は、元にする情報が残っていないので、戻せません。
  • 細かな部分は推測です。 拡大するときは、ざらつきや質感を、学習した古い写真をもとに推測して加えます。顔や文字は、元の写真より滑らかに見えたり、少し違って見えたりすることがあります。印刷する前に確認してください。
  • 傷の印は目安です。 損傷を見つけるモデルは、一部のほこりや細かい傷を見落とし、顔も印の対象から外します。補修する前に、赤い印を確認してください。しみは消せません。
  • 補修した部分は推測です。 補修モデルは、周りの様子をもとに、そこにあったはずのものを描きます。顔、目、文字を確認してください。
  • 色は推測です。 カラー化モデルは、本当の色を知りません。服や車は、実際には別の色だったかもしれません。色は、スライダーでおだやかにするか、オフにしてください。
  • 元の写真の複製ではありません。 結果は、お使いの写真をもとに作った新しい画像です。元のプリントと最初のスキャンは残しておいてください。米国国立公文書館は、デジタル化したあとも原本を保管するよう勧めています。

参考資料:National Archives, “Digitizing Family Papers and Photographs”(英語)。https://www.archives.gov/preservation/family-archives/digitizing.html (2026年11月4日閲覧)