Claude CodeでStable Diffusionを完全自動化!ComfyUI APIで画像を量産する方法

AI

Stable Diffusionで画像生成、やってみたいけどComfyUIのノードUIが正直しんどい

ワークフローをポチポチ組んで、JSONを手書きして、モデルを探してダウンロードして、プロンプトを英語で考えて……。画像1枚出すまでの準備が重すぎる。

そこで筆者は、Claude Code(Anthropic製のAIコーディングツール)にほぼ全部やらせることにした。「可愛い女の子を春夏秋冬で描いて」とチャットで伝えたら、モデルの選定からダウンロード、プロンプト作成、ComfyUI APIへのリクエスト送信まで、全部自動でやってくれた。

この記事では、その自動化の具体的な手順とコツを、実際のやりとりベースで解説する。「ComfyUIは入れたけど、そこから先がわからない」という人向け。

ちなみに、この方法で7モデル×4シーン=28枚を一括生成した比較結果はこちら。

Claude CodeにStable Diffusionで可愛い女の子を描かせてみた!7モデル比較
Claude CodeとComfyUIを使って、Stable Diffusionの人気モデル7種類で可愛い女の子の画像を一括生成。Beautiful Realistic、MeinaMix、Counterfeit、Animagine XLなど、同じプロンプトでモデルごとの違いを春夏秋冬4シーンで徹底比較しました。

ComfyUIの「めんどくさい」をClaude Codeで解決する

ComfyUIには2つの顔がある。

ひとつは、ノードをドラッグ&ドロップでつないでワークフローを組むGUI。もうひとつは、JSONでワークフローを投げて画像を受け取るAPI

GUIは直感的だけど、同じ設定で何十枚も生成したいときは向いていない。モデルを切り替えるたびに手動で操作するのは現実的じゃない。

一方、API経由ならPythonスクリプトから自動で回せる。ただし問題がある。ComfyUIのAPIワークフローはJSON形式で、構造がそこそこ複雑だ。サンプラーの設定、モデルの指定、プロンプトの入力、画像の保存先……全部JSONのノードIDで管理されている。

ここでClaude Codeが効く。Claude Codeはターミナル上で動くAIアシスタントで、ファイルの読み書き、Pythonスクリプトの作成と実行、APIリクエストの送信を全部チャットの中でやってくれる。つまり:

  • ComfyUIのAPIワークフロー(JSON)を自動で生成できる
  • モデルファイルのダウンロードスクリプトを書いて実行できる
  • プロンプトを英語で作ってくれる
  • 複数モデル×複数シーンのバッチ処理スクリプトも書ける

要するに、「こういう画像が欲しい」と日本語で伝えれば、あとはClaude Codeがコードを書いて実行してくれる。ComfyUIのJSON仕様を自分で調べる必要がない。これがデカい。

環境構築

必要なもの一覧

PC NVIDIA GPU搭載PC、またはApple Silicon Mac(M1以降)
ComfyUI ローカルにインストール済み
Claude Code Anthropic製AIコーディングツール(Max / Proプラン)
Python 3.10以上

筆者の環境はApple Silicon(M2 Mac)。NVIDIA GPUがなくても動くが、生成速度はGPUのほうが圧倒的に速い。

ComfyUIのインストールとAPI有効化

ComfyUIのインストール方法はOSやGPU環境によって異なる。ComfyUI公式リポジトリを参照してほしい。

インストール後、ComfyUIを起動して http://127.0.0.1:8188 にブラウザでアクセスできればOK。今回使うのはこのポート番号で動いているAPIエンドポイントだ。GUIは使わない。

特別な設定は不要で、ComfyUIを普通に起動すればAPIも自動で有効になっている。確認したい場合は、ターミナルで以下を実行して応答が返ればOK。

curl http://127.0.0.1:8188/system_stats

Claude Codeの導入

Claude Codeは公式サイトからインストールできる。ターミナルで claude コマンドが使えれば準備完了。

料金はAnthropicのMax Plan(月額$100〜)またはPro Plan(月額$20、利用制限あり)が必要。画像生成の自動化はそこそこトークンを使うので、Maxプランのほうが安心ではある。

Pythonライブラリ

追加で必要なライブラリはほぼない。標準ライブラリのurllibjsonでComfyUI APIを叩けるし、モデルのダウンロードもrequestsがあれば十分。足りないものがあればClaude Codeが勝手にpip installしてくれる。

実践!Claude Codeに画像生成を丸投げする

ここからが本題。実際にClaude Codeとどんなやりとりをしたのか、ステップごとに紹介する。

ステップ1:モデルの選定と自動ダウンロード

最初にClaude Codeに投げた指示はこれだけ。

Stable Diffusionで可愛い女の子を描きたい。
ComfyUIを使ってる。おすすめのモデルを教えて。

