高速なWebUIということで話題になっている、Stable Diffusin WebUI ForgeをWSL2のUbuntuにインストールして使ってみました。
CUDA Toolkitが入っている環境であれば、特に何もせずに動作すると思います。 CUDA Toolkitのインストールは不要。WindowsにnvidiaのGPUドライバーが入っていれば動作する。
sudo apt update
sudo apt install -y python3.10-venv
sudo apt install -y libgoogle-perftools-dev libgl1-mesa-glx bc
venvを使っているので、上記のようにvenvをインストールが必要。
また、libGL.so.1が入っていないのと、ついでにgoogleのTCMallocをインストールしておく。
bcはあってもなくても問題ないようだが、起動スクリプトでエラーが出ているので、これも入れておく。
あと、デフォルトでは、WSLにはpython3 としてPythonがインストールされているので、pythonにエイリアスしておく。
alias python=python3
git clone https://github.com/lllyasviel/stable-diffusion-webui-forge.git
で、カレントディレクトリに、stable-diffusion-webui-forge ディレクトリが作成されるので、
cd stable-diffusion-webui-forge
./webui.sh
とすると、足りないモデルファイルなどのインストールが開始され、Webサーバーが起動します。
Windowsでは、自動的にWebブラウザが起動して使い始めることができますが、WSL2でXやChrome等がインストールされていない環境では何も起こらないので、自分でブラウザを起動して、コンソールに表示されたURLにアクセスします。https://127.0.0.1:7860 でいいと思います。
アクセスするURLは、こんな感じでコンソールに表示されるので、コピペすればよいです。
7行目です。
VAE dtype: torch.bfloat16
CUDA Stream Activated: False
Using pytorch cross attention
ControlNet preprocessor location: /home/okuno/stable-diffusion-webui-forge/models/ControlNetPreprocessor
Loading weights [1a17bcd93d] from /home/okuno/stable-diffusion-webui-forge/models/Stable-diffusion/beautifulRealistic_v7.safetensors
2024-03-08 16:27:36,229 - ControlNet - INFO - ControlNet UI callback registered.
Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
model_type EPS
UNet ADM Dimension 0
Using pytorch attention in VAE
Working with z of shape (1, 4, 32, 32) = 4096 dimensions.
Using pytorch attention in VAE
Startup time: 14.9s (prepare environment: 2.9s, import torch: 5.2s, import gradio: 1.1s, setup paths: 1.0s, other imports: 0.6s, load scripts: 1.9s, create ui: 0.9s, gradio launch: 1.2s).
extra {'cond_stage_model.clip_l.logit_scale', 'cond_stage_model.clip_l.text_projection'}
left over keys: dict_keys(['model_ema.decay', 'model_ema.num_updates'])
To load target model SD1ClipModel
Begin to load 1 model
[Memory Management] Current Free GPU Memory (MB) = 15238.9990234375
[Memory Management] Model Memory (MB) = 454.2076225280762
[Memory Management] Minimal Inference Memory (MB) = 1024.0
[Memory Management] Estimated Remaining GPU Memory (MB) = 13760.791400909424
Moving model(s) has taken 0.34 seconds
Model loaded in 3.6s (load weights from disk: 1.5s, forge load real models: 1.1s, calculate empty prompt: 0.9s).
あとはGUIから必要なパラメーターを入れて、画像生成を楽しめます。
備忘録
起動時に以下のメッセージが出た。
Hint: your device supports --pin-shared-memory for potential speed improvements.
Hint: your device supports --cuda-malloc for potential speed improvements.
Hint: your device supports --cuda-stream for potential speed improvements.
レコメンドとして、–pin-shared-memory –cuda-malloc –cuda-stream があったので、追加
export COMMANDLINE_ARGS="--pin-shared-memory --cuda-malloc --cuda-stream"
./webui.sh
また、
Cannot locate TCMalloc. Do you have tcmalloc or google-perftool installed on your system? (improves CPU memory usage)
というエラーが出るが、これはGoogleのtcmallocがインストールされていないことにより発生する。インストールすればよいようだが、特に動作には影響はしない。インストールする場合は、
sudo apt install --no-install-recommends google-perftools
でオッケーらしい。無くても特に動作に影響はしないので、無視した。