見出し画像

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


いいなと思ったら応援しよう!