Stable Diffusion導入備忘録
Stable Diffusionをローカルに導入するに当たっての備忘録。Stable Diffusionがぶっ壊れて再度導入する際のヒントとして、導入時にしたことを書き残します。素人なので本職から見ると???となることは多々あると思われる。
0 概要
以下のサイトを参考に、ローカル環境にStable Diffusion WebUI Dockerを入れます。恐らくこの方法が一番簡単と思われます。ローカルに色々入れるとごちゃごちゃ汚くなるので、Docker使った方が良いんじゃね?ってのもあります。
1 DockerとGitのインストール
詳細は省略。
2 Dockerイメージの保管場所変更
ここを参考に実施。この作業は任意。Dockerイメージのデフォルトの保管場所はCドライブ。Cドライブの空き容量がそこまでなかったので、Dockerイメージの保存場所をDドライブへ変更した。
3 Stable Diffusion WebUI Docker のコード類のダウンロード
Stable Diffusion WebUI Docker のコード類をダウンロードしてDドライブへ入れる。ダウンロードにはGitを使用した。
Dドライブのアドレスバーに「cmd /k」を入力し、コマンドプロンプトを起動。その後、以下のコマンドによりダウンロードを実行。Dドライブに「stable-diffusion-webui-docker」というフォルダができる。
git clone https://github.com/AbdBarho/stable-diffusion-webui-docker.git
GitHubから必要なファイルをダウンロードして、Dドライブに移動でも良いらしい。この方法ならGitは不要。
4 Stable Diffusion関連のモデル・ファイルのダウンロード
Stable Diffusion関連のモデル・ファイルのダウンロードします。正直良くわかって無いです。
Dドライブの「stable-diffusion-webui-docker」フォルダを開き、アドレスバーに「cmd /k」を入力し、コマンドプロンプトを起動。その後、以下のコマンドを実行。
docker compose --profile download up --build
ダウンロードに成功すると
webui-docker-download-1 exited with code 0
ダウンロード失敗すると
webui-docker-download-1 exited with code 24
などと表示されるようです。自分の場合、1発ではダウンロードは成功しませんでした。その場合、再度以下のコマンドを実行します(ダウンロードが成功するまで繰り返す)。
docker compose --profile download up --build
5 Stable Diffusionの環境構築
Dドライブの「stable-diffusion-webui-docker」フォルダを開き、アドレスバーに「cmd /k」を入力し、コマンドプロンプトを起動。その後、以下のコマンドを実行。
docker compose --profile auto up --build
まあまあ時間がかかります。何故か環境構築完了後に出るはずの
webui-docker-auto-1 | Running on local URL: http://0.0.0.0:7860
が出ませんでしたが、ブラウザで「http://127.0.0.1:7860」にアクセスすると問題なくStable Diffusion WebUI が起動しました。
6 起動チェック
省略。
7 StableDiffusionの設定変更
7.1 Xformersの有効化
このサイトを参考にXformersを有効化する。ただし、ここによると、どうもデメリットもあるようだ。
Dockerを使用している場合は、コンテナ内にあるファイルを有効化する。ファイル名は上記リンク先記載のものと同じ「webui-user.bat」。ファイルの場所が違うので要注意。
7.2 バッチの繰り返し回数上限の変更
デフォルトでは1バッチあたりの繰り返し回数は100回に制限されている。仕事に行っている間に無限に画像を生成する場合は、上限値を変更する。
設定ファイルは「stable-diffusion-webui-docker」→「data」→「config」にある「ui-config.json」。このファイル中、以下の箇所の「100」を任意の数字に変更する。
txt2img/Batch count/maximum": 100,
img2img/Batch count/maximum": 100,
8 モデルの追加
デフォルトのモデルは以下の2つ。
sd-v1-5-inpainting
v1-5-pruned-emaonly
以下のモデルを追加導入。これらのモデルはクレジット不要。商用利用も可(ただしBeautiful Realistic Asiansは有料生成サービスへの使用は不可。)。細かいライセンスは要確認。
8.1 モデルのダウンロード
上記リンクからダウンロード。複数のファイル形式がある場合、「.safetensors」拡張子のものを選択するのがセキュリティ的に無難らしい。
8.2 モデルの導入
導入方法はダウンロードしたモデルを「stable-diffusion-webui-docker」→「data」→「models」→「Stable-diffusion」に入れるだけ。
9 日本語化
ここを参考に行う。日本語化は拡張機能により行う。
10 その他拡張機能の導入
拡張機能はStable Diffusion WebUIの「拡張機能(Extensions)」タブの「URLからインストール(Install from URL) 」から行うことが多いようです。インストールされた拡張機能は「stable-diffusion-webui-docker」→「data」→「config」→「auto」→「extensions」のフォルダに入っています。
10.1 ControlNetと関連拡張機能の導入
人物画像を生成した場合に、ポーズやキャラの固定を行うために、ControlNetとその関連拡張機能を導入します。具体的には以下の拡張機能を導入しました。これについては、別記事にまとめる予定。
ControlNet
Openpose Editor
!注意!
Stable Diffusionは使用しているモデルの関係で、手や足の出力が苦手なようです。おかしく出力された手を修正する拡張機能として「depth library」が紹介されています。残念ながら、以下の環境では、この拡張機能のファイル一式が「extensions」のフォルダに入っていると、Stable Diffusion起動時に拡張機能が読み込めず立ち上がらなくなります。この場合、この拡張機能のファイル一式を削除した上で、コンテナを再起動して下さい。
Windows 10 Pro 22H2
Docker Desktop 4.22.0
Google Chrome 115.0.5790.173
stable-diffusion-webui-docker version: v1.5.1
python: 3.10.9
torch: 2.0.1+cu118
xformers: 0.0.21.dev544
10.2 生成イメージ管理
生成したイメージを管理するために、以下のイメージブラウザを導入。どちらも一長一短があります。とりあえず両方インストール。
Infinite Image Browsing
Image Browser
以上、0~10までのステップを踏めば最低限のStable Diffusion環境をローカルに構築できるはずです。使い方については、もう少し使ってみてから記事にするかも。
11 Stable Diffusion WebUI Dockerのアップデートとダウングレード
11.1 アップデート
Dドライブのアドレスバーに「cmd /k」を入力し、コマンドプロンプトを起動。その後、以下のコマンドによりアップデートを実行。
git pull
docker compose --profile auto build --no-cache
docker compose --profile auto up --build
11.2 ダウングレード
Dドライブのアドレスバーに「cmd /k」を入力し、コマンドプロンプトを起動。その後、以下のコマンドによりダウングレードしたいバージョンの Commit ID を調べる。
git log
以下のコマンドを実行する。上手く行かない場合は、現行のコンテナを削除した後に実行する。
git checkout ****Commit ID****
docker compose --profile auto up --build