広告

ComfyUI text2image 画像生成

ComfyUI

今回キャラクター デザインを特化して、キャラクター デザインの画像生成をやってみようと思います。

モデルの選択

関連キーワード

モデル パーツ

テンプレートでモデルをダウンロードする際に、モデルと一緒に、モデルパーツもダウンロードします。

  • text_encoders:
    • 言葉の意味を記憶した「データ(辞書モデル)」と、それを処理する「プログラム」がセットになったもの
  • diffusion_models:
    • 膨大な画像パターンを記憶している、AIの超巨大な学習データ(ファイル)そのもの
  • vaeデジタルデータを清書して色を整える「仕上げ・着色師」
    • 色の塗り方や復元方法を記憶した「データ」ですが、内部的には画像変換を行う「システム(ニューラルネットワーク)」として機能する
  • loras:
    • 特定の画風やキャラのデータが詰まった、追加の学習データ(ファイル)そのもの

配置場所:

📂 ComfyUI/
├── 📂 models/
│   ├── 📂 diffusion_models/
│   │   └── krea2_turbo_fp8_scaled.safetensors
│   ├── 📂 text_encoders/
│   │   └── qwen3vl_4b_fp8_scaled.safetensors
│   ├── 📂 vae/
│   │   └── qwen_image_vae.safetensors
│   └── 📂 loras/
│       └── krea2_darkbrush.safetensors

Trea 2 のテンプレート 説明ノートにも書いていますが、loras は下記のところでダウンロードできます。
https://huggingface.co/Comfy-Org/Krea-2/tree/main/loras

試運転

  1. ComfyUI を起動して、左ペインから「テンプレート」を選択します。
  2. 「すべてのテンプレート」にて、Trea モデルのフィルターをかけて検索し、「Trea-2 テキストから画像へ」を選択します。
    • モデルが事前にダウンロードしなかった場合、エラーは表示されますが、「エラーの詳細」の案内でダウンロードしてリフレッシュすれば消えてくれます。
  3. 一旦テキストの枠に、プロンプト(画像内容を描写するためのキーワード)を入力して、「実行」をクリックすると、画像生成が開始されます。

以上が一番シンプルの画像生成になります。
解像度、縦横比などの設定はすぐ見つかるので、特に追加の説明はいりませんが、これだけでは高品質の画像を生成することは基本難しいです。なので、これからいろいろ足してみようと思います。

拡張機能 ComfyUI-Easy-Use

ComfyUI のワークフローに、画面に表示されている「1つ1つの機能を持った『箱(ボックス)』」がノードといいます。
ComfyUI では様々なノードが提供されていますが、世界中の有志(エンジニアや一般のユーザー)が独自に作った「非公式の追加ノード(拡張機能)」もあります。これらはカスタムノードといいます。
ComfyUI の拡張機能管理で多くのカスタムノードを導入することができます。

今回はよく使われる ComfyUI-Easy-Use という名前の拡張機能(カスタムノードの詰め込みパック)をインストールしておきます。

  • 「拡張機能の管理」 → 検索欄で「easy use」を入力 → 「ComfyUI-Easy-Use」をインストール
  • インストールしたら、下方に「変更を適用」ボタンをクリックして、ComfyUI を再起動します。
  • ComfyUI 再起動後、ノード追加するところで検索すると、確認できるようになります。
    • ワークフローの画面の何もないところでダブルクリックすれば、下記の画面が表示されます。

今後は使っていくと思うので、とりあえず入れておきます。

この拡張機能のオープンソースのサイトを確認いただくと、どんな機能が用意されているかを確認できます。
https://github.com/yolain/Comfyui-Easy-Use

拡張機能 Comfyroll Studio

Comfyroll Studio は 175 種類以上の便利なノードが 1 つにまとめられており、主にアニメーション制作、ワークフローの整理・自動化、デザイン処理を劇的に効率化するために使われます

