【画像生成AI】解像度はいくつを目指すべき?
はじめに
こんにちは、きまま / Easygoing です。
今回は、画像生成AIを使う時に気になる、最適な解像度について考えます。


現代のデバイス事情
解像度は高くするほど画像はきれいになりますが、一体いくつを目指せばよいのでしょうか?
まずは、日本で普及している主なデバイスの解像度を見てみます。
iPhone

Android

タブレット

PC
Full HD 1920 x 1080
WQHD 2560 x 1440
4K 3840 x 2160
ppi は Pixels Per Inch の略で、1インチの中にいくつのピクセルが含まれているかを示しています。
人の目の限界は 300ppi と言われているので、スマートフォンの最高解像度は人には認識できない レベルです。
従って、目指すのは タブレットとPCの解像度 になります。
目指すべき解像度のブレークポイント
では、実際にどの程度の解像度を目指せばいいのでしょうか。
全画面表示した時に、画面いっぱいに画像を表示できるブレークポイントは次のようになります。
Full HD:1920ピクセル(長辺)
iPad:2360ピクセル(長辺)
iPad Air:2732ピクセル(長辺)
最大値を決める上限は、利用できる GPU の性能と画像ファイルの容量です。
上の3つの中から、自分の環境にあった値を選びます。
私の場合は、GPUの性能で iPadの解像度(2360ピクセル)を基準にしています。
Stable Diffusion XL の推奨解像度は 1024 x 1024
Stable Diffusion XL は 1024 x 1024 の解像度の画像から学習しています。

従って、画像を生成するときは 1024 x 1024 の解像度で生成すると安定します。
縦横比を変える場合、Stable Diffusion で推奨の解像度は次の通りです。
横長
4:3 1152 x 896
7:5 1216 x 832
8:5 1280 x 832
16:9 1344 x 768
19:10 1408 x 768
縦長
5:7 832 x 1280
2:3 832 x 1248
5:8 832 x 1216
各縦横比の実際の見本は、前回の記事をチェックしてみてください。
推奨解像度を超えると何が起こる?
SDXLの推奨解像度を超えて生成することも可能ですが、注意が必要です。
同じものが二重に作られたり、手足がくっついたりするなど、画像が崩れることがあります。

特に短辺が1024ピクセルを超えると急に失敗が増える傾向があり、ここが一つの限界線だと思います。
高解像度の画像を作成する場合は、まず推奨解像度で画像を生成してから、その後に拡大する方法をおすすめします。
AI画像生成は超解像度が得意
画像の解像度を上げるには、以前は Lanzhos 法などの数学的な計算式を使っていました。
この方法では、ある程度以上解像度を上げると画像がぼやけてしまう欠点がありました。
AI画像生成では、画像を拡大した後にノイズの除去を行うので、出来上がった画像はきれいでボケもありません。

高解像度補助を使う
高解像度化を行うときは、一度生成した画像を image to image に取り込んで行います。
この場合、text to image と image to image の二度手間になってしまいますが、Stable Diffusion にはこれを連続して行ってくれる便利な拡張機能があります。
高解像度補助機能はいくつかありますが、ここでは Stable Diffusion WebUI のデフォルトの Hires.fix の使い方を紹介します。
Hires.fix の使い方
Hires.fix では、次のように倍率を指定することで簡単に高解像度化することができます。

アップスケール倍率で拡大率を指定すると、右上に出力される画像の解像度が表示されます。
その他の設定項目はとりあえずデフォルトのままで構いません。
高解像度化だけ特別な条件で行いたいときは、いろいろな設定を変更します。
アップスケラーの種類と特徴
高解像度化には様々なアップスケラー(拡大アルゴリズム)があります。私が使ってみた中で、おすすめのものをご紹介します。

R-ESRGAN 4x+ Anime6B
アニメ調の画像に特化していて、線画やアニメ風のイラストを拡大するときに優れています。色が濃いめで影が強調されています。

4x-Ultrasharp
実写系の画像に使われることが多いですが、アニメ調の画像でも使えます。よりシャープな結果が欲しい場合におすすめです。

4x_NMKD-Superscale-SP_178000_G
こちらも実写向きです。一つ前の 4x-Ultrasharp と比べて、シャープ感が少なくナチュラルですが、少し平面っぽくなります。

4x-SwinIR-M_Pretrain
これも実写向きです。比較した中では、一番マイルドな印象です。

正直なところ、高解像度化するとどれも美しいです。アップスケラーの選択は、個人の好みになると思います。
最初に紹介した R-ESRGAN 4x+ Anime6B 以外はデフォルトには含まれていないので、別途ダウンロードする必要があります。
ダウンロードリンクは記事の最後に掲載します。
顔がキレイすぎる…
高解像度化によって、きれいな画像を作れるようになりました。
しかし、同時に何か違和感も感じました。
何が原因かしばらく考えてみましたが、おそらく 顔がキレイすぎる のではないかと思いました。
顔のパーツや配置が完璧すぎるのです。
これはAI画像生成のかなり困った問題なので、次回対応策を検討することにします。
まとめ:最適な解像度を見つけよう
今回のまとめです。
SDXLの基本解像度は1024 x 1024
デバイスに応じた目標解像度を設定(Full HD、iPad、iPad Air等)
高解像度化にはHires.fixが便利
アップスケラーは画像の種類に応じて選択
高解像度 ≠ 自然な画像(特に顔)
AIによる高解像度化は画期的で、今までよりずっとキレイに画像を表示することができます。
近い将来、スマホやタブレットのブラウザにもAIが内蔵されて、webサイトを見る時に高解像度化ができる ようになると思います。
次回は、顔がキレイすぎる問題について深掘りしていく予定です。お楽しみに!
