今まで何気なくBatch size(バッチサイズ)とBatch count(バッチカウント)を設定していませんでしたか?

僕もその一人です!
今回の記事はStable Diffusion WebUI、AUTOMATIC1111のBatch size(バッチサイズ)とBatch count(バッチカウント)を、細かく調べたので最後までお付き合いください。
PCスペックによっては生成時間の高速化が見込めます!
記事内の画像は日本語化環境です。
まだ日本語化が済んでいない方は↓の記事を参考に便利な日本語環境にしてみましょう。
AUTOMATIC1111のBatch sizeとBatch countについて

Batch countとBatch sizeがどんなものなのか、あらためて確認しておきましょう。
Batch countについて
画像生成を行う回数を設定します。
例としてBatch countを5にして実行すると、5回分画像生成されます。
Batch sizeについて
一回の画像生成で何枚の画像を並列処理するかを設定します。
例としてBatch sizeを2に設定すると、2枚の画像を同時に生成します。
AUTOMATIC1111のBatch sizeとBatch countの関係について
Batch sizeは同時に処理する生成枚数なので、Batch size×Batch countが生成される画像枚数になります。
ここから少し難しくなりますが、Batch sizeは平行処理を行うため、数が大きい程VRAM容量が必要になります。
また、数が大きい程処理負荷が高くなり、画像生成時間が長くなります。
これだけ見ると、Batch size大きくする意味が無いんじゃないかと思いませんか?
そこでBatch sizeとBatch countを設定し画像生成して処理時間を計測してみました。
画像生成時間を計測してみた
プロンプトを固定し20step、解像度512×512で8枚の画像を生成し、画像生成時間とVRAM使用量を計測しました。
テストパターンはBatch size1,2,4,8の4パターンにしました。

結果は以下の通りです。
(it/sは1秒あたりに処理したstep数を指します)

まぁ先に説明したとおりですね。
Batch sizeが増える程VRAM使用量が増えて、it/sは低下します。
注目ポイントは右端の処理時間です。
パッと見、解り難いよね。
処理時間とVRAM使用量をグラフにしてみました。

もう分りましたね。

バッチサイズが増えると処理スピードは落ちるけど、処理時間は短くなってる!
といっても限界はあります・・・
使用しているグラフィックボードの性能に依存するんですよね。
処理性能とVRAMどちらかが飽和すると、Batch sizeを大きくする意味が無くなります。
なので、ご自身の使用しているグラフィックボードと相談する必要があります。
具体的には少しずつBatch sizeを大きくして、処理できる値を地道に探すだけです。
ちなみにVRAM使用量は、タスクマネージャーの「パフォーマンス」タブから確認できます。

おすすめテレワーク・デスクワークグッズ
四六時中デスクワークの筆者がおすすめする、デスクワークグッズを紹介します。

作業効率の他、QOL爆上がりの商品を紹介していくから是非チェックしてね!
まとめ
今回はStable Diffusion WebUIの、Batch sizeとBatch countの関係について調べてみました。
使用しているPCで扱える最大のBatch sizeで画像生成すれば、画像生成時間は減る傾向でしたね。
特にたくさんの画像を生成する場合は、効果が大きいので試してみる価値有りです!
Comment