【SSDvsHDD】WebUIやモデルの保存先で生成速度は変わるのか検証

検証

Stable Diffusionを使うにあたって、SSDかHDDかで快適さは変わるのか気になったので検証してみました!

なお、本記事ではWebUI Forgeを使用して検証しています。

まだAUTOMATIC1111を使っている方、高速&軽快になるForgeへの乗り換え検討してみてください!

細かい話は良いから手早く結果だけ見たいよーって方は↓の目次から「結果のまとめ」を選んで御覧ください。

検証の内容

HDDSATA接続のSSDM.2のSSDの3種類で検証しています。

検証内容は以下のとおり。SSDかHDDかで速度に大きな影響が出そうなもので比較してみます。

WebUI Forgeの起動にかかる時間

WebUI Forgeの起動にかかる時間がHDDとSSDで違いがあるのか検証します。

WebUIは起動時に拡張機能の読み込みが入るため、拡張機能をたくさんいれると起動に時間がかかるようになってきます。

今回はなるべく拡張機能の影響が少ない状態で検証したいので、Forgeをインストール後追加でADetailerだけを入れた状態の起動速度を検証しました。

それぞれの時間はプロンプトに表示されるログのここ↓を参照しています。

モデルの読み込みにかかる時間

Stable Diffusionを使う上で一番重いファイルといったらモデルです。

たいてい2GB以上。SDXLも含めると5GB6GB当たり前のファイル。

画像生成時にはそんなギガバイト単位のファイルをストレージから読み出すわけなので、ストレージからの読み出し速度は結構影響しそうです。

モデル読み込みにかかった時間もコマンドプロンプトのログに表示されるのでそこから確認しています。

なお、今回の検証ではSDXLのanimagine-xl-3.0を使用しています。約6.8GB!

10枚の画像生成にかかる時間

一番気になるのはやっぱり生成速度!

SDXLで1536 × 1024の画像を10枚生成してかかった時間を計測します。アップスケールは無しでやってます。

ADetailerのみ有効にしてその他はそんなに凝ったことはしてません。詳細な生成条件は「検証の条件」の項目に書いています。

WebUIではモデルを切り替えると画面上ではわかりませんが、裏でモデルファイルの読み込みが始まります。

モデルファイルの読み込み中に生成を開始してしまうと読み込みが終わるまで待機した後生成が始まるので、しっかりとモデルファイルの読み込みが完了してからGenerateボタンをクリックしてます。

検証の条件

検証に使うPCはこんな感じです。6年くらい前の微妙なPCなのでそれを念頭に御覧ください。

CPUIntel Core i7 8700K
メモリDDR4 16GB
グラフィックボードNVIDIA GeForce RTX 3060 Ti

プロンプトとネガティブプロンプトは以下の通りです。

a woman, beautiful anime, full body, standing
worst quality, lower quality, extra hand, extra head, extra leg, extra arm, monochrome, extra finger, extra body, extra eyes, glits

シード値は同じもので固定してます。

検証の条件

項目設定値
モデルanimagine-xl-3.0
VAENone
Clip skip2
Sampling methodDPM++ 2M
Sampling steps25
Hires.fix無効
 Upscaler
 Hires steps
 Denoising strength
 Upscale by
Width * Height1536 × 1024
Batch count10
Batch size1
CFG Scale7
ADetailer有り
今回のテスト条件

生成する画像のイメージ

検証結果

ではここからは実際に検証した結果です。

HDD → SATA SSD → M.2 SSD と発表して、最後に保存先だけHDDにした場合に影響があるかを試しています。

WebUIをHDDにインストールした場合

WebUI起動約1分19秒
モデルの読み込み約2分32秒
10枚生成にかかった時間8分16秒

WebUIの起動もモデルの読み込みも結構かかりました。

私は普段はStable DiffusionはSATA接続のSSDの中で使っているので、今回初めてHDDにインストールして使ってみたのですが、思っていた以上に遅くて驚きでした

WebUI起動後にモデルの読み込みが始まることを考えると、HDDでStable Diffusionを使用すると起動バッチを実行してから生成を始めるまで4分近く待つことになる計算です。

モデルファイルの読み込みも7GB近くのファイルとはいえ2分半かかるのはちょっときつい気がします。

