最新のComfyUIにおける実行エンジンのリスト自動アンラップ廃止に伴い、リスト型ノードの出力データが下流ノードで二重にラップされて正常に結合できなくなる不具合を解消するため、およびE2Eテスト環境の不整合を修正 - StringToolsRandomChoiceList、StringToolsBalancedChoiceList、StringToolsConcatList の process 戻り値から不要なリストブラケットを削除 - test_string_tools_complex_interconnection において seed と text_list の接続ポートが逆になっていた不具合を修正 - テスト内モックノード StringToolsMockStringList をテスト実行環境(COMFYUI_TEST_MODE または pytest 稼働中)のみ動的に登録するように制御 - モックノード誤露出時のフェイルセーフとして NODE_DISPLAY_NAME_MAPPINGS にテスト用である旨の表示名を設定 - conftest.py の起動オプションにホワイトリストを追加しテスト実行速度を高速化
ComfyUI String Tools
これは ComfyUI 用のカスタムノードです。
単純な文字列ノードである StringToolsString ノードと複数行の文字列ノードである StringToolsText、
複数のテキストを結合する StringToolsConcat ノードと、複数のテキストからランダムにひとつを選択する StringToolsRandomChoice ノードを提供します。
なぜ単純なテキストノードをこのカスタムノードで提供しているのか
StringToolsConcat ノードと StringToolsRandomChoice ノードは文字列を受け付けますが、現状 PrimitiveNode は受け付けられません。
そこで単純な文字列ノードである StringToolsString と StringToolsText ノードを提供しています。
機能
StringToolsSeed
StringToolsRandomChoice と StringToolsBalancedChoice では seed に PrimitiveNode を受け付けていないため、seed の生成に使用するノードです。
StringToolsConcat
separator で text_* を結合します。
これらの入力はWidgetに変更することができません。
StringToolsRandomChoice
seed で text_* の中からひとつ選択します。
これらの入力はWidgetに変更することができません。
StringToolsBalancedChoice
seed で text_* の中からひとつ選択します。
これらの入力はWidgetに変更することができません。
StringToolsRandomChoice との違いは重み付けにあります。
StringToolsBalancedChoice の入力のどこかに StringToolsRandomChoice か StringToolsBalancedChoice があった場合、その有効な入力数に応じて重み付けを行い、有効な入力数が多いほど選択されやすくなります。