Stable Diffusion 低スペックVRAM4GBで動かす!

Stable Diffusion
スポンサーリンク

※本ページはプロモーションが含まれています

Stable Diffusion Web UI をローカルで動かしたい。
でも自分のパソコンのスペックではきつい・・・。
という方も多いんじゃないでしょうか。

ここでは、低スペックVRAM4GBでもやれる!ってところを、お見せましょう。

スポンサーリンク

私のPC環境

正直、PC詳しくないんで、これくらいで良いですかね。

  • プロセッサ:Intel(R) Core(TM) i5-10400F CPU @ 2.90GHz 2.90 GHz
  • 実装RAM:16.0 GB
  • グラボ:NVIDIA GeForce GTX 1650 VRAM 4 GB

Stable Diffusion 動かすのに重要なのはVRAMだとか
色んなとこに書いてたので、たぶんこれで良いはず。

で、私のPCは VRAM4GB しかないんですよね。
それでも、Stable Diffusion を毎日動かしています。

もちろん快適とは言えませんが、それなりには使えています。

スポンサーリンク

低スペック VRAM4GB の メリット、デメリット

【メリット】

  • 生成が可能である

【デメリット】

  • 生成にすごい時間がかかる
  • 生成画像のサイズに制限がある
  • 使用出来る機能に制限がある
  • 使用出来る拡張機能に制限がある
  • モデルによって制限がある

めちゃくちゃ過酷・・・。

どうですかこの過酷さ。
でも、メリットもあるんです。そう、「使うことが出来る」っていう最高のメリット。
それだけ、それに尽きます・・・。

スポンサーリンク

低スペック VRAM4GB でどこまでやれんのか?

そう、これですね。
低スペック VRAM4GB のPCで、どこまでやれんのか?ってとこです。

実際に私のPCで出来ていること、出来ないこと、を紹介します。

生成画像サイズ

私が今まで生成してきた感じでは以下の通り
あくまでも拡張機能とか何もなしの、プレーンな状態で、です。

サンプリングステップ数はデフォルトの20で測定しました。

512×512512×768768×768768×1028
×
可能モデルによっては
エラー
モデルによっては
エラー
成功したこと無い

基本的には 512×768 の縦長か横長をメインに使っていますが
モデルによってはエラーが出てどうにもならないことがあります。

512×512であれば、私が使ったことがあるモデルは全部OKでした。

768×768以上は、正直ダメだと思います。
動いたとしても生成時間がエグい。

なので、512×768がおすすめですね。
512×512だと顔アップのような構図じゃないと、ほぼ使えない。
人物無しであれば全然いけるかもですけど。

生成時間

上記で生成可能だったサイズのみになりますけど、参考までに。

512×512512×768768×768768×1028
約60秒約103秒約165秒

これ、1枚生成する時間ですからね。
数十枚まとめて生成したわけじゃないですよ。

そしてこれ、上記でも言いましたけど、拡張機能とか何もナシですからね。

それでも、生成可能なんです!生成出来るだけで十分なんです。

他のことしてれば良いだけよね!

Hires.fix

サンプリングメソッドの下にあるチェックボックス
1番右にあるやつです。

これ、めちゃくちゃ重要なんですけど、結果から言いますね。

ほぼ使えません

アップスケールする際は必須の機能なのにほぼエラーです。
設定によっては、1.2倍くらいならギリギリ動いたりするんですけど
1.2倍じゃあんまり意味ない。

せめて2倍が動かないと全然使えない。

ただし!これは、Tiled Diffusion という拡張を使えば
同じようなことが可能です!

それについては、ここで書くと長くなるので、また別の記事で紹介します。

ControlNet

これも結構重要ですよね。
簡単に言うと、ポーズを指定出来る拡張機能です。

私はこれ、全部の機能使ったわけじゃないので
使ったことのある機能だけで言いますけど

制約はあるものの、使えます

