Stable Diffusionの画像サイズの変更方法まとめ!高解像度化・アスペクト比の変更方法

「Stable Diffusionを使っていて、画像サイズやアスペクト比を変更したいけど方法が分からない…」「高解像度の画像を生成したいけど、どうすればいいの?…」 そう思う方もいるのではないでしょうか。

今回PROMPTYでは、Stable Diffusionを使って画像サイズの調整や、高解像度の画像生成方法、さらにはアスペクト比が簡単に変更できる機能について詳しくご紹介します。

Stable Diffusion WebUIの利用方法を知りたい場合は、こちらの記事をご覧ください。

関連記事

「Stable Diffusionを使用したいが、どのように始めれば良いのだろう...」「低スペックPCでもStable Diffusionを使用できるの?...」 そう思う方もいるのではないでしょうか。 実は、高性能なPCを持っ[…]

Stable Diffusionで生成する画像サイズを変更する方法

Stable Diffusion Webuiのautomatic1111では、赤枠の「Width」と「Height」で画像サイズの調整できます。

WidthとHeightをスライドして変更する、または数値を直接入力することで、生成する画像サイズを設定できます。

「Hires.fix」で高解像度の画像を生成する

「Stable Diffusionで高解像度の画像生成するとき、下のように破綻した画像が出力されてしまう…」といった悩みを解消してくれるのが「Hire.fix」です。

「Hire.fix」を使わずに1440×1440の画像を生成した場合:

Hires.fixは、Stable Diffusion WebUIのオプションであり、高解像度の画像生成における構図の破綻を軽減する目的で設計されています。

一般的な方法で高解像度の画像を作成すると、一人のキャラクターが複数に分裂するといった意図しない結果が生じることがよくありますが、Hires.fixの利用により、そういった事象が起こる確率を低減できます。

①「Hire.fix」の使い方

「Hires.fix」の機能をオンにする方法は、txt2imgタブの画面の左下で”Hire.fix”にチェックを入れるのみです。チェックを入れることで、新たに設定項目(赤枠部分)が出現します。

各パラメータの設定について説明します。

Upscalerは高画質化するときに使用されるアルゴリズムで、どのUpscalerを選ぶかによって画像の質が変化します。どれを選ぶかは人それぞれですが、「None(Upscalerを使わない)」を選ぶのだけは避けてください。

Hires stepsは、拡大したイラストから画像生成する際のステップ数を設定します。デフォルト値は「0」であり、これでも問題ないですが、少し数値を減らしてもイラストの品質は低下しないと考えられています。

Denoising strengthは、ノイズを除去する度合いを設定します。これは生成するイラストの品質に大きく影響します。数値が小さいと、元のイラストを尊重する傾向がありますが、大きいと原イラストを無視した結果が生じます。Denoising strengthは0.5~0.6が妥当とされています。

Upscale byは拡大比率を設定します。最終的に生成したいイラストの大きさに応じて数値を設定します。ただし、大きすぎるとイラストが壊れやすくなります。特に「4」以上は時間もかかり、推奨されません。

Resize width toは、元のイラストの比率を変更したい場合に使用します。ただし、比率を変更すると、作品の構成が変化する可能性があります。

②「Hire.fix」での画像生成の仕組み

A convenience option to partially render your image at a lower resolution, upscale it, and then add details at a high resolution. By default, txt2img makes horrible images at very high resolutions, and this makes it possible to avoid using the small picture’s composition. Enabled by checking the “Hires. fix” checkbox on the txt2img page.

和訳:
画像を部分的に低解像度でレンダリングし、それをアップスケールして、高解像度で詳細を追加する便利なオプションです。デフォルトでは、txt2imgは非常に高い解像度で恐ろしい画像を作るので、これによって小さな画像の構図を使わないようにすることが可能になります。txt2imgページの「Hires.fix」チェックボックスのチェックで有効になります。

引用元:AUTOMATIC1111/stable-diffusion-webui

Hires.fixでの画像生成プロセスをまとめると、

  • STEP1:基本サイズで画像を作成する
  • STEP2:作成した画像を拡大する
  • STEP3:粗く拡大された画像をimg2imgできれいに補正する

という通常の画像生成と異なる手順で画像生成することで、画像の破綻を防いでいます。

③「Hire.fix」の効果

今回は720×720の画像を1440×1440の画像に変えて「Hire.fix」の効果を検証します。

プロンプト:

masterpiece,high quality,1 girl,black hair,head on,school,detailed face

ネガティブプロンプト:

worst quality,low quality,nsfw,flat color,flat shade,sketch,interlocked fingers,skin blemishes

モデル:AnythingV5

Sampling method:Euler a
Sampling steps:20
Width:512
Height:512
Batch count:1
Batch size:1
CFG Scale:7
Script:None

