CodeFormer

許可された顔復元でCodeFormerを評価し、忠実度設定、顔の変化、再合成、非商用ライセンスを確認します。

モデル情報と利用方法

モデル名
CodeFormer
利用方法
S-Lab License 1.0の公開コードと公式チェックポイント参照。
モデルの種類
顔復元
アーキテクチャ
学習済み離散コードブックを視覚的事前情報として使うTransformer
対象ユーザー
許可された非商用ポートレートコピーを確認できる画像担当者と開発者。
入力
未変更の原本を保存した、許可済みの顔または全体画像。
出力
復元済み顔クロップと、全体処理では再合成画像。
費用
設定、選択、推論、任意工程、保存、手動確認を測定します。
避けるべき場合
人物特定、証拠復元、元の顔の細部の保証には使用しません。

情報源と評価方法

ライセンスと権利

ライセンス
S-Lab License 1.0
ライセンスの種類
ソースコード公開
ライセンスの適用範囲
条件付きの特定の非商用利用と再配布。商用利用者は貢献者への連絡が必要です。
オープンソース
いいえ

提供状況

状態
提供中
状態の適用範囲
利用可能とは確認済み公開コードと公式チェックポイント参照を指し、サービス稼働や検証済み互換性を意味しません。

要点

確認可能な忠実度制御

0から1の範囲とCLI標準0.5は制御比較に使えますが、普遍的な最良設定ではありません。

顔と全体画像を分離

顔選択、復元クロップ、再合成を別々に確認します。

非商用のプロジェクト条件

S-Lab License 1.0はApache 2.0でも包括的な商用許可でもありません。

利用例と制約

私的な家族用コピーを確認

許可された原本で少数の記録済み設定を比較し、重要な特徴を守ります。

公式処理を調査

バッチ拡大前に原本、検出顔、出力、ログを保存します。

利点

  • 制御比較向けの忠実度の重みが文書化されています。
  • 顔クロップと全体画像を別々に確認できます。
  • 公開コードでfallbackと任意工程を調べられます。

制約

  • 自然な細部でも人物の特徴を変える可能性があります。
  • ライセンスの許可範囲は非商用目的に限定されています。
  • 顔処理が失敗してもファイルが保存される場合があり、資源測定が必要です。

トピック

  • CodeFormer

モデルについて

このページの内容

CodeFormerは、学習済みの視覚的事前情報とTransformerを使って劣化した顔画像を復元します。結果は見やすくなる場合がありますが、生成された顔の細部は元の場面に存在した事実を証明しません。この評価は、元画像を保存し変更点を確認できる、許可された非商用の表示用コピーを対象とします。公式プロジェクトのS-Lab License 1.0は、商用利用を一律に許可するものではありません。

これは情報源に基づく評価であり、画像テストの実施報告ではありません。推論、処理時間、GPUメモリ、ホスト型サービスへの送信は試していません。以下の家族写真の確認手順は提案であり、結果欄は未記入です。

復元後に残すべき特徴を決める

ブラインド顔復元は答えが一つに定まらない再構成問題です。CodeFormerは学習済みの離散コードブックを視覚的事前情報として使い、Transformerでコードを予測します。そのため、自然に見える顔にも、損傷した原本が裏付けない特徴が含まれる可能性があります。CodeFormer研究論文

論文の著者はShangchen Zhou、Kelvin C. K. Chan、Chongyi Li、Chen Change Loyで、Nanyang Technological UniversityのS-Labに所属しています。この帰属は研究資料を特定するものであり、特定用途を推奨するものではありません。

編集前に、頭の向き、口の形、表情、特徴的な印、顔と髪の境界を記録します。スキャン原本は変更せず、派生画像には別名を付けます。鮮明なまぶたや新しく見える歯が、元画像の不確実性を解消するわけではありません。

家族写真では、少し柔らかくても本人と分かる顔と、鮮明でも表情が変わった顔のどちらが目的に合うかを明示的に判断します。本人を知る人は変化に気づけますが、見慣れた顔に見えるという合意も、生成された細部を歴史的事実にはしません。

未知人物の特定、証拠となる細部の復元、顔の真正性の証明には使わないでください。すべての設定で重要な特徴が変わるなら、全結果を不採用にする判断が妥当です。

顔クロップと全体画像の処理を分ける

