古い写真を復元するオープンソースAIは、1つの魔法のモデルではなく、確認できる小さな工程として組み立てると扱いやすくなります。高品質なスキャンから始め、傷を直し、顔の補正を控えめに行い、最後に拡大します。
この記事ではGitHubの代表的なプロジェクトを役割別に比較し、モデルを入れる前の確認点と、オンラインツールを選ぶ場面を説明します。
目次
古い写真復元オープンソースAIの流れ
古い写真の復元AIには複数の方式があります。画像の準備、傷や汚れの修復、顔の補正、アップスケール、必要に応じた着色を分けると、途中の状態を保存できます。顔が変わった場合も元の段階に戻せるため、元写真の特徴を守りやすくなります。
最初は複製した画像を中程度の解像度で試してください。元のスキャン、清掃後、顔補正後、最終書き出しを別フォルダーに保存します。GitHubやHugging Faceの実験でも、見た目の鮮明さだけでなく元画像との差を確認できます。
- 入力の準備:スキャン画像をトリミングし、傾きを直し、不要なスキャナー枠を取り除き、劣化しない形式で元画像を保存します。
- スキャン補正:生成的な修復を行う前に、露出、薄れたコントラスト、黄ばみ、強い色かぶりを補正します。
- 損傷修復:古い写真復元ノード、またはマスクを使ったインペイントで、傷、ひび、染み、破れた角、紙の損傷を修復します。
- 顔復元:GFPGAN、CodeFormer、または別の顔復元ノードを控えめな強度で使い、人物が元のまま認識できるようにします。
- 拡大:大きな損傷を修復した後で、ESRGAN、SUPIR、タイル拡大、または別のアップスケーラーを使い、傷やほこりを拡大してしまうのを避けます。
- 任意のカラー化:復元済みの白黒版を保存した後で、DDColorまたはカラー化ワークフローを使います。
- 最終確認:元画像と100パーセント表示で比較し、同一性、年齢、服装、重要な背景が変わった出力は採用しません。
ポートレートでは、サムネイル表示だけで判断しないでください。小さく見ると良く見える顔でも、等倍表示では目、口、年齢感が変わっていることがあります。
比較したいオープンソースプロジェクト
すべての写真に最適なモデルはありません。目に見える問題、ライセンス、必要なハードウェア、更新状況を確認して選びます。次の表は出発点であり、どの写真でも同じ結果になることを保証するものではありません。
| プロジェクト | 得意な役割 | 役立つ理由 | 使用前の確認 |
|---|---|---|---|
| Bringing Old Photos Back to Life | 古い写真の広範な損傷 | 傷、汚れ、色あせ、欠損を対象にした復元研究です。 | README、モデル取得方法、GPU要件を確認する。 |
| CodeFormer | 控えめな顔の復元 | 顔の構造が残るぼけた写真で比較しやすい。 | 強度を下げ、目・口・年齢感を元写真と比べる。 |
| GFPGAN | 顔の細部回復 | 大きな処理の一段階として顔の視認性を上げる。 | 強くしすぎると別人のようになるため控えめに使う。 |
| Real-ESRGAN | 修復後の拡大 | 傷を直した後に印刷用の大きなファイルを作れる。 | 先に拡大してほこりやひびを大きくしない。 |
公開プロジェクトは部品として使い、説明・比較・再現ができる結果を目指します。
複数のモデルをつないでも、推測された細部が史実になるわけではありません。元にない目、服の質感、背景をAIが作る場合があります。大きな欠損や強いぼけがある写真では、結果を復元の解釈として扱ってください。
ローカル復元環境を準備する
正確なインストール手順はOSやGPUによって異なりますが、基本の流れはほぼ同じです。ComfyUIをインストールし、必要なカスタムノードを追加し、モデルファイルを指定フォルダーに置き、ワークフローJSONまたはPNGワークフローを読み込みます。
- ComfyUIをインストール:初めて使う場合は、公式のComfyUIドキュメントから始めます。
- ComfyUI Managerを追加:多くのユーザーはカスタムノードのインストールや更新に利用します。ただし、モデルをダウンロードする前に各ノードのGitHub手順も確認してください。
- 復元ノードをインストール:Bringing Old Photos Back to Life実装のようなComfyUI古い写真復元ノードに加え、顔復元ノードと拡大ノードも検討します。
- 必要なモデルをダウンロード:復元ノード、GFPGANまたはCodeFormer、アップスケーラー、ControlNetモデル、カラー化モデルは、それぞれ別ファイルが必要になる場合があります。
- ワークフローを読み込む:ワークフローJSONまたはメタデータ付きPNGをComfyUIへドラッグし、不足ノードの警告を1つずつ解決します。
- 小さなテストを実行:高解像度の保存用スキャンを処理する前に、縮小サイズで試します。
同一性を保つための最適設定
顔を含む古い写真復元ComfyUIワークフローで最も難しいのは、画像をシャープにすることではありません。人物を同じ人のまま、より読み取りやすくすることです。顔復元モデルは目、肌の質感、口元の細部を補えますが、元画像が弱い場合は、元の顔を復元するのではなく、もっともらしい顔を推測することがあります。
まずは次の安全な設定方針を使ってください:
- 低から中程度の復元強度で始める:比較して元の顔に合っている場合だけ強度を上げます。
- 生成段階のdenoiseは低めに保つ:高いdenoiseは顔の構造、髪、服装、背景を作り替えることがあります。
- 損傷修復後に顔復元を行う:顔を横切る傷は顔モデルを誤誘導することがあります。
- 元スキャンと比較する:目、鼻、口、あご、表情、年齢感、髪の生え際を確認します。
- 美容表現を避ける:完璧、映画風、華やか、若々しい、といった言葉は復元から離れた結果にしやすくなります。
- 途中出力を保存する:顔復元前、顔復元後、拡大後、カラー化後の版を保存し、戻れるようにします。
技術的に見栄えの良い出力が、必ずしも良い家族写真復元とは限りません。家族が「別人のようだ」と感じるなら、顔復元の強度を下げるか、より控えめな途中版に戻してください。
オンライン復元ツールのほうが適している場合
ComfyUIは、繰り返し使えるローカル制御が必要な場合に強力です。ただし、常に最短の方法とは限りません。1枚か2枚の家族写真を復元するだけなら、カスタムノードのインストールやモデルのダウンロードに、復元作業そのものより時間がかかることがあります。
次の場合はオンラインツールが向いています:
- 再利用するノードグラフは不要で、すぐに結果が欲しい。
- カスタムの一括処理ではなく、傷、色あせ、染み、軽いぼけが主な問題である。
- Python依存関係、モデルパス、GPUメモリを管理したくない。
- 技術に詳しくない家族でも使えるシンプルな流れが必要である。
より簡単な作業なら、まずAI古い写真復元から始めてください。目的が明確な場合は、写真の傷を除去、古い写真をカラー化、または古い写真を新しい印象にを使えます。ComfyUIは、これらの段階をより細かく制御したい場合に最適です。
GitHub公式ソースと参考資料
導入前にREADMEとライセンスを読みます。公式の Bringing Old Photos Back to Life、CodeFormer、GFPGAN、Real-ESRGANで役割と要件を確認してください。
Hugging Faceのモデルカードでは、更新日、ライセンス、必要なチェックポイントを確認します。Old Photo Restoration via Deep Latent Space Translationは、単なるシャープ化と損傷復元の違いを理解する参考になります。
よくある質問
派手なデモより確認できる工程を選ぶ
オープンソースAIはモデルとファイルを管理できますが、ライセンス、依存関係、GPU、同一性の変化も自分で確認する必要があります。複製したスキャンで始め、中間結果を保存し、顔と背景を元画像と比べてください。1〜2枚ならオンライン写真復元ツールの方が早い場合もあります。