Stable DiffusionをローカルのGPU無しのWindows PC(Intel CPU)で動かす方法
Stable Diffusionをローカルで手軽に動かす方法
Stalbe Diffusion話題ですね。ただネックなのはGPUが必要な点です。GPUを持ってない人や、CUDAはよくわからない/絶対に入れたくないという人もいるでしょう。クラウドを使う方法もありますが、色々な事情で使えない/使いたくない人もいるでしょう。
そんな全世界のStable Diffusion難民に朗報です。Stable DiffusionがIntel CPUで動きます。しかもWLS2で動くので、大体のWindows PCで動きます。
以下のstable_diffusion.openvinoを使うだけです。
OpenVINOの説明は省略します。とにかくIntel CPUに最適化されたエッジコンピューティングのすごいヤツです(雑)
セットアップ方法
前提
- Intel CPU
- Windows OS 11にWSL2をインストール(Window 10でもLinuxでも多分動きます)
Windows PCのセットアップ参考記事です。WSL2が動けば基本OKです。
セットアップ
Python環境はpyenv/pyenv-virtualenvを使います。エーって言わないでください、理屈じゃないんです。Dockerの環境構築とかは誰かに任せました!好きに記事を書いてくれ!
pyenvのインストール方法は、以下記事参照ください。
あとは、脳死で以下コマンドを実行してください。
Python環境構築
$ pyenv global 3.8.12
$ pyenv virtualenv 3.8.12 sd
$ pyenv global 3.8.12/envs/sd
ソフトセットアップ
git clone https://github.com/bes-dev/stable_diffusion.openvino
cd stable_diffusion.openvino/
pip install -r requirements.txt
使い方
以下コマンドで画像生成できます。
$ python stable_diffusion.py --prompt "karaage"
ftfy or spacy is not installed using BERT BasicTokenizer instead of ftfy.
32it [01:41, 3.18s/it]
あら美味しそう。レモンもないのが得点高いですね。
我が家のIntel Core i 7のゲーミングPCで2分弱で1枚でした。デフォルトの推論回数は35回に設定されています(普通のStable Diffusionは50回がデフォルトです)。
時間はかかりますが、これで大体の人がStable Diffusionを動かせるのではないでしょうか。
Docker使用
Dockerイメージもあります。Docker得意な人はこちらでセットアップするのがよいと思います。
Docker初心者の方は、以下記事参照ください。
動かした方の記事
本家のStremlitのWeb GUIを手軽に動かせるDockerイメージです
実際に試してみました。
以下コマンドを実行します(最初に1回だけでOKです)
$ git clone https://github.com/WindVoiceVox/stable_diffusion.openvino-docker
$ cd stable_diffusion.openvino-docker
$ docker build --build-arg UID=$(id -u) --build-arg GID=$(id -g) -t stable_diffusion:openvino .
あとは以下実行すると、ローカルでWebサーバが立ち上がります。
$ docker run -it --rm -p 8501:8501 stable_diffusion:openvino bash
streamlit run demo_web.py
ブラウザで以下のアドレスのリンクに行くとWebサーバにアクセスできます。
以下のようにUIが表示されます。
メモリが少ない場合
WSL2の場合ですが、以下の記事が参考になるかもしれません。
基本はメモリの多いPCで実行するのが良いと思います。メモリない場合は、まとめで記載しますが、Google Colabを使うのがオススメです。
最低でも10GB以上ないと起動しないようです(8GBのLinux PCで試したところKilledと表示されて止まってしまいました)。
まとめ
stable_diffusion.openvinoを使って、CPUで手軽にStable Diffusionを動かす方法を紹介しました。今まで使いたかったけど、セットアップで挫折していた人も、これだったら動かせるという人が結構いるかもしれませんね。
もっと速く高品質な画像を生成したいという人は、GPU付きのPCやクラウドがおすすめです。Google Colabを使う場合は、以下のような記事も書いていますのでよろしければ参考にしてみてください。
関連記事
変更履歴
- 2022/09/09 Dockerを使った動かし方に関して追記
- 2022/09/04 メモリが少ないケースを追記
Discussion