今まで何気なく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パターンにしました。
結果は以下の通りです。
(it/sは1秒あたりに処理したstep数を指します)
まぁ先に説明したとおりですね。
Batch sizeが増える程VRAM使用量が増えて、it/sが低下します。
注目ポイントは右端の処理時間です。
パッと見、解り難いよね。
そこで処理時間とVRAM使用量をグラフにしてみました。
もう分りましたね。
バッチサイズが増えると処理スピードは落ちるけど、処理時間は短くなってる!
といっても限界はあります・・・
使用しているグラフィックボードの性能に依存するんですよね。
処理性能とVRAMどちらかが飽和すると、Batch sizeを大きくする意味が無くなります。
なので、ご自身の使用しているグラフィックボードと相談する必要があります。
具体的には少しずつBatch sizeを大きくして、処理できる値を地道に探すだけです。
ちなみにVRAM使用量は、タスクマネージャーの「パフォーマンス」タブから確認できます。
まとめ
今回はStable Diffusion WebUIの、Batch sizeとBatch countの関係について調べてみました。
使用しているPCで扱える最大のBatch sizeで画像生成すれば、画像生成時間は減る傾向でしたね。
特にたくさんの画像を生成する場合は、効果が大きいので試してみる価値有りです!
コメント