👨‍💻

【非公式】Stable Diffusion WebUIのインストール| GPUSOROBAN

2023/05/21に公開
2

最初に

最初にかいておきます。

公式の導入手順が2023/5/18に公開されてます!!
Stable Diffusion WebUIのインストール(Ubuntu)| GPUSOROBAN

ええ、webUIの画面までたどり着きます。
textToIMGもできなくはないでしょう。

(2023/8/3追記)
あれ?7/21に公式が更新してる…しかもここにあるやつに近い。
https://soroban.highreso.jp/article/article-019
すでに5/18版はみれなくなってる。(URLが違う)
6/6には公式のX(twitterだったやつ)で一度見にきているじゃん?
で、特に私に連絡はなかったので…なんかモヤっとするなぁ…

(2023/8/10追記)
今日公式版でつくってみました。
すなおに起動しますね。

というわけで、以下の書き込みは5/18版の公式と比較してます。

(2023/8/20追記)
最大接続数に至ると接続ができなくなった…
8/17のメンテから?
いずれにしても、契約前にサービスレベルは確認しましょう…

では、おしまい…じゃない!

この手順で構築してみたんですけど…なにかとひっかかる

  • なんか画面が崩れている気がする…
  • Extraのページにてダウンロードボタンがない(リンクにもなってない)

そして公式の手順だと…
https://github.com/AUTOMATIC1111/stable-diffusion-webui

webUI本家との手順ともなんとも違う

というわけで、非公式版を発表してみたいと思います。

インストール手順

方針は「webUI本家との手順」に寄せるです。

sudo apt update

これは公式どおり。
これやらないとこの後の手順で最新じゃないバイナリを使おうとしていろいろエラーとなる。

sudo apt install wget git python3 python3-venv

早速公式にない手順。本家にある手順である。
これをしないと最後に起動するwebui.shでおちる

python -m pip install --upgrade pip setuptools

公式にはない。ただ、おまじないに近いかもしれない。
でも…せっかく構築するんだからやれる最新化はしたいよね?ということで。

pip install torch huggingface_hub

公式はtorchのインストールをバージョン指定してガチガチにしてる。
ライブラリの整合性を合わせるためだろうが、その辺も本家のwebui.shに頼ることにして
ここではざっくりと。

なお、huggingface_hubもいずれ欲しくなるからここでやっときましょう。

sudo apt-get install -y libglib2.0-0

これは本家にはないが、公式にはある手順なのでやっておく。

bash <(wget -qO- https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh)

最後は本家どおりですね。初回は少々時間がかかりますが(10分程度)待ちましょう。
git cloneとかも不要です。

手順は以上
「Running on local URL: http://127.0.0.1:7860」の表示を確認します。

今回見て見ぬふりしたこと

xformers

オプション--xformers については…いろいろためしてみましたがうまくいきませんでした。
求めるバージョンがかみあわないのが理由です。諦めました。

WARNING[XFORMERS]: xFormers can't load C++/CUDA extensions. xFormers was built for:
    PyTorch 2.0.0+cu118 with CUDA 1108 (you have 1.13.1+cu117)
    Python  3.10.10 (you have 3.10.6)
  Please reinstall xformers (see https://github.com/facebookresearch/xformers#installing-xformers)
  Memory-efficient attention, SwiGLU, sparse and more won't be available.
  Set XFORMERS_MORE_DETAILS=1 for more details
#torchvisionだけバージョンがあわない
#torchvisionを合わせると今度はxformersのバージョンがダメという
pip install xformers==0.0.18
pip install torch==1.13.1+cu117 torchvision==0.14.1+cu117 torchtext==0.14.1 torchaudio==0.13.1 torchdata==0.5.1 --extra-index-url https://download.pytorch.org/whl/cu117

python launch.py

公式の手順で構築して、実行する時はこれでいいと思うのですが…
じゃあ、上記非公式版で「python launch.py」したらいいのか…というとそうでもない。
ま、webui.sh起動でいいか!と諦めました。

controlnet

ERROR: Could not build wheels for pycairo, which is required to install pyproject.toml-based projects

これが解決できなかったので放置。pycairoをどこから入れろっていうのさ?

気づき

GPUを認識できないことがある?

以前から気になっていたものの…公式で

falseになる場合は、インスタンスを再起動(停止 -> 起動)をして再度試してみてください。

というコメントが載っていた。
つまり、公式に「うまくいかないことがある」ということなので、安心してインスタンス再起動しましょう。
(導入中にCUDA関係が理由でひっかかると原因追及しにくいなぁ…)

tips

GPUSOROBANを使うに当たっての個人的tipsをまとめておきます。

モデルのダウンロード

ファイルのアップロードはできるが、あまり早くない。
GPUSOROBAN上のインスタンスから直接ダウンロードしたほうがいい。

civilaiの場合

Extensionからヘルパーを導入してダウンロードする。

huggingfaceの場合

wgetを使う。
treeのところをresolveに代えるだけでよい。

ファイルのアップロード

モデルのことがGPUSOROBANのインスタンス上から解決できればあまり使うことはないとはおもいますが、scpコマンドを使います。

scp -i ~/.ssh/mykey.txt -P 20122 [送信するファイルのパス] user@localhost:[送信先のディレクトリのパス]

mykey.txtは公式のいう「インスタンス接続用キー」です。
いじる場所は[送信するファイルのパス]と[送信先のディレクトリのパス]のみ
user@localhostのところはいじりません。

例えば
scp -i ~/.ssh/mykey.txt -P 20122 /home/hoge/Downloads/*.safetensors user@localhost:/home/user/stable-diffusion-webui/models/Stable-diffusion/

とやれば、ローカルの
/home/hoge/Downloads/*.safetensors
をインスタンスの
/home/user/stable-diffusion-webui/models/Stable-diffusion/
ディレクトリに保存ができます。

以下を参考にしました。
https://uxmilk.jp/50946
https://www.server-world.info/query?os=Ubuntu_20.04&p=ssh&f=2

(オマケ)png→jpg変換

GPUSOROBANとは関係ないが、変換したくなると思うが、こちら。

cd (png画像のあるフォルダ)
ls -1 *.png | xargs -n 1 bash -c 'convert "$0" "${0%.png}.jpg"'
rm ./*.png

構築後

次回からは
1つめのターミナルを立ち上げ
ssh -L 20122:(IPアドレス):22 -l user as-highreso.com -p 30022 -i ~/.ssh/soroban_ackey.txt

2つ目のターミナルを立ち上げ
ssh -L 27860:127.0.0.1:7860 user@localhost -p 20122 -i ~/.ssh/soroban_mykey.txt
その後
~/stable-diffusion-webui/webui.sh --skip-torch-cuda-test --precision full --no-half
だけ叩けば起動します。
(通常過去のコマンドが残っているから矢印キーだけ押せば出てくるでしょう)

なお、7/21公式版だと↓これで起動
bash stable-diffusion-webui/webui.sh

おためしあれー

そして、公式の人、見て間違ってたらコメントくださいな。

Discussion

ナリタナリタ

↑見にきているわけだ。6/6には。
で、7/21に更新してこっちの内容に近い(まぁxformersの件は解決してるので進化しているのだが)
一言合ってもいい気がするけどね。