と言っても棒人間の OpenPose が使えたらあとは別に・・
もっと細かいことするなら他も必要だと思いますけど
いまのところ私は必要ないので、使ってません。

左から2個目にある Low VRAM にさえチェックを入れておけば
VRAMが少ないPCでもいけます。というチェックですね。

ただし、ただでさえ時間のかかる生成が、更に長くはなります。
これはもう仕方がないことですから、あきらめましょう。

使えるなら全然OKよね

ControlNet の導入方法については以下にまとめているので
知らない方はこちらをどうぞ。

Stable Diffusion ControlNet 導入方法
Stable Diffusion Web UI で使用する ControlNet の導入方法を説明します。こういうポーズを生成したい!という場合は ControlNet があればかなりラクに狙えます。

これくらいで十分

他にも説明しだすとありすぎてキリがないので、これくらいで。
以上で、ある程度基本的なことは全部いけるんじゃないですか?

  1. txt2img で 512×768 の画像が生成出来る
  2. ControlNet OpenPose でポーズを指定出来る
  3. Tiled Diffusion でアップスケールが出来る

ほら、基本的なことは十分可能ですよ。
ただ、すごーく時間がかかるだけです。

どうですか?
一切使えない、よりは全然良いでしょ。
とりあえず、動かないだろうなーで諦めている人は試してみても良いんじゃないです?

少しでも快適に、拡張を使えるようにする策

かなり色々調べて、アレコレ試したんですけど
PCあんまり詳しくないんで、ややこしいの見るとすぐ投げちゃうんですよね。

たぶん、詳しい人は私のこんな記事見なくても、もうやってると思うんで
私みたいにあんまり詳しくない人でも
とりあえず簡単に出来るものだけ、書いときますね。

Optimizations
Stable Diffusion web UI. Contribute to AUTOMATIC1111/stable-diffusion-webui development by creating an account on GitHub.

上記、Stable Diffusion Web UI のページになるんですけど
そこに書いてある方法です。

裏技みたいなのあるんだね!

これで少しでも解消されたらラッキー

webui-user.bat を編集する

起動するときに使用する webui-user.bat を右クリックして「編集」をクリック
すると、メモ帳が開いて、中身はこんな感じになってる思います。

これの下から2行目の部分

set COMMANDLINE_ARGS=

ってとこですね、ここにコマンドを追加してやります。

xformers

まずは以下の xformers というもの。

–xformers
xformersライブラリを使用します。メモリ消費量と速度が大幅に改善されました。バイナリがあるため、構成の小さなサブセットでのみ有効になります。

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Optimizations

メモリ消費量と速度が大幅に改善

これが優秀です。
同画像を繰り返し生成する際に、同じものが出来ない、というデメリット?
が、あるようなんですけど、正直ほぼわかりません。
なので私は気にせずに使用しています。

set COMMANDLINE_ARGS=–xformers

こんな感じですね、これでOKです。上書き保存しておけばOK。

私はコレだけですね。あとは何も追加していないのですが
速度を犠牲にして、メモリ消費量を減らすコマンドもあります。

medvram / lowvram

–medvram
Stable Diffusion モデルが VRAM の消費を少なくするために、cond (テキストを数値表現に変換するため)、first_stage (画像を潜在空間に変換して元に戻すため)、および unet (潜在空間の実際のノイズ除去のため) の 3 つの部分に分割し、常に 1 つだけが VRAM にあり、残りは CPU RAM に送信されるようにします。ライブ プレビューが有効になっている場合を除き、パフォーマンスが少し低下します。

–lowvram
上記をさらに徹底的に最適化し、unet を多くのモジュールに分割し、1 つのモジュールのみを VRAM に保持します。パフォーマンスに壊滅的。

https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Optimizations

これは、VRAMの消費を抑える代わりに、速度を犠牲にするってやつ。
いや、これ以上遅くなったらやってられん。
って思って私は使ってないんですけど・・・

これを使用すれば、現状エラーのものでも使えるようになるかも?
ただし、速度は・・・ってことですね。

