😀

stable-diffusion-webui-docker を使ってWaifu Diffusionモデル等を使う

2022/09/18に公開

ものすごいスピードでFork版が開発され続けるStable Diffusionのweb-uiをDocker Container上で使えるようにまとめてくれた人がいます。
4GB GPU VRAMのサポートもありStable Diffusion等を簡単にUIから使いたい方は
これを使わせて貰うと大体のゲーミングPCやGPU付きのWindowsノートPCでも動かせる様なので良いかと思います。

https://github.com/AbdBarho/stable-diffusion-webui-docker

▼環境
Ubuntu 20.04

前準備

最初にリポジトリをクローンしておきます

$ git clone https://github.com/AbdBarho/stable-diffusion-webui-docker.git
Cloning into 'stable-diffusion-webui-docker'...
remote: Enumerating objects: 434, done.
remote: Counting objects: 100% (161/161), done.
remote: Compressing objects: 100% (65/65), done.
remote: Total 434 (delta 139), reused 96 (delta 96), pack-reused 273
Receiving objects: 100% (434/434), 83.40 KiB | 20.85 MiB/s, done.
Resolving deltas: 100% (220/220), done.

$ cd stable-diffusion-webui-docker

1 Setupページにしたがって進めます

https://github.com/AbdBarho/stable-diffusion-webui-docker/wiki/Setup

2 docker compose で環境をビルドします

※ --profile [ui] はautoで指定しました。

docker compose --profile download up --build
# wait until its done, then:
docker compose --profile [ui] up --build
# where [ui] is one of: auto | auto-cpu | hlky | lstein

cacheフォルダの中を見るとここに推論で使われるmodel.ckptがある様です。

ls ~/git/stable-diffusion-webui-docker/cache/models/model.ckpt
/home/keigo/git/stable-diffusion-webui-docker/cache/models/model.ckpt

model.ckptをwaifu-diffusionのモデルに差し替えておきます。
これでWaifu DiffusionのモデルがDockerをビルドするときに読み込まれます。
※hugging face側に負荷がかかりそうなので既にWaifu Diffusionをダウンロード済みの方は
 ファイルエクスプローラーなどでここにmodel.ckptの名前でモデルファイルを配置してください。

cd ~/git/stable-diffusion-webui-docker/cache/models/
mv model.ckpt model.ckpt.old
wget https://thisanimedoesnotexist.ai/downloads/wd-v1-2-full-ema.ckpt
mv wd-v1-2-full-ema.ckpt model.ckpt

3 ビルドを実行します

docker compose --profile [ui] up --build
# for example:
# docker compose --profile auto up --build
# or
# docker compose --profile hlky up --build

上記のコマンドを実行することでstable-diffusion-webuiの
imageをビルドしコンテナを実行してくれます。
プロファイルをauto | auto-cpu | hlky | lstein のいいずれかに設定して
webuiの構成が切り替えられます。

最終的にmodelをロードしてlocal URL(http://localhost:7860)で提供されるのでアクセスする事でWeb UIが開きます。基本的に私はautoで実行しています。

docker compose --profile auto up --build
webui-docker-automatic1111-1  | Loading weights [7460a6fa] from /cache/models/model.ckpt
webui-docker-automatic1111-1  | Global Step: 470000
webui-docker-automatic1111-1  | Model loaded.
webui-docker-automatic1111-1  | Running on local URL:  http://0.0.0.0:7860
webui-docker-automatic1111-1  | 
webui-docker-automatic1111-1  | To create a public link, set `share=True` in `launch()`.

▼ブラウザアクセス後の表示

テスト結果

txt2txtタブからpromptに入力してgenerateを押すとstable diffusionのモデルより
日本のアニメ調を強く反映した絵が生成されます。

▼stable-diffusionのモデルを使用した場合の出力画像

▼waifu-diffusionのモデルを使用した場合の出力画像はこちら

Thanks

thanks to everyone behind these awesome projects,
First I would like to contribute the project by introducing best environment run with the user PC environment.
And I will contribute the democratized AI through this activity.

AbdBarho/stable-diffusion-webui-docker#thanks
hlky/stable-diffusion-webui
AUTOMATIC1111/stable-diffusion-webui
lstein/stable-diffusion
CompVis/stable-diffusion
hlky/sd-enable-textual-inversion
devilismyfriend/latent-diffusion
Hafiidz/latent-diffusion

Discussion