Ubuntu22.04でStable Diffusion WebUIを動かして、エラーが出たときの忘備録

UbuntuでStable Diffusion Web UIを動かすのはさほど難しくはないし、検索するとそれなりにインストール手順が記載された記事を見つけることはできる。

しかしちょっとしたことでエラーが出て動かなくなり、原因をあれこれ探るより再インストールしなおしたほうが早いということも多々ある。

そこで手っ取り早く再構築するために何をしたかを忘備録として残すことにします。

主の環境

PCスペック

  • CPU
    Intel(R) Celeron(R) CPU G3900 @ 2.80GHz
  • メモリ
    8GB
  • 記憶領域
    SSD 500GB
  • GPU
    RTX 3060

OS

  • Ubuntu 22.04LTS

UbuntuにStable Diffusion Web UIインストールする手順

基本的には以下の2行でインストールが完了する

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

起動は以下のコマンド
ログオフしても実行し続けるように nohupを使用している。

nohup /home/mining/stable-diffusion-webui/webui.sh &
tail -c 1000 -f /home/mining/stable-diffusion-webui/nohup.out

色々エラーが出たときの対処方法(下に行くほど重症)

とりあえず

venvを消してみる。
Stable Diffusionが入っているディレクトリで

rm -Rf venv
./webui.sh

bitsandbytesがなんたら

Stable Diffusionが入っているディレクトリで

source ./venv/bin/activate
python -m pip install bitsandbytes==0.41.1 --prefer-binary
deactivate

LD_LIBRARY_PATHがなんたら

Please make sure that
 -   PATH includes /usr/local/cuda-11.8/bin
 -   LD_LIBRARY_PATH includes /usr/local/cuda-11.8/lib64, or, add 
                              /usr/local/cuda-11.8/lib64 to /etc/ld.so.conf and run ldconfig as root

.bashrcへ以下を記述、cudaのパスとかは実際に存在しているか確認すること

export LD_LIBRARY_PATH=/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda/bin:$PATH

以下のコマンドで即時有効化

source ~/.bashrc

Pythonリセット

仮想環境を作らずにインストールしてしまったパッケージをキレイに一掃

pip freeze > packagelist.txt
pip uninstall -y -r packagelist.txt
pip list

Python再インストール

Python3 -v
sudo apt-get remove python3.8
sudo apt-get remove --auto-remove python3.8
sudo apt-get purge python3.8
sudo apt-get purge --auto-remove python3.8

NVIDIA グラフィックドライバ関係アンインストール

sudo apt -y remove --purge nvidia* &&
sudo apt -y remove --purge libnvidia* &&
sudo apt -y remove --purge cuda* &&
sudo apt -y remove --purge cudnn* &&
sudo apt -y remove --purge libcuda* &&
sudo apt -y remove --purge libcudnn* &&
sudo apt -y autoremove &&
sudo apt -y autoclean
sudo apt -y update -y
sudo rm -rf /usr/local/cuda*
sudo reboot

NVIDIA グラフィックドライバ インストール

wget https://us.download.nvidia.com/XFree86/Linux-x86_64/535.146.02/NVIDIA-Linux-x86_64-535.146.02.run
sudo chmode +x NVIDIA-Linux-x86_64-535.146.02.run
sudo ./NVIDIA-Linux-x86_64-535.146.02.run

CUDA関係インストール

CUDA 12.1

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.1.0/local_installers/cuda-repo-ubuntu2204-12-1-local_12.1.0-530.30.02-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-1-local_12.1.0-530.30.02-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-1-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda

CUDA 12.3

wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/cuda-ubuntu2204.pin
sudo mv cuda-ubuntu2204.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.3.1/local_installers/cuda-repo-ubuntu2204-12-3-local_12.3.1-545.23.08-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-12-3-local_12.3.1-545.23.08-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-12-3-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-3

再インストール時に素早く元の環境に戻す

なにか問題が起きたら stable-diffusion-webui のインストールディレクトリごと消して

rm -Rf ~/stable-diffusion-webui

git cloneから再インストールしたほうが手っ取り早いけど、モデルやLoRAやoutputも消えてしまうので基本的にデータ関連は別ディレクトリ(StableDiffusionData)に保管してある。

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

mv 	models		models.bak
mv 	outputs		outputs.bak
mv webui-user.sh	webui-user.sh.bak

ln -s /home/mining/StableDiffusionData/models	.
ln -s /home/mining/StableDiffusionData/outputs	.
ln -s /home/mining/StableDiffusionData/styles.csv .
ln -s /home/mining/StableDiffusionData/webui-user.sh .	
./webui.sh

ここで一旦起動して終了させる

source ./venv/bin/activate
python -m pip install bitsandbytes==0.41.1 --prefer-binary
deactivate

以下は必要に応じて

ln -s /home/mining/StableDiffusionData/extensions/sd-webui-controlnet							/home/mining/stable-diffusion-webui/extensions/
ln -s /home/mining/StableDiffusionData/extensions/stable-diffusion-webui-localization-ja_JP		/home/mining/stable-diffusion-webui/extensions/

ln -s /home/mining/StableDiffusionData/extensions/ABG_extension									/home/mining/stable-diffusion-webui/extensions/
ln -s /home/mining/StableDiffusionData/extensions/AdverseCleanerExtension						/home/mining/stable-diffusion-webui/extensions/


ln -s /home/mining/StableDiffusionData/extensions/stable-diffusion-webui-wd14-tagger			/home/mining/stable-diffusion-webui/extensions/

webui-user.shに以下の記述

export COMMANDLINE_ARGS="--listen --xformers --reinstall-xformers --share --api-auth username:p@ssword --gradio-auth username:p@ssword --enable-insecure-extension-access"

コメント

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