本サイトの記事ごとのアイキャッチ画像は自前かフリー素材を使用しているのですがなかなかフリーなものが見つからず困っていました。そこで画像生成AIを使ってみようと色々サイトを探索してみましたが、Webアプリなどでは利用開始の数枚以降の利用は課金されることが多かったです。CPU/GPUリソースを使うのだから当然でしょう。
そこでローカル環境に画像生成AIの利用環境を構築するしかないということでStable DiffusionをMacBook Airにインストール、環境構築してみました。
インストールしたMacBook Airの仕様
CPU Apple M2、メモリ16GB、ストレージ 512GB
インストール手順
インストールしたMacBook Airでは、既存のアプリかフリーのパッケージをインストールし、使用したことしかないため、今回はMac用のアプリの開発環境構築から始めました。ほぼゼロからの開発環境構築です。
コンソールからコマンドを入力する必要があるため、ターミナルソフトをインストールします。ターミナルであれば何でもよいですが、今回は見た目で選んだWarpをインストールしました。
サイトを開いたらDownload nowのボタンをクリックします。
ダウンロードしたWarp.dmgのファイルをダブルクリックすると、ウィンドウが開きます。その左側のWarpのアイコンをドラッグし、Applicationsのアイコン上にドロップすると、Wrapが登録されます。
LaunchpadにWarpのアイコンが登録されているので、それをダブルクリックするとWarpが起動します。
XcodeはApple社が提供する、MacやiPhoneなどのApple社製品で動作するソフトウェアを開発するための統合開発環境です。Apple Storeを開き、検索ボックスに”Xcode”と入力し、検索結果からXcodeを選択してインストールします。
XcodeはLaunchpadから起動できます。お試しで作成したプロジェクトは、XcodeのSettingのLocationsでフォルダが表示されますので、プロジェクト名のついたディレクトリをゴミ箱に入れると削除できます。今回はXcodeを直接起動せず、それに含まれるコマンドやライブラリのみを使用します。
Xcodeのパッケージは約3.2ギガバイトほどあり、ダウンロードおよびインストールには時間がかかります。数時間要する場合もありますので、気長に待ちましょう。私の場合、約1.5時間かかりました。ダウンロードとインストールが進行中かどうか不安なときは、Warpで以下のコマンドを実行することで確認できます。
tail -f /var/log/install.log
brewはmacOS用のパッケージマネージャであり、ツールやStable Diffusion本体のインストールに使用します。インストールはHomebrewのサイトの指示に従います。サイトでは言語で日本語も選択できます。よく似た偽サイトもあるそうなので注意してください。下記のリンクは正規のものと考えられますが、自己責任でアクセスしてください。
Homebrewのサイトを開き、Install Homebrewの見出しの下のコマンドラインをコピーします。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Warpにコピーしたコマンドラインを貼り付けReturn/Enterキーを押下します。コマンド開始後しばらくするとログインパスワードの入力が求められるので入力します。
brewコマンドのパスを設定しコマンドのbrewコマンドが実行できることを確認します。
export PATH="/opt/homebrew/bin:$PATH"
brew --version
以下のコマンドを実行して、Stable Diffusionのビルドおよび実行に必要なコマンドやライブラリをインストールします。コマンドやライブラリがたくさんあるため、完了するまで気長にお待ちください。
brew install cmake protobuf rust python@3.10 git wget
いよいよ本体のインストールです。
以下のコマンドを実行します。cdコマンドでインストールしたいディレクトリを指定してください。例では自分のホームディレクトリを指定しています。
cd ~
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
半精度浮動小数点データを扱う学習モデルの対策として、Stable Diffusion起動時のオプションを追加します。以下のようにstable-diffusion-webui/webui-macos-env.sh
のスクリプトを変更し、COMMANDLINE_ARGS
に--no-half
を追加してください。
export COMMANDLINE_ARGS="--skip-torch-cuda-test --upcast-sampling --no-half-vae --use-cpu interrogate --no-half"
–no-halfを追加しないと”NansException: A tensor with all NaNs….”の例外が発生する学習モデルがあります。
事前にWebブラウザを起動しておくとそのウィンドウにWebUIのタブが表示されます。
Stable Diffusionのディレクトリに移動し、環境変数を設定し、起動スクリプトのwebui.sh
を実行します。初回の実行はバイナリファイルをダウンロードするので時間がかかるようです。起動すれば本体のインストールは完了です。
cd stable-diffusion-webui
source webui-macos-env.sh
./webui.sh
終了するにはWebブラウザのタブを閉じてください。その後、webui.sh
を起動したWarpの画面を表示し、control+C
で起動スクリプトを強制終了させます。(このやり方でよいのかは確認中)
次に画像生成のモデルとなる学習モデルをインストールします。モデルは複数インストールでき、どれを使用するかはWebUIで選択できます。WebUIの左上、Stable Diffusion checkpoint
の下のプルダウンタブで選択できます。
下はStable AIの公式の学習モデルです。ここのhere
をクリックし、進んだ先のDownload
ボタンをクリックするとダウンロードできます。
ダウンロードしたファイルは所定のディレクトリにコピーしてください。他の学習モデルを追加する場合も同じです。
cp Downloads/v2-1_768-ema-pruned.ckpt stable-diffusion-webui/models/Stable-diffusion
メモリ16GBのMacBook Airでは、画像を1枚生成するのに数十秒かかります。立ち上がらなくなったWindows PCを早く復旧させないと、厳しい状況になりそう…
※ アイキャッチ画像はちょっと使って初めて生成した画像です。
コメント