公式スクリプトは--has_aligned指定時、入力を位置合わせ済みの顔として512 × 512に変更します。未指定時は顔を検出して位置合わせし、各クロップを復元して全体画像へ戻せます。標準検出器はretinaface_resnet50で、--only_center_faceは選択対象を変えます。公式推論実装

最初に意図した顔が選択されたか確認します。集合写真で中央の顔だけに限定すると、重要な人物が除外されることがあります。誤った選択は忠実度の重みを変えても直りません。

復元クロップと再合成結果は別々に評価します。単体では自然でも、鮮明さ、色、髪の境界が周囲と合わなければ貼り付けたように見えます。Real-ESRGANによる背景と顔の強調は別々の任意工程です。リポジトリの利用案内

復元クロップは作業時の縮尺と、全体画像に戻した最終表示サイズの両方で確認します。変化を正しい工程に帰属できるよう、最初は任意のReal-ESRGAN工程を加えません。位置合わせ済み顔と全体画像の例は目的が異なり、同じ評価条件として置き換えることはできません。

同じ原本で忠実度設定を比較する

文書化された忠実度の重みは0から1で、CLIの既定値は0.5です。リポジトリは、小さい値ほど見た目の品質を、大きい値ほど原本への忠実度を重視する傾向を説明しています。普遍的な順位ではありません。入力、顔選択、他工程を固定し、一度に一つの重みだけ変えます。

鮮明さだけでなく、目、口、表情、特徴的な部分を原本と比較します。重みを1にしても変更されないコピーは保証されず、学習済み復元処理は継続します。CodeFormerアーキテクチャ

重みごとに出力先を分け、各画像に値を記録します。すべての設定で重要な特徴が変わるなら全結果を不採用とし、理由を残します。後の拡大やレタッチで同じ不採用の顔を気づかず再導入してはいけません。

ライセンスと実際の入手経路を確認する

公式のS-Lab License 1.0は、条件付きで特定の非商用利用と再配布を認め、商用利用者には貢献者への連絡を求めています。条件には、著作権表示などの通知を保持することと、事前の書面による許可なく貢献者名を派生物の推奨や宣伝に使わないことが含まれます。CodeFormerをApache 2.0や包括的な商用許可として説明してはいけません。公式S-Lab License

閲覧可能なコード、ダウンロード可能なチェックポイント、ホスト型サービスは異なるアクセス形態です。サービス事業者への支払いだけでは、基盤モデルを目的の用途で使う権利が得られたことにはなりません。公開デモも無制限の利用許諾を示すものではありません。商用案件では、顧客への約束に組み込む前に、モデルの許諾とサービス規約をそれぞれ確認します。

公式ダウンローダーは、プロジェクトのv0.1.0リリースにあるcodeformer.pthを参照しますが、このバイナリはダウンロードも監査もしていません。評価記録には、固定したソースリビジョンb33cc7d639d6545bfcccc7e0bc6ae51f24e79c2b、チェックポイントの公式な入手元、実際に取得した場合のローカルチェックサムを残します。同名のミラーを使う場合は、由来を確認せず公式ファイルの代わりにしません。公式チェックポイントダウンローダー

READMEが案内する作者管理のホスト型サービスについても、容量、料金、プライバシー、継続稼働はこの評価では確認していません。家族写真を送信または再配布する前に、入力画像を処理する権利、写っている人物の肖像を公開する許可、任意依存コンポーネントの条件を別々に確認します。必要な権利が不明なら、処理を始める前に解決します。

範囲を限定した家族写真テストを準備する

使用許可のあるスキャンのコピーと、損傷が少ない比較用ポートレートを対照画像として用意します。私的な家族展示などの目的と、認識可能なまま残す特徴を記録します。対照画像は、深刻な損傷に固有の問題か、選んだ検出、位置合わせ、復元、再合成の経路が持ち込んだ問題かを切り分けるためのものです。実行して観察を記録するまでは、測定済みの基準画像とは呼びません。

原本の寸法を保持し、推論前に行った切り抜きや再サンプリングを記録します。

固定した公式リビジョンの手順に従い、隔離した環境を準備します。実際にインストールしたPython、PyTorch、依存関係のバージョン、使用機器、チェックポイントの由来とチェックサムを記録し、入力と出力には分離した明示的なパスを使います。各試行の正確なコマンドと完全なログを保存します。インストール手順は、現在のあらゆるOSや依存関係の組み合わせに対する互換性保証ではありません。セットアップエラー、必要なモデルファイル、未置換のサンプルパスを解決してから画像を比較します。

