生成AI実験室(2) M5 MacにStable Diffusion+ComfyUIの作業台を作る——$0で回して、資産にする

前回は、動画生成AI「MiniMax-H3」が手元のMacで動くかを検証しました。今回はその一歩手前、というよりすべての起点の話です。Stable Diffusion(静止画)をローカルに構築します。

なぜ静止画が起点なのか。理由は経済構造にあります。動画生成は1本ごとに課金されるかクラウドGPUの時間代がかかる。一方、静止画はローカルで動けば1枚あたり$0です。そして動画づくりの実務では、キーフレームや参照画像——つまり「動かす前の絵」——の出来がほぼすべてを決めます。無料側で絵を詰めてから、課金される側に渡す。この分業を成立させる基盤が、今回作る環境です。

目次

なぜComfyUIか——3倍速いアプリを選ばなかった理由

Apple SiliconのMacでStable Diffusionを動かす選択肢は複数あります。実は単純な生成速度なら、App Storeで無料配布されているDraw Thingsが最速です。Metal(AppleのGPU基盤)向けに手動最適化されており、同じMac・同じモデルでComfyUIの約3倍の速度が出ます。

それでもComfyUIを選びました。理由は3つです。

第一に、ワークフローがファイルとして残ること。ComfyUIでは生成の手順(どのモデルに、どんな設定で、どう処理を通すか)をノードのつながりとして組み、それがJSONファイルとして保存されます。「あのときどう作ったか」が構造ごと再現できる。これは検証を旨とするこのサイトの方針と相性が良い性質です。

ComfyUIのワークフロー画面。モデル読み込みからプロンプト、サンプラー、保存までがノードで結ばれている
実際のワークフロー画面。モデル読み込み→プロンプト→サンプラー→VAE→保存が線で結ばれ、右端に4枚バッチの生成結果。この画面の構成がそのままJSONファイルになる

第二に、自動化できること。ComfyUIはローカルAPIを持つので、スクリプトから叩けます。定型の生成をコマンド1行にする、夜間にまとめて焼く、といった運用がアプリ操作なしで組めます。

第三に、動画と同じ作業台になること。前回のH3検証もComfyUI上で行いました。静止画と動画を同じ道具の同じ流儀で扱えるなら、習熟が二重になりません。

速度より再現性と拡張性を取った、ということです。単発で数枚作りたいだけなら、Draw Thingsのほうが快適だと思います。

構築——Apple Siliconで実際に踏んだポイント

構築自体は1時間かかりません。ただしMac固有の躓きどころがいくつかあります。

Pythonはbrewで3.12を入れる。macOS付属のPython 3.9ではComfyUIが動きません。Homebrewで3.12を導入し、その3.12で仮想環境(venv)を作ってから依存を入れます。torchはmacOS(arm64)向けを普通にpipで入れれば、GPU(MPS)対応版が入ります。導入後にtorch.backends.mps.is_available()がTrueになっていることを確認します。

本体と重みを分離する。モデルの重みファイルは1本2〜7GBあり、ComfyUI本体のフォルダに直接置くと、本体を入れ替えるたびに巻き込まれます。ComfyUIにはextra_model_paths.yamlという設定があり、重みの置き場を本体の外に指定できます。本体は使い捨て、重みは資産、と分けておくのが後で効きます。

モデルは種別ごとに決まったフォルダしか見ない。ComfyUIでいちばん多い躓きは「モデルを入れたのに選択肢に出ない」で、原因はほぼ置き場所です。全部入りのチェックポイントはcheckpoints/、拡散モデル単体はdiffusion_models/、テキストエンコーダはtext_encoders/、VAEはvae/、LoRAはloras/——という対応をComfyUIは前提にしています。救いは、エラーパネルが「不足しているモデル」としてファイル名と種別を表示してくれることで、その種別名がそのままフォルダ名です。

実測——そして事前推定は外れた

SDXL(1024×1024・20ステップ)での実測です。

  • 初回: 46.2秒(6.94GBのモデル読み込み込み)
  • 2回目以降: 34.2秒。2回計測して2回とも同値で、安定しています
  • 30ステップ: 50.2秒。ステップ数にほぼ線形
  • 512×512: 9.1秒(ただしSDXLは1024学習なので品質は落ちます)

白状すると、構築前の当方の推定は「10〜15秒」でした。実測は約2〜3倍遅い。原因ははっきりしていて、参照した他機の実測値が40コアGPUのM4 Maxのもので、当方の機体はM5無印・10コアGPUだったこと。世代間の性能倍率だけで機種差を吸収しようとしたのが誤りでした。前回「結論には測定条件を添える」と書きましたが、チップの世代だけでなく同世代内のグレード差(GPUコア数)まで条件に含めないと、この程度は平気で外れます。

