Stable DiffusionをMacで動かす方法【ステップバイステップ解説】

silver iMac, keyboard, and mouse
Photo by Alex Bachor on Unsplash

はじめに

最近、AI画像生成ツール「Stable Diffusion」に注目が集まっています。クラウドサービスも増えていますが、Macでローカル環境に構築すれば、通信制限なく高速に試作を繰り返せます。本記事では、Apple Silicon搭載Macを想定し、初心者でも確実に動かせる手順を解説します。

a desk with a laptop and a computer monitor
Photo by Mert Kahveci on Unsplash

動作環境と事前準備

MacでStable Diffusionを快適に動作させるには、以下の環境が推奨されます。特にメモリとストレージの余裕は重要です。

  • Mac: Apple Silicon (M1/M2/M3 シリーズ)
  • メモリ: 16GB以上(推奨32GB)
  • ストレージ: 10GB以上の空き容量
  • OS: macOS Sonoma以降

まずはターミナルを起動し、HomebrewとPythonの最新バージョンがインストールされているか確認してください。もし未インストールの場合は、公式サイトからセットアップスクリプトを実行しておきましょう。

環境構築の手順

ステップ1: 仮想環境の作成

依存関係の衝突を防ぐため、Pythonの仮想環境(venv)を新規作成します

python3 -m venv sd-env
source sd-env/bin/activate

ステップ2: 必要なパッケージのインストール

Mac用最適化ライブラリとStable Diffusionの依存関係をインストールします。Apple Silicon向けにmpsバックエンドを有効化します。

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/mlx
pip install diffusers transformers accelerate safetensors
A row of blue and white electrical switches
Photo by Jason Leung on Unsplash

ステップ3: モデルファイルのダウンロード

Hugging Faceから基本モデル「stable-diffusion-v1-5」をダウンロードし、ローカルフォルダに配置します。初めての実行時に自動ダウンロードさせる方法もありますが、明示的に取得する方が安定します。

動作確認コード

以下のPythonスクリプトをgenerate.pyとして保存し、ターミナルで実行してください。Apple Silicon対応のmpsデバイスを明示的に指定しています。

import torch
from diffusers import StableDiffusionPipeline

device = "mps" if torch.backends.mps.is_available() else "cpu"
pipe = StableDiffusionPipeline.from_pretrained("runwayml/stable-diffusion-v1-5").to(device)

prompt = "a futuristic cyberpunk city with neon lights"
image = pipe(prompt).images[0]
image.save("output.png")

トラブルシューティング

構築中にエラーが発生した場合、以下の点を確認してください。

  • メモリ不足エラー: 仮想環境のサイズを調整するか、Chrome等のバックグラウンドアプリを閉じてください。
  • ネットワークタイムアウト: Hugging FaceのMirrorサイトやプロキシ設定を見直してください。
  • mpsバックエンド未対応: macOSのバージョンが古い可能性があります。更新後に再試行してください。

まとめ

Stable DiffusionのMacローカル構築は、仮想環境と適切なライブラリ選択で初心者でも成功します。一度環境を整えれば、オフラインでも高品質な画像生成が可能になります。ぜひ本手順を参考に、クリエイティブなワークフローを構築してください。

Please Select Embedded Mode To Show The Comment System.*

連絡フォーム