はじめに
WSLでStable Diffusion を使って画像生成行ってみたいと思います。通常はグラフィックボードが必要となるStable Diffusion を気軽にWSLで利用する方法です。
-
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.」で作成しています。