文章から高精度画像生成ができると話題になっている
「Stable Diffusion」
がオープンソースであるとのことを最近知ったので、ローカル環境で実行してみた。
基本的には環境構築の備忘録のようなものです。
実行環境(スペック等)
基本的なスペックは以下
- Mac Studio(2022)
- Mac OS Monterey(12.5.1)
- Apple M1 Max
- メモリ 32GB
- GPU 24
- Python 3.10.3
要件的にmacOSは12.3以上必要そう。
環境構築
python実行環境は今回はpyenvを利用して構築します。
pyenvのインストール
1 2 |
git clone git://github.com/yyuu/pyenv.git ~/.pyenv brew install pyenv |
pathの編集
pyenv のpathを通すために zsh_profile(人によって異なる)を編集
1 2 3 4 |
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zsh_profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zsh_profile echo 'eval "$(pyenv init --path)"' >> ~/.zsh_profile echo 'eval "$(pyenv init -)"' >> ~/.zsh_profile |
下記実行で変更を適用させる。
1 |
soruce ~/.zsh_profile |
stable diffusionのリポジトリをクローン
1 |
git clone -b apple-silicon-mps-support https://github.com/bfirsh/stable-diffusion.git cd stable-diffusion mkdir -p models/ldm/stable-diffusion-v1/ |
pyenvでpythonをインストールとバージョンの切り替え
1 2 3 4 5 |
pyenv install --list pyenv install 3.10.3 pyenv local 3.10.3 python --version >Python 3.10.3 |
一行目の実行で表示されるpythonのバージョンのリストの最新をインストールする。
四行目を実行してインストールしたバージョンが表示されればOK
virtualenvで必要なライブラリのインストールを行う
1 2 3 4 |
python3 -m pip install virtualenv python3 -m virtualenv venv source venv/bin/activate pip install -r requirements.txt |
pip install で onnx がどうこう言われた場合
1 |
brew install Cmake protobuf rust |
でおそらく解決できる。
hugging faceから学習済みモデルをダウンロード
こちらからsd-v1-4.ckptをダウンロードして、「models/ldm/stable-diffusion-v1/」に「model.ckpt」として保存します。
実行
prompt の後に出力したい画像の説明を入力して実行する。
1 |
python scripts/txt2img.py --prompt "" --n_samples 1 --n_iter 1 --plms |
今回は
- banana on the water(水の上のバナナ)
- nishikigoi like a pokemon(ポケモン風の鳥)
- nishikigoi like a pokemon(ポケモン風の錦鯉)
- frog like a pokemon(ポケモン風のカエル)
として実行。実行時間はそれぞれ約6分弱でした。
出力結果
結果は以下のようになりました。
一枚目と三枚目は微妙な結果になりましたが、2枚目四枚目はまだリアリティが強いようですが、そこそこ良い結果なのかなと思います。
何気に三枚目の右下の子がかわいい。三枚目著作権とか訴えられないよね。。。
終わりに
今回は試しに使うだけでしたが、
論文やコードを見て具体的な処理を理解したらもっと面白いのかと思いました。