Appearance
Stable Diffusionを動かしてみる
Stable Diffusionは、テキストから画像生成を行う生成AIモデルです。
今回はM1 Macのローカル環境で、Hugging Faceのdiffusers
を使って画像生成する方法を紹介します。
ローカル環境の構築
動作確認した環境
OS: macOS Sequoia 15.3
メモリ: 32GB
Python: 3.10.12
Hugging Faceのアカウント作成
Hugging Face上のモデルを利用するため、アカウントを作成し、Access Tokensを生成します。
既にアカウントをお持ちの方は、この手順はスキップしてください。
- Hugging Faceにアクセスし、アカウントを作成します。
- ログイン後、右上のアイコンをクリックし、
Access Tokens
を選択 Create new token
をクリックToken type
は、READ
を選択(モデルを触るだけであれば、READ
で十分です)- 適当なトークン名を入力し、
Create token
をクリック - 生成されたトークンをコピーしておきます(2度と見れないので、忘れずにコピー。そして、誰にも共有しない。)
Hugging Faceのモデルを使う準備
必要なライブラリをインストールします。
bash
pip install diffusers torch transformers accelerate
サンプルコードを実行する
以下のサンプルコードでStable Diffusionを動かしてみます。
M1 Macのmpsを使って画像生成できるようにmps
を指定しています。
python
# main.py
from diffusers import DiffusionPipeline
pipe = DiffusionPipeline.from_pretrained(
"stable-diffusion-v1-5/stable-diffusion-v1-5"
)
pipe = pipe.to("mps") # Use Metal Performance Shaders (MPS)
pipe.enable_attention_slicing()
prompt = "a photo of an astronaut riding a horse on mars"
image = pipe(prompt).images[0]
image.show()
image.save("generated_image.png")
確認
実行前にhuggingface-cliを使って、tokenを設定します。
既に設定済みの場合はスキップしてください。
tokenが設定されていないと、モデルのダウンロードでエラーが発生します。
bash
huggingface-cli login
Enter your token (input will not be visible): # ここにアクセストークンを入力する
tokenの設定が問題なければ、以下のコマンドでサンプルコードを実行します。
bash
python main.py
サンプルコードを実行すると、以下のような画像が生成されます。
まとめ
Stable Diffusionをローカル環境で動かす手順を紹介しました。
mpsを使ってStable Diffusionを動かすことができました。
サンプルコードのレポジトリはこちらです。