元の画像(720×720):

Seed値は同じでも、「Hire.fix」をオフにして1440×1440の画像を生成します。

生成された画像:

このように、破綻した画像が生成されてしまいます。

次に、「Hire.fix」をオンにして1440×1440の画像を生成します。パラメータは次の通りです。

生成された画像:

画風は少し変わってしまいましたが、きちんと高解像度の画像を生成することができました。

「Aspect Ratio selector」で画像のアスペクト比を変更する

Stable Diffusionで画像生成するとき「16:9の画像を生成したいがいちいち計算するのに手間がかかる…」といった悩みを解消してくれるのが「 Aspect Ratio selector」です。

「Aspect Ratio selector」のメリットは、画像のサイズを一クリックで変更できることです。WidthやHeightの数値を基準に自動でアスペクト比に設定を変えたり、事前に設定されたサイズに変更することも可能です。また、ユーザー自身がボタンをカスタマイズすることも可能です。

①「Aspect Ratio selector」の導入方法

Stable Diffusion WebUIでは、簡単に「Aspect Ratio selector」を導入することができます。

「Aspect Ratio selector」のインストールはwebUIのExtensionsメニューから行います。

Availableタブの「Load From」をクリックします。

「Aspect ratio selector」を検索して、「Install」をクリックします。

インストール後、Web UIを再起動すると「Aspect ratio selector」を使用できます。

②「Aspect Ratio selector」の使い方

「Aspect ratio selector」をインストールするとtxt2txtタブの下部にボタンが追加されます。ここから画像サイズを変更することができます。

赤枠のボタンは、Hightの値を基準にして、選択したアスペクト比で画像サイズを計算してくれます。

Width=512、Hight=512の状態から、アスペクト比16:9を選択します。

Hight=512を基準として、アスペクト比16:9になる画像サイズが自動で設定されました。

青枠の”1″,”2″,”3″のボタンは固定解像度のボタンになっています。

デフォルトでは次のように設定されています。

  • 1:Width:512 x Hight:512
  • 2:Width:768 xHight:512
  • 3:Width:403 x Hight:716

③ ボタンをカスタムする方法

「Aspect Ratio Calculator」では、設定ファイルを直接修正することでボタンをカスタムすることができます。

アスペクト比を設定するボタンをカスタム

「stable-diffusion-webui」→「extension」→「ssd-webui-ar」のパスにある「aspect_ratios」テキストファイルを編集することで、アスペクト比設定ボタン(1:1、4:3など)を変更できます。

このファイルを修正すると、アスペクト比設定ボタンの内容を変更できます。

例えば、次のように記述することで、新しいアスペクト比ボタンを追加することが可能です。#以降は注釈です。

9:16, 9/16 # Set width based on 9:16 ratio to height

ファイルを上書き保存した後、Stable Diffusion WebUIを再起動すると、変更内容が反映されます。

変更後:

固定解像度のボタンをカスタム

固定解像度ボタンの追加・修正は、「stable-diffusion-webui」→「extension」→「ssd-webui-ar」のパスにある「resolutions」ファイルから行います。初期設定では3つのボタンが記録されていますが、この場所に新たなボタンを追加することができます。

このファイルを修正すると、固定解像度ボタンの内容を変更できます。

例えば、次のように記述することで、新しい固定解像度ボタンを追加することが可能です。

4, 640, 480 #original

上書き保存した後にStable Diffusion WebUIを再起動すると、新たに設定したサイズが反映されたボタンが追加されます。

変更後:

まとめ

今回PROMPTYでは、Stable Diffusionで生成する画像サイズの変更方法、高解像度の画像の生成方法、そしてアスペクト比の変更方法について紹介しました。

これらの手法を使うことで、あなたのStable Diffusionでの画像生成に幅広い表現をもたらすことができます。

今回の例を参考に、皆さまもStable Diffusionを活用したハイクオリティな画像生成に挑戦してみてはいかがでしょうか。

~Stable Diffusionで素早く画像生成するには~

Stable Diffusionの画像生成スピードや画像サイズは、グラフィックボード(GPU)の性能によって大きく変わります。

このため、より効率的かつ快適な画像生成を望むユーザーにとって、最適なグラフィックボードの選択が重要となります。

推論処理やLoRAなどの追加学習処理といった大量の計算を効率よく行うためには、12GB以上のVRAMを持つグラフィックボードを選ぶことを強くおすすめします。

2GBや4GBのVRAMを持つグラフィックボードでは、学習プロセスや高解像度の画像生成に支障が出る可能性が高いです。

コスパを重視する方は、RTX 3060を選ぶと良いでしょう。

このグラフィックボードを使えば、Stable Diffusionの画像生成機能を最大限に活用することが可能となります。