
【2024年】MACローカル環境でdiffusersのControlNetを利用して画像生成を行う
MACのローカル環境にControlNetを利用したて画像生成を行う方法をまとめました。
これを読めばご自身のMACのパソコンでControlNetを利用して狙った画像を何枚でも生成できるようになります。
1.はじめに
ControlNetはGoogle ColabによるComfyUIやGPU搭載のPCで画像生成を行うことが一般的です。しかしこのようなサーバ上や、GPU搭載の高価なPCで画像生成することは、情報の機密性や初期費用が高価などの問題があります。
そこでこの記事ではGPU搭載していないご自身のMAC PCで画像生成が行うことができるようになります。いわゆるローカル環境にて画像生成を行えるということです。
この記事を投稿するに至った経緯は、世の中にMACのローカル環境でControlNetを利用して画像生成を行う方法をまとめたものがなかったことにあります。(2024年3月1日時点.筆者調べ)部分的には紹介されていても、情報が断片的で全容を捉えにくい現状があります。これでは初めてdiffusersをさわる人にとっては難易度が高いであろうと考えたため、この度「小学生や主婦などパソコンやプログラムに対して何の知識もない人でも画像生成できる」ことを目標に掲げて記事としました。
2.環境立ち上げ
MACでControlNetを利用したdiffusersの画像生成を行うためには、以下の2つの環境を立ち上げる必要があります。①diffusersを利用するための環境と②ControlNetを利用するための環境です。①diffusersを利用するための環境は2.2~2.21章です。また、②ControlNetを利用するための環境は2.22、23章にあたります。初めに①diffusersを利用するための環境を立ち上げるための流れを説明します。なお、環境立ち上げは、2.2章以降を順を追って行えば完了します。
MACでDiffusersを利用するためには、pythonというプログラム言語を使います。MACでpythonをインストールできるようにするためには、Homebrewというツールが必要です。そのため初めにHomebrewをお使いのMACにインストールします。
まずはHomebrewを利用しPythonをインストールしていきます。DiffusersはPython 3.8系以上で動作が保証されているため、このバージョン以上を導入します。
更にMACでDiffusersを利用するためには、Pythonのライブラリを多数利用します。そのためPythonを管理するシステムであるPIPが必要です。そのため、PIPをインストールします。
次に仮想環境を構築します。仮想環境の構築はPythonをインストールした時点で可能です。仮想環境を構築するとパッケージの入れ替えや削除が管理しやすいため導入します。仮に仮想環境を導入しないと、パソコンのシステム全体にパッケージが影響されます。最悪の場合、MACのシステムと癒着する可能性も出てくるためDiffusersは仮想環境で動作させます。ここでは仮想環境venvを利用します。venvはPython3.4以降に標準搭載された仮想環境のプログラムであり、Diffusersを利用する本環境では何か特別なものをインストールせずとも利用できます。
最後に構築した仮想環境にPIPを利用して、画像生成するための肝であるDiffusersのライブラリをインストールします。
以上で①diffusersを利用するための環境を立ち上げるための流れを説明は完了です。次に②ControlNetを利用するための環境を立ち上げるためにはcontrolnetのパッケージをインストールするだけで可能です。
2.1 環境一覧
今回インストールするツールやシステム、ライブラリは次の通りです。
Homebrew:macにパッケージをインストールするためのツールである。ここではPythonをインストールする。
Python:オープンソースのプログラム言語。Diffusersを実行させるために必要。 Python 3.8系、Python 3.9系のいずれかを利用する。なぜなら、Diffusers においてこれらのバージョンで動作を保証しているためである。
PIP :Pythonのライブラリをインストールするために必要なシステム。ここではPython3.9.6をインストールする。
Torch:Python向けの機械学習ライブラリのこと。Diffusersが
Accelerate:Diffusersにおいて画像生成の高速化に必要なライブラリのこと。
Diffusers:画像や音声の機械学習が可能なPythonのライブラリ。画像や音声を機械学習させる時に必要で、画像や音声を学習させた拡散モデルをPython経由で読み込むかたちで利用。
Transformers:深層学習モデル。Diffusersが機械学習させる時に必要。
Controlnet:Diffusersにおいて画像生成する際に入力画像からポーズを取得して調整できる機能を持つライブラリのこと。
2.2 Homebrewのインストール
次のHomebrewのホームページにアクセスします。
次のような画面が表示されます。(2022/8/28時点)画面下部の「インストール」と表示された下部のコマンドをコピーします。

コマンド部分は次の通りです。(2024/3/3時点)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
MACのデフォルトのアプリであるターミナルを開きます。こちらのアプリケーションのことです。

コピーした文字列をペーストします。MACのパスワードの入力を求められるので、パスワードを入力し「Enter」ボタンを押します。