もうひとつ、計測時の罠を共有しておきます。ComfyUIは同一プロンプト・同一seedの再実行を検出すると、計算せずに結果を再利用して約1秒で返します。ベンチマークのつもりで同条件を再投入すると「爆速になった」と誤認する。実際に1回誤計測しました。計測時はseedを必ず変えます。

$0であることは、使い方を変える

この環境の価値は「安い」ではなく、試行の性質が変わることにあります。動画生成(API課金)との比較で書くとこうなります。

  • 失敗のコスト: 動画は課金される / 画像は時間だけ
  • 実行前の判断: 動画は1本ごとに慎重になる / 画像は当たりが出るまで回してよい
  • seed固定: 当方が使う動画APIは不可 / ローカルSDは可能(同じ絵を正確に再現できる)

つまり画像側は「数を打って選抜する」働かせ方ができる。1枚34秒なら、お茶を淹れている間に2枚出ます。電気代以外の限界費用がゼロというのは、生成の意思決定から「もったいない」を消してくれます。

ただし、回し放題には条件が要ります。記録です。

生成した1枚1枚が、プロンプトごと資産になる

無制限に生成できる環境は、放っておくと出所不明の画像の山になります。「この1枚、どうやって出したんだっけ」が分からなくなった瞬間、その画像は再現も派生もできない行き止まりになる。

ここで効くのが、ComfyUIの地味に優れた仕様です。生成したPNGの中に、プロンプトとワークフロー全体が埋め込まれています。画像ファイルをComfyUIの画面にドラッグ&ドロップすると、その画像を作ったノード構成がそのまま復元されます。加えて当方では、コマンドライン生成分も含めて全実行を1行ずつログ(所要秒・seed・全パラメータ)に落としています。

この記録を見返すために、簡単なビューワーを作りました。ローカル専用・読み取り専用の小さなWebアプリで、生成物を一覧し、1枚選ぶとモデル名・seed・ステップ数・プロンプトが並びます。

生成画像ビューワーの一覧画面。1762枚の生成画像が出所別フィルタとプロンプト付きで並ぶ
ビューワーの一覧画面。1,762枚を出所別(ComfyUI/CLI/クラウド等)に横断でき、各画像にプロンプトが添う
ビューワーの詳細画面。モデル名・seed・ステップ数・プロンプトが表示されている
詳細画面。モデル・seed・プロンプトが1枚ごとに引ける。「プロンプトをコピー」でその場で回収できる

これがあると、試行錯誤の景色が変わります。数百枚の中から「当たり」を見つけたら、その場でプロンプトとseedを回収して、再現なり派生なりに進める。つまり失敗作を含めた全生成物が、検索可能なプロンプト集になる。$0で回した量が、そのまま蓄積になる構造です。

この環境の出口——キャラクターシートから動画へ

最後に、この作業台が何のためにあるかを書いておきます。

動画生成AIで同じ人物を複数カットに登場させようとすると、「一貫性」の壁に当たります。カットごとに顔が変わってしまう問題です。これに対する実務的な足場がキャラクターシート——同一人物を複数の角度・表情で固めた参照画像のセット——で、これを作る工程はまさに静止画生成の仕事です。seedが固定でき、$0で何度でも詰められるローカルSDは、この用途に最適です。

キャラクターシートの例。正面と背面の全身、顔の参照画像を役割別に並べたセット
キャラクターシートの例。正面・背面の全身(体型・衣装の参照)と、顔の参照を役割別に固めたセット。すべてローカルSDで生成

ビューワーのスクリーンショットに同じ女性の画像が大量に並んでいるのは、まさにその試行の跡です。この続き——キャラクターシートをどう設計し、動画側にどう渡すか——は、回を改めて書きます。

まとめ

要点は4つです。第一に、Apple SiliconでのComfyUI構築は難しくないが、Python 3.12・重みの分離・種別別フォルダの3点は先に知っておくと躓かない。第二に、実測はSDXL 1024×1024で1枚34秒(M5無印・32GB)。推定は機種のグレード差で2〜3倍外れたので、他人の実測値を借りるときはGPUコア数まで確認する。第三に、$0とseed固定は「数を打つ」働かせ方を可能にするが、それが資産になるかは記録の仕組み次第。第四に、この環境は動画づくりの前工程ではなく基盤であり、次の主題はキャラクターシート。

なお、生成画像を商用利用する可能性がある場合は、モデルのライセンス確認が必須です。品質評価の高いFLUX.1[dev]は非商用限定で、商用の可能性があるならSDXL、SD3.5(年商規模の条件付きで無償商用可)、FLUX.1[schnell](Apache 2.0)などが候補になります(法務助言ではありません。原文は各自で確認してください)。


本記事の数値は2026年8〜9月時点の当方環境(MacBook Pro M5・ユニファイドメモリ32GB・ComfyUI 0.33.0・torch 2.13.0)での実測に基づきます。ツール・モデルの仕様は変わり得るため、実施の際は最新の一次情報を確認してください。本記事中の人物画像はすべてAIによる生成物です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次