このノードが気に入っていますか?コーヒー買ってきてよ!
はじめる?以下のテスト ワークフローをダウンロードして、それがどのように機能するかを確認してください。
問題がありますか?ロギングとデバッグにジャンプします
ノードを改善する方法のアイデア (またはバグレポート) - 問題を提起する
他のノード用の恥知らずなプラグ -> ワークフローをよりスムーズにする別の方法については、イメージ ピッカーをチェックしてください。気に入ったものがあれば、スターを残してください。
このワークフローは 5 つのノードすべてを使用しており、ノードをテスト (そして理解) するために使用できます。このように構築することはありません。これは単なる例です... | ワークフローの画像は次のとおりです |
---|---|
またはjsonとしてのワークフロー
現時点では、UE ノードが対処できない状況がいくつかあります。ここでは私が知っているいくつかのことと考えられる回避策を紹介します。
pythonsssss カスタム ノードは優れていますが、UE ノードで使用する場合にはいくつかの制限があります。特に、Preset Text ノードの出力を UE ノードに直接フィードすることはできません (#154 を参照)。
UE ノードは主にグループ ノードと連携します。ただし、注意すべき重要な点がいくつかあります。
5.0 (2024 年 8 月 6 日)
4.9 (2024 年 5 月 2 日)
4.8 (2024 年 3 月 18 日)
send to unmatched
があります4.7 (2024 年 3 月 1 日)
Anything Everywhere?
ノード4.6
Anything Everywhere?
ノード4.5
convert to real links
を追加4.4
Anything Everywhere?
入力のあるノード (リンクが単純な文字列ソースであるノードからのものである場合にのみ機能します)4.3
4.2
4.1.2
4.1.1
4.1
v1 ノードは完全に削除されました。使用していた場合は、 Anything Everywhere
ノードに置き換えるだけです。
快適マネージャーを使用します。本当に手動で実行したい場合は、custom_nodes ディレクトリにこのリポジトリのクローンを作成するだけです。
Anything Everywhere
ノードには 1 つの入力があり、最初は「anything」というラベルが付いています。これに何かを接続すると (リルートを介さずに直接)、入力名が入力タイプに一致するように変更されます。切断すると「何でも」に戻ります。
プロンプトを実行すると、そのタイプに一致するワークフロー内の任意の未接続の入力は、同じ入力に接続されているかのように動作します。
接続先を視覚化するには、背景キャンバスを右クリックし、 Toggle UE Link Visibility
を選択します。
このノードは、title_regex と input_regex という 2 つのウィジェットを追加します。一致する入力にのみ送信されます。したがって、この例では、title_regex は「Preview」なので、画像は [画像の保存] ノードではなく、[画像のプレビュー] ノードに送信されます。ノードの名前を変更したり、タイトルを入力したりできることに注意してください。これは役立ちます。
(4.6 からは、グループ正規表現を指定して、その正規表現に一致するグループ内のノード上の入力のみと一致するようにすることもできます。)
一致は文字列の一致ではなく、正規表現です。ほとんどの単純な文字列は機能します (タイトルまたは入力名の任意の部分と一致します) が、一部の文字は特別な意味を持っています (特にさまざまな種類のかっこ、^、$、/、および . を含む) ため、そうでない場合は避けてください。正規表現傾向。
正規表現を使用すると、 ^prompt
使用してタイトルの先頭のprompt
のみに一致し、 negative_prompt
との一致を避けることができます。
正規表現 101 - ^
「開始」を意味し、 $
「終了」を意味します.
任意の 1 文字に一致し、 .*
任意の長さ (ゼロを含む) に一致します。それ以上については、regex101 にアクセスしてください (必要なフレーバーは ECMAScript ですが、おそらくそれは問題ではありません)。
ある意味。
(リンクを計算するために) ワークフローが送信される前に正規表現を知る必要があるため、 Anything Everywhere?
に文字列を渡すことはできません。ノードを作成し、それが機能することを期待します。サポートされるのは、入力が文字列ウィジェットで設定するノードから直接入力される場合のみです。このパックに含まれているSimple String
ノードは機能します。
これは機能します | これはそうではありません。そして決してそうではありません。 |
---|---|
Seed Everywhere は、入力名 (seed、noise_seed など) にseed
を含む未接続の INT 入力に接続し、control_after_generate 機能を備えています。したがって、シード ウィジェットを入力に変換すると、どこでも同じシードを使用できます。
実際には、3 つのAnything Everywhere
ノードがパッケージ化されているだけです。 Checkpoint Loader の出力用に設計されています。
Prompt Everywhere には 2 つの入力があります。これらは、それぞれ(^prompt|^positive)
およびneg
の正規表現一致ルールで送信されます。これらは、プロンプト、否定的なプロンプト、または条件付けに使用される名前のさまざまなバージョンと一致する必要があります。
文字列 | コンディショニング |
---|---|
UE ノードは、プリミティブおよび COMBO (ドロップダウン リストに使用されるデータ型。これも Comfy 内のプリミティブの一種) では機能しません。彼らがそうする可能性は低いでしょう。
UE を使用してサンプラーまたはシグマを制御したい場合は、組み込みのSamplerCustom
ノードを使用してこれを行うことができます。
詳細については、このディスカッションを参照してください
ノードを右クリックすると、UE リンクを拒否するように設定できます。
UE リンクを表示したい場合は、キャンバスを右クリックしてリンクのオンとオフを切り替えることができます。より細かく制御するために、メイン設定メニューには、マウスが両端のノード上に移動したとき、またはそれらのノードの 1 つが選択されたときにリンクを表示するオプションがあります。
リンクは、通常のリンクと区別するためにアニメーション化できます。このアニメーションは、移動するドット、パルス状の輝き、またはその両方の形式を取ることができます。これは場合によってはパフォーマンスに影響を与える可能性があります。パルス アニメーションでは、移動するドットよりも処理が少なくて済むことに注意してください。これはメイン設定メニューで制御します。
デフォルトでは、CPU/GPU への影響を最小限に抑えるために、ワークフローの実行中はアニメーションがオフになります。これは設定で変更することもできます。
UE ノードを必要とせずにワークフローを共有したい場合、またはワークフローの API バージョンを保存したい場合は、UE ノードによって作成された仮想リンクを実際のリンクに置き換えます (そして UE ノードを削除します)。
これを行うには、単一のノードを右クリックしてConvert to real links
を選択するか、ワークフロー内のすべての UE ノードに対して背景を右クリックしてConvert all UEs to real links
を選択します。
Shift キーを押しながら出力ノードをクリックし、ドラッグして放すと、自動作成メニューが表示されます。これにより、デフォルトの動作 (検索ボックスが表示される) が置き換えられるため、 Anything Everywhere replace search
設定を使用して無効にすることができます。
UE ノードは、同じ色のノードのみに送信するか、同じ色ではないノードのみに送信するように制限できます。
同じグループ (共通のグループ) 内のノードのみに送信するか、同じグループにないノードのみに送信するように制限することもできます。
ノードを右クリックし、 Group restrictions
またはColor restrictions
を選択します。 (いずれかまたは両方の方法で)制限されている UE ノードには、左上隅に緑色の円が表示されます。
Trung 0246 の Highway ノードは、データをパイプする非常に優れた方法です。 Anything Everywhere?
でそれらをターゲットにできます。次のように、接続されていない入力名と「+」を一致させるinput_regex
使用してノードを削除します。
これは新しいものなので、問題があれば報告してください。
デフォルトでは、ワークフローは送信される前にループがないかチェックされます (UE がループを導入する可能性があり、ループによって Python の結果が不良になるため)。ループが検出された場合は、関係するノード ID を示す JavaScript 警告が表示されます。ただし、特に他のカスタム ノードが関係している場合、チェックでループが見逃されたり、実際ではないループにフラグが立てられたりする可能性があります。
警告が表示され、ループが存在すると思わない場合 (リストされているノード ID を確認した)、メイン設定メニューでループ チェックをオフにすることができます。ループとしてフラグが付けられたものが正常に実行される場合は、問題を提起し、ワークフローをレポートに含めてください (GitHub は .json ファイルを受け入れないため、json を保存して圧縮します)。ループが引っかからない場合も同様です。
ループをキャッチするためのコア Comfy バックエンドのコードを書きました。おそらくそれが組み込まれる可能性があります (ComfyUI の PR)。あるいは、別の計画があるかもしれません。
入力に一致する送信ノードが複数ある場合、基本的なルールは、より具体的なノードが勝つということです。優先順位は次のとおりです。
Anything Everywhere?
Seed Everywhere
、 Prompts Everywhere
Anything Everywhere
Anything Everywhere3
同一時刻のノードでは、カラー制限とグループ制限があるものが優先されます(カラー+グループ > カラー > グループ > なし)。
同じ優先順位を持つ 2 つのノードが両方とも一致する場合、どちらも接続されません。あいまいな結果が得られるよりは、すぐに失敗するほうがよいでしょう。あいまいな一致がある場合は、 Show UE broadcast clashes
を使用してそれらを表示できます (背景を右クリックします。このオプションは衝突がある場合にのみ表示されます)。
出力が 1 つだけのノードには、ノードを通過した内容を正確に示すテキスト ボックスを表示することもできます。必要に応じてこれをオンにする必要があります。これはメイン設定の「Anything Everywhere ノードの詳細」にあります。
JavaScript コンソール (一部のブラウザでは f12 を押します) には、接続内容に関するログ情報が記録されます。詳細レベルを変更するには、ファイル[comfy_install]/custom_nodes/cg-use-everywhere/js/use_everywhre_utilities.js
を見つけ、先頭近くに次のビットを見つけます。
static ERROR = 0 ; // actual errors
static PROBLEM = 1 ; // things that stop the workflow working
static INFORMATION = 2 ; // record of good things
static DETAIL = 3 ; // details
static LEVEL = Logger . PROBLEM ;
static TRACE = false ; // most of the method calls
さらに多くの場合はLEVEL
Logger.INFORMATION
に変更し、さらに多くの場合はLogger.DETAIL
に変更します。他のデバッグ情報については、 TRACE
true
に設定します。
問題が発生した場合は、f12 キーを押して JavaScript コンソールを表示すると解決することがよくあります。次の手順は、優れたバグ レポートを作成するのに非常に役立ちます。
試してみる価値のあるもう 1 つのことは、ComfyUI の起動時にコピーされるカスタム ノードの JavaScript をすべてクリアすることです。
core
除いてそこにあるものをすべて削除します。 core
を残す (ComfyUI のものです)バグを見つけた場合は、問題を提起してください。ワークフローを含めることができれば、非常に役立ちます (GitHub は .json を受け入れないため、.txt として保存するか、.json ファイルを zip 圧縮する必要があります)。 。
ノードのバイパスと無効化は機能しますが、問題が 1 つあります。マッチングを行う UE ノード ( Anything Everywhere?
およびPrompt Everywhere
) があり、そのノードがマッチングするノードをバイパスする場合、リンクは作成されません。それで
?を使用すると、ノードに送信するノード... | ...受信者をバイパスすると接続されません |
---|---|
これは修正される可能性は低いですが、回避するのはかなり簡単です。