2024-02-26(更新)

【カスタムノード】Use Everywhere(UE Node)の使い方【ComfyUI】

ノードの線がごちゃごちゃして見にくい!接続しにくい!という時、これを超ラクにしてくれるノードを紹介。

Article Image

2024-02-26: Get/Setノードとどっち使えば良い? の項を追加

Use Everywhere(UE Node)とは

ComfyUIはノードの線は右へ行ったり左へ行ったりすることがよくある。

また、ちょっと複雑な処理をするとノード数も無駄に多くなる。

特にVAEやCheckpointのように一つのノードのピンを何度も再利用するケースが無駄に感じる

ごちゃごちゃの例

Use Everywhereを使うとこれをめちゃくちゃスマートにまとめられるので紹介する。

スマート例

Get/Setノードとどっち使えば良い?

KJNodesを始め、いくつかのカスタムノードにGet/Setノードが存在する。

これらはプログラミング的にSetで定数として保存しておきGetでそれを読み込むというノードで線のごちゃごちゃを解決するために作用する。

しかしながらこれらは同じインプットがたくさんある時に結局ノードがごちゃごちゃするデメリットがある。

Get/Setノード例

Use Everywhere言い換えれば各ピンのデフォルト値を決めるノード。

したがって何度も再利用するケースで更にスマートな外観にできる。

Use Everywhere例

ピンが繋がなくても良いというちょっと特殊なノードなので理解が難しいかもしれないが、この記事を最後まで読んでもらえればわかると思う。

逆にGet/setが有利なケース

次のように出力側で重複するピンが何個も現れるケースではGet/Setノードを使おう

Use Everywhere例

インストール

ComfyUI ManagerからはそのままUse Everywhere (UE Nodes)で検索。

ComfyUI Managerの画面:Use Everywhere

GitHubのリンク:GitHub - chrisgoringe/cg-use-everywhere

基本

例えば1度小さい画像で生成して、更にそれをアップスケールする場合。

基本的なノードのつなぎ方は次になる。

アップスケールする例

一部省略しているが、それでもチェックポイントやClip Text周りからは何本もの線が出てしまう。

Use Everywhere (UE Nodes)化すると

なんと次のようになる

驚くべき配置

確かに見やすくなっている。が...

何度も言うが実際はKSampler間にはアップスケール系のノードが入るが省略している

逆に線が少なすぎてわからないんですけど!?

そう、このUse Everywhere (UE Nodes)なのだが、省略パワーがすごすぎてちゃんと動作原理を理解していないと何が起こっているのかさっぱりわからなくなる

逆に笑ってしまう。

Anything Everywhereノード

まずは基本の基本。

Anything Everywhereノードを「使わない」例を先に出すと

通常のつなぎ方

これを変化させて、チェックポイントをKSamplerに繋がないでUse Everywhereノードに繋いで見る

  • everywhere > Anything Everywhere
  • 検索名:Anything Everywhere

接続例

KSamplermodelには何も繋がない

ここで気づいただろうか?

KSamplermodelのピンの表示が変わっている

データが来ている証拠

ここが光っていればAnything Everywhereノードから見えない線で繋がっている

え、どういう仕組?

なんでこういう接続になるのかわからないと思うので、これを先に解説する。

繋げられるところにはすべてつながる

コレを見ると「あれ、じゃぁ何個もmodelのインプットがあるノードがある場合どうなるの?」となるだろう

例を見ると

全部繋がっている

modelの入力があるノードには全て繋がっている。

つまり1個Anything Everywhereを繋げるだけで、画面上のすべてのインプットに自動で接続される。

勝手に繋がれると困る場合

そうすると今度はmodelを分けたい場合どうするか。

これは簡単で、別途用意して直接繋げばOKだ。

変えたいやつだけ直接いれた例

この下側のLoad CheckpointAnything Everywhere化したい場合、後の項で紹介するAnything Everywhere?ノードを使用する。

Anything EveryWhere3ノード