次のようなログが表示されます。このログのまま10分くらい表示が変わりませんが、内部で処理されているので、そのまま放置します。

次のログが出力され再びMACのパスワードの入力を求められます。そのため再びパスワードを入力してEnterボタンを押します。

5分くらい経過するとダウンロードは終了します。最後に次のようになっているログが表示されます。

2.3 Homebrewの確認
続いてターミナルで「brew -v」と打ち込みます。
すると次のようにbrewのバージョンが表示されます。これでHome
brewをインストールできたか確認できます。

2.4 Homebrewのハマりどころ
Homebrewのインストールが完了し、ターミナルで「brew -v」と打ち込んでも「-bash: brew: command not found」といった警告が出てバージョンを確認できない場合があります。
この警告が出る場合、Homebrewをインストールした最後のインストール完了した最後の行に次のような表示があり、「Warning: /opt/homebrew/bin is not in your PATH.」と警告が出ています。
Warning: /opt/homebrew/bin is not in your PATH.
==> Installation successful!
この問題の解決にはhomebrewのパスにの設定が必要です。その際の解決方法はこちらのサイトに解決方法がのっています。こちらの記事でも解決方法を以下に紹介していきます。
次のようにターミナルに打ち込み「Enter」ボタンを押してください。homebrewのパスが設定されます。
export PATH="$PATH:/opt/homebrew/bin"
しかし、このままではターミナルを再起動した際にbrew コマンドを利用できなくなります。そのためターミナルにパスを追加し保存する手続きが必要です。ターミナルで次のコマンドを打って「Enter」ボタンを押してください。ユーザ名と書いてあるところは、自身のユーザ名に変更してください。taroやhanakoなどです。
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/ユーザ名/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
2.5 Pythonのインストール
ターミナルで次のように打ち込み「Enter」ボタンを押してください。
brew install python3
2.6 Pythonの確認
ターミナルで次のように打ち込み「Enter」ボタンを押してください。
python --version
次のようにPythonのバージョンが表示されます。仮にPythonのバージョンが2系や3.8系以下であった場合は次の節のPythonのハマりどころを参考にしてください。そうでない場合は「2.8 PIPのインストール」の節に進んでください。
Python 3.9.6
2.7 Pythonのハマりどころ
Pythonが既にインストールされている場合、「Python」のデフォルトのバージョンが既存にインストールされているバージョンのままである可能性があります。Diffusionを利用する際はPython 3.8系以上が推奨されているため、Pythonのバージョンを切り替える必要があります。Pythonのバージョン切り替えにはpyenvというツールが必要です。
2.7.1 pyenvのインストールとその確認
pyenvは先ほど利用したhomebrew経由でインストール可能です。pyenvのインストールはターミナルで次のように打ち込むみ、「Enter」ボタンを押してください。
brew install pyenv
そしてpyenvのインストール確認はターミナルで次のように打ち込み「Enter」ボタンを押してください。
pyenv -v
pyenvのバージョンが表示されれば、pyenvがインストールされています。

2.7.2 Pythonの利用バージョンの確認
ターミナルで次のように打ち込むみ、「Enter」ボタンを押してください。
pyenv versions
ログが表示されます。「* system」と表示されている場合、pythonが設定されていません。そのため設定を行います。

設定されている場合は、次のようにpyenv内で設定したPythonのバージョンが表示されます。仮にPython 3.8系より小さいバージョンである場合は、Pythonのバージョンを切り替えを行いましょう。Diffusionを利用する際はPython 3.8系以上が推奨されているためです。

2.7.3 pyenvによるPythonバージョンの確認
pyenvで管理されているpythonのバージョンを確認します。ターミナルに次のように打ち込み「Enter」ボタンを押してください。
pyenv install --list
次のように長いログが表示されます。(ログの初めのみの画像)ここでのログ初めに表示される数字がPythonのインストール可能なバージョンです。

2.7.4 pyenvによるpythonのインストール
ターミナルに次のように打ち込み「Enter」ボタンを押してください。ここではPythonバージョン3.9.6を設定します。Diffusionを利用する際はPython 3.8系以上が推奨されているため、3.8以上を指定してください。
pyenv install 3.9.6
次のようなログが表示されます。

2.7.5 pyenvによるpythonの切り替え
ターミナルに次のコマンドを打ち込み「Enter」ボタンを押してください。どのディレクトリ(フォルダ)でpythonコマンドを実行しても、ここで指定したpythonが動作するようになります。
pyenv global 3.9.6
仮に特定のディレクトリでのpythonで動作させる場合、次のコマンドを実行します。
pyenv local 3.9.6
2.8 PIPのインストール
PIPのインストールはこれまでと同様にターミナルでコマンドを打ち込む方法で行いますが、get-pip.pyというpythonプログラムファイルをダウンロードして、そのファイルを実行するといった流れで行っていきます。
はじめにget-pip.pyのダウンロードを行います。ターミナルで次のように打ち込み、「Enter」ボタンを押してください。PIPをインストールするためのファイルを取得します。
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
次にget-pip.pyのダウンロードができたか確認を行います。ターミナルで「ls」と打ち込み、「Enter」ボタンを押してください。すると「get-pip.py」の文字列が表示され、「get-pip.py」ファイルがダウンロードできたことが確認できます。