とはいえ、WebUIを起動してモデルファイルの読み込みが終わってしまえば、画像生成速度自体はSSDとそこまで変わらないのでなんとかなる気もします。

WebUIをSATA SSDにインストールした場合

WebUI起動速度約24秒
モデルの読み込み約33秒
10枚生成にかかった時間7分19秒

HDDと比べるとかなり早くなりました

起動はそんなに変わらないんじゃないかと思っていましたがHDDと1分近い差がつきました

モデルの読み込みに至っては2分近く早くなってます。やっぱり7GBとなると読み込み速度はかなり差がつきますね。

反面、画像生成にかかった時間は10枚で約1分の差なので、思っていたよりも差がつきませんでした。

生成中はモデル自体はメモリに読み込み済みだからか、ストレージへのアクセスはそんなに無いのかもしれません。

WebUIをM.2 SSDにインストールした場合

WebUI起動速度約20秒
モデルの読み込み約19秒
10枚生成にかかった時間7分8秒

同じSSDでもSATA SSDと比べるとM.2 SSDの方が少し早くなりました。

こちらも思っていたよりは差はついたものの、HDDとSATA SSDとの間の差と比べるとそこまで気にしなくていいレベルですかね。

なお今回使用しているM.2 SSDはGen3なので、Gen4であればもう少し早くなるかもしれません(そんなに変わらない気もしますが)

WebUIをSATA SSDで、保存先をHDDにした場合

ここまでの検証で、やっぱりモデルファイルをHDDに置くのはけっこうキツイことがわかりました。

では、生成した画像の保存先はどうでしょうか。モデルファイルはSSDに置かざるを得ないとしても、出力先をHDDにできれば多少の容量の節約はできそうです。

一応試してみました。

※Web UIとモデルはSATA SSDに置いてます(M.2ではない)

WebUI起動速度変化なし
モデルの読み込み変化なし
10枚生成にかかった時間7分15秒

WebUI起動とモデル読み込みはほとんど変化なし。

生成にかかる時間はなぜかちょっと早くなりましたがこれも誤差の範囲でしょう。

というわけで、画像保存先をHDDにするだけであれば生成速度にほとんど影響ないということが確認出来ました。

結果のまとめ

それぞれこんな結果になりました。

WebUI起動速度モデルの読み込み10枚生成にかかった時間
HDD1分19秒2分32秒8分16秒
SATA SSD(保存先もSSD)24秒33秒7分19秒
SATA SSD(保存先はHDD)24秒33秒7分15秒
M.2 SSD20秒19秒7分8秒

やっぱりHDDの遅さが際立ってます

とはいえ、WebUIの起動速度とモデルの読み込みにさえ目を瞑れば生成速度はそこまでかわらないので、我慢出来ないというレベルではない気もします。

ただし、起動速度は拡張機能が増えたりControlNetを使って読み込むモデルが増えるとどんどん遅くなるので凝ったことをしたい場合はSSDを使いたいところ。

それぞれの検証結果のグラフも貼っておきます。

WebUI起動速度

モデルの読み込み速度

10枚生成にかかった時間

結論

HDDでも無理ではないけど、SSDの方がいい

HDDはWebUIの起動とモデルファイルの読み込みに特に時間がかかることがわかりました。

逆に生成速度はそこまで大きな差は出ないこともわかりました。

拡張機能モリモリにすると起動は更に遅くなっていくので、やっぱりSSDの方が快適なのは間違いなさそうです。

SSDでやるけど、生成画像の出力先をHDDにするのはアリ

SSDの容量を少しでも節約したいなら、生成したファイルの保存先をHDDにしましょう

これなら多少生成画像の整理をサボってもSSDがいっぱいになっちゃうということは無くなります。

モデルファイルをHDDに置くのはおすすめできません!

まとめ

とりあえずHDDだけでやるのはちょっと厳しいことがわかりました。

ただ、画像生成自体の速度はSSDと大差なかったので、凝ったことをしなければ画像生成にそんなに支障はないです。

SSDの容量にあまり余裕のない私のような人にとっては、WebUI本体やモデルファイルはSSDにおいて画像保存先は大容量のHDDにするのが良さそうです。

コメント

タイトルとURLをコピーしました