電通総研 テックブログ

電通総研が運営する技術ブログ

CPUのみの環境でAI絵のお試し環境を構築してみよう(docker版)

初めに

ISID X(クロス)イノベーション本部 の三浦です。 仕事でかかわってるわけではありませんが、個人的な興味としてStable Diffusion周りの動向を追っております。 あの界隈の進歩は今凄まじいですね。

で、google colab上で試すというやり方もあるのですが、google colabのリソース枠を使い果たす事態が最近頻発しておりますので今回はdokcerベースでローカル環境を作りました。 また、CPUのみのマシンでもお試しできることを確認しましたので執筆している次第です。

概要

Stable Diffusion、および、Stable Diffusion派生モデルを使用していくうえで非常に便利な『Stable Diffusion web UI(AUTOMATIC1111版)』の環境をGPUが使えないマシン向けにdokcer で構築します。 なお、Stable Diffusion web UI(AUTOMATIC1111)は、google colab上で動作させることも可能です。

前提条件、検証環境

  • dokcer compose 使用
  • gitクライアント 使用
  • windows10 メモリ 16G以上 (メモリ8Gは厳しいです)

手順概要

これだけでAI絵作成用のツール、Stable Diffusion web UI(AUTOMATIC1111版)を立ち上げることが可能です。 なお、本日は省略しますが、簡易に他のStable Diffusion派生モデルを追加し利用することも可能です。

実行例

stable-diffusion-webui-dockerをclone後、

docker compose --profile download up --build

上記コマンドを実行します。相当量のリソースをダウンロードするため私の環境では1h弱かかりました。

上記のように必要なリソースがダウンロードできたので次はCPUモードで起動します。 なお、上記ディレクトリに手を加えれば他のStable Diffusion派生モデルの利用も可能です。 また、起動オプションの変更によりGPUモードで起動することも簡単です。 さらにdocker-composeファイルを編集することにより低スペックなGPUでも稼働させることもできます(※1)。

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

起動が完了すると↑のようにURLが表示されますのでhttp://localhost:7860/ にアクセスします。 なお、一度目の起動には非常に時間がかかりますが、二回目以降は数分レベルで起動します。

利用例

上記設定で、下記ぐらいの速度で生成できます。

intel i7 4770s (物理4コア)の場合、400s Ryzen 7 3700X (物理8コア)の場合、200s

解像度、step数、サンプラー、モデルで生成速度はだいたい決まります。対話式でいろいろ試すにはややつらいですが、プロンプト掲載サイトのプロンプトを試すならある程度割り切れる速度かと思ってる感じです(※2)。

また、こんな感じで簡単に複数枚作ることもできるので寝ている間にCPUを酷使して大量生成するのも簡単です。

GPUでちゃんとモデルがのる環境だと、↓が1分程度で生成可能です。

CPUのみ物理4コアのマシンにて約40分で生成しました。100枚までまとめて生成可能なので夜数時間かけて生成するという使い方も可能です。

まとめ

いま、画像生成の分野は非常に盛り上がっていると思います。ご興味を持った方は触ってみるといいのではないでしょうか?

注記

※1 メモリ4GクラスのGPUでも動作させることができます。GTX1650で稼働することを確認しました。が、かなり遅くなるので、メモリ8G以上のGPUがお薦めです。

※2 google colabだと、10s-20s程度です。

執筆:@miura.toshihiko、レビュー:@higaShodoで執筆されました