はじめに
Stable Diffusionを使い始めたけどメモリ不足や、VRAMが足りない状態でエラーが発生したことはありませんか?
大丈夫です!
ちょっとした設定をするだけで問題なく画像生成ができるようになります。
今回はメモリ不足や、VRAMが足りない場合の対策を紹介していきます。
- Stable Diffusion WebUIの推奨スペック
- Stable Diffusionのメモリ不足、VRAMが足りない場合の対策
メモリ不足の原因を探るため推奨スペックを確認する
Stable Diffusionはオープンソースソフトウェアなので、PCゲームにあるような必要なスペックが明記されていません。
ただ、推奨されているスペックがあるので以下にまとめてみます。
OS | Windows 10/11 64bit |
CPU | Intel Core-i シリーズ・AMD Ryzenシリーズ |
メモリー | 16GB以上 |
グラフィックボード | 8GB以上 |
Stable Diffusionのメモリ不足、VRAMが足りない場合の対策
–medvramもしくは–lowvramを設定する
メモリ不足、VRAM不足でエラーが発生した場合は、コマンドライン引数で–medvram、もしくは–lowvram設定してみましょう。
多くの場合は、この対応で解決できます!
- STEP1webui-user.batを開く
Stable Diffusion WebUIを起動する時にダブルクリックしている「webui-user.bat」を右クリックし「編集」をクリックします。
(もしくは普段お使いのテキストエディターにドラッグ&ドロップしてください)編集するwebui-user.batは念のためにバックアップしておきましょう。
僕はwebui-user.batをコピーして、用途によって使い分けているよ
- STEP2webui-user.batにコマンドライン引数を記述する
webui-user.batを開いたらCOMMANDLINE_ARGSに「-medvram」もしくは「-lowvram」を追記します。
(ハイフンは2つです)使用しているGPUのVRAMに合わせてlowvram、medvramどちらか選択しましょう。
あとはいつも通りにwebui-user.batをダブルクリックしてStableDiffusion WebUIを起動するだけです。
–lowvram、–medvramを記載した際の画像生成時間について
lowvramもしくはmedvramを適用すると、画像生成時間が低下します。
どのくらい低下するのか気になりますよね?
ということで、通常、lowvram、medvramの3種類で画像生成時間を比較してみました。
画像生成に使用したGPUはRTX3060tiで生成の設定は全て同じです。
使用したモデルはmeinamixです。
‐ | xformers非適用 | xformers適用 |
通常モード | 4.7sec VRAM5.3GB使用 | 4.5sec VRAM4.3GB使用 |
medvram設定 | 5.8sec(通常比123%) VRAM4.7GB使用(通常比89%) | 6.0sec(通常比133%) VRAM3.9GB使用(通常比91%) |
lowvram設定 | 37.9sec(通常比806%) VRAM3.3GB使用(通常比62%) | 38.4sec(通常比853%) VRAM2.6GB使用(通常比60%) |
以上の結果となりました。
medvram指定すると約30%画像生成時間が低下し、VRAMは約10%低減されます。
lowvram指定すると約830%画像生成時間が低下し、VRAMは約40%低減されます。
この結果を見るとlowvramは緊急用として使ったほうが良いですね。
medvramくらいなら許容できる人も多いかと思います。
動画編集などと並行して作業する場合は、medvram指定すると快適に使えるかも
通常モード、medvram、lowvram全て同じ画像が生成できました。
xformersを適用すると細かい所で差分が発生します。
xformersを使用する
Stable Diffusionのxformersを使用すれば、必要なVRAM量を大幅に削減することが可能です。
画像生成速度も少し向上するよ
xformersについては↓の記事で紹介しているので、ご参考ください。
–opt-sdp-attentionを使用する
Stable Diffusionの–opt-sdp-attentionを使用すれば、xformers程ではありませんが必要なVRAM量を削減することが可能です。
画像生成速度では–opt-sdp-attentionの方が優れるので、VRAM量と相談して決定しよう
–opt-sdp-attentionについては↓の記事で紹介しているので、ご参考ください。
ComfyUIを使用する
AUTOMATIC1111と比較して、軽量かつ高速なComfyUIもおすすめです。
ComfyUIのインストール方法については以下の記事で紹介しているので、ご参考ください。
Fooocusを使用する
SDXLベースモデルを使用してメモリ不足、VRAMが足りない場合には、Stable Diffusionの新しいWebUIである「Fooocus」を使用しましょう。
FooocusはAUTOMATIC1111と比較してVRAM使用量が少ないです。
Fooocusの使い方については以下の記事で紹介しているので、ご参考ください。
Stable Diffusionのメモリ不足、VRAMが足りない場合の最終手段
Stable Diffusionのメモリ不足、VRAMが足りない状態が上記の方法で解決できない場合には、以降の最終手段を検討しましょう。
Google Colaboratoryを利用する
Googleのクラウドサービスである、「Google Colaboratory」上でもStableDiffusion WebUIを実行できます。
下記の記事を参考に環境構築してみましょう!
グラフィックボードを変更する
VRAMが足りないのであれば、よりVRAMの多いグラフィックボードを新調しましょう。
資金に余裕があるのであれば、根本解決となるのでおすすめです。
おすすめGPUはNVDIA製 12GB以上の製品です!
まとめ
今回はStable Diffusionでメモリ不足、VRAMが足りない場合に対する解決方法を紹介しました。
簡単な手順で対策可能なので、GPUを更新する前に試してみましょう。
コメント