AIの拡大は、失われた細部を本当に戻せるのか
短い答えは「いいえ」です。長い答えのほうが役に立ちます — もっともらしく見える細部を作り出しているのであって、それが助けになるかは、その画像の何が悪かったかで決まります。
更新
モデルが実際にしていること
普通の拡大は隣の画素を平均します。ないものは作れないので、結果はより大きくよりぼやけた同じ絵です。決して鮮明にはなりません。
拡大モデルは別のことをします。大きな絵とそれを縮めた片割れを何百万組も見て、縮んだまつげ・レンガ・織り目がどう見えるかを覚えます。そして小さな絵を受け取り、もっともらしい大きな絵を書き出します。
ここで働いている語は「もっともらしい」です。足された細部は取り戻されたものではありません — 絵を小さくしたときに捨てられた情報は消えており、戻ってきません。返ってくるのは、そこにおそらくあっただろうものに似た、自信のある推測です。
普通の拡大に負けるところを計測しました
1896年のパブリックドメイン写真を240ピクセルに縮め、モデルと通常の高品質リサンプリングでそれぞれ4倍に拡大して比べました。
モデルが負けました。写真の中の格子柄の布地は織り目が丸ごと消え — モデルがその細かく規則的な模様を雑音と読んで均してしまったのです — 顔は蝋のようになりました。普通の拡大のほうがぼやけてはいても原本に忠実でした。
そして明確に勝つところも計測しました
同じ写真を品質35のJPEGでいったん保存してから — インターネットを回っている画像のかなりの数がだいたいこの状態です — 同じ比較をやり直しました。今度はモデルが大差で勝ちました。四角く潰れた圧縮の跡が消え、輪郭が戻ってきたのです。
この系統のモデルが拡大ではなく破損の修復のために作られているからです。雑音と読んだものを消します。圧縮によるブロックは雑音なので消えて絵が良くなります。フィルムの粒子や細かい織り目も雑音と読まれるので一緒に消え、絵が悪くなります。
ここから使える基準が出ます。手元の絵の問題が圧縮・スクリーンショット・保存し直しで潰れたことなら、モデルは助けになります。問題が単に小さいことだけで原本がきれいなら、普通の拡大のほうが正直な結果かもしれません。
サイズの上限は適当に決めたものではありません
幅を4倍にすると画素は16倍になります。100万画素を入れると1600万画素が出てきて、その画素ひとつひとつが複製ではなくニューラルネットワークの生成物です。
だから入力サイズに上限があり、超えたらとりあえず試させる代わりにボタンを止めて理由を書きます。タブを数分凍らせた末に何も出せないのが最悪の結果で、上限がなければ実際にそうなります。
2倍は2倍を直接作る代わりに、4倍で作ってから半分に縮めて作ります。作り出された細部が縮む過程で整うので結果が良くなります。時間は同じです — 高い計算はどちらにせよ済んでいるからです。
いちばん鮮明なモデルが正しいモデルではありません
ライセンスが使える候補を二つ比べました。トランスフォーマー側は目に見えて鮮明ですが、128×128の絵に9.7秒かかりました。浅い畳み込み側は512×512の絵に16.5秒 — 画素は16倍です。画素あたりに換算するとおよそ60倍の差になります。
グラフィックカードが遅いほうを救ってもくれません。ここではWebGPUがCPUより約3.4倍でした。多くの人が期待する20倍や50倍ではありません — シェーダーのコンパイルとデータの転送に実際の時間がかかるからです。3倍は意味がありますが、CPUで使えないモデルはGPUでもたいてい使えません。
つまり鮮明なほうは誰も待ってくれないモデルで、実際に載っているのは最後まで回るモデルです。このサイトのモデルはすべて同じ基準で選んでいます。
アップロードせずに、いま試す
ドラマのようにナンバープレートを読めますか。
読めません。そしてこれがこの道具でいちばん大事な点です。文字がすでに消えているなら、モデルは鮮明で自信のある間違ったものを作り出します。もっともらしく収まるものを生成する物なので、事実である必要のある用途にはまさに向きません。
結果が蝋のようにのっぺりしました。
原本がきれいだったからです。モデルは雑音と読んだものを消しますが、フィルムの粒子・肌の質感・細かい織り目がすべてそう読まれます。修復すべき圧縮の傷がない原本なら、普通の拡大のほうが良い選択であることが多いです。
どれくらい大きな画像まで拡大できますか。
入るほうが100万画素ほどまでです。4倍にするとそれが1600万画素で出てくるからです。それより大きいと数分かかり、タブのメモリが尽きることがあるので、途中で失敗する代わりにあらかじめ断ります。