見出し画像

導入メモ webui.cmdやwebui.batがやっていること(StableDiffusion WebUI)

StableDiffusionなんですけど、どんどん更新されるし人気のフォークも変わるしで大変ですね。
Gradioによるブラウザ上のGUIを備えたフォークとして今主流なのは旧hlky版AUTOMATIC1111版でしょうか。段々と途中からではキャッチしづらい情報が増えてきたので導入でつまづく人の為にメモを残しておきます。

webui.cmd(sd-webui/stable-diffusion-webui)

旧hlky版(https://github.com/hlky/stable-diffusion)はあぶぶさんの記事やULTIMATE GUI RETARD GUIDEで紹介されているフォークですが、リポジトリの場所が変わって(?)今はsd-webui/stable-diffusion-webui ( https://github.com/sd-webui/stable-diffusion-webui ) になっているようです。(これ何て呼べばいいんですかね…?)

こちらはリポジトリをダウンロードしてきた後、webui.cmdを実行することで環境を構築し、WebUIを立ち上げます。やっていることの要点は

  • Anaconda/miniconda のインストール先を探す

  • conda env createでリポジトリ内のenvironment.yamlを元に仮想環境(ldm)を構築

  • (ldm)環境下でscripts\relauncher.pyを実行

の3つです。
ldmはオリジナル版のSD開発環境なので、競合を防ぐためにldoとする場合があります。(environment.yamlの1行目をname: ldoに書き換えるという操作がそれにあたります。)その場合はldmはldoと読み替えてください。

conda系のインストール先はcustom-conda-path.txtを用意して指定できるほか

set paths=%ProgramData%\miniconda3
set paths=%paths%;%USERPROFILE%\miniconda3
set paths=%paths%;%ProgramData%\anaconda3
set paths=%paths%;%USERPROFILE%\anaconda3

の4箇所については勝手にパスを通してくれるので、ここにインストールしている分にはインストール時にパスを通していなくても勝手に見つけてアクティベートしてくれます。
自分も既にPythonをインストールしていた都合上、Anacondaのインストール時にパスを通していませんが問題なく使えています。

webui.cmdの実行が失敗する場合は、

  • condaによる環境構築が失敗している(SDのフォルダまでのパスが全角文字を含んでいる、とか)

  • scripts/relauncher.pyが呼び出すscripts/webui.pyが不正終了している(Relaunch countが増え続けている場合)

に切り分けが可能でしょう。

前者は、例えばconda info -eで仮想環境(ldm/ldo)が表示されなければ作成に失敗していますし、conda list -n ldm で必要パッケージがインストールされているか確認できます。

後者の場合は、(ldm)をアクティベートしたコマンドプロンプトで直接scripts/webui.pyを実行してやれば、もう少しエラーの詳細を確認できるかもしれません。

(ldm) C:(略)stable-diffusion>python scripts\webui.py

webui.pyは正常に起動しても出力中にVRAMの食い過ぎ等によって落ちることがあるのですが、relauncher.pyがそのたびに立ち上げ直す(relaunch)働きをしています。多分。

webui.bat(AUTOMATIC1111版)

AUTOMATIC1111版webui.batは、pythonのvenvによって仮想環境を構築します。本来はバージョンを合わせてpythonをインストールしておく必要がある気がします。
インストールするパッケージはwebui.bat内にベタ打ちされていたり、requirements_versions.txtに書かれていたりします。
構築が終わったあと、その環境下でwebui.pyを実行します。

AUTOMATIC1111版は、4chanではvoldyと呼ばれています。
自分は、4chanで昔貼られていたガイドに従って旧hlky版環境に居候させる形で導入しているため本来の動作環境は詳しくありません。

注意点

どちらを導入しているか、またいつの時点のバージョンかでコマンドラインオプションの指定方法などが変わってきます。特にGTX 16xx台を使用している場合は死活問題でしょうが、リポジトリのreadmeをよく読んでください。また他人にヘルプを仰ぐ場合は、どの環境かを明示するようにしましょう。
ちなみに、webui.cmdにいつの間にか

call git stash
call git pull

という行が増えていたので、git cloneでDLしてきていた場合は勝手に更新されるようになっている気がします。

この記事が気に入ったらサポートをしてみませんか?