Stable DiffusionのBatch countとBatch sizeを徹底解説します!

ポニーテールで白いジャケットを着た日本人女性のAI写真

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

僕もその一人です!

今回の記事はStable Diffusion WebUI(AUTOMATIC1111)でBatch size(バッチサイズ)とBatch count(バッチカウント)を、細かく調べたので最後までお付き合いください。

PCスペックによっては生成時間の高速化が見込めます!

目次

Batch sizeとBatch countについて

バッチ回数とバッチサイズにフォーカスしている

Batch countとBatch sizeがどんなものなのか、あらためて確認しておきましょう。

Batch countについて

画像生成を行う回数を設定します。

例としてBatch countを5にして実行すると、5回分画像生成されます。

Batch sizeについて

一回の画像生成で何枚の画像を並列処理するかを設定します。

例としてBatch sizeを2に設定すると、2枚の画像を同時に生成します。

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パターンにしました。

女性のバストアップAIイラスト
出力した画像

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

各テストに対して処理時間を追記している
各テストパターンにおける処理時間

まぁ先に説明したとおりですね。

Batch sizeが増える程VRAM使用量が増えて、it/sが低下します。
注目ポイントは右端の処理時間です。

パッと見、解り難いよね。
そこで処理時間とVRAM使用量をグラフにしてみました。

横軸が使用VRAM、縦軸が処理時間の折れ線グラフ
ほぼ比例関係にある

もう分りましたね。

バッチサイズが増えると処理スピードは落ちるけど、処理時間は短くなってる!

といっても限界はあります・・・
使用しているグラフィックボードの性能に依存するんですよね。

処理性能とVRAMどちらかが飽和すると、Batch sizeを大きくする意味が無くなります。
なので、ご自身の使用しているグラフィックボードと相談する必要があります。

具体的には少しずつBatch sizeを大きくして、処理できる値を地道に探すだけです。

ちなみにVRAM使用量は、タスクマネージャーの「パフォーマンス」タブから確認できます。

タスクマネージャーに表示されるVRAM使用量をフォーカスしている
VRAM使用量の確認

まとめ

今回はStable Diffusion WebUIの、Batch sizeとBatch countの関係について調べてみました。
使用しているPCで扱える最大のBatch sizeで画像生成すれば、画像生成時間は減る傾向でしたね。

特にたくさんの画像を生成する場合は、効果が大きいので試してみる価値有りです!

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

IT技術者でありDTMer
EDMの作曲を始めたところ楽しさに気づき、ロック以上にハマっています。
楽器はギターを弾いており、バンドではギタリストとしても活動しています。

コメント

コメントする

目次