[Stable-Diffusion] 2022 M2 Macbook Air (mem24GB) で試す(2022/8/30版)
(恐らく初 zenn にチャレンジ)
今流行の Stable-Diffusion を手元の 2022 M2 Macbook Air (mem24GB) で試してみたのでメモ。
学習モデルはsd-v1-4.ckptを使用して、下記のコマンドで1枚できるのに約2分程度かかってました。
$ python scripts/txt2img.py --prompt "a photograph of an cat into a bottle" --plms
参考リンク
- 主に下記の記事を参考に環境構築。
- Stable-Diffusion(git)
- huggingface ユーザー登録して学習データをダウンロード
git も rust もインストール
rust は既に nft 周りで入れていました。
$ brew install git rust
pyenv, anaconda を使っての python 環境の構築
macbook air にしてから anyvenv を使用してます。
anyenv を使って pyenv をインストールしています。
そこに anaconda をインストールします。
最新を確認する。
$ pyenv install --list
anaconda3-2022.05 をインストールします。
$ pyenv install anaconda3-2022.05
anaconda を環境に設定します。
$ pyenv global anaconda3-2022.05
$ conda -V
conda 4.14.0
anaconda の環境を設定します(zsh を使用しているなら)。
$ conda init zsh
$ source ~/.zshrc
$ conda install -c conda-forge onnx
- anyvenv
stable-diffusion をクローン
コードを取得して apple-silicon-mps-support ブランチを使用します。
$ git clone https://github.com/magnusviri/stable-diffusion.git
$ cd stable-diffusion
$ git checkout apple-silicon-mps-support
stable-diffusion の環境を構築
ディレクトリ内の environment-mac.yaml を使って環境を構築します。
$ conda env create -f environment-mac.yaml
$ conda activate ldm
ここまで順調に行きつつも、この辺で下記のエラーになりました。
× python setup.py egg_info did not run successfully.
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [7 lines of output]
fatal: not a git repository (or any of the parent directories): .git
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "/private/var/folders/gb/8q4_4fyn7lq14tw0hh3dn2q00000gn/T/pip-install-u49hwp3q/onnx_d81b27368e554e9086ba74ae8b23edd3/setup.py", line 81, in <module>
assert CMAKE, "Could not find cmake executable!"
AssertionError: Could not find cmake executable!
[end of output]
いろいろ調べて pip, setuptools アップデートするもエラーは変わらず・・・。
$ conda update pip setuptools
結果、cmake をインストールすることで解決しました(入ってなかったんかーい)。
$ brew install cmake
エラーで途中までしか作成されていない環境を一度削除して、再度環境を構築します。
$ conda env remove -n ldm
$ conda env create -f environment-mac.yaml
今度は無事に通るので activate します。
$ conda activate ldm
ダウンロードした学習モデル(sd-v1-4.ckpt)を配置
huggingface でユーザー作成後、sd-v1-4.ckpt をダウンロードします。
$ mkdir ./models/ldm/stable-diffusion-v1/
$ mv ~/Downloads/sd-v1-4.ckpt ./models/ldm/stable-diffusion-v1/model.ckpt
実行!
下記コマンドで冒頭の写真とかが生成されます。
$ python scripts/txt2img.py --prompt "a photograph of an cat into a bottle" --plms
遊びがてらに色々と試すも、指定する文章を作るのが一番難しいかもですねw
$ python scripts/txt2img.py --prompt "man and woman riding a tricycle" --plms
てと指定したら、下記のが生成されましたww
以上です。
みんなでエンジョイしましょう!
誰かの助けになれば幸いです。
Discussion