AI で高画質化すると顔が別人になる問題
生成系の高画質化は元の画像に無かったディテールを作り出します。顔が別人として戻ってくるのはそのためです。
写真を拡大したら、驚くほど鮮明な結果が返ってきて、そこに写っている人が自分の知っているその人ではない。これはツールの不具合ではありません。その種類のツールがやっていることそのもので、違いが分かれば、どちらを使うべきかも決まります。
同じ名前で呼ばれている、別の仕事
「AI 高画質化」は、まったく振る舞いの異なる 2 つの方式をまとめて指しています。
生成系。 学習した画像をもとに、もっともらしいディテールを作り出します。ぼやけた頬を渡されると、どこかの誰かの顔でなら説得力のある肌の質感を作ります。結果は鮮明に見えます。しばしば劇的に。
復元系。 残っている周囲の構造から、元の画素が何であった可能性が最も高いかを推定します。同じ頬を渡されると、そのにじみが示唆する範囲を復元して、そこで止まります。結果は控えめです。
風景ならこの違いはあまり問題になりません。作られた葉も葉には見えます。顔では決定的です。 顔は、見る人が記憶している特定の配置だからです。目の間隔が少しずれれば、それは別人になります。
顔がいちばん激しく壊れる理由
人間の知覚は顔に対して並外れて敏感です。目の位置が 1〜2 画素ずれる、口角の形が変わる、小鼻の幅がわずかに違う。何が変わったか言葉にできなくても、即座に違和感として登録されます。
しかも、劣化した顔から得られる情報は異常に薄い。集合写真の中で 40 画素ほどしかない顔には、そもそも本人性を担うディテールが含まれていません。生成系のモデルは作り出す先の手がかりを持てず、代わりに統計的に平均的な顔を埋めます。出てくるのは、鮮明で、自信に満ちた、もっともらしい他人です。
作り出してはいけない場面
- 実在の人物の写真。 特に、本人が結果を見る場合。
- 家族写真や記録写真。 記録であること自体が目的だから。
- 記録性・証拠性のあるもの。 生成されたディテールは、カメラの前に何があったかについての虚偽の記述です。
- 設定を崩せないキャラクターの絵。 領域は違いますが同じ問題です。
これらすべてにおいて、少し甘いままの結果のほうが、鮮明で間違った結果より優れています。
保守的な結果を得る
- Pixmend を開いて画像をドロップします。ここで使っているのは Real-ESRGAN 系のモデルで、生成ではなく復元を行います。
- x4 ではなく x2 を選びます。倍率が小さいほど、推定させる量が減ります。
- 内容にモデルを合わせます。写真なら写真向けモデルを。
- 等倍で見比べ、特に目、口角、鼻を見ます。
それでも顔が正しく見えないなら、役に立つ結論は「設定を強める」ではありません。そのディテールがファイルに入っていないということです。別の元画像を用意する以外に、本当の解決はありません。
顔が変わったかを確かめる方法
処理前後を同じ表示サイズで並べ、鮮明さではなく関係を見てください。目と目の距離、鼻に対する口の幅、輪郭の形。鮮明さは目を引き、本人性のずれを覆い隠します。生成された結果が一目では説得力があり、二度見ると落ち着かないのは、まさにこのためです。
その人を知っている人なら一目で気づき、たいていは何がおかしいのかをうまく説明できません。その反応自体が信号です。
何と引き換えにしているか
復元系のモデルは、生成系なら鮮明にしたであろう顔を、甘いまま残すことがあります。それが取引です。はっきり書けば、大きくて作り物の改善ではなく、小さくて正直な改善を受け取っているということです。
どちらが正しいかは用途によります。背景の質感なら、作り出すことは無害で、むしろ望ましいことも多い。人物なら、鮮明なほうは存在しない人の絵であり、画質がどれだけ上がっても、それがより良い結果になることはありません。