ComfyUI Extension: ComfyUI-PromptSwitch

Authored by Boba-svg

Created

Updated

0 stars

It’s a custom node that allows you to intuitively toggle prompts ON/OFF and adjust their weights — just like using a checklist.

Custom Nodes (0)

    README

    ComfyUI-PromptSwitch ✨プロンプト作業を劇的に高速化!✨

    プロンプトのON/OFF切り替えやウェイト調整を、まるでチェックリストのように直感的に行えるカスタムノードです。


    🎉 Git Hubで公開された「PromptSwitch」へようこそ!

    これは、Prompt Palette の優れたアイデアをベースに、プロンプト管理とノード操作の快適さを追求して大幅に改善したバージョンです。

    このノードには、以下のマークを使用し、機能の起源を区別しています。

    • ⚡️ [Original]: Prompt Paletteから受け継いだ、核となる基本的な機能
    • 🆕 [Switch]: PromptSwitchで独自に追加・改善された機能

    🚀 PromptSwitch の主な機能

    このカスタムノードのすごいところは、プロンプトの各行を独立して操作できる点、そして細かいカスタマイズができる点にあります。

    機能説明と操作イメージ 🎮

    PromptSwitchの主要機能、特にコメントの見やすさ改善やウェイト調整、そしてPrompt Paletteから引き継いだ「EDITモードでの機能維持」を一枚で解説しています。

    機能説明 機能説明

    1. 超直感的!インタラクティブなプロンプト管理

    ノードが非編集モードのとき、プロンプトの各行が「チェックリスト」のように表示されます。

    • ⚡️ [Original] 行のON/OFF切り替え(活性化/コメントアウト) 🟢/⚫
      • ノード内のテキスト行をクリックするだけで、そのプロンプトを瞬時に有効化/無効化できます。試行錯誤が超スムーズに!
    • ⚡️ [Original] プロンプトウェイトの微調整が簡単! ⚖️
      • 各行の右にある [+] / [-] ボタンをクリックするだけで、ウェイトを CONFIG.WEIGHT_STEP (デフォルト 0.10) 単位でサクサク増減できます。ウェイト値はボタンの隣に表示されます。
    • ⚡️ [Original] 編集モード(Edit Mode)でも機能が有効 ✏️
      • 編集モードのまま、通常のプロンプト入力ノードとして機能し続けます。編集と実行をシームレスに行き来できます。
    • 🆕 [Switch] 空行に区切り線(Separator Line)を描画
      • プロンプトブロックの視認性を高めるため、空行に対して細い横線が自動で描画されます。(オリジナルのちょっとした不満点を解消!)
    • 🆕 [Switch] 表示がとにかく見やすい!視覚的な大改善 👀
      • テキストの自動省略:行の文字数が多すぎる場合、ノードの見た目が崩れないように自動的に省略表示されます。
      • コメントの見やすさ調整:コメントアウトされた行(// で始まる行)について、以下の視覚的な調整が可能です。
        • コメント記号 // は非表示になります
        • コメントの色やフォントサイズを最適化し、メインのプロンプトがより際立つように調整されています。

    2. ノードのモード切り替え

    • ✏️ 編集モード(Edit Mode)
      • F2 または E キー、または ノード本体の左・下・右枠をダブルクリックで、通常のテキスト入力エリアを表示/非表示に切り替えられます。
    • 🆕 [Switch] ミニマムモード(Visible/Invisible)
      • V キーで、選択中のノードの表示を切り替え!
        • 通常モード(展開): 全ての行を表示し、プロンプト編集に集中できます。
        • コンパクトモード(最小化): 無効な行を非表示にして、ノードの高さを最小限に抑えます。キャンバスを広く使いたい時に便利!

    🚀 爆速作業のためのショートカット機能 💨

    作業のスピードアップを目的とした、強力なキーボードショートカットを提供します。(注: これらは全てPromptSwitchで独自に追加・強化された機能です!

    | ショートカット | 機能 | 説明 | | :--- | :--- | :--- | | A | まとめてON/OFF | 選択中のノードの全てのプロンプト行を一括でON/OFF切り替え(トグル)! | | Shift + A | 全ノード強制無効化 🚨 | キャンバス上の全てのPromptSwitchノードのプロンプトを、一括で強制的にコメントアウトします。【除外タグ: /a, /av, /va | | V | コンパクトモード切替 | 選択中のノードの無効なプロンプト行の表示/非表示(コンパクト ⇔ 通常)を切り替え! | | Shift + V | 全ノード表示モード一括変更 | キャンバス上の全PromptSwitchノードの表示を、一括でコンパクト ⇔ 通常に切り替え!【除外タグ: /v, /av, /va | | R | ウェイト一発リセット | 選択中のノード内の全てのウェイトを、一括で 1.0 にリセット(括弧を削除)します。| | F1 | ヘルプを表示 | このノードの主要なショートカット一覧と、除外タグのルールをすぐに確認できます。|

    📌 除外タグのルール

    • 一括操作からノードを除外したい場合は、ノードタイトルの末尾に以下のタグを付けてください。
    • /a: Shift+A の一括無効化から除外。
    • /v: Shift+V の一括表示切替から除外。
    • /av または /va: 両方の一括操作から除外。

    ⚡️ [Original] プロンプト管理をテキストエディターで出来る事による強力な応用性

    Prompt Paletteのテキストエディター機能は、プロンプト編集に強力な応用性をもたらします。その一部をご紹介します。

    1. 他の方の作ったプロンプトの導入のしやすさ

    プロンプトをコピー後、別途エディターで「カンマ」を「カンマ+改行文字」に置換して本ノードに貼り付けると、即座にすべての要素がリスト化されます。

    2. プロンプト紹介サイト+チャットAIを活用する活用法

    プロンプト紹介サイトやチャットAIを活用することで、労せずに強力なプロンプトリストを入手し、再検索の手間を省くことができます。

    1. チャットAIの入力画面にまず、以下の指示文を打ちます。(エンターはまだ押さないで)
      こちらの中のプロンプトとそれに対するコメントを「プロンプト // コメント」という形で抽出してほしい。カテゴリが変わったら空白行を入れて、一回のコピーボタンですむようにまとめて。
      
    2. そしてプロンプト紹介サイトの内容を Ctrl + ACtrl + C でコピーし、上記の入力のあとに貼り付けをしてエンター。
    3. チャットAIは「プロンプト // コメント」の形でそのページのプロンプトをリスト化し、コピーボタンまで用意してくれるでしょう。
    4. それをPromptSwitchに貼り付ければ、即強力なプロンプトリストを入手でき、忘れるたびにプロンプト紹介サイトを検索する手間から逃れることができます。

    🔧 カスタマイズ大歓迎!設定変数リスト

    web/index.jsCONFIG オブジェクトを直接編集することで、ノードの細かい振る舞いを調整できます。

    | 変数名 | デフォルト値 | 説明 | | :--- | :--- | :--- | | WEIGHT_STEP | 0.10 | ウェイト増減ボタン ([+]/[-]) で増減する単位量を設定します。| | minWeight | -1.0 | 最小ウェイト値を設定します。 | | maxWeight | 2.0 | 最大ウェイト値を設定します。 | | COMMENT_FONT_SCALE | 0.8 | コメント行のフォントサイズを、プロンプトのフォントサイズに対する比率で指定します。 | | PROMPT_MAX_LENGTH_DISPLAY | 30 | ノード表示時に省略せずに表示するプロンプトの最大文字数を指定します。 | | COLOR_PROMPT_ON | "#FFF" | 有効なプロンプトのテキスト色。 | | COLOR_COMMENT_ON | "#ADD8E6" | 有効なプロンプトに付随するコメントのテキスト色。 | | COLOR_PROMPT_OFF | "#AAAAAA" | 無効なプロンプト(コメントアウトされた行)のテキスト色。 | | COLOR_COMMENT_OFF | "#AAAAAA" | 無効なプロンプトに付随するコメントのテキスト色。 |

    ⚠️ 注意: web/index.js のコードを元に、存在しない設定項目(ENABLE_SHIFT_A_CONFIRMATIONENABLE_R_KEY_RESETENABLE_DBLCLICK_TOGGLECOMMENT_COLORCOMMENT_FONT_SIZE)は削除し、実際の変数名(WEIGHT_STEPminWeightmaxWeightCOMMENT_FONT_SCALEPROMPT_MAX_LENGTH_DISPLAY、カラーコード)に合わせて調整しました。


    🛠️ インストールとアップデート方法

    現在、ComfyUI Managerへの登録準備中です!それまでは、以下のGitコマンドを使った手動での管理をお願いします🙇‍♂️。

    1. 手動インストール手順 (Git Clone)

    1. ComfyUIがインストールされているフォルダ内の custom_nodes フォルダへ移動します。

      cd /path/to/ComfyUI/custom_nodes
      
    2. 以下のコマンドでリポジトリをクローン(ダウンロード)します。

      git clone https://github.com/Boba-svg/ComfyUI-PromptSwitch.git
      
    3. ComfyUIを再起動すれば完了です!

    2. アップデート手順 (Git Pull) 🆕

    最新の機能や修正を取り込む際は、以下の手順を実行してください。

    1. ComfyUIのプロセスを完全に終了します。

    2. ComfyUIがインストールされているフォルダ内の custom_nodes フォルダへ移動します。

    3. ComfyUI-PromptSwitch フォルダへ移動します。

      cd /path/to/ComfyUI/custom_nodes/ComfyUI-PromptSwitch
      
    4. 以下のコマンドで最新の変更を取得します。

      git pull
      

      (※もしファイルの上書きに関するエラーが出た場合は、一時ファイルを削除するか、git reset --hard でローカルの変更を破棄してください。)

    5. ComfyUIを再起動すればアップデート完了です!


    💡 使用方法

    1. ノード検索メニュー(右クリックまたはCtrl + Space)から、**ユーティリティ(utils)**カテゴリなどからノードを呼び出します。
    2. ノードにフォーカスを合わせて**F1キー**を押すと、ノードの詳細なヘルプが表示されます。

    💡 アップデート履歴

    1. 25/10/16 公開
    2. 25/10/17 末尾タグによる除外機能追加:Shift+A (/a) / Shift+V (/v) の一括操作から特定のノードを除外する機能を追加。シンプル化のため、ノードタイトル先頭の - による除外機能は削除されました。

    💡 次の更新予定

    1. 機能を止める設定値は不要なのでそれらのフラグ関連の処理を削除
    2. ノード表示の最適化: 通常モードにおいて、最上行と最下行の不必要なライン表示を抑制し、視覚的なノイズを軽減します。
    3. 呼び出した直後はデータを空に

    🌟 クレジット (Credit) / 感謝! 🙏

    このカスタムノード(ComfyUI-PromptSwitch)は、kambara氏によって開発された優れたプロジェクト ComfyUI-PromptPalette のアイデアをフォークし、大幅に機能拡張したものです。

    オリジナルの作者とプロジェクトに心から感謝いたします。


    📝 ライセンス

    このプロジェクトは、オリジナルと同じく MITライセンスの下で公開されています。

    詳細はリポジトリ内の LICENSEファイル をご確認ください。