Closed15
M1 MacでローカルでStable Diffusionを動かしてサンプルの画像を生成するまで
こちらの記事を参考にする
VRAMが10GB未満の環境では半精度(float16)のモデルがオススメされています。
とあるものの、M1 Macだと専用のグラフィクスメモリがない
一旦こちらのスクラップを参考にさせていただく
$ git clone https://github.com/CompVis/stable-diffusion.git
$ cd stable-diffusion/
ここでissueを発見
こちらの投稿によると
brew install python3@3.10
pip3 install torch torchvision
pip3 install setuptools_rust
pip3 install -U git+https://github.com/huggingface/diffusers.git
pip3 install transformers scipy ftfy
を実行してからpython3を起動して、通常の手順を踏んでみるとのこと
ローカルのPythonのバージョンを確認
$ python --version
Python 3.8.12
pip3 install transformers scipy ftfy
こちらの実行時にエラーになる模様
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for tokenizers
Failed to build tokenizers
ERROR: Could not build wheels for tokenizers, which is required to install pyproject.toml-based projects
こちらのTwitter投稿も参考になるかも
いずれにせよAnacondaは必要そうだったので入れておく
PRが出ている
To get this to work, the only thing that needs to be done differently is that the conda environment needs to use environment-mac.yaml instead of environment.yaml
とあるので、environment.yamlの代わりにenvironment-mac.yamlを使って上げればいいっぽい
あとは通常の手順通りにやってみる
conda env create -f environment-mac.yaml
conda activate ldm
conda install pytorch torchvision -c pytorch
pip install transformers==4.19.2 diffusers invisible-watermark
pip install -e .
とりあえずエラーとかなくいけたっぽい
こちらのコマンドでやっていることを手動で実行していく
mkdir -p models/ldm/stable-diffusion-v1/
ln -s <path/to/model.ckpt> models/ldm/stable-diffusion-v1/model.ckpt
下記のサイトからsd-v1-4.ckptというモデルをダウンロード。
落としたファイルを、リポジトリの中にコピーして名前を変更。パスはこんな感じになった。
stable-diffusion/models/ldm/stable-diffusion-v1/model.ckpt
試しにできるかどうかやってみる
python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms
しかし、うまくいかない
RuntimeError: expected scalar type BFloat16 but found Float
Twitterでヒントを発見
確かにPRにコメントがある
再度実行してみると、うまくいっていそうでした。
ただ所要時間についてはやはり1時間半くらいかかった。
python scripts/txt2img.py --prompt "a photograph of an astronaut riding a horse" --plms --precision full
open outputs/txt2img-samples
このスクラップは2022/09/05にクローズされました