1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【初投稿】Stable(Waifu) diffisionをM1MacProで使う

1
Last updated at Posted at 2022-10-29

Stable diffisionとは

最近色々使われている、お絵描きAIソフト。
今回自分はMacBookProで構築していきます。色々な方法がネットにあり試してみたのですが、今回はその中でもMacbookProが簡単にローカルで実行できる方法を記載します。

使用した環境

モデルの取得

モデルに関しては、Mac、WindowsなどのOSによる差異はないです。
通常のstablediffusionをダウンロードする場合は、以下のサイトからモデルをダウンロードします。下にあるwaifudiffusionは、アニメ調の女子を描くのに適したモデルです。

ログインした後は、Git lfsでクローンするか、Download the weightsからモデルを
ダウンロードします。この時、モデルがsd-v1-4.ckptと、sd-v1-4-full-ema.ckpt
の二つがありますが、どちらを選択しても動作します。自分はfull-emaの方をダウンロードしました。

スクリーンショット 2022-10-29 15.21.14.png

環境構築

モデルをダウンロードするために、git lfsをダウンロードする必要があります。(Zipでダウンロードする事も可能。)
まずはHomeBrewをアップデートする。
HomeBrewがない時はこのリンクからインストールする。http://brew.sh/index_ja.html

brew.update
brew update

そして、git-lfsをインストールする。

lfs.install
brew install git-lfs

最新のPythonをインストールする。

python.install
brew install python

依存関係をインストールするためにVirtualenvをセットアップする。

python3 -m pip install virtualenv
python3 -m virtualenv venv

最新のPythonをダウンロードした後、StableDiffusionのコードをクローンします。

git clone -b apple-silicon-mps-support https://github.com/bfirsh/stable-diffusion.git

その後、モデルを置くディレクトリを作成します

cd stable-diffusion
mkdir -p models/ldm/stable-diffusion-v1/

次に、実行環境をActiveにします。

source venv/bin/activate

Pythonパッケージのインストール・管理システムであるpipから依存関係をインストールします。

pip install -r requirements.txt

この時、Failed building wheel for onnxとエラー文が出る時は、以下のパッケージをインストールしてください。

brew install Cmake protobuf rust

先ほどダウンロードしたモデルを、上記で作成したディレクトリmodels/ldm/stable-diffusion-v1/に「model.ckpt」という名前にリネームして保存します。

これでセットアップは完了です。
以下のような形でコードを実行してみると、、、

python scripts/txt2img.py \
  --prompt "a red juicy apple floating in outer space, like a planet" \
  --n_samples 1 --n_iter 1 --plms

/stable-diffusion/outputs/txt2img-samples/samples
に画像が出力されています。ちなみに自分はこんな感じ。
00006.png

出力にかかる時間はおよそ5分ほどです。Mac用のコードをちゃんとクローンできていれば、GPUをちゃんと使ってくれます。(違うコードで行った場合は1時間ほどかかっていました。)
スクリーンショット 2022-10-29 15.31.58.png

2回目以降に実行する場合

最初に構築したstablediffusionのディレクトリに移動する。

cd stable-diffusion/

そして、環境をAcrtiveにする。

source venv/bin/activate

そして、絵画の生成コマンドを実行する。プロンプトを色々変えてみると、それに合った絵が出力される。ちなみに--n_samplesはサンプリングの回数、--n_iterは出力の回数であり、2とか3で試したら凄い時間がかかってしまった。1にするのが一番早いと思われる。

python scripts/txt2img.py \
  --prompt "好きな文字列" \
  --n_samples 1 --n_iter 1 --plms

参考サイト

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?