ComfyUIで入力を切り替えるSwitch
全体公開
ComfyUIのフローで処理を切り替える際に使用するノードにSwitchがあります。
複数の入力の内、1つを選択して次のノードへ送ります。
これにも色々な種類がありますので、使用目的に合わせて合ったものを使って下さい。
画像1にSwitchの例を揚げておきます。
画像2Switchの使い方の前に知っておいて頂きたいノードがあります(画像3)。
・rgthree-comfy
URL: https://github.com/rgthree/rgthree-comfy
Fast Groups Bypasser (rgthree)
ノードを纏めるのにGroupと呼ばれる枠を使用しますが、そのGroup単位でバイパスさせるノードです。
バイパス状態になるとそのノードは機能せず、データがスルーされます。
また、定数など固定型のデータを持っているノードの場合は何も出さなくなります。
フローの中で処理をパスしたい際に良く使いますので、知っておいて下さい。
詳細は最後で。
1.画像3~画像6は下記Switchを使った例です。
・rgthree-comfy
URL: https://github.com/rgthree/rgthree-comfy
Any Switch (rgthree)
入力に対し、any_01から順に有効なデータがある入力が優先されます。
画像4、画像5の様に3番目のデーターが有効でも1番目や2番目が優先されます。
出力のデーター型は、入力に合わせられます。
2.画像7~画像9は下記Switchを使った例です。
・ComfyUI Impact Pack
URL: https://github.com/ltdrdata/ComfyUI-Impact-Pack
Switch (Any)
入力の切り替えを「select」に指定する番号で行うタイプのノードです。
入力端子は自動的に増える様になっています。
このノードは一度接続したノードを別のデータ型の接続に使用しないで下さい。
出力端子のデーター型がINTに固定されてINT型以外では使えなく成る場合があります。
使用したノードをコピーペーストしない様にして下さい。
ペーストした時点で何も接続していないのに入力端子が増えていきます。
おそらくバグです。
便利ですが癖が強いので、使用時には注意して下さい。
画像10~画僧13は、1と2を使った応用です。
特定のGroupをバイパスした時に、特定のデーターを使うイメージです。
3.画像14~画像15は下記スイッチを使った例です。
・ComfyUI標準ノード
スイッチ
入力の切り替えを「スイッチ」の「true(真)/false(偽)」で行うタイプのノードです。
切り替え値が2つしか無いので、入力は2つです。
画像16~画像17は、1と3を使った応用です。
4.画像18~画像20は下記Switchを使った例です。
・JPS Custom Nodes for ComfyUI
URL: https://github.com/JPS-GER/ComfyUI_JPS-Nodes
Image Switch (JPS)
画像用のSwitchです。
入力の切り替えを「select」に指定する番号で行うタイプのノードです。
画像21~画像23は、1と4を使った応用です。
Switchの機能について簡単に説明しましたが、色々なタイプのSwitchが有りますので、それそれ確認して使って下さい。
----------------------------------------------------------------------------------------------------------
おまけ
Fast Groups Bypasser (rgthree) ノードについて。
このノードは配置した時点で、キャンバス上に存在する全てのGroupをチェックし、一覧で表示します。
しかし、実際に制御したいGroupは特定のGroupに限られますので、対象を絞る必要があります。
その際使用するのが、プロパティです(画像24)
ノードを右クリックして表示されるコンテキストメニューから「プロパティ」をクリックすると設定メニューが表示されます。
指定に良く使う物だけ記述します。
matchColors:Groupに設定した色(画像25)を指定します、同じ色のGroupのみノードに表示されます。
matchTitle:Groupに設定したタイトルの部分一致でノードに表示されます。
※matchColorsとmatchTitleをセットで使うと更に絞り込めます。
sort:ノード上のGroupの表示順を簡易的に指定できます(画像26)
position:Groupのキャンバス上の位置で順番が決まります。
alphanumeric:Groupタイトルの文字コード順で決まります。
custam alphbet:ComfyUIの「設定」内の「rgthree」の設定で設定した値に基づきソートされますが、設定のしかたが分かっていませんw
toggleRestiction:有効に出来るGroupの最大値を設定できます(画像27)
default:基本の設定、全て有効にできます。
max one:最大で1つを有効にできます(全て無効にできます)。
always one:どれか1つを常に有効にできるハズですが…max oneと同様の動きをしています。
バグなのか、私の環境の影響なのかは分かりません。
複数のGroupの内1つだけ有効にしたい場合は、max one か always one に設定して下さい。