Mac mini M1(8GB) で 生成 AI を試す ~ ローカル環境を低コストで
まえがき
最初に書いておきますが、ガシガシ使いたい方にはオススメしません。
1枚生成するのに 512x512 で 15s、768x1152 で 57s 程度は掛かります。
(Sampling steps:20、Upscale:なし、VAE:vae-ft-mse-840000-ema-pruned、Refiner、Face Restoration)
Windows で高性能な GPU カード挿せば~数秒、Google Colab でも(枚数制限等ありますが)10秒程度で生成されます。
ローカル環境を低コストで導入したい人向けです。
画像生成 AI
春くらいに Google Colab 無料プランで、Stable Diffusion で遊んでいました。
上の記事にも書いたとおり、写真を撮ってるのと同じようなワクワク感があり楽しかったです!
しかし、負荷増大のためか規制が掛かりだしたそうで、「使ってるとアカウント Ban されるかも?」という噂もあり、Colab が使えなくなるのも困るので、警告が出る前に使うのを止めてしまっていました。
Mac 履歴
何十年も前、まだ爆弾が出まくってた頃、仕事でちょっと使ってたのが初めてでした。
だいぶ後になりますが、まだ iPhone が出る前、会社にジョブズが講演しに来たことがあります。
しかし、そのカリスマオーラをビンビンに感じるも、私的に Mac を使うことはありませんでした。
それからまただいぶ経って、その会社を辞めるときに、退職金で iMac5K と MacBook を購入。
レタッチ環境を Mac 移行しようとしたのですが、Mac で表示するとレタッチしなくても綺麗に見えてしまい、これじゃ使えない(!?)と思い移行を断念。
その後転職先で、Mac 版 MATLAB アプリを生成するためだけに自分の MacBook をちょっと使ってた程度で、一応持ってはいるけどほとんど使ったことがない、という状況でした。
それが最近、仕事上最新の Xcode が必要になり、資金難なので Mac mini M1 を購入。
今度はローカルで試してみました。
リファービッシュ品
Windows PC でやろうとすると(実質)GPU 必須なので、50万円くらいはかかりそう!?
最近もっとリーズナブルなのも出てきたようですが、それでもやはり20万円程度?
でも Apple Silicon なら、そこそこの性能の GPU 内蔵のため、現行の Mac mini M2 でも 84,800円(税込)~から購入できます。
以下のような記事も。
今回、メインで使うものではないし、Mac mini M1 のリファービッシュ品、つまり「整備済み中古」を買ってみました。
もちろん別途、マウス、キーボード、モニターは必要ですが、かなり古い iMac5K があるので、マウスとキーボードはそのまま使えます。iMac5K、全然使ってないのですが、売らなくて良かった。(^^;
WQHD モニターもあるし、HDMI ケーブルは何本か余ってます。(u_u)
一旦モニターに繋げれば、iPad Pro にミラーリングとかもできます。
購入したサイトは、最初、検索で見つけたときは「アヤシい?」と思ってそっと閉じたのですが、まともなところのよう。w
ここ自体が整備しているわけではなく、共通の保証・サービスなどを付けた上でのマーケットプレイスのようです。
厳格な品質ガイドラインを設けているそうで、30日以内の返品保証、1年間の動作保証が付いてきます。
その辺が、Ama○on 等とは違うわけです。
それでもやはり「アヤシい?」と思う人が多いのか、BackMarket のサイトにもこんな記事が載っています。
今回は、8GB/256GB ですが、ランク A 品を本体 50,900円+手数料=51,560円(税込)で買うことができました。
注文翌日に到着!
さすがランク A 品、見た目も新品同様でした。
最近、Apple 公式整備品サイトは品揃えが悪く、値段もあまりお得感がありません。
かなりお買い得価格と言えるでしょう。
ただこのサイト、表示にクセがあるというか、同じ販売業者の同等製品であっても、値段毎?に違うページになっています。
なので、検索からたどり着き、別ランク製品がそこに表示されるのを待っててもダメなようです。
サイト内の製品名検索でなら一覧が出るので、そちらで確認する必要があります。
横川レンタ・リースがやっている Qualit というところもあるようです。
(1年~保証付き)
Google 検索だともっとやたら安いところも出てきたりしますが、「安すぎるな?」と思ったら業者名で検索してみましょう。
たいてい「本当にアヤシい」です。(¬_¬)
Stable Diffusion web UI(AUTOMATIC1111)
まずは標準の web UI をインストールしてみます。
今は Mac 版が配布されているので比較的簡単です。
上記公式サイト通りに以下の手順を踏みます。
1.(インストールされていなければ)ターミナルを開いて https://brew.sh から brew をインストール
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
インストールされているかの確認は
% brew --version
しばらくかかりますが、インストール後に表示される "Next steps" にしたがってパスを通します。
2.関連ツールをインストール
brew install cmake protobuf rust python@3.10 git wget
3.インストールしたいフォルダに web UI をインストール
cd [任意のフォルダ]
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
4.models/Stable-diffusion に好きなモデルファイルを置く
検索すれば色々出てきますが、それぞれ利用規約があるので確認してから使いましょう
5.web UI 起動
cd stable-diffusion-webui
./webui.sh
で、webブラウザに自動で web UI が立ち上がります。
(6.アップデート)
web UI が立ち上がっていない状態で、上記フォルダで git pull
Google Colab でのインストールとほぼ同じですね。
あとは生成するだけ・・、
のはずでしたが、sonoma と相性が悪いらしく、1枚だけ生成した後エラー!
Web 上にある対策も色々試み動きはしたものの、1枚の生成に10分以上!!
結局、webui-user.bat の set COMMANDLINE_ARGS= を
set COMMANDLINE_ARGS=--opt-sdp-attention
に。
512x512 1枚生成に 1分3秒、メモリ消費 ~7.62/8GB
768x1152 は生成できず、その後一切の動作不能になりました。
これはもう少し安定するまで待った方がよさそう。(;¬_¬)
Draw Things
標準 web UI、使い慣れているのでできればこちらを使いたかったのですが、今のところムリそう。
そこで、Apple Silicon ネイティブアプリの Draw Things を使ってみました。
なんと、iPad / iPhone でも動きます!
これは AppStore にあるので、そこからインストールするだけ。
初期起動で設定画面が出ますが、とりあえず進んで後で設定できます。
モデルは内部にリストを持っているので選択すれば DL して使えますが、使いたいモデルはあらかじめ DL しておいた方が良いでしょう。
ベースモデルも LoRA も、選択メニューをクリックして
manage -> DL アイコンクリック -> Downloaded File -> Select from Files
ファイルを指定して Import
とすると、メイン画面で選択できるようになります。
実際に生成してみると、
512x512 1枚生成に 15” メモリ消費 ~7.11/8GB
768x1152 1枚生成に 57” メモリ消費 ~7.34/8GB ピーク時間は一瞬だけであとは〜6.8GB くらいでした
ギリギリ感はありますが、安定して動きます。
右端にヒストリーが表示され、いつでも呼び出せるのは便利ですね。
生成途中の画像も表示され、1/3~1/2 くらいまでくると構図概略が分かるので、その時点で明らかに望む結果と違っていればスキップできます。
メタデータ
ちなみにですが、生成した png ファイルの情報(プロンプトやその他設定パラメータ)は MATLAB でも読めます。(u_u)
info = imfinfo(fileName);
para = info.OtherText
web UI 版はプレーンテキスト、Draw Things は XML で入っています。
バージョンによっても違うっぽいですが。
プロンプト
テストに使ったプロンプト(以前共通で使っていたもの)は以下の通りです。
ベースモデルは yayoi_mix を使わせて頂きました。
生成画像例
以下は、自分で撮った写真を元に img2img で、全て同じプロンプトで生成しています。
img2img、普段は色合いを再現するのに良いのですが、人物の色でホワイトバランス(というか肌色バランス)取ってるんですかね?
わざと構図認識失敗しそうなのを使うと面白いのが出てきます。
あとがき
最初に書いた通り、生成速度は遅目です。
やはりメモリは 16GB は欲しいところ。
でもまあどうせガチャなので、プロンプトが決まったら、空いてる時間に回しておけば良いでしょう。
LoRA を使うともう少し掛かるので、ベースモデルのみで大量に生成しておいて、気に入った構図のを元に img2img で LoRA を当てた方が効率的かもしれません。
同じ構図で別 LoRA も当てられますし。
Web 上の記事とかを見るとさすがに 8GB で学習とかはムリっぽいですね。
しかし M1 の省電力設計と Mac mini の冷却性能も相まってか、1時間~連続生成させておいても、ファンの音も全く聞こえません。
低導入コストで制限のないローカル環境が欲しい場合には良いかもしれません。
SDGs!?