set COMMANDLINE_ARGS=–xformers –medvram

さっき紹介した xformers の後ろにつけるだけ
–lowvram に変えると更にVRAMを抑えてくれるけど
パフォーマンスは壊滅的。って書いてる笑

set COMMANDLINE_ARGS=–xformers –lowvram

どうしてもこのエラーを回避したい!というものがあれば
これを1度試してみると良いかもですね。

あ、書き換えたら上書き保存してくださいね。
で、Stable Diffusion を起動している状態であれば、再起動してくださいね。

制約は多いけど、ちゃんと使えるんです

以上のように、いろいろ制約はあるんですけど、ちゃんと使えます。
以下はいつも使っている DreamShaper V5 で生成したものです。

DreamShaper - 8 | Stable Diffusion Checkpoint | Civitai
DreamShaper - V∞! Please check out my other base models , including SDXL ones! Check the version description below (bottom right) for more info and...

こんなイラスト系のものから

これくらいの半リアルなものまで、全然いけますよ。

生成中の待ち時間になにをするか?

生成時間長いんで、その間は他のことするんです。
ある程度プロンプトやパラメータを決めるとこまでやったら
Batch count を上げて、何枚も一気に生成開始。

まぁ、数分~何十分、下手したら何時間待ちにもなります。

その間に・・・

  • 飯を食う
  • 風呂に入る
  • プレステをする
  • Switchをする
  • 動画を見る
  • 映画を見る
  • ドラマを見る
  • テレビを見る
  • 本を読む

ほら、めっちゃやれることある。

めっちゃポジティブ笑

私の場合はモニターを2枚にして、片方で画像生成させておいて
もう片方で、こうやってブログ記事を書いています。

今も画像生成やってくれていますよー。
数十枚つっこんでるんで、あと・・・2時間20分って出てるな笑

って感じで、この生成時間に慣れてしまえば、これが普通になります。
効率よくやれば1日に結構な枚数やれますよ。

まとめ

はい、まとめるとですね。

快適ではないけど、使えないよりは全然いいだろ

ってことです。

とは言え、快適な生成に憧れるもんです。
ここから、快適な環境に持っていくには・・・
グラボ変えるしか無いっすよね。

Stable Diffusion グラボ RTX3060 12GB
Stable Diffusion Web UI をローカルで動かすには グラボ RTX3060 12GB くらいは欲しいとこです。低スペックPCでは本当にストレスがたまる。私の環境での生成時間も紹介します。

RTX3060 12GB 一択だと思うんですよねー。

なぜそれ一択なのか?を書いてるんで、また時間あったら見てあげてください。
私もそのうち、なんとか・・・買いたい、と思ってます。

Stable Diffusion で画像を快適に生成するために

生成スピードが遅い場合は
グラフィックボードの交換を検討してみてはいかがでしょうか

私も生成スピードの遅さに耐えきれず
VRAM4GB ⇒ 12GB に変更しました

とは言っても、安い買い物ではないので
オススメは RTX3060 12GB 一択です


Palit パリット / NE63060019K9-190AD / RTX3060 Dual 12G / [NE63060019K9-190AD] / グラフィックボード


他にも12GBのグラフィックボードは色々あります
予算に合わせて探してみてはいかがでしょうか

⇒ 12GB グラフィックボード 販売ページ

Stable Diffusion で生成した画像を保管する

毎日画像を生成していると
SSDの容量がすぐに圧迫されてしまいます

私は常に残り20GB以下を保っているような状態です 汗

そこで、生成した画像は外付けのSSDに保管するようにしました

USBに差し込むだけで使えるのでお手軽です
どうしても足りなくなったらまた足せばOK 笑

⇒ 外付けSSD 販売ページ
Stable Diffusion
スポンサーリンク
スポンサーリンク
ctrsをフォローする
スポンサーリンク
シトラズム
タイトルとURLをコピーしました