stable diffusion, Ubuntu 20.04, GeForce GTX 1660 Ti

はじめに

stable diffusionローカル環境構築備忘録です。
1111を使用します。
この分野は情報の更新が速く、自分の環境にfitした情報がなかなか見つかりませんでした。
Ubuntu 20.04.6 LTSにおけるstable diffusion環境を構築する手順を記します。
2023年10月14日時点での情報であることに注意してください。

環境

inxi -SGm
System:    Host: user Kernel: 5.15.0-86-generic x86_64 bits: 64 Desktop: Gnome 3.36.9 
           Distro: Ubuntu 20.04.6 LTS (Focal Fossa) 
Memory:    RAM: total: 15.55 GiB used: 7.02 GiB (45.2%) 
           RAM Report: permissions: Unable to run dmidecode. Root privileges required. 
Graphics:  Device-1: NVIDIA TU116 [GeForce GTX 1660 Ti] driver: nvidia v: 525.85.12 
           Display: x11 server: X.Org 1.20.13 driver: fbdev,nouveau unloaded: modesetting,vesa resolution: 2560x1440~60Hz 
           OpenGL: renderer: NVIDIA GeForce GTX 1660 Ti/PCIe/SSE2 v: 4.6.0 NVIDIA 525.85.12 

sdフォルダを作成

mkdir sd
cd sd

依存ライブラリをインストール

# ビルドに必要なパッケージをインストール
sudo apt install -y \
  build-essential \
  libssl-dev \
  zlib1g-dev \
  libbz2-dev \
  libreadline-dev \
  libsqlite3-dev \
  wget \
  curl \
  llvm \
  libncurses5-dev \
  libncursesw5-dev \
  xz-utils \
  tk-dev \
  libffi-dev \
  liblzma-dev \
  python3-openssl \
  git

# その他のパッケージをインストール
sudo apt install -y \
  python3-venv \
  libgl1 \
  libglib2.0-0

pyenvをインストール

curl https://pyenv.run | bash

~/.bashrcに追記

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

.bashrcを再読み込み

source ~/.bashrc

python 3.10をインストール

この時点で最新バージョンの3.10.3がインストールされる。

pyenv install 3.10

python 3.10.3をlocalに設定

pyenv local 3.10.13

pipをアップグレード

このpipはpyenvでインストールしたpython3.10.3に紐づいている。

pip install -U pip

cudaのバージョン確認

synapticを起動し、目視で確認した。→ cuda 12.0がインストールされている。

python依存ライブラリをインストール

cuda 12.0に対応したpytorchをインストールする。
URLの最後がcu120であることに注意。

pip install torch==2.0.1 torchvision==0.15.2 --extra-index-url https://download.pytorch.org/whl/cu120

追記

webui-user.shに以下のコードを挿入する。

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

これを行わない場合、次回起動時にpytorchのcu118版がインストールされてしまう。

Looking in indexes: https://pypi.org/simple, https://download.pytorch.org/whl/cu118
Collecting torch==2.0.1
  Downloading https://download.pytorch.org/whl/cu118/torch-2.0.1%2Bcu118-cp310-cp310-linux_x86_64.whl (2267.3 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━╸━━━━━━━━━━━━━━━━ 1.3/2.3 GB 1.5 MB/s eta 0:10:31

もしこれを忘れてwebui.shを実行してしまった場合、Ctl + Cで中断し、

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

を実行してから、webui.shを再実行する。

webui.shをダウンロード

wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh

webui-user.shを編集

GeForce GTX 1660 Tiを使用しているので、--precision full --no-half --medvramを追記する。

訂正(2023年10月17日)

--xformers --lowvram --always-batch-cond-uncond --no-half --disable-nan-checkを追記する。

code '/home/user/bin/sd/stable-diffusion-webui/webui-user.sh'
# Commandline arguments for webui.py, for example: export COMMANDLINE_ARGS="--medvram --opt-split-attention"
# export COMMANDLINE_ARGS="--precision full --no-half --medvram"
export COMMANDLINE_ARGS="--xformers --lowvram --always-batch-cond-uncond --no-half --disable-nan-check"

webui.shを実行

追記(2023年10月17日)

--xformersが適用されないようです。

No module 'xformers'. Proceeding without it.

そこで、wbui.shを呼び出す際に、--xformersを追加します。これにより、--xformersが適用されます。

bash webui.sh --xformers

これで自動的にブラウザが起動する。

実行結果

1 girlで作成された画像