この拡張機能ができること

  1. アニメーションとスケジュール制御
    • フレームごとのプロンプト切り替え:動画の「0〜10フレーム目は『笑顔』、11〜20フレーム目は『驚いた顔』」といった指示をテキストベースで管理できます。
    • イージング効果:カメラワークや値の変化に「ゆっくり始まってゆっくり止まる(Ease In/Out)」ような滑らかな動きをつけられます。
  2. 条件分岐とスイッチ(ロジック機能)
    • ワークフローの切り替え:「このLoRAを使う・使わない」「ControlNetをONにする・OFFにする」といった切り替えを、配線をつなぎ替えずに1つのスイッチノード(トグル)をクリックするだけで制御できるようになります。
  3. グラフィックとデザイン処理
    • テキストの合成(文字入れ):生成した画像の上に、好きなフォントで文字を重ねることができます(Meme/ミーム画像の作成など)。
    • パターンの作成:グリッド(格子状)背景、グラデーション、丸や四角といった図形をノード内で直接描き、それをコントロールネットのマスク(下絵)などとして利用できます。
  4. XY Grid(パラメータの比較)
    • 「プロンプトの違い」「CFG Scaleの値の違い」「モデルの違い」など、複数の条件を縦軸・横軸に並べた一覧比較画像(マトリクス)を自動で作成してくれます。
  5. SDXL に最適化されたアスペクト比制御
    • 「16:9」「4:3」「1:1」などのボタンを選ぶだけで、SDXLの生成に最適な解像度(1024x1024など)の数値を自動で計算・出力してくれる便利なノードが含まれています。

インストール:

拡張機能 rgthree-comfy

ComfyUI のカスタムノード拡張「rgthree-comfy」に含まれる Seed (rgthree) ノードは、Stable DiffusionのWebUI(AUTOMATIC1111など)と同じ感覚でシード値を直感的に制御できる便利なツールです。
ComfyUI のカスタムノード拡張「rgthree-comfy」に含まれる Fast Groups Bypasser (rgthree) ノードはいつでもグループごとに無効化させることができます。

インストール:

Tips

  • グループ有効/無効設定
    1. rgthree-comfy 設定を開く
    2. Show fast toggles in Group Headers を有効にして、Saveする
    3. グループ右上にボタンが表示されます。
      • グループ実行
      • グループ有効/無効
      • 透明化

ComfyUI の操作 tips

  • ノード追加
    • ワークフローの何もないところでダブルクリックするとノードの検索画面が表示される
    • または、キャンパスの何もないところで右クリックして「ノードを追加」で追加
  • ノード無効化
    • ノードを右クリックし「バイパス」を選択することで、ノードを使わないようにできる
  • グループ
    • キャンバス上の複数のノードを1つのグループにまとまる機能
    • キャンパスの何もないところで右クリックして「グループを追加」で作成
    • グループ範囲内のノードはすべてグループ内のものになる
    • グループの色は右クリックして、設定可能

ノードの説明

拡散モデル読み込み(UNet Loader/Load Diffusion Model)

  • 役割:画像生成 AI のモデルを指定する、どんな画像(中身)を描くか計算するノード
  • Diffusion モデルのファイル(.safetensors や .ckpt)を選択
  • 通常、ComfyUI の models/unet または models/diffusion_models フォルダに入っているファイルがリストに表示される
  • 今回 Krea 2 のモデルを使用する

CLIP を読み込み(CLIP Loader)

プロンプトの理解など、言語関係に使う LLM モデルを読み込むノード

  • Krea 2 は基本このノードで CLIP をロードする
    • SDXL モデルの場合、モデルに CLIP 内蔵しているので、代わりに Load Checkpoint(チェックポイントを読み込む)ノードを使う
  • CLIP モデルのファイル(基本 .safetensors ファイル)を選択する
    • モデル選択肢:(ベースモデル:選択するモデル)
    • 今回Huihui-Qwen3-VL-4B-Instruct-abliterated-int8_convrot.safetensorsを使う
    • 通常、ComfyUIの models/text_encoders フォルダに入っているファイルがリストに表示され
  • type:読み込むテキストエンコーダーの「種類(アーキテクチャ)」を指定
    • krea2: Krea2 モデルを使用する際に選択する特殊な設定
    • stable_diffusion:Anima 画像生成モデルの場合
    • flux: Fluxモデル用

VAE 読み込み(英語名:VAE Loader)

  • 役割:AI 専用の暗号データを、人間が見える『普通の画像』にデコードする
    • Checkpoint ファイル(.safetensors)に内蔵される場合もある
  • 読み込むVAEモデルのファイル(.safetensors や .pt)を選択
  • 通常、ComfyUIの models/vae フォルダに入っているファイルがリストに表示される
  • モデル選択肢:(ベースモデル:選択するモデル)
    • krea2: qwen_image_vae.safetensors
    • Flux: ae.safetensors
    • SDXL: sdxl_vae.safetensors
    • SD1.5: animevae.pt や vae-ft-mse-840000-ema-pruned.safetensors など
  • 通常は VAE Decode(画像への復元ノード) の vae 入力へと配線する

VAE デコード

  • 役割:VAE をデコードに使うノード
  • 基本 K sampler の右側と接続して、人間が見れる画像にデコードするために使う

