Stable Diffusionで画像生成をする際に、同じ呪文(プロンプト)の画像を何回も繰り返して生成したい場合ってありますよね。
そんなとき、1回1回、生成を繰り返すのはかなり面倒くさいですよね。
実はStable Diffusionでは同じ呪文(プロンプト)を用いて、1度に複数枚の画像を生成する方法があります。具体的には『Batch Size』や『Batch Count』といった機能を使います。
本記事では『Batch Size』や『Batch Count』について解説し、1度に複数枚の画像を生成する方法を紹介していきます。
※Stable Diffusionの立ち上げ方法や使い方については、以下の記事を参考にしてください。
Stable Diffusionの『Batch Size(バッチサイズ)』とは?
冒頭でお伝えしたように、Stable Diffusionにはデフォルトで内蔵されている機能として、1度に複数枚の画像を生成できる機能が2つあります。
・Batch Size(バッチサイズ)
・Batch Count(バッチ回数)
これらの方法は、Seed(シード)値を固定できないため、1枚目から順番に画像が生成されます。
では1度に画像を複数枚生成する方法について、1つずつ解説していきます。
Stable Diffusionで同一の呪文(プロンプト)で複数枚生成する方法①:Batch Size
“Batch Size”(バッチサイズ)は、指定した枚数分を同時に画像生成する機能です。生成枚数が多ければ多いほど、使用PCのスペックも高くなければなりません
Batch Sizeは「1~8」まで選ぶことができます。実際にBatch Sizeを最大の「8」に設定して、画像を生成してみましょう。
なお、今回例として以下の呪文(プロンプト)を入力しています。
呪文(プロンプト):
masterpiece, best quality, extremely detailed CG unity 8k wallpaper, 1girl
ネガティブプロンプト:
Easy Negative , worst quality , low quality , normal quality, monochrome
Batch Sizeを「8」にして生成した画像は以下になります。
このように同一の呪文(プロンプト)から8枚の画像を同時に生成することができました。
Stable Diffusionで同一の呪文(プロンプト)で複数枚生成する方法②:Batch Count
“Batch Count”(バッチ回数)は、指定した枚数分を順番に画像生成する機能です。
Batch Countは最大値が100となっているため、Seed(シード)値が1ずつ並んだ画像を100枚まで生成することが可能です。
実際にBatch Countを「10」に設定して、画像を生成してみましょう。
なお、今回例として以下の呪文(プロンプト)を入力しています。
呪文(プロンプト):
masterpiece, best quality, extremely detailed CG unity 8k wallpaper, 1girl
ネガティブプロンプト:
Easy Negative , worst quality , low quality , normal quality, monochrome
Batch Countを「10」にして生成した画像は以下になります。
このように同一の呪文(プロンプト)から10枚の画像を同時に生成することができました。
『Batch Size』と『Batch Count』の違い
Batch sizeは指定した枚数分を同時に画像生成する機能、Batch countは指定した枚数分を順番に画像生成する機能でした。
ここから少し難しい話しになるのですが、Batch sizeは平行処理を行うため、設定した数が大きいほどVRAM容量が必要になります。
また、設定した数が大きいほど、処理にかかる負荷が高くなり、画像生成時間が長くなります。
これだけ見ると、Batch size大きくする意味はあまり無いように感じてしまいませんか?
そこでBatch sizeとBatch countを設定し、画像生成の処理時間を測定してみました。
画像生成時間の測定結果
画像生成の条件は、
- 呪文(プロンプト)は固定
- Sampling stepsは20
- 解像度は512×512
- 画像の生成枚数は8枚
とし、画像生成時間とVRAM使用量を測定しました。
テストしたパターンは、Batch Size 1、2、4、8の4パターンとしました。
結果を以下の表にまとめました(※.「it/s」は1秒あたりに処理したStep数のことです)。
テストNo. | Batch Size | Batch Count | VRAM使用量 [GB] | 合計処理Step数 | 処理スピード [it/s] | 処理時間 [s] |
1 | 1 | 8 | 4.7 | 160 | 15.63 | 10.24 |
2 | 2 | 4 | 4.9 | 80 | 8.70 | 9.20 |
3 | 4 | 2 | 5.4 | 40 | 4.70 | 8.51 |
4 | 8 | 1 | 5.9 | 20 | 2.36 | 8.47 |
Batch Sizeが大きくなるほど、VRAM使用量が増えて処理スピードは低下していきます。しかし、合計処理Step数が減っていることで、処理時間は短くなっています。
つまり、Batch Sizeが増えると処理時間は短くなるといったメリットがあります。ですが、使用しているグラフィックボード(ビデオカード)の性能に依存します。
処理性能もしくはVRAMのどちらかが飽和してしまうと、メモリ不足などによりBatch Sizeを大きくする意味は無くなってしまいます。
よって、使用しているグラフィックボード(ビデオカード)の性能次第となります。
ちなみにVRAM使用量は、タスクマネージャーの「パフォーマンス」タブから確認することができます。
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい
Stable Diffusionで画像生成する際におすすめのグラフィックボード(ビデオカード)3選
画像生成の処理時間を短くするためには、グラフィックボード(ビデオカード)の性能が重要であることを説明しました。
ここではStable Diffusionで画像生成をするのにおすすめのグラフィックボード(ビデオカード)を3つ紹介します。
① GeForce RTX 3060
「GeForce RTX 3060」は、VRAM容量が12GBあるグラフィックボード(ビデオカード)の中で、最も低価格で販売されています。
Stable Diffusionのような画像生成AIによる基本的なイラスト生成だけでなく、AI学習によるポーズ指定などの高度なタスクも処理することが可能です。
コスト面が優れているため、ゲーミングPC用グラフィックボード(ビデオカード)としても非常に人気があります。
② GeForce RTX 4080
「GeForce RTX 4080」は、VRAM容量が16GBある高性能グラフィックボード(ビデオカード)です。
コスト面では「GeForce RTX 3060」よりも高額となりますが、イラスト生成の時間は短くすることができます。
③ GeForce RTX 4080
「GeForce RTX4090」は市販のグラフィックボード(ビデオカード)で、最も優れた性能を持つグラフィックボード(ビデオカード)となります。
その性能により、Stable Diffusionでの画像生成時間は爆速かつ最速となります。
コストはやはり高いですが、予算に大きく余裕のある方は「GeForce RTX4090」が最良の選択肢であると言えるでしょう。
まとめ
いかがでしたでしょうか?
今回は、Stable Diffusionで1度に複数枚の画像を生成できる機能である、”Batch Size(バッチサイズ)”と”Batch Count(バッチ回数)”について、両者の違いも含めて解説してきました。
今回のポイントをまとめると、以下のようになります。
- ”Batch Size”や”Batch Count”の機能を使用することで、1度に複数枚の画像を生成することができる。
- ”Batch Size”を増やすと処理時間が短くなるメリットがあるが、使用しているグラフィックボード(ビデオカード)の性能に依存する。
Stable Diffusionで大量の画像を生成したい場合などに、”Batch Size”や”Batch Count”の設定をすることで簡単に複数枚の画像を生成することができます。
また、使用しているPCのグラフィックボード(ビデオカード)で扱える最大の”Batch Size”で画像を生成すれば、画像生成にかかる時間は減らせる傾向にあります。
多くの画像を生成したいときは、是非試してみてください!
- Stable Diffusionのプロンプトの見本が知りたい
- 画像生成が思ったようにできない
- 色々なプロンプトを探したい