Anything Everywhereの他にAnything Everywhere3というノードがある。

  • everywhere > Anything Everywhere3
  • 検索名:Anything Everywhere3

これは単純にAnything Everywhere3個分を一つにまとめただけのノードだ。

Anything Everywhere3外観

Anything EveryWhere?ノード

Anything EveryWhere?(最後にクエスチョンマーク)のノードを使うと自動でつなぐピンを限定できる

Anything EveryWhere?ノード

  • everywhere > Anything Everywhere?
  • 検索名:Anything Everywhere?

このノードは入力蘭が2つあり、ここを指定してやらないといけないので解説する。

title_regexとは

ここはノードのタイトルの一部を入れる(正規表現)

例えばKSamplerと入れてやるとノードの表示名(タイトル)にKSamplerと入っているノードにしか繋がらなくなる。

KSamplerにしか繋がっていない

したがって、上の例のようにタイトルがFaceDetailerになっているノードには繋がらなくなる。

タイトルの「一部」に反応する

regexとは正規表現を意味する。

正規表現はプログラミングの領域に入るので細かい表記法は別サイトに譲るが、タイトルの途中にKSamplerと入っていればヒットしてしまうので注意

反応してしまう例

タイトルの中程にKSamplerが入っているので、この場合は繋がってしまう。

正規表現を覚えると「タイトルに数字が入っているものだけ」とか「aが3個以上連続するものだけ」のような複雑なものにもヒットする。

ここを勉強すると良いかも知れない。

input_regexとは

input_regexを使用すると入力ピンの名前を限定できる

これは次の項で詳しく解説する。

同じ種類のピンが2種類ある場合

次のケースは最初に躓くポイントだと思う。

ネガポジが繋がらない

ポジティブとネガティブのプロンプトをClip Text Encodeで作成しAnything Everywhereに入れた。

しかし、KSamplerの入力ピンを見ると光ってない=繋がってない。

なぜ繋がらない?

これはKSampler自体にconditioningという同じ入力ピンが2本あるから。

どっちに繋げばよいかはAnything Everywhereが勝手に決める訳にはいかず、ユーザーが明示する必要がある箇所になる。

そこで上で紹介したAnything Everywhere?input_regexを使う。

input_regexで入力ピンを明示する

ここでAnything Everywhere?input_regexを使うことで、同じconditioningの入力ピンがあってもその名前でつなぐピンを明示できる

input_regex

これを使えばポジティブとネガティブをどちらにつなぐべきか明示できるため正しく接続される。

Prompts Everywhereノード

上でプロンプトのつなぎ分けを紹介したわけだが... 実はそもそもこれ専用のノードがある。

それがPrompts Everywhere

  • everywhere > Prompts Everywhere
  • 検索名:Prompts Everywhere

Prompts Everywhere外観

これははじめからポジティブネガティブを分けてくれるノードで、わざわざ上のようなAnything Everywhere?を使ったノードをくまなくても良い。

繋がっている例

上のピンがポジティブ、下がネガティブになるようだ

ここはconditioningを入れるところであってテキストを直接入れても繋がらないので注意。

Seed Everywhereノード

Seed値のEverywhereノードもある。

Seed Everywhereノード外観

ただし、これを使う場合はKSamplerを右クリックしてメニューを出し、seedcontrol_after_generateピンをConvertしておく必要があるので注意。

Convertメニュー

コンバートすれば直接入力をインプットピンに変更できる。

現在control_afeter_generateがうまく接続できないのを確認。これはConvertする必要がないかも?

要調査

Show UE Links機能

Everywhere系ノードを使っていると、逆に線が省略されすぎてどこから出たピンかわからなくなることが有る。

こういったときにはなにもないところを右クリック > Show UE linksをクリックしてみると良い。

Show UE links

光っている線

さいごに

最近このノードを使った海外のワークフローをよく見かけるので記事にしてみた。

他にも線をスマートにするカスタムノードはいくつも有ると思うが一つの選択肢として持っておくと良いと思う。



この記事をシェア


謎の技術研究部 (謎技研)