見出し画像

Ubuntu 22.04にStable Diffusion WebUI環境を構築する

この記事ではUbuntu 22.04にStable Diffusion環境を構築します。

Python, wget, gitのインストール

まずは、python, wget, gitなどインストールに必要なアプリケーションをインストールします。

sudo apt install wget git python3 python3-venv

インストール後、Pythonのバージョンを確認します。

python --version
Python 3.10.6

CUDAのインストール

次に、CUDAをインストールします。

PyTorchと対応するCUDAのバージョンの確認

CUDAをインストールする前に、まずはPyTorchが対応しているCUDAのバージョンを確認しましょう。PyTorchの公式サイトにアクセスし、PyTorch BuildをStable、OSをLinux、PackageをPip、LanguageをPythonと設定することで、利用可能なCUDAのバージョンが分かります。

PyTorchに対応するCUDAのバージョンを確認する

今回の場合、CUDA 11.7か11.8が利用可能と判明しました。この記事が古くなっている可能性もあるので、この方法で利用可能なCUDAのバージョンを予め特定しておくことをお勧めします。

CUDAをインストールする

古いバージョンのCUDAをダウンロードするには、まずcuda-toolkit-archiveにアクセスします。

今回ダウンロードするのは11.7なので、11.7.0か11.7.1を選択します。パッチバージョンでの修正が含まれていると思われますので、特に理由がなければ11.7.1を選択することを推奨します。

CUDA toolkit archiveで特定のバージョンのCUDAを選択する

次に、CUDA Toolkit 11.7 Update 1 Downloadsのサイトで環境を入力すると、インストールに必要なコマンドが生成されます。今回はIntelのCPUを搭載したUbuntu22.04の環境なので、以下のように選択します。お使いのPCの環境に合わせて選択してください。

プラットフォームを選択する

選択した結果、以下のようなコマンドが表示されます。

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/11.7.1/local_installers/cuda-repo-ubuntu2204-11-7-local_11.7.1-515.65.01-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2204-11-7-local_11.7.1-515.65.01-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2204-11-7-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt update
sudo apt install cuda-11-7

インストール手順を開始する前に一つ注意点があります。最後の apt install cuda コマンドは、sudo apt install cuda-11-7 のようにバージョンを含める必要があります。そうしないと最新版のCUDAがインストールされてしまいます。PyTorchは最新版のCUDAに対応していない可能性が高いです。そのため、必ずバージョンを指定してインストールしてください。

インストールが完了したら、以下のコマンドを実行して、CUDAのバージョンを確認できます。

/usr/local/cuda-11.7/bin/nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2022 NVIDIA Corporation
Built on Wed_Jun__8_16:49:14_PDT_2022
Cuda compilation tools, release 11.7, V11.7.99
Build cuda_11.7.r11.7/compiler.31442593_0

パスが適切に設定されていないと、後の操作で困ることがあります。そのため ~/.bashrc ファイルに以下の記述を追加し、CUDAへのパスを通すことをおすすめします。

# Setting CUDA PATH
export PATH="/usr/local/cuda-11.7/bin:$PATH"
export LD_LIBRARY_PATH="/usr/local/cuda-11.7/lib64:$LD_LIBRARY_PATH"

保存した後、新しいターミナルを開いて which nvcc を実行し、パスが正しく通っていることを確認してください。

❯ which nvcc
/usr/local/cuda-11.7/bin/nvcc

PyTorchのインストールコマンドの確認

PyTorchの公式ページにアクセスし、インストールするコマンドを選択します。

PyTorchをインストールするコマンドの確認

現時点では、PyTorchが対応している最新版のCUDAが11.7であるため、 pip3 install torch torchvision torchaudio を使用します。しかし、将来的に11.8や12.0などが追加されたときのために、CUDAのバージョンを指定したコマンドをメモしておくことをおすすめします。

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117

このコマンドは、Stable Diffusion WebUIにPyTorchをインストールするためのコマンドを設定する場所に記述します。

Stable Diffusion WebUIのインストール

まず、リポジトリをCloneします。

git clone --depth=1 --branch v1.2.1 https://github.com/AUTOMATIC1111/stable-diffusion-webui

webui-user.sh ファイルを用いて、細かな設定を行います。

例えば、Stable Diffusion WebUIはデフォルトで ~/ 以下にcloneすることを想定していますが、もし異なる場所にcloneした場合は、 install_dir を以下のように変更する必要があります。

install_dir="/home/$(whoami)/Apps"

PyTorchのインストールコマンドもここで設定します。

export TORCH_COMMAND="pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu117"

画像生成が僅かに速くなるxformersも、以下のように COMMANDLINE_ARGS を追加することで有効化できます。

export COMMANDLINE_ARGS="--autolaunch --xformers"

以下のコマンドでスクリプトに実行権限を付与し、実行します。

chmod 755 webui-user.sh
bash ./webui-user.sh

そして、同じターミナルでwebui.sh を実行します。

bash ./webui.sh

初回の実行では、モデルのダウンロードや依存関係のあるパッケージのダウンロードが必要となり、これには1~3時間程度かかることがあります。

インストールが成功すれば、http://127.0.0.1:7860/ にWebUIが表示されます。

トラブルシューティング

ここからは、よく遭遇するエラーとその解決策についてまとめます。

The program 'nvcc' is currently not installed. You can install it by typing: sudo apt install nvidia-cuda-toolkit

このエラーは、CUDAがインストールされていない、またはパスが適切に設定されていないときに発生します。 /usr/local/cuda-11.7/bin/nvcc に実行可能なファイルが存在することを確認してください。

No module 'xformers'. Proceeding without it.

xformersがインストールされていない場合にこのエラーが発生します。webui-user.shCOMMANDLINE_ARGS--xformers を追加します。

export COMMANDLINE_ARGS="--autolaunch --xformers"

RuntimeError: Couldn't install torch.

このエラーは、何らかの理由でPyTorchのインストールに失敗した際に発生します。

自分の場合、このエラーが発生した原因は、インストールしようとするPyTorchが対応しているCUDAのバージョンと、システムにインストールされているCUDAのバージョンが一致していなかったためでした。

Stable Diffusion WebUIはデフォルトで以下のようなコマンドでPyTorchをインストールしようとします。

pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 --extra-index-url https://download.pytorch.org/whl/cu113

ここではCUDA 11.3に対応したPyTorchをインストールしようとしています。しかし、私がCUDAをインストールする際に sudo apt install cuda と実行した結果、CUDA 12.1がインストールされてしまいました。

記事冒頭で説明したように、PyTorchとCUDAのバージョンを一致させることで、正常にインストールできました。

ただし、この解決法が全ての環境で通用するとは限りません。同じようなエラーに遭遇した方が、この情報を参考に問題を解決できれば幸いです。


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