前回まででやっと起動できて、
期待に胸を膨らませていたでしょう。
どんな美麗な絵を作ろう、どんなキャラ作ろう、どんなエロエロなエロ作ろう
そんな期待をことごとく打ち砕く
16Gでも多いんですよ?
普通にWeb見たり、ゲームしたりする分には十分すぎる量です
でもStableDiffusionでは下の下なんですね~
作者も真面目に増やすことを検討してます
話はそれましたが物理メモリ不足はこの先あなたをしばらく苦しめます
これを読んでいる人はすでにぶち当たっているかもしれません。
そう、
触り始めたばかりだと法則があるのに気づけないですよね?
下手にアンインストールして、またインストールして
再起動して、動いた!止まった!なぜだ!を繰り返しているかもしれません
例外なく作者もやりました。
大丈夫です。法則はあります。
先に答えを言うとこれも物理メモリ不足です。
では順を追って説明します。
■目次
①正常な時を知ろう
②どんな時に正常じゃなくなるのか
③正常じゃなくなった!どうすればいいのか!
正常な時、つまり画像生成ができるときは必ず以下の画面の時です。
使用しているモデルが表示されている時です。
以下のように使用しているモデルが表示されていないときは。。。
絶対に画像生成ができません。GUIが触れるので作れそうな気がしますが
作れません。
断言します。
もちろん物理メモリが足りない時です。
VRAMは4Gで何とか動いてくれてるみたいです。
※とはいえ常に95%ですが。。。
物理メモリが足りないとコマンドプロンプトの窓に
~~.py というメッセージが大量に出ます。
これです。
直接読むとPythonに問題がありそうですが、Pythonを動かしている物理メモリが
足りないから出ています。
じゃあいつ物理メモリ使うの?
今のところ、以下の時です。
a. 使用するモデルを変える時 ⇒ 解決策有
b. ControlNetを使うとき ⇒ 法則不明
c. 高解像度化するとき ⇒ 絶対に無理、代替え案あり
d. (確認中、今後追記予定)
〇a. 使用するモデルを変える時
モデルを変えようとすると、起動時と同じくらい物理メモリを使用します
ここで気づいた方、聡いですね。
「じゃあ無理じゃん!」⇒ えぇその通りです。
起動するときですら、物理メモリを限界まで空けてやっとだったのに、
大量にメモリを食うChromeを起動した状態で、
webui.batを起動したときと同じメモリを食う動作なんてできるわけがありません。
では、モデルを今後一切変えることはできないのか?
そんなことはありません。
該当フォルダ(C:\stable-diffusion-webui\models\Stable-diffusion)に
一つだけモデルを入れておけばいいのです。
モデルを変えるときは、元のモデルをいったん外に出し、変えたいモデルを入れる
起動時にはそのモデルのみ読み込んでくれるので、
実質モデルを変えることができるということです。
めんどくさ!
って思ってもその方法しかありません。
自分は、これに気づいてから「AbyssOrangeMix2_hard.safetensors」しか使わない!
と決めましたw
〇b. ControlNetを使うとき
夢の技術ContorolNet 色々調べてる皆さんも使ってみたいですよね!
でもその夢を打ち砕くのが物理メモリ不足
使えない ということはないです。ただ法則がつかめないというのが現状です
作者もまだ戸惑っています。
でもメモリ不足が多分原因だろうなぁと
・Webui.bat や Webui-user.bat を起動してすぐ作れば1枚だけできます
・PCを再起動したらしばらく作り続けられます。
上記から事実から
作者はPCやwebui.batの起動時間が長いと
ゴミがたまって、それにメモリが食われてるのかなって思ってます。
〇c. 高解像度化するとき
画像を生成するとき魅力的なチェックボックスがありますよね?
これ、 一つもできません。
何度も試しました。できません。
じゃあ高解像にできないのか!!!!
いえ、代替え案ならあります
今はAIで何でもしてくれますね、別のAIで画質をあげてくれます
導入は少しめんどくさいですが、一度入れれば永遠に使えるし、
ポチっとするだけで画質を4倍にしてくれます。
最高かっ!
でも、もちろん高画質化にはVRAMを使うので、
画像生成中やwebui.bat起動中はできませんよ?
~~.py というメッセージが大量に出て、何もできなくなった!
どうすれば!?
ここで焦らないでください。
(作者は焦ってアンインストールして、インストールを繰り返しました)
以下ゆっくりよんでください。
まずは、webui.bat が動いているコマンドプロンプトを×ボタンで切りましょう
その後、webuiが動いているwebブラウザも閉じます。
物理メモリに不安があるかたは、諸々のソフトを切って物理メモリを開放します
そこで再度 webui.bat もしくは webui-user.bat を起動
Running on local URL: http://127.0.0.1:7860
が出れば正常起動完了です。
出ない場合は物理メモリの解放が足りません。
さぁ、ここでWebブラウザを起動して
http://127.0.0.1:7860/ と入力。
webページが表示された!!!!画像生成できる!!!
焦らないでください。
よく見てください。こんな状態ではありませんか?
この状態では画像生成できません。
ではどうすれば。
結論を先に言います。
設定タブにある、「UIの再読み込み」を3回やります
ちゃんと解説します。
〇1回目の「UIの再読み込み」
詳しくはわかりませんが、1回目の「UIの再読み込み」で
webブラウザとPythonを紐づけなおしてるんでしょうね
何しろ一回強制終了してるわけですから。
でも
1回目の「UIの再読み込み」終了後もまだこの画面だと思います
この状態では画像生成できません。
〇2回目の「UIの再読み込み」
2回目の「UIの再読み込み」は紐づいてるのでうまく動作してくれます
実際「UIの再読み込み」とは何か?
この時のコマンドプロンプトの窓を見てもらえばわかりますが
webui.batの再起動です。
「UIの再読み込み」を押したっ直後こんな文字列が出てると思います
Restarting UI...
Running on local URL: http://127.0.0.1:7860
じゃあなんで1回目の時は出なかったんだ? と思われる方、正解です
だから1回目でwebブラウザとPython(コマンドプロンプト:webui.bat)を
紐づけているんだと推測できます
2回目が終わるとこうなります
ええ、焦りますよね
安心してください。次が3回目です。
〇3回目の「UIの再読み込み」
そもそも2回目の時のエラーがなぜ起こるのか。
単純です。
webui.bat が再起動をかけて、正常起動してくる前に、
webブラウザが再起動してきてしまうからです
起動のタイミングが合わなかったんですね
そこで3回目の「UIの再読み込み」をすると
こうなります。
正常になりましたね
この流れ、この先何度もやることになると思うので
Webブラウザだけでなく、webui.bat:コマンドプロンプト の中身と
タスクマネージャーで物理メモリを見る癖は付けたほうがいいです。
コマンドプロンプトの ~.py とかいうメッセージは
大半が物理メモリ不足です
こんなめんどくさいことをしたくない方
物理メモリを買いましょう
作者も真面目に検討中です