以前の記事(p914: Stable DiffusionをMacで動かしてみた)では、AUTOMATIC1111のWebUIでAI画像生成を試しました。今回はもう一歩進んで、ComfyUIというノードベースのツールで画像生成ワークフローを自分で組んでみます。

MacのApple Silicon(M4)上で実際にインストールから画像生成まで行い、つまずいたポイントも紹介します。

ComfyUIとは何か(WebUIとの違い)

ComfyUIは、Stable Diffusionを「ノード(箱)」と「線」で操作する画像生成ツールです(公式GitHub)。

WebUIがフォームに入力する家電のような操作感だとすると、ComfyUIは処理の流れを自分で配線するイメージです。「モデルを読み込む」「プロンプトを変換する」「ノイズを除去する」といった各工程がノードになっていて、それらを線で繋いで1つのワークフローを作ります。

WebUIとComfyUIの比較

最初はとっつきにくいですが、処理の流れが目で見えること、同じ設定を丸ごと保存・共有できることが大きな魅力です。

Macへのインストール手順

前提環境

  • Mac(Apple Silicon: M1〜M4)
  • Python 3.12 / PyTorch 2.x(MPS対応版)
  • git
  • 空きディスク容量 約6GB以上(モデル4GB+本体)

1. ComfyUI本体を取得

cd ~
git clone --depth 1 https://github.com/comfyanonymous/ComfyUI.git
cd ComfyUI

2. 依存ライブラリをインストール

pip install -r requirements.txt

PyTorchが未導入の場合は先に入れておきます。Apple SiliconならMPS(Metal Performance Shaders)が自動で使われます。

# MPSが使えるか確認
import torch
print(torch.backends.mps.is_available())  # True ならOK

3. モデル(チェックポイント)を配置

ComfyUIは単一ファイルのチェックポイント(.safetensors)を使います。SD1.5の標準モデルを models/checkpoints/ に置きます。

cd models/checkpoints
curl -L -o v1-5-pruned-emaonly.safetensors \
  "https://huggingface.co/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned-emaonly.safetensors"
⚠️ ハマりポイント:モデル形式の違い
WebUIで使っていたHuggingFace形式(text_encoder / unet / vae に分かれたフォルダ)は、ComfyUIではそのまま読み込めません。単一の .safetensors チェックポイントを別途ダウンロードして models/checkpoints/ に置く必要があります。

起動して画面を見てみる

本体フォルダで以下を実行します。Apple Siliconでは --force-fp16 を付けると省メモリで安定します。

python3 main.py --force-fp16

起動すると http://127.0.0.1:8188 でアクセスできます。ブラウザで開くと、まずテンプレート選択画面が出ます。

ComfyUI起動時のテンプレート選択画面

「Getting Started」の中から 1.1 Starter - Text to Image を選ぶと、基本的なワークフローが読み込まれます。

基本ワークフロー(テキスト→画像)を組む

これが実際のComfyUIの画面です。各ノードが線で繋がっているのが分かります。

ComfyUIのノードベースワークフロー画面

テキスト→画像の基本ワークフローは、以下の5つのノードで構成されています。

ComfyUI基本ワークフローの流れ
ノード 役割
Load Checkpoint モデル(.safetensors)を読み込む
CLIP Text Encode プロンプト(正・負の2つ)を数値に変換
Empty Latent Image 生成する画像サイズ(512×512など)を指定
KSampler ノイズを除去して画像を生成(steps / cfg / seed)
VAE Decode → Save Image 潜在表現を画像に変換して保存

右上の Run ボタンを押すと、配線したワークフローが順に実行されて画像が生成されます。

実際に画像を生成してみた

SD1.5モデルで、いくつかのプロンプトを試しました。1枚あたり 約19秒(Apple M4 / 512×512 / 20ステップ)で生成できました。

生成画像:桜の風景 生成画像:猫 生成画像:サイバーパンク都市