「ターミナル」ので次のように打ち込み、「Enter」ボタンを押してください。するとPIPをインストールされます。
python3 get-pip.py
2.9 PIPの確認
「ターミナル」で次のように打ち込み、「Enter」ボタンを押してください。
pip -v
次のようにバージョンが表示されれば、PIPのインストール完了です。

参考までにPIPのHPはこちらです。
2.10 仮想環境の立ち上げ
初めにお使いのMACでDiffusersを動かしたいディレクトリ(フォルダ)を決める必要があります。筆者はわかりやすいようにDesktopにStableDiffusionというフォルダを新規作成して、そこでDiffusersを動作させることにしました。このDiffusersを動かしたい場所は任意で決めてください。
次にターミナルでDiffusersを動かしたい場所まで移動していきます。移動には「cd」コマンドを利用します。ターミナルに次のように打ち込んで「Enter」ボタンを押してください。「******」にはユーザーネームが入ります。このコマンドは筆者同様、Desktop上のStableDiffusionフォルダでDiffusersを動かしたい場合です。
cd /Users/******/Desktop/StableDiffusion
次に仮想環境の名前を決めていきます。ここではmyVenvという名前にしました。ターミナルに次のように打ち込んで「Enter」ボタンを押してください。仮想環境が作成されます。
python -m venv myVenv
2.11 仮想環境の立ち上げ確認
そこでMACでデフォルトで搭載されているFinderアプリを起動します。こちらのアプリケーションのことです。

FinderでDiffusersを動作させたいフォルダに移動します。するとフォルダ内に「myVenv」というフォルダが生成されていることがわかります。

「myVenv」フォルダの内部を確認すると、色々とフォルダやファイルが作成されていることがわかります。

2.12 仮想環境の起動
先ほどの「/path」のままターミナルに次のように打ち込んで「Enter」ボタンを押してください。
source myVenv/bin/activate
2.13 仮想環境の起動確認
また、ターミナルを確認すると(myVenv)という文字列が表示されていることがわかります。このかっこ()で作成した仮想環境名が表示されている状態が仮想環境が立ち上がった証です。

ターミナルに次のように打ち込んで「Enter」ボタンを押してください。
pip list
すると仮想環境にインストールされているパッケージを確認できます。仮想環境を作成すると「pip」と「setyptool」のパッケージのみ表示されます。

2.14 torchのインストール
torchのインストールを実施します。ターミナルに次のように打ち込んで「Enter」ボタンを押してください。
(※インストールする際は、pipを最新の状態にしてください。最新の状態には「pip install --upgrade pip」をターミナルに次のように打ち込んで「Enter」ボタンを押すことでできます。)
pip install torch
次のようなログが表示されます。

2.15 torchの確認
ターミナルに次のように打ち込んで「Enter」ボタンを押してください。
pip list
すると仮想環境にインストールされているパッケージを確認できます。torchなどパッケージが複数インストールされていることが確認できます。

2.16 Accelerateのインストール
ターミナルに次のように打ち込んで「Enter」ボタンを押してください。
pip install accelerate
次のようなログが表示されます。

2.17 Accelerateの確認
ターミナルに次のように打ち込んで「Enter」ボタンを押してください。
pip list
すると仮想環境にインストールされているパッケージを確認できます。accelerateなどパッケージが複数インストールされていることが確認できます。

2.18 Diffusersのインストール
仮想環境が起動している状態(ターミナルの行の先頭に「(仮想環境名)」が表示されている状態)で、ターミナルで次のコマンドを実行してください。
pip install diffusers
すると次のようなログが表示されます。(一部抜粋)

2.19 Diffusersの確認
ターミナルに次のように打ち込んで「Enter」ボタンを押してください。
pip list
すると仮想環境にインストールされているパッケージを確認できます。Diffusersなどが追加されていることが確認できます。

2.20 transformersのインストール
ターミナルに次のように打ち込んで「Enter」ボタンを押してください。
pip install transformers
すると次のようなログが表示されます。

2.21 transformersの確認
transformersがインストールされたか確認していきましょう。次のコマンドをターミナルで打ち込みます。
pip list
するとPIP経由でインストールされたライブラリが表示され、その中にtransformersがあることが確認できます。

ここから先は
¥ 500
この記事が気に入ったらチップで応援してみませんか?