WSL

WSLでStable Diffusion を使って画像生成を行う。日本語でもOK

はじめに

WSLでStable Diffusion を使って画像生成行ってみたいと思います。通常はグラフィックボードが必要となるStable Diffusion を気軽にWSLで利用する方法です。

GitHub - bes-dev/stable_diffusion.openvino
GitHub - bes-dev/stable_diffusion.openvino

Contribute to bes-dev/stable_diffusion.openvino development by creating an account on GitHub.

github.com

WSLで利用する方法を紹介していきます。

Python をインストール

Python <= 3.9.0 という条件があります。WSLのUbuntu22.04では最新版がインストールされている可能性があります。

そこでpyenv で指定されたバージョンを使用します。

Ubuntuをアップデートしておきます。

apt update
apt upgrade

次にpyenvをダウンロードしてきます。

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

パスを通します。

echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(pyenv init -)"' >> ~/.bashrc
source ~/.bashrc

pyenvでインストールするにはgccとmake、依存関係のライブラリが必要になります。

apt install gcc make build-essential libssl-dev libffi-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev liblzma-dev

3.9.0 をインストールします。

pyenv install 3.9.0

次にPython を指定します。

pyenv global 3.9.0

stable_diffusion.openvino をインストールする

GithubよりCloneしてきます。

git clone https://github.com/bes-dev/stable_diffusion.openvino

Stable Diffusion を利用するために必要なものをインストールします。

cd stable_diffusion.openvino

これはPIPでインストールされます。

python -m pip install --upgrade pip
pip install openvino-dev[onnx,pytorch]==2022.3.0
pip install -r requirements.txt

もしインストールに失敗する場合には
/root/.pyenv/pyenv.d/exec/pip-rehash/pip: line 20: 27574 Killed

pip install -r requirements.txt --no-cache-dir

デモの実行

文章からイメージを作成します。

python demo.py --prompt "Street-art painting of Emilia Clarke in style of Banksy, photorealism"

直訳するとバンクシー風にエミリア・クラークを描いたストリートアート、フォトリアリズムだそうです。

それなりに時間はかかります。

output.png が作成されていると思います。それっぽいのが出来上がりました。

日本語でもできるようです。

python demo.py --prompt "太陽と月"

まとめ

Stable Diffusion はGPUが必要でしたがCPUの環境のみ、例えばノートパソコンでも実行できます。色々と遊べるのはないでしょうか。

ちなみにアイキャッチ画像は「Image generation using Stable Diffusion in WSL.」で作成しています。

-WSL
-,