概要
- 以下環境のPCでStable Diffusionを動かすことができたので、その構築手順を残します。
- brew/python/venv だけなので多分一番楽の構築手順かなと思います
- ちなみにIntelチップのMacも持っているのですが、そちらではうまくできませんでした...
Mac
- 機種ID:MacBookPro18,3
- macOS:Monterey
- チップ:Apple M1 Pro
- メモリ:16GB
参考記事
- 以下の記事が一番簡潔で実行しやすい手順だと思います。今回もこちらに沿って実施しました。
手順
①Homebrewのインストール
②python3のインストール
③リポジトリのクローン
④バーチャル環境の構築
⑤学習済みモデルのダウンロード
⑥Stable Diffusionの実行
①Homebrewのインストール
- 以下コマンドでまずはHomebrewが入っているか確認できます。
- Homebrewとは、ソフトウェアの導入をシンプルに行うことができるパッケージ管理システム。
$ brew --version
Homebrew 3.6.20
Homebrew/homebrew-core (git revision 2f7330fe49b; last commit 2023-01-26)
- 自分の場合は3.6.20でupdateしていました。
- updateする方は以下のコマンドを実行してください。
$ brew update
- まだインストールされていない場合は、公式サイトのHomebrewの指示に従ってインストールしてください
②python3のインストール
- 続いて、以下コマンドでPythonが入っているか確認できます。
$ python3 -V
Python 3.10.9
- 自分の場合は3.10.9でupdateしていました。
- まだインストールされていない方は、以下のコマンドを実行してください。
- Pythonのバージョンは3.10以上が必須らしいです。
$ brew install python
- 自分の場合は3.10.9でupdateしていました。
③リポジトリのクローン
- Stable DiffusionをGitからクローンしてきます。
- クローンする際は、リポジトリを管理している所定のディレクトリで行うと良いと思います。
$ git clone -b apple-silicon-mps-support https://github.com/bfirsh/stable-diffusion.git
$ cd stable-diffusion
$ mkdir -p models/ldm/stable-diffusion-v1/
- 一番最後のディレクトリを作成したのは、この後必要ファイルを格納するためです。
④バーチャル環境の構築
- Stable Diffsionディレクトリ直下で、以下コマンドによりvirtualenvをインストールしvenvを作ります。これらのソフトウェア(ライブラリ)が仮想環境を構築するのに必要になります。
$ python3 -m pip install virtualenv
$ python3 -m virtualenv venv
- 下記コマンドでバーチャル環境を実行できます。
$ source venv/bin/activate
- プロンプトが変わったことを確認できると思います。頭に(venv) とついているはずです。
- venvの状態で以下を実行します。以下により指定されたライブラリがインストールされますが、venv環境下で行った方がほかパッケージの相性やアップデートによる影響が少ないので、venvで行なっています。
$ pip3 install -r requirements.txt
⑤学習済みモデルのダウンロード
- Stable Diffusionの実行には、学習済みモデルをダウンロードする必要があります。
- アカウント登録や同意確認が必要という記事が多いですが、2023/1/26時点では、アカウントの登録など不要のよう?
- 「Hugging Face」のサイトに行き、「Download the weights」から「sd-v1-4.ckpt」をダウンロードします。
- そのファイルを「models/ldm/stable-diffusion-v1/model.ckpt」のディレクトリに設置します。
- 4.27GBあるのでダウンロードは少し時間がかかります
⑥Stable Diffusionの実行
- これで準備は整いました。以下を実行してみましょう。
$ python3 scripts/txt2img.py --n_samples 1 --n_iter 1 --plms --prompt "beautiful galaxy"
- デフォルトの512x512であれば1枚2分くらいで終わります。
- 他にもパラメータを付けることができますので、詳細調べてみると面白いかもしれません。
- 一度に何枚出力するか、画像サイズをどうするか、等を決めることができます。
- 参考:Stable Diffusion txt2imgのパラメータ一覧
[Errno 2] No such file or directoryエラー
- 自分の場合は以下のエラーが表示されましたので、その解決方法も記します。
FileNotFoundError: [Errno 2] No such file or directory: 'models/ldm/stable-diffusion-v1/model.ckpt'
- こちらも上記参考記事に記載がありましたが、先ほどダウンロードしたファイル名を変えてあげれば解決します。
変更前:models/ldm/stable-diffusion-v1/sd-v1-4.ckpt
変更後:models/ldm/stable-diffusion-v1/model.ckpt
Enjoy!!