🤗
新しいM1 macでStable Diffusion
CUDAでないと動かないのかと思ったら、別のブランチでM1対応をしているらしい。
という訳でこちらに従ってダウンロードを行う。
git clone https://github.com/magnusviri/stable-diffusion.git
cd stable-diffusion
git checkout apple-silicon-mps-support
mkdir -p models/ldm/stable-diffusion-v1/
もしこの辺りが入っていなければ、システム上にインストールしておく。
brew install cmake
brew install rust
適宜Anaconda環境を作成し、必要なレポジトリを導入。
conda env create -f environment-mac.yaml
conda activate ldm
モデルファイルはHugging faceから手動でダウンロードする。今回はv1-4をチョイス。
シンボリックリンクを貼るか、以下の名前に変更するかする。
models/ldm/stable-diffusion-v1/model.ckpt
あとはSAMPLEスクリプトを動かしてみる。
しかしここで"The operator 'aten::index.Tensor' is not current implemented for the MPS device"という悲しいエラーが出たので、環境変数を追加。動かない場合にはCPUを使うモードにFallback可能にする。
export PYTORCH_ENABLE_MPS_FALLBACK=1
無事ハワイの赤い海が出力されました。
python scripts/txt2img.py --prompt "red ocean in Hawaii" --n_samples=1 --n_iter=1
Discussion