するとClaude Codeは、Civitaiで人気のモデルをリストアップしてくれた。SD1.5系とSDXL系を混ぜて、リアル系・アニメ系・バランス型をバランスよく7つ提案してきた。

「じゃあ手持ちにないやつダウンロードして」と伝えると、Hugging FaceからダウンロードするPythonスクリプトを書いて実行してくれた。ダウンロード先もComfyUI/models/checkpoints/に自動で指定してくれるので、配置ミスもない。

ここでのポイント:Claude Codeはファイルシステムにアクセスできるので、「ComfyUIのモデルフォルダどこ?」から始めて、既存モデルの確認→不足分のダウンロードまで一気通貫でやれる。手動でCivitaiをブラウジングしてURLをコピペする作業がゼロになる。

ステップ2:ComfyUI APIワークフローの自動生成

モデルが揃ったら、次はワークフローの作成。ComfyUI APIで画像を生成するには、JSON形式のワークフローを送る必要がある。

普通にやると、ComfyUIのGUIでワークフローを組んで「APIフォーマットで保存」してJSONを書き出す、という手順になる。でもClaude CodeならJSONを直接書いてくれる

ComfyUI APIで画像生成するワークフローJSONを作って。
モデル:beautifulRealistic_v7.safetensors
サンプラー:DPM++ 2M Karras
ステップ:28
CFG:7
解像度:512x768

と伝えると、以下のようなJSON構造を含むPythonスクリプトを生成してくれる。

# ComfyUI APIワークフローの基本構造(簡略版)
workflow = {
    "3": {  # KSampler
        "class_type": "KSampler",
        "inputs": {
            "seed": 42,
            "steps": 28,
            "cfg": 7,
            "sampler_name": "dpmpp_2m",
            "scheduler": "karras",
            "model": ["4", 0],
            "positive": ["6", 0],
            "negative": ["7", 0],
            "latent_image": ["5", 0]
        }
    },
    "4": {  # Load Checkpoint
        "class_type": "CheckpointLoaderSimple",
        "inputs": {
            "ckpt_name": "beautifulRealistic_v7.safetensors"
        }
    },
    # ... 省略
}

ノードID(”3″, “4”など)の接続関係をClaude Codeが理解していて、正しいJSON構造を組み立ててくれる。GUIで手動でノードをつなぐ作業が完全に不要になる。

ステップ3:プロンプト作成と一括生成

ワークフローができたら、次はプロンプト。ここもClaude Codeに丸投げした。

肩につくくらいのダークブラウンの髪、茶色い瞳の日本人の女の子。
アニメすぎないセミリアルな感じで。
春夏秋冬の4シーンで描いて。

するとClaude Codeは、各季節のシチュエーション(春:桜の公園でワンピース、夏:ビーチで白ビキニ、秋:紅葉の中でセーター、冬:雪の街でニット帽)を考えて、それぞれの英語プロンプトを作ってくれた。ネガティブプロンプトも「品質系のお約束」をしっかり入れてくれる。

そして最終的に、7モデル×4シーンを回すバッチスクリプトを書いてくれた。

# バッチ生成の疑似コード
models = ["beautifulRealistic_v7", "dreamshaper_8", ...]
seasons = {
    "spring": "cherry blossoms, sakura petals...",
    "summer": "beach, ocean, bright sunlight...",
    "autumn": "red maple leaves, golden hour...",
    "winter": "snow, snowing, city street..."
}

for model in models:
    for season_name, prompt in seasons.items():
        # ワークフローJSONを組み立て
        # ComfyUI APIに送信
        # 生成完了を待って画像を保存
        # ファイル名:{season}_{model}_00001_.png

これを実行すると、ComfyUIが裏で画像を生成し続けて、28枚が自動で保存される。筆者がやったのは「Enter押して実行を見守る」だけ。

ステップ4:結果の確認と微調整

28枚生成されたら、あとは結果を見て「もうちょっとこうして」と伝えるだけ。

たとえば「夏のシーンがちょっと露出多すぎない?」と言えばプロンプトを調整してくれるし、「このモデルだけもう1回seedを変えて試して」と言えばそれも即対応。微調整のたびにComfyUIのGUIを開く必要がない。

ただし画風の好みだけは人間が判断する必要がある。Claude Codeは「リアル系とアニメ系どっちが好き?」と聞いてくれるが、実際の出力を見て「これは自分の好みと違う」と判断するのは人間の仕事だ。

やってみてわかったコツと注意点

Claude Codeの得意なこと・苦手なこと

得意:

  • ComfyUI APIのJSON構造を正確に書く
  • 英語プロンプトの作成(品質タグや構図指定も的確)
  • バッチ処理スクリプトの作成
  • エラーが出たときの原因特定と修正
  • モデルの検索とダウンロード

