WSL (OpenSUSE Tumbleweed) に Stable Diffusion, Kohya_SS をセットアップ

WSL (OpenSUSE Tumbleweed) に Stable Diffusion (Automatic1111) と Kohya_SS をセットアップするメモ。

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

ホスト(Windows)側に NVIDIA ドライバが既にインストールされている場合、以下のコマンドでバージョンを確認できます。

nvidia-smi

# or

nvidia-smi --query-gpu=driver_version --format=csv,noheader

上記のコマンドでバージョンが表示されれば、ドライバのインストールは不要です。

リポジトリの追加

SDB:NVIDIA drivers - openSUSE Wiki に従って進めているので、そちらを参照のこと。

sudo zypper install openSUSE-repos-Tumbleweed-NVIDIA
sudo zypper addrepo --refresh https://download.nvidia.com/opensuse/tumbleweed NVIDIA
sudo zypper install-new-recommends --repo NVIDIA

インストール可能なドライバのバージョン確認

zypper se -s x11-video-nvidia*G0* nvidia-video-G0* nvidia-gl*G0* nvidia-compute*G0* nvidia-compute-utils-G0*

zypper からインストールできるドライバは、新しいグラボであれば G06 だと思います。私の環境だと、v570 だったので G06 です。

G03 = driver v340 = legacy driver (via a community user)
G04 = driver v390 = legacy driver (Fermi devices)
G05 = driver v470 = driver for Kepler devices
G06 = driver v550/v570 = driver for Maxwell, Pascal devices and up

SDB:NVIDIA drivers - openSUSE Wiki

対象のドライババージョンは NVIDIA 公式ドライバーのダウンロード | NVIDIA で確認できます。

ドライバのインストール

zypper in nvidia-video-G06 nvidia-gl-G06 nvidia-compute-G06 nvidia-compute-utils-G06

※参考: openSUSE公式ページ

必要なツールのインストール(WebUI・Python環境用)

sudo zypper install git wget curl python311 python311-pip python311-devel \
    gcc gcc-c++ make cmake nodejs npm libffi-devel libopenssl-devel readline-devel \
    sqlite3-devel xz-devel libbz2-devel tk-devel libexpat-devel

Stable Diffusion (Automatic1111) のインストールとセットアップ

# stable-diffusion-webui のダウンロード
cd ~/src
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git
cd stable-diffusion-webui

# python 仮想環境と、必要パッケージのインストール。
# torch はバージョン指定しないと、現時点で 2.6 となり、対応していないので固定にしています
python3.11 -m venv venv
source venv/bin/activate
pip install --upgrade pip wheel
pip install torch==2.5.1 torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121
pip install xformers==0.0.28.post3 --no-cache-dir

# xformers はなくても起動できますが、効率化のため
# 下記実行後 http://127.0.0.1:7860/ で WebUI にアクセスできます
./webui.sh --xformers

Kohya_SS のインストールとセットアップ

Docker の準備

Kohya_SS では Docker 環境が提供されているのでそちらを利用します。 Docker 環境で CUDA 使えるようにするために nvidia-container-toolkit のインストールが必要でした。

sudo zypper ar https://nvidia.github.io/libnvidia-container/stable/rpm/nvidia-container-toolkit.repo
sudo zypper modifyrepo --enable nvidia-container-toolkit-experimental
sudo zypper --gpg-auto-import-keys install -y nvidia-container-toolkit
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

NVIDIA Container Toolkit

Kohya_SS のインストール

cd ~/src
git clone --recursive https://github.com/bmaltais/kohya_ss.git
cd kohya_ss

# 下記実行後 http://127.0.0.1:7860/ で WebUI にアクセスできます
docker compose up -d

# 失敗しているとログに出るので、下記実行するか、上記 -d オプションなしで実行してログ表示
docker compose logs kohya-ss-gui -f