画像生成AIの解像度と縦横比|モデルが学習した大きさ
- 画像生成AIの解像度は、どう決めればいいの?
- 横長の画像を作ったら、建物がおかしくなった
- 画像生成AIで使える縦横比を知りたい
Stable Diffusion を動かすソフトでは、作る画像の幅と高さを数で決められます。しかし、大きさを変えただけで建物の階が増えたように見えることがあり、どの大きさがよいかは画面には出ていません。
この記事では、画像生成AIの解像度と縦横比の意味と、モデルが学習した画像の大きさを解説します。学習した大きさから外したときに、画像がどう変わるかも作例で分かります。
Stable Diffusion のモデルでは、学習した大きさから外すと、質が落ちたり同じ部分がくり返されたりするのが特徴です。
画像生成AIの解像度と縦横比とは

画像生成AIで解像度と言うときは、作る画像の幅と高さを、画素(画像を作る点)の数で表したもののことです。印刷で使う1インチあたりの点の数とは、別の使い方になります。
縦横比は、幅と高さの比のことです。上の図の 768×512 の画像なら、3:2 の横長になります。
幅と高さの数には決まりがあり、画像生成AIのモデルの Stable Diffusion の v1 では、8 の倍数にします。
v1 は、画像を縦と横それぞれ8分の1にした潜在表現(画像を縮めた数の並び)で計算するモデルです。
768×512 の画像は、潜在表現では 96×64 になります。画像生成AIを動かすソフトの ComfyUI 0.37.0 でも、幅と高さの欄は 8 ずつ変わります。
モデルが学習した画像の大きさ

画像生成AIのモデルには、それぞれ学習した画像の大きさがあります。この記事で比べるのは、次の2つのモデルです。
- Stable Diffusion 1.5は512×512
- SDXLは1024×1024と縦横比の組
Stable Diffusion 1.5は512×512
Stable Diffusion 1.5 は、512×512 の大きさの画像で学習したモデルです。Stable Diffusion の最初の版である v1 の系統にあたります。
SDXLは1024×1024と縦横比の組
SDXL は Stable Diffusion の後の版で、SDXL をもとにしたモデルの多くは 1024×1024 で最もよく作れます。
768×768 や 512×512 でも作れますが、結果は 1024×1024 ほどよくありません。
SDXL の学習には、縦横比の違う画像の組も使われました。画素の数を 1024×1024 に近く保ったまま、幅と高さを 64 の倍数で変えた組です。
64 の倍数なら、どれも 8 の倍数でもあるので、v1 の決まりとも食い違いません。
横長の組には、1216×832・1344×768・1536×640(幅×高さ)などがあります。1344×768 は 16:9 に近い横長で、幅と高さを入れ替えた縦長の組も学習に入っていました。
学習した大きさから外したとき

学習した大きさから外すと、画像の質や全体のまとまりが変わります。上の画像は、Stable Diffusion 1.5 で、シード(初めのノイズを決める数)とほかの設定をそろえ、大きさだけを変えた6枚です。
プロンプトには、白い壁の2階建ての家・木のデッキ・庭・昼を英語で書きました。大きさが変わると初めのノイズの大きさも変わるので、どの大きさでも家の形と配置は変わっています。
その中で、学習した 512×512 では、家がまとまって写りました。
Stable Diffusion の v1 で、学習した大きさから外すときに知っておくことは、次の3つです。
- 小さくすると質が落ちる
- 縦横とも大きくすると同じ部分がくり返される
- 縦長・横長は片方を512にする
小さくすると質が落ちる
Stable Diffusion の v1 では、512 より小さくすると、質が落ちることがあります。SDXL でも、512×512 より小さい大きさは勧められていません。
この試しの 256×256 は、家の一部だけが大きく写り、昼と書いたのに夕方のような光になりました。拡大すると、窓や芝がぼやけていました。
縦横とも大きくすると同じ部分がくり返される
Stable Diffusion の v1 では、縦と横の両方を 512 より大きくすると、画像の中で同じ部分がくり返され、全体のまとまりが失われます。
1024×768 のような横長でも、縦横とも 512 を超えれば、この形に入ります。
この試しの 1024×1024 は、2階建てと書いたのに、白い床とバルコニーが4段に積み重なった建物になりました。
ComfyUI 0.37.0 の Empty Latent Image は、作る画像の大きさを決める部品です。
その幅と高さの初めの値は 1024×1024 です。Stable Diffusion 1.5 で使うときは、幅と高さを 512 に直しておく必要があります。
学習した大きさより大きな画像が要るときに使える方法の1つが、画像を大きくするアップスケール(超解像)です。
縦長・横長は片方を512にする
Stable Diffusion の v1 で縦長や横長の画像を作るときは、片方を 512 にして、もう片方を大きくするのがいちばんよい方法とされています。
この試しでは、1024×512 は横に長い2階建ての家がまとまって写りました。1536×512 は横にとても長い家で、窓と部屋が横にいくつも続いています。
縦長の 512×768 では、片方が 512 でも、2階建てと書いた家が3つの階の家になりました。
学習した大きさに合わせて画像の大きさを決めよう

Stable Diffusion のモデルには学習した画像の大きさがあり、そこから外すと画像が変わります。この記事で解説したことは、次の4つです。
- Stable Diffusion 1.5 は 512×512、SDXL は 1024×1024 と縦横比の組で学習した
- 小さくすると質が落ちることがある(v1・SDXL)
- 縦横とも大きくすると同じ部分がくり返される(v1)
- 縦長・横長は片方を 512 にする(v1)
モデルを配る頁の説明(モデルカード)で学習した大きさを確かめてから、幅と高さを決めてみてください。
あわせて読みたい
- 「潜在空間とVAE|画像を小さく縮めた計算」(準備中) — 画像を8分の1の潜在表現に縮めて計算する仕組みを知りたいとき
- 「アップスケールと超解像|画像を大きくする仕組み」(準備中) — 作った画像を、学習した大きさより大きくする方法を知りたいとき
- 「UNetとDiT|モデルの骨組みの違い」(準備中) — Stable Diffusion 1.5 や SDXL と、新しいモデルの作りの違いを知りたいとき
- ComfyUIの画像の大きさとバッチ|Empty Latent Image・バッチでの生成 — ComfyUI で画像の幅と高さを決める操作を知りたいとき
会員登録(無料)
記事やテーマのお気に入り・学習履歴・フォローが使えます。
この記事について
PERSC編集部が、建築の制作に関わる知識を実務目線で整理しています。内容は公開・更新日時点の情報にもとづきます。誤りや古い情報にお気づきの場合はお問い合わせよりご連絡ください。