お絵かきAI「Stable Diffusion」をIntel Macで動かした。動くまで、エラーとの試行錯誤があったのでまとめておく。
動くがGPUは使えない
- Intel Macでは、GPUモードだとエラーになる(2022年10月現在)
- GPUがAMDなので、涙、、
- 上のような6枚セットの画像を書き出すのに30分かかる、ただし、その間もMacProだと他の作業もできる、Zoomもできる
でも、動く!
GPUなしで、動くのがすごいと思う。
MacProの構成
こんな感じ
homebrewは使えるようになっている前提です。
condaコマンドとrustを導入 環境セットアップ
condaコマンドとrustを導入
brew install anaconda miniconda rust
Stable Diffusion 環境構築
基本的にはこちらの記事を参考に作業を進めた。
ホームフォルダにて、Gtiからリポジトリ取得すると、その階層に「stable-diffusion」ができる。
git clone https://github.com/CompVis/stable-diffusion.git
cd stable-diffusion
- environment.yaml 変更 (Cudaを利用しないように変更)
- 仮想環境作成
- 学習モデルをダウンロードし、フォルダ名を変更して、「stable-diffusion-v1」フォルダへ移動
- トレーニングを実行
ここまで、上記の記事を参考にして進める。ここまでは順調だった。
CPUモードで動くようにコードを改造
ここも、同じ記事の修正手順を参考に、Pythonスクリプトを修正する。
- scripts/txt2img.py
- 63行目
- 243行目
- 283行目
- ldm/models/diffusion/plms.py
- 18行目
- configs/stable-diffusion/v1-inference.yaml
- 69行目(ここは追加)
- ldm/modules/attention.py
- 211行目
エラーが発生したので解決
ModuleNotFoundError: No module named ‘taming’
\stable-diffusion\src\taming-transformers\tamig フォルダを\stable-diffusion フォルダまでコピーするといいらしいのだが、\src\が見つからない。
この記事を見つけて
pip install taming-transformers
こちらを実行するといいらしいと書いてあるので、実行したりすると、このエラーは解決した。(正直、色々やっちゃって、多分これで解決したと思うけど、もしかしたら、違うかもしれない…)
ModuleNotFoundError: No module named ‘ldm’
pip install -e .
こちらを実行し、解決。
ModuleNotFoundError: No module named ‘clip’
\stable-diffusion\src\clip フォルダを\stable-diffusion フォルダにコピーするといいとのことだが、\src\が見つからない、、なんで無いの?(理由を知っている方、教えて〜)
githubにCLIPがあるのを知り、ここからダウンロードして、解凍したフォルダをまるっと \stable-diffusion フォルダの直下に配置して、解決。
6枚の書き出しを実行したら30分で書いてくれた
python scripts/txt2img.py --prompt "Oil painting of a kitten playing with catnip" --plms --precision full
このコマンドで書き出したのが、こちら。
当初はMacProでも30分かー、、、とGPU使わないでCPUだもんなー、RTX3060値段が落ち着いたから、Windowsマシンを組み立てるか、、と思ったり、
Mac studioのページを眺めたりしたが、
実際は、他の作業も十分にできるので、何か作業をしながら、どんどん書いてもらっていて、いい感じだ。
コマンドをたくさん試そう。
参考記事だと、
- 2.3 GHz 8コアIntel Core i9で、画像6枚 1時間
- M1 MacBook Airで、画像3枚で50分
Xeon12コアは伊達じゃなかった。
RTX3060だと、1枚 20秒かからないのかも、、だけど、動くのだからいいじゃないか!と喜んでいる。
本音 → AIは、NVIDIAだから、Macはきついなぁ、、。
参考リンク
感謝です。おかげさまで動きました。