左から「桜と山と川の風景」「窓辺の猫」「サイバーパンクな夜の街」です。プロンプトと seed を変えるだけで全く違う画像が出てきます。

使ったプロンプトの例(風景):

Positive: a beautiful japanese mountain landscape, cherry blossoms,
          river, masterpiece, highly detailed, 8k
Negative: low quality, blurry, distorted, watermark, text, ugly, bad anatomy

img2imgで画像を作り変える

ComfyUIの真価は、ワークフローを差し替えるだけで別の処理ができる点です。先ほどの「桜の風景」を入力にして、img2img(画像→画像)で冬の雪景色に作り変えてみました。

img2imgのビフォーアフター(桜→雪景色)

左が元画像(桜)、右がimg2imgの結果(雪山+寒色系)です。構図は保ったまま、雰囲気だけを変えることができました。

img2imgでは、基本ワークフローに Load ImageVAE Encode のノードを追加し、KSamplerの denoise を下げます(今回は0.6)。

denoiseの値 効果
0.3〜0.5 元画像をほぼ保持。軽い加工・補正向き
0.6〜0.7 構図は残しつつ雰囲気を大きく変える(今回)
0.8〜1.0 ほぼ別画像。元画像は構図のヒント程度

ControlNetなど応用ワークフロー

ComfyUIには、さらに高度なワークフローを組むための拡張があります。代表的なのが ControlNet です。

  • ControlNet:線画・ポーズ・深度などで「構図を指定」して生成する。人物のポーズを固定したまま絵柄だけ変える、といったことが可能
  • Upscale(高解像度化):生成した画像をワークフロー内で2倍・4倍に拡大
  • LoRA:特定の画風やキャラクターを追加学習したモデルを差し込む
  • Inpaint(部分修正):画像の一部だけをマスクして描き直す

これらは ControlNet LoaderUpscale といった専用ノードを既存のワークフローに繋ぐだけで追加できます。ControlNetを使う場合は対応モデル(約1.4GB)の追加ダウンロードが必要です。

💡 ワークフローは共有できる
ComfyUIで生成した画像のPNGには、ワークフロー情報が埋め込まれています。その画像をComfyUIにドラッグ&ドロップするだけで、同じノード構成が丸ごと復元されます。配布されているワークフローを試すのも簡単です。

WebUIとの使い分け

p914で使ったWebUIと、今回のComfyUI。どちらを使うべきか、実際に両方触った感想をまとめます。

  • WebUIが向いている人:とにかく手軽に画像を作りたい。プロンプトを変えて量産したい。AI画像生成が初めて
  • ComfyUIが向いている人:img2img・ControlNet・Upscaleを組み合わせた複雑な処理をしたい。同じ手順を何度も再現したい。処理の中身を理解したい

個人的には、まずWebUIで感覚を掴んでから、こだわり始めたらComfyUIに移行するのが良い流れだと感じました。ComfyUIは最初こそ複雑に見えますが、一度ワークフローの仕組みが分かると「あの処理をここに挟みたい」が自由にできて、表現の幅が一気に広がります。

まとめ

  • ComfyUIはノードと線で画像生成を組み立てるツール。処理の流れが見える
  • インストール:git clone → pip install -r requirements.txt → チェックポイントを models/checkpoints/ に配置
  • 基本ワークフロー:Load Checkpoint → CLIP Text Encode → KSampler → VAE Decode → Save Image
  • 生成速度:Apple M4で512×512・20ステップが約19秒
  • ⚠️ ハマりポイント:WebUIのHuggingFace形式モデルは使えず、単一.safetensorsが必要
  • 🎨 応用:img2img・ControlNet・Upscale・LoRAをノードで自由に組み合わせられる

WebUIの手軽さも魅力ですが、ComfyUIで「自分だけのワークフロー」を組む楽しさは格別でした。AI画像生成を本格的に使いこなしたい方には、ぜひ一度触ってみてほしいツールです。

それでは、今回はここまで。ありがとうございました😊