PR

Stable Diffusion WebUI の環境構築方法(WSL, GPU, CPU)

Stable Diffusion Web UI (AUTOMATIC1111 ) を WSL で使用する方法です。

スポンサーリンク

Stable Diffusion Web UI

Stable Diffusion Web UI を使用し、かんたんな操作で画像生成 AI を動作させます。

本記事では、標準的な利用方法である GPU を用いる方法のほか、 CPU を用いる方法も記載します。

準備する

NVIDIA ドライバのインストール

NVIDIA ドライバが正しくインストールされているか確認します。NVIDIA ドライバのインストール方法については、次のサポート記事をご参照ください:

Debian のインストール

Stable Diffusion WebUI を動作させる Linux 環境として Debian をインストールします。Debian を選択した理由は、開発元のメッセージによります:

Tested on Debian 11 (Bullseye), Fedora 34+ and openSUSE Leap 15.4 or newer.

本記事では、Windows 上から Linux を使用できる Windows Subsystem for Linux (WSL) を使用し、その上で Debian を動作させます。

WSL で使用する Linux ディストリビューションはアプリ ストアから検索してインストールできます。ストア アプリをインストールする方法については、次のサポート記事をご参照ください:

Debian のアップデート

Debian の準備が完了したら、インストール済みの Debian をアップデートします。アップデートは、次のコマンドを使用します:

sudo apt update && sudo apt upgrade -y

パッケージのインストール

次のコマンドを使用して必要なパッケージをインストールします:

sudo apt install wget git curl build-essential libsqlite3-dev libssl-dev libffi-dev libncurses5-dev zlib1g zlib1g-dev libreadline-dev libbz2-dev libsqlite3-dev make gcc libglib2.0-0 -y

次のコマンドを使用して必要なパッケージをインストールします:

sudo apt install libgoogle-perftools-dev libgl1-mesa-glx bc -y
sudo apt install --no-install-recommends google-perftools -y

次のコマンドを使用して asdf を git clone します:

git clone https://github.com/asdf-vm/asdf.git ~/.asdf

.bashrc に設定します:

echo '. $HOME/.asdf/asdf.sh' >> ~/.bashrc
echo '. $HOME/.asdf/completions/asdf.bash' >> ~/.bashrc
source ~/.bashrc

asdf の動作確認のためにバージョンを確認します:

asdf --version

問題なければ asdf に Python 用のプラグインを追加します:

asdf plugin add python

インストールした asdf 用の Python プラグインを使用して Python 3.10.6 をインストールします:

asdf install python 3.10.6

Stable Diffusion WebUI

次のコマンドを使用して stable-diffusion-webui を git clone し、そのディレクトリに移動します:

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui

stable-diffusion-webui がカレント ディレクトリであることを確認し、asdf を使用してカレント ディレクトリが使用する Python のバージョンに 3.10.6 を設定します:

asdf local python 3.10.6

Python のバージョンを確認し、指定したバージョンとなっているか確認します:

python --version

問題なければ pip をアップグレードします:

pip install --upgrade pip

pip を使用してパッケージをインストールします:

pip3 install backports.lzma

一度だけ実行する準備はここまでです。以降は Stable Diffusion WebUI を使用するたびに実行します。

実行する

起動する

次のコマンドを実行して Stable Diffusion WebUI を起動します:

./webui.sh

初回起動時やモデルを追加したときなどは、起動に時間がかかることがあります。環境によっては、とても長い時間が必要であり、停止したように見えることあります。

(参考) 黒い画面を閉じてから再実行するときは、次のように実行します:

cd stable-diffusion-webui
./webui.sh

Web UI にアクセスする

Windows 上で実行する「Stable Diffusion WebUI」や「Stable Diffusion WebUI Forge」とは異なり、ブラウザが自動的に起動しないことに注意してください。

準備が整ったことを見計らって、ブラウザで「Stable Diffusion WebUI」にアクセスします。準備が整う前にアクセスするとエラーになりますのでご注意ください。ブラウザで開くアドレスは次のとおりです:

http://127.0.0.1:7860/

以後は「ブラウザ」を操作しますが、使用中は黒い画面を閉じないでください (最小化する操作は問題ありません)。

もし、実行に問題がある場合は、黒い画面にエラーが表示されている場合がありますので、確認してください。

終了する

終了する時や再起動するときは、ブラウザを閉じ、黒い画面を閉じます。

著しくシステム リソースの乏しい環境では、実行に時間がかかって停止したように見えたり、システムが不安定になったりハングアップ (システムが機能停止) する場合があります。

設定ファイルの編集

CPU で実行する

標準では GPU を使用しますが、 CPU を使用することもできます。CPU を使用するには、設定ファイルの COMMANDLINE_ARGS に次のオプションを指定します:

--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu all --precision full --no-half

設定ファイルに Debian からアクセスする場合は、次のとおりです:

\home\seeck\stable-diffusion-webui\webui-user.sh

設定ファイルに Windows からアクセスする場合は、次のとおりです:

"\\wsl.localhost\Debian\home\seeck\stable-diffusion-webui\webui-user.sh"

編集前 (抜粋):

#!/bin/bash
#########################################################
# Uncomment and change the variables below to your need:#
#########################################################

# Install directory without trailing slash
#install_dir="/home/$(whoami)"

# Name of the subdirectory
#clone_dir="stable-diffusion-webui"

# Commandline arguments for webui.py, for example: export COMMANDLINE_ARGS="--medvram --opt-split-attention"
#export COMMANDLINE_ARGS=""

# python3 executable
#python_cmd="python3"
:
:

編集後 (抜粋):