次のコマンドは未実行です。Real-ESRGANの背景および顔強調は無効ですが、別の標準出力倍率--upscale 2は残ります。

python inference_codeformer.py -i inputs/family-photo.png -o results/family-w0 -w 0
python inference_codeformer.py -i inputs/family-photo.png -o results/family-w05 -w 0.5
python inference_codeformer.py -i inputs/family-photo.png -o results/family-w1 -w 1

実行後は、まず顔選択と位置合わせを確認し、次に各復元クロップを原本と比較し、最後に再合成した全体画像を調べます。採用候補だけでなく不採用の出力も保存します。背景または顔の強調は、許容できる復元を選んだ後に、別の記録付き比較として追加します。

顔ごとの受け入れ表を使う

工程判断保存する証拠
原本見える特徴と不確かな特徴は何か注記付きの未変更スキャン
選択正しい顔が位置合わせされたか検出クロップと写真内の位置
変更表情や識別可能な特徴が変わったか同条件のクロップ、設定、判断記録
再合成目的サイズで自然に収まるか境界を確認した全体画像
納品派生画像と原本を区別できるか別ファイルと復元メモ

大量処理の前に修正予算を決め、確認、不採用出力、手作業の境界修正も含めます。魅力的に見えることだけでは採用できません。

重要な特徴を変えた魅力的な顔は不採用です。一方、慎重な結果は多少のぼけが残っても役立つ場合があります。許容範囲は一般的な鮮明さではなく、対象写真と受取人に合わせて決めます。作業量や修正の所見は、実測するまで空欄のままにします。

最初に誤った中間成果物を探す

スクリプトは顔ごとの復元例外を捕捉し、代わりに入力クロップを保存する場合があります。出力ファイルの存在だけでは推論成功を証明できません。ログ、選択、復元クロップを確認します。

観察最初の証拠制御した次の行動
人物がない選択フラグと検出顔忠実度の重みより先に選択を直す
顔が変わらないログとクロップ対報告された失敗を解決し同じ入力を再試行
表情が変わる同じ縮尺の原本特徴一設定ずつ比較するか全て不採用
貼り付けたように見える全体境界と任意工程強調前に再合成を確認
資源不足サイズ、顔数、機器、設定試験を記録付きで縮小し再計測

この表は診断仮説と確認手順であり、測定済みの失敗率ではありません。変化しない顔をすべて例外処理の結果と決めつけたり、境界問題をすべてアップスケーラーのせいにしたりしないでください。保存したアーティファクトから最初の意味ある差分を特定してから、次の修正を選びます。

作業全体の資源を測る

補助コードは条件に応じてMPS、CUDA、CPUを選べますが、実機での成功を証明しません。この評価では最小VRAM、普遍的な時間、処理能力を測っていません。公式デバイス選択補助

初回ダウンロードと起動を反復推論から分けます。寸法、顔数、検出器、忠実度の重み、任意工程、機器、保存、手動確認を記録します。動画経路は入力フレームと出力フレームをメモリに集めるため、実証済みの制限付きストリームとは説明できません。

動画が必要な場合は、使用許可を得た短いクリップから始め、メモリ使用量に加えて隣接フレーム間の顔を確認します。各フレームが単独では自然に見えても、目、口、表情、輪郭がフレームごとに揺れるなら、人物の見え方が時間方向に安定しているとはいえません。短いクリップの結果を長時間映像の処理能力や一貫性へ外挿しません。

証拠から次の工程を選ぶ

許可されたコピーが許容可能な修正量で完成したら、原本、設定、派生画像を一緒に保存します。そうでなければ、観察された欠陥に応じて次の工程を選びます。顔の特徴が失われているなら顔復元を検討し、顔以外を含む全体の解像感だけが不足するなら通常のアップスケールを分離して試します。傷や欠損が顔の外にあるなら非顔領域の修復を選び、復元クロップは良いのに全体で浮くなら再合成や境界処理を見直します。より良いスキャンや、不確かな細部を作らない限定的な手動レタッチが適切な場合もあります。この評価はCodeFormerとGFPGANの優劣を決めず、ベンチマークを再現していません。

他のカテゴリはモデルディレクトリで確認できます。コレクションやサービスへ広げる前に、権利、実負荷、受け入れ条件を明確にします。