苦手(というか判断できない):

  • 生成された画像の「良し悪し」の判断(画像を見られないので)
  • 画風の好みの把握(「可愛い」の定義は人それぞれ)
  • モデル固有のクセへの対応(特定モデルで効くプロンプトなど)

要するに「作業の自動化」は得意だが「審美眼」は持っていない。ディレクター(人間)とオペレーター(Claude Code)の分業だと思えばちょうどいい。

SD1.5とSDXLで解像度を変える

これはハマりポイント。SD1.5系モデルとSDXL系モデルでは、推奨解像度が違う。

ベースモデル 推奨解像度(縦長の場合)
SD 1.5 512×768
SDXL 896×1152

SD1.5モデルに1024×1024を突っ込むと崩壊するし、SDXLに512×512だと画質がもったいない。Claude Codeにモデル名を伝えれば適切な解像度を設定してくれるが、念のため自分でも確認しておくと安心。

seed固定は比較の基本

複数モデルで比較するなら、seedを固定するのは必須。今回は全モデル・全シーンでseed: 42に統一した。

seedが違うと構図もポーズも変わってしまうので、純粋なモデル間の比較ができなくなる。ただし、同じseedでもモデルが変われば出力はかなり変わる。あくまで「ランダム要素を排除する」ための固定。

APIエラーで止まったら

よくあるエラーとその対処:

  • モデルファイルが見つからない → ファイル名のtypo か 配置フォルダが違う。Claude Codeに「ls models/checkpoints/で確認して」と言えば一発
  • VRAM不足(Out of Memory) → SDXLモデルは重い。解像度を下げるか、--lowvramオプションでComfyUIを起動し直す
  • ComfyUIが応答しない → プロセスが固まっている可能性。再起動してhttp://127.0.0.1:8188が返るか確認

いずれもClaude Codeに「なんかエラー出た」と伝えれば、エラーメッセージを読んで対処してくれる。自分でスタックオーバーフローを検索する手間が省ける。

ComfyUIを使わないと何が起きるか

「ComfyUI使わずに、WebUIとかでよくない?」と思うかもしれない。

AUTOMATIC1111(WebUI)でもAPI経由の操作は可能だが、ComfyUIのほうがAPI設計がシンプルで、ワークフローの自由度が高い。LoRAの適用、ControlNetの組み込み、アップスケーラーの追加など、JSONにノードを足すだけで拡張できる。Claude Codeとの相性が良いのはComfyUIのほう。

応用:LoRA・ControlNet・img2imgもいける

今回はcheckpointモデルの切り替えと基本的なtext2imgだけだったが、Claude Codeの守備範囲はもっと広い。

たとえばLoRAの適用、ControlNetによるポーズ指定、img2imgでの画風変換なども、Claude Codeに「LoRA使って」「この画像をベースにimg2imgして」と伝えるだけで対応できる。ComfyUIのワークフローJSONにノードを追加する作業をClaude Codeがやってくれるので、自分でノードを組む必要がない点は同じだ。

まとめ

Claude Code × ComfyUI APIの組み合わせで、Stable Diffusionの画像生成は「指示を出すだけ」の作業になる。

自分がやることは3つだけ。

  1. ComfyUIを起動しておく
  2. Claude Codeに「こういう画像が欲しい」と伝える
  3. 出てきた結果を見て、気に入らなければ調整を頼む

モデル選び、ダウンロード、プロンプト作成、JSON構築、API送信、バッチ処理——これ全部Claude Codeがやってくれる。

「AI画像生成に興味はあるけど、技術的な部分がハードル高い」という人にこそ試してほしい。ComfyUIの仕組みを完全に理解していなくても、Claude Codeが間に入ることで「やりたいこと」と「技術的な実装」のギャップを埋めてくれる

この方法で実際に7モデルを比較した結果はこちら。

Claude CodeにStable Diffusionで可愛い女の子を描かせてみた!7モデル比較
Claude CodeとComfyUIを使って、Stable Diffusionの人気モデル7種類で可愛い女の子の画像を一括生成。Beautiful Realistic、MeinaMix、Counterfeit、Animagine XLなど、同じプロンプトでモデルごとの違いを春夏秋冬4シーンで徹底比較しました。

Stable Diffusionの導入からやりたい方はこちらの入門記事もどうぞ。

Stable Diffusion入門:初心者がスグ始められるAIイラストガイド
Apple Silicon搭載のMacにStable Diffusionをインストールして実際に使ってみた体験記。環境構築からComfyUI・Stability Matrixなどのツール紹介、Web版との比較、実際に生成した作品まで、初心者目線でわかりやすく解説します。

コメント

タイトルとURLをコピーしました