#!/bin/bash
#########################################################
# Uncomment and change the variables below to your need:#
#########################################################

# Install directory without trailing slash
#install_dir="/home/$(whoami)"

# Name of the subdirectory
#clone_dir="stable-diffusion-webui"

# Commandline arguments for webui.py, for example: export COMMANDLINE_ARGS="--medvram --opt-split-attention"
export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu all --precision full --no-half"

# python3 executable
#python_cmd="python3"
:
:

設定が完了したらファイルを保存します。

※「–use-cpu interrogate」では GPU を使用したので「–use-cpu all」としたところ CPU を使用しました

エラー例

make: *** [Makefile:1280: install] Error 1

$ asdf install python 3.10.6
:
:
BUILD FAILED (Ubuntu 22.04 using python-build 2.4.1)
:
:
make: *** [Makefile:1280: install] Error 1

本記事記載の手順を再実行し、必要なパッケージをインストールします。

No version is set for command xxx

$ pip3 install xxx
No version is set for command xxx
Consider adding one of the following versions in your config file at
python 3.10.6

Python が指定されていません。

RuntimeError: Couldn’t install torch. / Error code: 1

$ ./webui.sh
:
:
ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
    torch==2.1.2 from https://download.pytorch.org/whl/cu121/torch-2.1.2%2Bcu121-cp310-cp310-linux_x86_64.whl#sha256=b2184b7729ef3b9b10065c074a37c1e603fd99f91e38376e25cb7ed6e1d54696:
        Expected sha256 b2184b7729ef3b9b10065c074a37c1e603fd99f91e38376e25cb7ed6e1d54696
             Got        57845714286f1deaf5afaefb27a74a9561d6758471cd0e4e6dc2836f249410d6


[notice] A new release of pip available: 22.2.1 -> 24.0
[notice] To update, run: pip install --upgrade pip
:
:
RuntimeError: Couldn't install torch.
Command: "/home/seeck/stable-diffusion-webui/venv/bin/python3" -m pip install torch==2.1.2 torchvision==0.16.2 --extra-index-url https://download.pytorch.org/whl/cu121
Error code: 1

「pip install –upgrade pip」を実行します。

RuntimeError: Couldn’t install torch. / Error code: 137

$ ./webui.sh
:
:
RuntimeError: Couldn't install torch.
Command: "/home/seeck/stable-diffusion-webui/venv/bin/python3" -m pip install torch==2.1.2 torchvision==0.16.2 --extra-index-url https://download.pytorch.org/whl/cu121
Error code: 137

メモリが不足していますので、WSL の割当メモリを増やしてください。WSL の割当メモリを設定する方法については、次のサポート記事をご参照ください:

ERROR: python3 is not installed, aborting…

$ ./webui.sh
:
:
################################################################
ERROR: python3 is not installed, aborting...
################################################################

Python が見つけられない状態です。Python がインストールされていない場合は、Python をインストールします。Python がインストールされている場合は、実行中のシェルスクリプトが Python に正しくアクセスできることを確認します。

ERROR: This script must not be launched as root, aborting…

:
:
ERROR: This script must not be launched as root, aborting...

「ERROR: This script must not be launched as root, aborting…」と表示された場合は、 root 権限で起動しようとしたため、起動を停止しました。ユーザ権限で起動し直してください。

ModuleNotFoundError: No module named ‘_tkinter’

$ asdf install python 3.10.6
:
:
ModuleNotFoundError: No module named '_tkinter'
WARNING: The Python tkinter extension was not compiled and GUI subsystem has been detected. Missing the Tk toolkit?
Installed Python-3.10.6 to /home/seeck/.asdf/installs/python/3.10.6
asdf: Warn: You have configured asdf to preserve downloaded files (with always_keep_download=yes or --keep-download). But
asdf: Warn: the current plugin (python) does not support that. Downloaded files will not be preserved.

参考

Windows 上から出力フォルダを参照する

Stable Diffusion WebUI の生成物は output ディレクトリに出力されます。Windows 上からエクスプローラーを使用してこれらのファイルにアクセスすることもできます。Windows から次の場所を開きます:

\\wsl.localhost\Debian\home\seeck\stable-diffusion-webui\outputs\

※Linux ディストリビューションとユーザ名は、適宜お読み替えください

ストレージ容量

この例では、WSL を使用する例を記載しました。実際に操作する場合は十分なストレージ容量があるかを確認してから実行してください。

GPU と CPU の比較

通常 GPU で実行しますが、 CPU で実行するオプションも用意されています。ただし、 CPU で実行する場合は、とても時間がかかるほか、非推奨の実行となりますのでご注意ください。また、将来 CPU での実行がサポートされなくなる可能性もあります。

  • CPU 環境: 約 17 分 … 1,000 Sec
  • GPU 環境: 約 20 秒 … 20 Sec

同一のハードウェア環境に対して GPU の有無で実験したもので、プロンプトやモデル等は同一のもの、複数回テストして計測しました。実験環境は以下の通りです:

  • ホスト環境
    • CPU Intel Xeon X3450 @ 2.67 GHz
    • MEM 16 GB
    • SSD 240 GB
    • OS Windows 11 Pro 23H2 x64
  • ゲスト環境
$ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

関連

Windows 上で Stable Diffusion Web UI を実行する方法については、次のサポート記事をご参照ください:

Windows 上で Stable Diffusion Web UI Forge を実行する方法については、次のサポート記事をご参照ください:

参考文献等

注意

  • 本操作例は Windows 11 の WSL で Stable Diffusion web UI (AUTOMATIC1111) が動作する環境を構築するものです

スポンサードリンク

タイトルとURLをコピーしました