AIを利用して画像を生成できる「Stable Diffusion」と呼ばれるツールが人気です。
ただし、Stable Diffusionのオリジナル版は、新しめのNvidiaのGPUが必要で、自分の持っているPCでは実行できないという方も多いかもしれません。
幸いそのような場合は、Stable DiffusionをIntel CPUのみで実行できるように改造した「stable_diffusion.openvino」を使用することができます。
Intelが提供するOpenVINOと互換性を持つCPU上であれば、Linux、Windows、macOSの各環境上のPython 3.8以降で動かすことができます。
今回はユーザーが多いであろう、Windows環境でWSLを使い、stable_diffusion.openvinを実行する方法を説明します。
pyenvの設定
WSLはUbuntuを想定しています。
Pythonはapt install python
でインストールすることもできますが、今回はやり直しの手軽さを考えてpyenvを使ってインストールします(pyenv設定済みの方はスキップしてください)。
なお、検索するとpyenv+virtualenvを使っている場合が多いのですが、virtualenvをインストールしようとするとエラーが発生したので今回はpyenvのみとしました。
まず必要なパッケージをaptでインストールします。
sudo apt install build-essential sudo apt install libssl-dev libffi-dev libncurses5-dev zlib1g zlib1g-dev libreadline-dev libbz2-dev libsqlite3-dev libgl1-mesa-dev make gcc
pyenvをclone設定します。
git clone https://github.com/yyuu/pyenv.git ~/.pyenv
.bashrcに以下の行を追加します。
git clone https://github.com/yyuu/pyenv.git ~/.pyenv export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)"
source ~/.bashrc
するかターミナルを起動しなおします。pyenvが実行できれば成功です。
Pythonのインストール
pyenvを使ってPython 3.8.xをインストールします。
pyenv install 3.8.12 pyenv global 3.8.12
python --version
で「Python 3.8.12」と表示されれば成功です。
stable_diffusion.openvinoを実行
stable_diffusion.openvinのリポジトリをcloneします。
git clone https://github.com/bes-dev/stable_diffusion.openvino
pipコマンドで必要なライブラリをインストールします。
cd stable_diffusion.openvino pip install -r requirements.txt
いよいよstable_diffusion.openvinoを実行します。promptの後の文字列は自分で工夫する必要があります(その文字列にちなんだ画像が生成されます)。
python demo.py --prompt "origami"
成功するとディレクトリ内にoutput.png
が書き出されます。explorer.exe .
してエクスプローラーを起動し確認します。
stable_diffusion.openvinoの公式サイトには、以下のようなサンプルも掲載されています。パラメーターを調整することで新たな発見がありそうです。
Text-To-Imageのサンプル
python demo.py --prompt "Street-art painting of Emilia Clarke in style of Banksy, photorealism"
Image-To-Imageのサンプル
python demo.py --prompt "Photo of Emilia Clarke with a bright red hair" --init-image ./data/input.png --strength 0.5
まとめ
Stable DiffusionをIntel CPUのみで実行できるようにした「stable_diffusion.openvino」の使用方法を説明しました。NvidiaのGPUはないがIntel CPUはあるという方は試してみてはいかがでしょうか。