
目次
作業内容
画像自動生成のため、Core ML Stable Diffusionを導入する
参考:https://namileriblog.com/python/coreml-stable-diffusion_macos13-1/
手順1:事前準備
1. OS確認
ターミナルから下記のコマンド操作を行う
taiyo@Mac-mini ~ % sw_vers
ProductName: macOS
ProductVersion: 14.2.1
BuildVersion: 23C71
2. python確認
ターミナルから下記のコマンド操作を行う
taiyo@Mac-mini ~ % python3 -V
Python 3.11.7
taiyo@Mac-mini ~ % pip list
Package Version
---------- ---------
certifi 2022.9.24
chardet 5.0.0
idna 3.4
pip 23.3.2
setuptools 68.2.2
urllib3 1.26.12
wheel 0.41.3
3. pyenvをインストールする
ターミナルから下記のコマンド操作を行う
taiyo@Mac-mini ~ % brew install pyenv
==> Downloading https://formulae.brew.sh/api/formula.jws.json
################################################################################################################################# 100.0%
==> Downloading https://formulae.brew.sh/api/cask.jws.json
################################################################################################################################# 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/manifests/2.3.35
################################################################################################################################# 100.0%
==> Fetching pyenv
==> Downloading https://ghcr.io/v2/homebrew/core/pyenv/blobs/sha256:d19469261f788c09404f05872bd75357213ee58e98426e05edb962962d5e1a06
################################################################################################################################# 100.0%
==> Pouring pyenv--2.3.35.arm64_sonoma.bottle.tar.gz
🍺 /opt/homebrew/Cellar/pyenv/2.3.35: 1,132 files, 3.4MB
==> Running `brew cleanup pyenv`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
4. miniforgeをインストールする
ターミナルから下記のコマンド操作を行う
taiyo@Mac-mini ~ % brew install miniforge
==> Downloading https://formulae.brew.sh/api/formula.jws.json
################################################################################################################################# 100.0%
==> Downloading https://formulae.brew.sh/api/cask.jws.json
################################################################################################################################# 100.0%
==> Caveats
Please run the following to setup your shell:
conda init "$(basename "${SHELL}")"
==> Downloading https://github.com/conda-forge/miniforge/releases/download/23.3.1-1/Miniforge3-23.3.1-1-MacOSX-arm64.sh
[中略]
no change /opt/homebrew/Caskroom/miniforge/base/etc/profile.d/conda.csh
modified /Users/taiyo/.zshrc
==> For changes to take effect, close and re-open your current shell. <==
5. ターミナルを閉じた後に再度開く
手順2:Stable Diffusionの設定
1. conda仮想環境を準備する
ターミナルから下記のコマンド操作を行う
(base) taiyo@Mac-mini ~ % conda create -n coreml_sd python=3.9 -y
Collecting package metadata (current_repodata.json): done
Solving environment: done
[中略]
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate coreml_sd
#
# To deactivate an active environment, use
#
# $ conda deactivate
2. conda仮想環境を有効にする
ターミナルから下記のコマンド操作を行う
(base) taiyo@Mac-mini ~ % conda activate coreml_sd
(coreml_sd) taiyo@Mac-mini ~ %
(coreml_sd) taiyo@Mac-mini ~ % python -V
Python 3.9.18
3. Stable Diffusionを取得する
ターミナルから下記のコマンド操作を行う
(coreml_sd) taiyo@Mac-mini ~ % mkdir ~/coreml_sd
(coreml_sd) taiyo@Mac-mini ~ % cd ~/coreml_sd
(coreml_sd) taiyo@Mac-mini coreml_sd % git clone https://github.com/apple/ml-stable-diffusion.git
Cloning into 'ml-stable-diffusion'...
remote: Enumerating objects: 640, done.
remote: Counting objects: 100% (392/392), done.
remote: Compressing objects: 100% (175/175), done.
remote: Total 640 (delta 300), reused 232 (delta 216), pack-reused 248
Receiving objects: 100% (640/640), 23.56 MiB | 9.20 MiB/s, done.
Resolving deltas: 100% (354/354), done.
4. ライブラリを取得する
ターミナルから下記のコマンド操作を行う
(coreml_sd) taiyo@Mac-mini coreml_sd % cd ml-stable-diffusion
(coreml_sd) taiyo@Mac-mini ml-stable-diffusion % pip install --upgrade pip
Requirement already satisfied: pip in /opt/homebrew/Caskroom/miniforge/base/envs/coreml_sd/lib/python3.9/site-packages (23.3.2)
(coreml_sd) taiyo@Mac-mini ml-stable-diffusion % pip install -e .
Obtaining file:///Users/taiyo/coreml_sd/ml-stable-diffusion
Preparing metadata (setup.py) ... done
Collecting coremltools>=7.0b2 (from python_coreml_stable_diffusion==1.1.0)
Downloading coremltools-7.1-cp39-none-macosx_11_0_arm64.whl.metadata (2.4 kB)
[以下略]
5. ライブラリをアップグレードする
ターミナルから下記のコマンド操作を行う
(coreml_sd) taiyo@Mac-mini ml-stable-diffusion % pip install --upgrade diffusers transformers scipy
Requirement already satisfied: diffusers in /opt/homebrew/Caskroom/miniforge/base/envs/coreml_sd/lib/python3.9/site-packages (0.25.0)
Requirement already satisfied: transformers in /opt/homebrew/Caskroom/miniforge/base/envs/coreml_sd/lib/python3.9/site-packages (4.36.2)
[以下略]
6. git-lfsをインストールする
ターミナルから下記のコマンド操作を行う
(coreml_sd) taiyo@Mac-mini ml-stable-diffusion % brew install git-lfs
==> Downloading https://formulae.brew.sh/api/formula.jws.json
################################################################################################################################# 100.0%
==> Downloading https://formulae.brew.sh/api/cask.jws.json
################################################################################################################################# 100.0%
==> Downloading https://ghcr.io/v2/homebrew/core/git-lfs/manifests/3.4.1
################################################################################################################################# 100.0%
==> Fetching git-lfs
==> Downloading https://ghcr.io/v2/homebrew/core/git-lfs/blobs/sha256:63461c3fbf6ddab9d90c8c6dcb51748a68c4446f222709b970dd688dd78a77f6
################################################################################################################################# 100.0%
==> Pouring git-lfs--3.4.1.arm64_sonoma.bottle.tar.gz
==> Caveats
Update your git config to finish installation:
# Update global git config
$ git lfs install
# Update system git config
$ git lfs install --system
==> Summary
🍺 /opt/homebrew/Cellar/git-lfs/3.4.1: 78 files, 13.1MB
==> Running `brew cleanup git-lfs`...
Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
(coreml_sd) taiyo@Mac-mini ml-stable-diffusion % git lfs install
Updated Git hooks.
Git LFS initialized.
7. mlpackageを取得する
ターミナルから下記のコマンド操作を行う
(coreml_sd) taiyo@Mac-mini ml-stable-diffusion % cd ~/coreml_sd
(coreml_sd) taiyo@Mac-mini coreml_sd % git clone https://huggingface.co/apple/coreml-stable-diffusion-2-base
Cloning into 'coreml-stable-diffusion-2-base'...
remote: Enumerating objects: 193, done.
remote: Total 193 (delta 0), reused 0 (delta 0), pack-reused 193
Receiving objects: 100% (193/193), 552.85 KiB | 4.16 MiB/s, done.
Resolving deltas: 100% (40/40), done.
Filtering content: 100% (72/72), 16.07 GiB | 20.78 MiB/s, done.
8. 動作確認
ターミナルから下記のコマンド操作を行う
(coreml_sd) taiyo@Mac-mini coreml_sd % cd ml-stable-diffusion
(coreml_sd) taiyo@Mac-mini ml-stable-diffusion % python -m python_coreml_stable_diffusion.pipeline \
--prompt "a_high_quality_photo_of_an_astronaut_riding_a_horse_in_space" \
-i ../coreml-stable-diffusion-2-base/original/packages \
-o ~ --compute-unit CPU_AND_GPU --seed 11 \
--model-version stabilityai/stable-diffusion-2-base
9.conda仮想環境を無効にする
ターミナルから下記のコマンド操作を行う
(coreml_sd) taiyo@Mac-mini ml-stable-diffusion % conda deactivate
(base) taiyo@Mac-mini ml-stable-diffusion %