顔修復モデルは、傷んだポートレートを鮮明にできる一方で、気づかないうちに本人の顔つきまで変えてしまいます。まず試すなら、自然な補正を手早く行いたい場合はGFPGAN、本人らしさをどこまで残すか細かく調整したい場合はCodeFormerが有力です。2026年の新しい論文では、参照画像を使う手法や拡散モデルベース、エッジデバイス向けの軽量モデルが登場していますが、現時点ではどれも既存の2モデルをそのまま置き換えられる段階ではありません。
モデル名ではなく、まず劣化の状態で選ぶ
顔修復は、単純なアップスケールとは別の処理です。超解像モデルは画像全体を拡大し、失われたテクスチャを推定します。一方、ブラインド顔修復モデルは学習済みの顔の特徴も利用し、元画像には残っていない可能性がある目、肌、髪などを再構成します。そのため、見た目は自然になりやすい反面、本人らしさがずれるリスクもあります。
| 入力または目的 | まず試すモデル | 理由 | 主な確認ポイント |
|---|---|---|---|
| 特徴が分かる、少しぼやけたポートレート | GFPGAN | 公式比較では、v1.3は自然な仕上がりで、比較的高品質な入力にも使いやすいと説明されている | 肌だけがきれいになり、ほくろや髪の質感は残っているか |
| 顔が非常に小さい、または大きく劣化している | CodeFormer | wで、どの程度の再構成を受け入れるか調整できる | 新しく生成された目や口が、本当に本人のものに見えるか |
| 実在の人物で、似ていることを最優先したい | 高めのwでCodeFormer | 一般にwを高くすると入力画像への忠実度が上がる | 生成された顔より、多少ぼやけた元画像のほうが適切ではないか |
| 顔だけでなく背景も傷んでいる | 背景補正を有効にしたCodeFormer、または画像全体用のアップスケーラー | CodeFormerは顔以外の領域をReal-ESRGANに処理させられる | 顔と背景の境界や髪の毛が不自然になっていないか |
| 顔の修復より、画像全体の拡大が目的 | Real-ESRGAN | 主用途は画像全体の復元・アップスケールで、顔補正はオプション扱い | 顔補正によって、元からある有用なテクスチャまで上書きされていないか |
| モバイルや組み込み機器でリアルタイム推論したい | CFRNetを確認 | 論文では256×256のコンシューマー向けNPUを対象としている | 公開済みで、継続的にサポートされるチェックポイントがあるか |
慎重に進めるなら、手を加えていない元画像を保存し、コピーを修復します。拡大後の見た目だけで判断せず、まず顔を100%表示して比較しましょう。
単純な早見表だけでは決められないケース
軽いぼけや、AI生成画像に生じた小さな崩れなら、大きく作り直さずに整えたいときはGFPGANから試すのが無難です。顔が歪んでいる、極端に小さい、あるいは激しく劣化している場合は、忠実度の設定によってトレードオフを確認できるCodeFormerのほうが、最初の実験には向いています。
スキャン画像全体に入った傷や退色は、顔修復とは別の問題です。GFPGANとCodeFormerは顔を主な対象とするため、顔と背景を分けて処理し、最後に生え際、眼鏡、合成後の粒状感を確認してください。複数の顔や特殊なアクセサリーがある場合は、使用するラッパーに機能があれば、位置合わせ済みの顔や中央の顔だけを処理するオプションも試します。
鮮明になった結果を、そのまま「復元された証拠」と呼んではいけません。元画像から画素が失われている場合、モデルが行っているのは、もっともらしい顔の推定です。家族写真のアーカイブはもちろん、法務、報道、本人確認に関わる用途では、この違いが特に重要になります。
GFPGAN、CodeFormer、2026年の研究は成熟度が違う
GFPGANとCodeFormerは、正式に公開されたオープンソースの研究実装です。公式のGFPGANリポジトリには、Python 3.7以降、PyTorch 1.7以降、事前学習済み重み、コマンドライン推論の手順が記載されています。CodeFormerリポジトリでは、ローカル推論、画像全体と動画の処理、0から1までの忠実度ウェイトが案内されています。
以下で紹介する2026年のプロジェクトは、同等の製品やホスティングサービスというより、研究の方向性を示すものです。リンク先の論文からは、ダウンロード可能なワークフロー、実運用向けAPI、明確なライセンス、予測可能な料金体系をすべて備えているとは確認できません。
| プロジェクト | 新しい点 | 論文で示されている根拠 | 現時点での見方 |
|---|---|---|---|
| CFRNet | 固定点演算子として学習した、パラメータ数2.0MのResNet系修復モデル | HiSilicon Hi3402 NPU上でINT8の1サイクルが23 ms、300枚のテストセット | 2026年6月5日投稿。GFPGANの代替として実証されたわけではない |
| HDRFace | 劣化入力と中間修復結果から高次元表現を作る | SD V2.1-baseとQwen-Imageで実装 | 2026年5月14日投稿。ソースにはホスティングAPIや価格の記載がない |
| IConFace | 同一人物の参照画像を最大3枚まで任意で条件付けに利用できる | 参照画像との互換性に関する優位性と、人手監査による本人同一性ベンチマークを報告 | 2026年8月5日改訂。参照画像を使うワークフローとして有望だが、すぐ使える標準モデルではない |
GFPGANが得意なことと、顔を変えてしまう場面
GFPGANは、公開手法でStyleGAN2ベースの事前学習済み顔先験を含む生成モデルの知識を使い、劣化した顔を修復します。公式READMEでは、v1.3はより自然な結果を出し、非常に低品質な入力にも対応しやすいと説明されています。ただし、v1.3が常にv1.2より優れているわけではなく、本人らしさがわずかに変わる場合があるとも警告されています。GFPGANのライセンスはApache License 2.0です。
公式のバージョン比較は、数値ベンチマークではなく定性的な評価です。v1.2はよりシャープですが不自然になることがあり、v1.3はより自然な一方で、シャープさはそれほど高くないとされています。元の顔の形がおおむね保たれている画像なら、GFPGANは最初の一手として使いやすいモデルです。ただし、CodeFormerのように本人らしさと再構成の強さを明示的に切り替えるダイヤルはありません。
CodeFormerの忠実度ウェイトで調整できること
CodeFormerは、ブラインド顔修復にコードブック検索トランスフォーマーを使います。中心となる設定が忠実度ウェイトwで、ドキュメント上の範囲は[0, 1]です。論文では、wを小さくすると見た目の品質が高い結果になりやすく、大きくすると入力された本人の顔つきや内容への忠実度が高くなると説明されています。
wは品質を単純に上げ下げするスライダーではなく、トレードオフを調整する値です。低くすると細部を生成してより整った顔になりやすい一方、高くすると元画像を忠実に残し、ぼけや圧縮ノイズなどの劣化も見えたままになります。CodeFormerの画像全体モードでは、修復した顔をシーンに戻して合成しますが、READMEでは顔と背景の境界で髪の質感が損なわれる可能性も注意されています。
CodeFormerはNTU S-Lab License 1.0で提供されています。ホスティングされたエンドポイントとリポジトリの条件が同じとは限らないため、再配布や商用組み込みを行う前にライセンスを確認してください。
公開ベンチマークで分かること、分からないこと
公開された有用なデータはありますが、あらゆるモデルと劣化パターンを対象にした、2026年時点の決定版となる総合ランキングはありません。反復拡散による顔修復を扱った2023年のICCV論文では、ほかのベースラインとともにGFPGANとCodeFormerがCelebA-HQで評価されています。
合成劣化を使った表の一つでは、次の数値が報告されています。
| モデル | PSNR | ArcFace本人同一性スコア |
|---|---|---|
| GFPGAN | 26.95 | 0.59 |
| CodeFormer | 25.70 | 0.75 |
| IDM、同論文の手法 | 27.42 | 0.87 |
これらは特定の評価プロトコルに基づく数値であり、2026年の普遍的な順位ではありません。同じ論文でも、独自のデータセット、劣化処理、実装、評価方法が使われています。新しい修復モデルが「本物らしさ」を重視する理由を理解する材料にはなりますが、手元の家族写真で最良の結果になるモデルまで予測するものではありません。
プラスチックのような顔を避けるパラメータ調整
いわゆる「プラスチック顔」は、修復の強さ、本人らしさの保持、合成処理を一つの設定だけで決めようとすることで起こります。これらは本来、別々に判断すべき要素です。
CodeFormerで試しやすい設定の目安
画像やモデルを変える前に、同じ入力を次の3段階で処理して比較してみましょう。
wの範囲 | 期待できる傾向 | 向いている場面 |
|---|---|---|
0.3–0.5 | 再構成が強くなり、生成されたディテールも増える | 目や口が大きく崩れており、すでに本人らしさの判定が難しい |
0.5–0.7 | 見た目の改善と入力への忠実度の中間 | まず全体的に比較したい |
0.8–1.0 | 元画像に近く、元の劣化も多く残る | 最大限のシャープさより、本人らしさを優先したい |
この範囲は、ドキュメントに示されたトレードオフをもとにした目安であり、すべてのラッパーで同じ結果になる保証はありません。CodeFormerのREADMEでは、位置合わせ済みの顔の修復にw=0.5、画像全体の補正にw=0.7、動画コマンドの例にw=1.0を使っています。
結果が蝋人形のように見えるなら、まずwを高くして比較します。ホスト側に設定があれば、顔の表示量やブレンドを弱め、元画像の周囲を広く含むクロップも試してください。修復した部分がシャープでも、元のテクスチャを一部戻してブレンドすると、貼り付けたような印象を抑えられる場合があります。
処理結果を比較するときのチェック項目
- 本人らしさ:目の間隔、鼻の幅、口の形、輪郭、特徴的なほくろや傷。
- 質感:毛穴、そばかす、ひげの剃り跡、髪の毛、フィルム粒子。
- アクセサリー:眼鏡、イヤリング、帽子、顔にかかる髪。
- なじみ方:照明、色、粒状感、顔と背景の境界。
- 再現性:2回目の処理で、顔つきがさらに変わっていないか。
GFPGANには、CodeFormerのwに相当する設定はありません。モデルのバージョンや顔の表示量・ブレンドに関する設定を控えめに使いましょう。公式リポジトリではv1.3を2回実行できると説明されていますが、繰り返し修復はあくまで実験として扱うべきです。2回目で本人らしさやテクスチャが変わるなら、1回目の結果を採用してください。
ローカル実行は自由度が高いが、依存関係は古め
ローカル推論なら画像を自分のマシンから外に出さずに済みます。その代わり、Python、PyTorch、モデルの重み、CUDA、顔検出用パッケージ、ファイル権限の管理を自分で行う必要があります。
GFPGANをローカルで動かす
公式リポジトリには、独自のCUDA拡張を必要としない、比較的シンプルな構築手順が掲載されています。
git clone https://github.com/TencentARC/GFPGAN.git
cd GFPGAN
pip install basicsr
pip install facexlib
pip install -r requirements.txt
python setup.py develop
wget https://github.com/TencentARC/GFPGAN/releases/download/v1.3.0/GFPGANv1.3.pth \
-P experiments/pretrained_models
python inference_gfpgan.py -i inputs/whole_imgs -o results -v 1.3 -s 2
READMEではPython >=3.7とPyTorch >=1.7が必要とされています。NVIDIA GPUとCUDAは、記載されている構成では任意の選択肢です。このコマンドは、フォルダー入力、最終的な拡大率、背景アップサンプリング、中央の顔だけを処理するモード、位置合わせ済みの顔、自動的な拡張子処理に対応しています。
CodeFormerをローカルで動かす
CodeFormerの公式環境構築は、GFPGANより手順が多くなります。
git clone https://github.com/sczhou/CodeFormer
cd CodeFormer
conda create -n codeformer python=3.8 -y
conda activate codeformer
pip3 install -r requirements.txt
python basicsr/setup.py develop
python scripts/download_pretrained_models.py facelib
python scripts/download_pretrained_models.py CodeFormer
リポジトリではPyTorch >=1.7.1とCUDA >=10.1が必要とされています。dlibは検出器と顔クロップ処理で任意に使われ、公式に案内されているWindowsおよびMacの動画処理にはFFmpegが必要です。
512×512の位置合わせ済み顔を処理する公式例は次のとおりです。
python inference_codeformer.py -w 0.5 --has_aligned \
--input_path inputs/cropped_faces
画像全体の補正では、READMEは-w 0.7を使い、必要に応じて--bg_upsampler realesrganと--face_upsampleを追加しています。リポジトリには、信頼できるVRAM容量、処理枚数、レイテンシの要件が公開されていません。最低限必要なハードウェアを断定せず、実際に使う環境で検証してください。
API料金と組み込み方の選択
ホスティング推論は試作を始めやすい一方、料金とライセンスは別々に確認する必要があります。
ホスティングサービスの料金表
公式のGFPGANのReplicateページ、CodeFormerのReplicateページ、Real-ESRGANのReplicateページには、おおよその料金が掲載されています。料金は2026年9月1日に確認したものです。2つの顔修復モデルでは、Nvidia L40S上で通常3秒以内に完了すると説明されていますが、入力によって見積もりは変わります。
| ホスティングモデル | 掲載料金 | $1で実行できるおおよその回数 |
|---|---|---|
tencentarc/gfpgan | $0.0020/回 | 500 |
sczhou/codeformer | $0.0028/回 | 357 |
nightmareai/real-esrgan | $0.0020/出力画像 | 500 |
CodeFormerのReplicateページには、そのAPI版は商用利用できないと明記されています。これは同ページのホスティング構成に対する説明です。別のプロバイダーを使う場合は、提供元の利用条件を個別に確認してください。
falのCodeFormer APIドキュメントでは、エンドポイントが商用利用向けとされ、デフォルト値0.5のfidelity、デフォルト値2のupscale_factor、顔のアップスケール、位置合わせ、中央の顔の選択、シードを設定できます。料金は公開されていないため、falの料金をReplicateの見積もりから推測しないでください。
最小構成のホスティング実装
falのドキュメントでは、JavaScriptクライアントを使った次のワークフローが示されています。
import { fal } from "@fal-ai/client";
const result = await fal.subscribe("fal-ai/codeformer", {
input: {
image_url: "https://example.com/input.jpg",
fidelity: 0.7,
upscale_factor: 2,
face_upscale: true
},
logs: true
});
console.log(result.data);
処理時間が長いジョブ向けに、同じドキュメントではキューへの投入、ステータスのポーリング、結果取得、Webhookコールバックも案内されています。FAL_KEYなどのプロバイダーキーは、ブラウザーやモバイルアプリのコードに埋め込まず、サーバー側で管理してください。
実際に使うと直面しやすい問題
取得したユーザースレッド、環境構築の報告、アップスケール時のエラー報告を見ると、見た目は改善したものの別人のようになったというケースや、ローカル連携時のエラーが報告されています。いずれも管理されたベンチマークではなく、実際の利用者によるワークフロー上の報告です。
「CodeFormerは顔を直すというより、顔そのものを『発明』する傾向があると感じます」— u/TheMemo、r/StableDiffusion
実運用での教訓は明快です。実際に処理する画像に近い顔で出力を比較し、バッチ処理では環境を固定しましょう。
FAQ:GFPGANとCodeFormerの顔修復
古い写真にはGFPGANとCodeFormerのどちらが向いていますか?
目安としては、顔の特徴が分かっていて自然に整えたいならGFPGAN、劣化が激しい、または本人らしさを細かく調整したいならCodeFormerから始めます。
本人らしさを残すには、CodeFormerの忠実度をいくつにすべきですか?
wを高くすると入力への忠実度が上がり、低くすると、よりきれいだが生成要素の多い結果になりやすくなります。0.5、0.7、0.9を比較し、目が最もシャープな結果ではなく、特徴的な部分が残っている出力を選びましょう。
アップスケールの前に顔を修復すべきですか?
実用上は、まず画像のコピー上で顔を修復し、仕上がった画像を後からアップスケールする流れがおすすめです。Real-ESRGANで顔補正も同時に行うような構成は例外ですが、その場合も本人らしさと顔・背景の境界を確認してください。
完全にぼけて失われたディテールを復元できますか?
撮影時に記録されていなかった情報を、どのモデルでも確実に取り戻すことはできません。GFPGANやCodeFormerはもっともらしい顔のディテールを生成できるため、目や口が鮮明になったからといって、元の細部が復元された証拠にはなりません。
2026年の新モデルはGFPGANやCodeFormerを置き換えられますか?
紹介した論文は、エッジでの推論、高次元の条件付け、同一人物の参照画像といった重要な方向性を示しています。ただし、現時点では、ローカル実行とホスティングの両方について同じレベルのドキュメントがそろった、広く利用できる代替モデルとはいえません。
CodeFormerのReplicate APIは商用利用できますか?
CodeFormerのReplicateページには、API版は商用利用できないと記載されています。元のリポジトリには独自のNTU S-Lab License 1.0が適用され、別のプロバイダーでは異なる条件が設定されている可能性があります。
実用上の選択は「生成する力」と「制御」のトレードオフ
代表的なクロップを3種類用意します。軽いぼけ、強いぼけ、傷のある低解像度ポートレートです。GFPGANと、w=0.5、0.7、0.9のCodeFormerを実行し、すべての出力の横に元画像を並べます。本人らしさに関わる特徴が変わった結果は採用しないでください。背景まで修復したい場合は、画像全体の拡大処理を別のアップスケーラーに任せます。
次のステップとして、Real-ESRGANのダウンロードとGUIの使い方、または無料AI動画アップスケーラーのガイドも参考にしてください。