見出し画像

【#5】値の一括管理とワークフローの管理(データ配布有り)【ComfyUI講座】【2025年版】

今回は「値の一括管理」と「ワークフローの管理」について解説します。値の一括管理には「Primitiveノード」を活用します。
同時にPrimitiveノードを使うとワークフローが複雑化するため、管理する方法を解説します。

⚠️Primitiveの仕様変更【2025年5月14日~】

2025年5月14日のアップデートでPrimitiveノードの出し方が変わりました。

Utils>Primitiveではなく、ユーティリティ>プリミティブとなりました。注意してください。ただ私はほかのカスタムノードも入れているため確証はありません。過去の情報は残しておきます。


2.json「前回のワークフローとおさらい」

補足:このjsonはHires Fixの値が適正ではありません。第四回を参考して修正してください。

前回はHires Fixを構築しましたが「Kサンプラー(左)」と「Kサンプラー(右)」のノードをワイヤーで接続し、同じシードを適用しようとしましたが出来ませんでした。値を持つノードは同じく値を持つノードに干渉できないからです。

Primitiveノード

右クリック>ノードを追加>Utils>primitive(2025年5月13日以前の方法です)
現在はユーティリティ>プリミティブ>です。
  • String:文字列

  • String (Multiline):文字列(複数行)

  • Int:実数

  • Float:少数

【シードを乱数生成する】Intノードを作成し、シードに接続する

Intノードで乱数を生成し、シードに代入しています
  • 生成するシードの値は固定したくないためfixed以外を選択します。

  • 逆にKサンプラー側は読み込んだIntの値を変えたくないためfixedを選びます。

  • 【注意】Kサンプラーの値は予め統一(画像では0で統一)した後にワイヤーを接続してください。

CLIPとは「CLIPテキストエンコード」の運用

第三回で「モデル読み込み」「デコード」について解説しました。

ここでは「プロンプト解析」について解説します。
プロンプト解析は、テキストを数値ベクトルに変換する処理で、一般に「CLIPによるベクトル化」と呼ばれます。これは、画像生成AIがプロンプトの意味を理解し、画像として表現するための基盤となる重要なステップです。

プロンプト解析には、以下の3つの要素が関係します:


① CLIPモデル

CLIP(Contrastive Language–Image Pretraining)は、テキストと画像を同じ意味空間(潜在空間)で扱うための事前学習モデルです。
ComfyUIでは、CLIPモデルは通常、Stable Diffusionのメインモデル(LDM)に内蔵されており、特別に選ぶ必要はありません。


② テキスト(プロンプト)

ユーザーが記述する「プロンプト」は、CLIPが意味を解析する元になります。
ComfyUIでは、以下の2つに分けて指定します:

  • Positive Prompt(肯定プロンプト):生成したい内容(例:"a girl in a forest")

  • Negative Prompt(否定プロンプト):生成から除外したい要素(例:"blurry, low quality")


③ CLIPTextEncode ノード

このノードがプロンプトをCLIPの埋め込みベクトルに変換し、Kサンプラーに渡します。
つまり、CLIPTextEncodeはCLIPテキストエンコードの中核的な処理を担うノードです。


CLIPテキストエンコードは本来テキストを記述する場所ではない

ノードを拡張した際プロンプトを必要とする場合「CLIPテキストエンコード(プロンプト)」にプロンプト記述するとだと対応しきれないため、新たにテキスト専用のノードを作成します。
これは本来の「CLIPテキストエンコード(プロンプト)」の用途とも合致します。

【プロンプト欄】String (Multiline)を2つ作成し、「Positive Prompt欄」と「Negative Prompt欄」とする

今まで「CLIPテキストエンコード(プロンプト)」に記述していた内容を新たに作った「String (Multiline)」にコピペし、対応する「CLIPテキストエンコード(プロンプト)」に接続します。
上が「Positive Prompt」下が「Negative Prompt」です。

Primitiveノードによる複雑化「スパゲッティコード」

Primitiveノードで乱数を作りシードを管理する。プロンプト欄を増設するなどした結果。ワークフローが複雑化してしまいました。
いわゆる「スパゲッティコード」です。
これを解決するためにはワークフローを管理するほかありません。

2b.json「ここまでのワークフロー(Hires Fix修正済み)」

ワークフローの管理「標準グループ機能」or「ComfyUI Fast Groups(カスタムノード)」

ワークフローの管理には2つの方法があります。
1つ目はComfyUIに標準搭載されているグループ機能を使う方法。
2つ目は「ComfyUI Fast Groups」というカスタムノードを導入する方法です。

今回の規模であれば「標準グループ機能」で構いませんが、今後複雑なワークフローを構築する場合は「ComfyUI Fast Groups」というカスタムノードがあることを知っておくと便利です。

標準グループ機能

右クリック>グループを追加
名前を変更、色を変更、該当するノードを枠の中に入れると追従するようになります(=グループ化)

【その他の管理方法】グループノードに変換。

  • ワークフローをすっきりさせる

  • グループ化したノードが視覚的にわかりにくくなる=共有しにくくなる

  • グループ化したノードの値を操作したい時に手間がかかる

  • グループ化したノードに新たなノードを追加したい時に手間がかかる

前回つくったHires Fix関連のノードをCtrlを押しながら複数選択します
その状態で右クリック>グループノードに変換>グループノードを作成で名前を入力して確認
解除する場合は右クリック>convert to nodes

3.json「管理されたワークフロー」

Hires Fixを含む基本的なワークフロー(最小構成)

0,Models
CheckPointが配置されています。LoRAもこのグループに挿入されます。
そのため余裕を持ってグループが作られています。

1,Inputs
画像サイズ、シード値、プロンプトの一括管理しています。

2,Text-to-image
1枚目の画像生成です。Kサンプラーの値は忘れずにModelの推奨値を使います。今回は推奨値の中で最小値を最小しました。

3,Hires Fix
2枚目の画像生成です。処理速度は最速でスケールアップもしていませんが、このHires Fixによって出力結果の品質が向上します。

4,Image save/preview
出力結果の保存と画像プレビューです。

次回:様々なHires Fixについて

前回:Hires Fixの構築

📌 AIイラストの構成設計や生成安定化に興味がある方へ

このnoteでは再現性重視の技術を発信しています。詳細なテンプレートやLoRAは、メンバーシップで限定公開しています。


いいなと思ったら応援しよう!