Stable Diffusion やってみた

投稿者: | 2023年5月16日

今流行りの Stable Diffusion にちょっと興味があって動かしてみました。

とは言っても、ごつい GPU も持っていませんし、普段使いの PC に動作に必要な Python 環境をインストールして…とかはしたくなかったのですが、Stable Diffusion web UI が docker で動かせて、GPU もいらないというので…

ならそれ docker で! w

参考にさせていただいたのは、こちらの記事。

DockerでStable Diffusion(WebGUI)を動かす方法

要は、GitHub で AbdBarho さんが公開してくれているありがたいリポジトリから、まるごと拝借。普段こういうことはあまりやらないのですが、お試しですから ^^;A

cd && git clone https://github.com/AbdBarho/stable-diffusion-webui-docker
cd ~/stable-diffusion-webui-docker
docker compose --profile download up --build

ビルドにはイメージの構築以外にも、モデルなどいろいろダウンロードしてくるので、環境にもよりますが、結構時間がかかりますし、ダウンロードがタイムアウトで失敗するときもあります。

その場合は、エラーコード 0 が返ってくるまで

docker compose --profile download up --build

を何度もリトライ!ビルドができれば、あとは…

docker compose --profile auto-cpu up --build

として、イメージを起動し、http://localhost:7860/ にブラウザでアクセスすれば、GPU なし、CPU だけで Stable Diffusion web UI をお試し…できない orz

そもそもにして…

docker イメージを起動するコマンドを見てもらっても、docker プラグインの compose で起動しているので、かなり新しいバージョンの docker 向けの compose ファイルです。

少なくとも Ubuntu 22.04 LTS の標準リポジトリにある docker (v20.10) で、docker-compose コマンドで起動しようとしても、エラーを吐きます。

そこで Windows の docker desktop を使って動かそうとしたのですが、これがイメージの起動時にエラーを吐いて、Exit してしまう。お試しするだけで、そんなにパワーをかけたくなかったのですが、せっかく、1 時間近くかけてイメージを作ったこともあり、ちょっと力を入れて検索し見たところ…要はメモリー不足だったようです。

メモリーを 16GB も積んでいるデスクトップでなんでやねん!と思ったのですが、Windows Subsystem for Linux(WSL) のデフォルトでは、ホスト OS の半分までしかメモリを使わないようになっているようです。かつまたスワップレスであるようです。

そこで、スワップを設定して、もっと大きなメモリ領域を WSL で使えるようにします。

C:\Users\[ユーザー名]\ 以下に .wslconfig ファイルを作成し、ここに以下のように記述します。

[wsl2]
memory=8GB
swap=16GB

もちろん、スワップを設定してますので、実メモリ領域とプラスして、もっと大きいメモリを設定すれば、多少なりとも動作は速くなると思いますが、ひとまずこれで無事、docker イメージは起動しました。

お試しには十分かと思います。これで半日、遊び倒してできた画像がこれ w

時間ができたら、好みをてんこ盛りのこのサイトのイメージガールでも作ってみようと思います ww

【追記】 2022/5/22

Stable Diffusion web UI は、アップデートの頻度が低くはないので、docker で動作する環境をアップデートする場合は、以下で OK

cd ~/stable-diffusion-webui-docker
git pull
docker compose --profile download up --build

Mac で Stable Diffusion!

Apple シリコン搭載(でなくともいけるらしいが…) Mac なら Draw Things を使うのがお手軽超簡単。なんせ AppStore からインストールするだけ! (^^)b

上記くらいの画像ならこれでできます…

Draw Things: AI-assisted Image Generation

が、なにせ、とにかくモデルデータが数 GB クラス、それも一つ、二つでは同じような絵しか作れないので、Apple シリコンのおかげで GPU なしでもそこそこ早くても、256GB ぽっちの SSD しか詰んでいない M2 MacBook Air では、お遊び以上のことはしない方が良さそう。

Photoshop とかを組み合わせて本格的に触るなら、やはり NVIDIA 製の GPU と潤沢なストレージがあった方が良さそうです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です