Seed(拡張機能 rgthree-comfy)

Seedとは、AIのランダムな「サイコロの出目」を固定し、全く同じ画像や文章をいつでも完璧に再現するための番号です。同じ画像を生成するのに、同じ Seed で生成する必要があります。言い換えると、seed を変更すれば、同じ設定やプロンプトでも、違う画像が生成されます。なので、同じプロンプトで Seed だけ変えて何度も生成させるのは ガチャ って言われているようです。

  • ショートカット的な負数制御: AUTOMATIC1111風の特殊な負数を指定して挙動を素早く切り替えられます。
    • 入力値に -1(ランダム)
    • -2(インクリメント:1つ増やす)
    • -3(デクリメント:1つ減らす)
  • シード値の共有:
    • 生成時に使った実際のシード値を簡単に取得・保持し、別ノードのサンプラーへ受け渡す
  • メリット
    • どんな標準サンプラー(KSampler等)にもサクッと繋げて単体で使える

K サンプラー(英語名:K Sampler)

  • 役割:画像生成AIにおいて「ザラザラした砂嵐(ノイズ)の画像から、少しずつノイズを削り落として、綺麗なイラストや写真を形作る(サンプリングする)計算機
  • steps(ステップ数):何回繰り返してノイズを削るか
    • 値が大きいほど細部まで描き込まれますが、その分生成に時間がかかる(Flux や Trea2 は 4~8 でいいかも)
    • 目安:8~10
  • cfg(CFGスケール):「あなたのプロンプト(指示)にどれだけ忠実に従うか」の強さ、値を高くするほどプロンプト通りの絵になる
    • Krea 2 や Flux のような最新モデルでは、CFGを極端に低く(1.0 〜 2.0 程度に)設定しないと画像が壊れる仕様になっているらしい
    • conditioning Zero Out ノードを利用する場合、1.0 が無難
  • sampler_name(サンプラー名):「どんな計算アルゴリズム(削り方のルール)を使ってノイズを消すか」を選る
    • 選択肢:
    • モデルごとの推奨設定。例:
      • Flux なら euler
      • Krea2 なら dpmpp_2m など
  • scheduler(スケジューラー):ステップが進行するにつれて、「ノイズを引いていくペース(歩幅)」をどう管理するかを決める
    • 主な選択肢: normal、karras、sgm_uniform など、サンプラー名と組み合わせて、モデルの推奨設定通りに選択
    • simple で基本問題ない
  • denoise(ノイズ除去強度):「最初の砂嵐を何パーセント削るか」の割合です(0.00 〜 1.00)
    • Text-to-Image:完全にノイズを消し去る必要があるため 1.00 にする
    • Image-to-Image:元の形を残すために 0.40 〜 0.60 などに下げて使用

CR SDXL Aspect Ratio (拡張機能 Comfyroll Studio)

このノードを使えば、ユーザーがいちいち数値を計算して入力しなくても、「16:9」や「3:4」といった比率を選ぶだけで、AIが最も得意とする正確な解像度を自動でセットしてくれる

  • width / height(幅 / 高さ)
    • ベースとなる画像の初期解像度(ピクセル単位)を指定します。
    • 補足: aspect_ratio でプリセットを選択した場合は、この数値よりもプリセットの解像度が優先されます
  • swap_dimensions (Off / On)
    • 選択したアスペクト比の縦と横の長さを「入れ替える(スワップする)」かどうかのスイッチ
  • upscale_factor (初期値: 1.0)
    • 生成する画像の解像度を「何倍にするか」の倍率を指定
    • 画像生成は基本ほかの方法でアップスケールするので、直接これを使うことはないでしょう
  • batch_size (初期値: 1)
    • 1回の生成で同時に出力する「画像の枚数」
    • グラフィックボードのVRAM容量に余裕があれば、2 や 4 に増やすことで一気に複数枚を同時生成可能

CLIP テキストエンコード(プロンプト)(英語名:CLIP Text Encode (Prompt))

  • 「人間が打ち込んだテキスト(プロンプト)を、AI の脳が理解できる形式(Conditioning / 条件付けデータ)に変換する」ノード
  • clip (必須の入力 / 左側の端子) として、CLIP 読み込み(CLIP Loader)と繋げる

条件付きゼロアウト(英語名:Conditioning Zero Out)

  • 役割:ネガティブ プロンプトを入力しない場合、このノードが便利です
    • ネガティブ プロンプトの「完全な無効化」(純粋なAI本来の出力を出す)
    • 通常、ネガティブプロンプトのテキストボックスを「空欄」にしても、AIの内部(CLIP)は「空欄というテキスト(または開始トークン)」として処理してしまい、わずかにノイズ計算に影響を与える
    • ControlNet や IP-Adapter の「影響力を特定ステップで完全ゼロにする」
    • ControlNet(ポーズ指定など)やIP-Adapter(画像プロンプト)は便利ですが、生成の最初から最後まで効かせすぎると、画像がガチガチに固まって不自然(LoRA焼けのような状態)になる
    • 「最初の50%のステップまではポーズ(ControlNet)を効かせ、後半50%は ZeroOut で信号をゼロにする」というワークフローを組みます(ConditioningTimestepping などのノードと組み合わせます)
    • CFG Scale(ガイダンス)の効果を「背景だけ」「特定のレイヤーだけ」に効かせる
    • CFG Scale(プロンプトにどれだけ従うかの値)を上げると、キャラクターはハッキリしますが、背景がギラギラして不自然になりがち
    • 背景用のインペイント(描き直し)や、特定のレイヤー合成(GLIGENなど)の処理において、ポジティブプロンプトの信号を ZeroOut する
    • キャラクターはプロンプト通り(CFG高め)に描きつつ、背景や周辺光だけは「プロンプトの縛りを受けない、ノイズが乗っていない自然な空気感(CFG 1.0相当)」でなじませることができる
  • K sampler のネガティブに接続する
    • Zero Out は基本的に、ポジティブプロンプト(生成したいもの)ではなく、ネガティブ プロンプトの入力側(あるいは KSampler の negative スロット)に接続して「除外する要素を完全にゼロにする」用途で使われます。

その他の便利ノード

Anything Everywhere(拡張機能 Anything Everywhere)

このノードを使うことで、モデルロードのような繰り返して複数ノードに同じように接続する線を wireless することができます。
https://github.com/chrisgoringe/cg-use-everywhere

  • 注意:拡張機能を入れたら、ComfyUI を一度再起動してください
  • ワークフローの同じタイプのノードに、wireless で接続してくれます
    • 一般的には モデル、VAE、CLIP 接続の線を消すために使います。
  • 無線で接続した接続の点が二重丸になります。
  • 実線の優先度が wireless より高い

例:

画像生成ワークフロー

上記の前提知識を整理させていただいた上で、下記のようなワークフローを作成してみました。今回はまっさらなワークフローから、ノードを一から追加する形で作成しています。基本ダブルクリックしてノードを追加してから、繋げるだけなので、特に難しい操作はないです。

ワークフロー:

画像保存

画像保存ノードで画像を保存すると、基本 output フォルダに保存されます。
名前も下記の場合、ComfyUI00001.png から連番で作成されます。

ここで、サブフォルダの作成や、命名変更する例を挙げます。

# Inpainting サブフォルダを作成して、プレフィックスを指定する場合
Inpainting\ComfyUI

# ファイル名に日付を入れたい場合 `%date:yyyyMMdd_hhmmss%` 部分が日付になる
Inpainting\ComfyUI_%date:yyyyMMdd_hhmmss%

# 他のノードのプロパティも入れたい場合
# この例では、Inpainting サブフォルダを作成して、<UNETLoaderノードでロードしたモデルのファイル名>_<日付>_00001.png で作成される
Inpainting\%UNETLoader.unet_name%_%date:yyyyMMdd_hhmmss%

# SDXL のモデルローダーはデフォルト `CheckpointLoaderSimple` を使っているので、下記になります。
%CheckpointLoaderSimple.ckpt_name%_%date:yyyyMMdd_hhmmss%

# ノード プロパティの Node name for S&R を変更すれば、`CheckpointLoaderSimple` の部分を変えられますので、複数ある場合に有効かも

単語集

  • ネガティブ プロンプト
    • 「画像に出したくないもの」や「排除したい要素」を指定するための指示文(プロンプト)
    • 例:下記のものをネガティブ プロンプトに記載する
    • worst quality, low quality, bad anatomy, bad hands, missing fingers, extra fingers, deformed, blurry, cropped, text, signature, watermark
  • Latent(レイテント / 潜在空間)
    • 一言でいうと「AIだけが理解できる、画像をめちゃくちゃ小さく ギュッと 圧縮したデータ」
    • イメージ:AI が絵を描くときに使う形式、空の Letant はAIにとっては白紙のようなもので、AI が Letant の状態でお描きしていきます。
    • 画像を AVE エンコードすると、Latent 状態になる
    • よく「空の Latent」 ノードを使うのは、AI に白紙を作るノードと理解して問題ない

コメント

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