更新 README 文件
This commit is contained in:
@@ -79,9 +79,13 @@ git clone https://github.com/NineKey1028/ComfyUI_Dynamic_TagLoader.git
|
||||
> * **檔案選取邏輯**:
|
||||
> * **資料夾模式**:輸入資料夾路徑,並配合 **Seed** 進行隨機索引抽樣,適合用於自動化重新讀取不同圖片的提示詞。
|
||||
> * **單圖模式**:直接讀取指定路徑的圖片資訊。
|
||||
>
|
||||
> 可直接將圖片檔案拖入節點並填寫圖片路徑。
|
||||
>
|
||||
> 可從剪貼簿直接 `Ctrl+V` 貼上圖片。
|
||||
>
|
||||
> 上敘兩項動作會將圖片複製至input資料夾
|
||||
>
|
||||
> ⚠️ **注意事項**:
|
||||
> 正確讀取 Prompt 的前提是該流程中需使用類似 **Show Text** 的節點來顯示提示詞,且 **Prompt 必須先於圖片產生**(即寫入 Metadata 中),否則可能會讀取到錯誤資訊。若遇到執行順序問題,建議搭配 **⏳ Wait For** 節點來強制控制產生順序。
|
||||
> </details>
|
||||
|
||||
+47
-58
@@ -27,86 +27,75 @@ Restart ComfyUI.
|
||||
### ⚡ Dynamic Tag Loader
|
||||
> Quickly read and sort organized `.txt` files from tag folders. Supports LoRA reading and can be connected to the 🔄 **Dynamic Tag Iterator** for random prompts and batch output.
|
||||
> <details>
|
||||
> <summary><i>More...</i></summary>
|
||||
|
||||
> * **Global Prompt**: Always appears on the first line of all output combinations.
|
||||
> * **+ Add Tag Group**: Click to add a new folder to read; you can add unlimited groups as needed.
|
||||
> * **Tag Group**:
|
||||
> * **Folder**: The current folder being read. Click to open a menu and switch folders.
|
||||
> * **File**: The file currently selected in the folder. Choosing **ALL** will combine all `.txt` files in this folder with files from other groups for full combinatorial output.
|
||||
>
|
||||
>
|
||||
> * **LoRA Support**: Supports writing `<lora:lora_name:weight>` directly in `.txt` files or the Global Prompt. The node automatically extracts the syntax, loads model weights, and cleans the syntax from the final prompt.
|
||||
> * **Context Menu**: Right-click any Tag Group to "Move Up/Down," "Move to Top/Bottom," "Insert New Group," or "Delete Group."
|
||||
> <summary><i>More...</i></summary>
|
||||
>
|
||||
> * **Global Prompt**: Always appears on the first line of all output combinations.
|
||||
> * **+ Add Tag Group**: Click to add a new folder to read; you can add unlimited groups as needed.
|
||||
> * **Tag Group**:
|
||||
> * **Folder**: The current folder being read. Click to open a menu and switch folders.
|
||||
> * **File**: The file currently selected in the folder. Choosing **ALL** will combine all `.txt` files in this folder with files from other groups for full combinatorial output.
|
||||
> * **LoRA Support**: Supports writing `<lora:lora_name:weight>` directly in `.txt` files or the Global Prompt. The node automatically extracts the syntax, loads model weights, and cleans the syntax from the final prompt.
|
||||
> * **Context Menu**: Right-click any Tag Group to "Move Up/Down," "Move to Top/Bottom," "Insert New Group," or "Delete Group."
|
||||
> </details>
|
||||
|
||||
### 🔄 Dynamic Tag Iterator
|
||||
> Receives the combination list from the Dynamic Tag Loader and performs single iterations or batch outputs based on settings.
|
||||
> <details>
|
||||
> <summary><i>More...</i></summary>
|
||||
|
||||
> * **Output Mode**:
|
||||
> * **Iterate (One by One)**: Works with ComfyUI's queue mechanism. Outputs one combination per execution (switches index order based on Seed).
|
||||
> * **Batch (List)**: Outputs all combinations (or a filtered list) at once, suitable for nodes that support list processing.
|
||||
>
|
||||
>
|
||||
> * **Sample Limit**: Sampling restriction. Set to 0 to use all combinations; if > 0, it randomly selects a specified number of items from the pool based on the current Seed.
|
||||
> * **Seed Control & Records**:
|
||||
> * The node determines the iteration index or random sampling order based on the Seed.
|
||||
> * **♻️ Reuse Last Seed**: Automatically records the Seed from the last successful run. Click to quickly fill it back into the Seed input to reproduce specific combinations.
|
||||
> <summary><i>More...</i></summary>
|
||||
>
|
||||
> * **Output Mode**:
|
||||
> * **Iterate (One by One)**: Works with ComfyUI's queue mechanism. Outputs one combination per execution (switches index order based on Seed).
|
||||
> * **Batch (List)**: Outputs all combinations (or a filtered list) at once, suitable for nodes that support list processing.
|
||||
> * **Sample Limit**: Sampling restriction. Set to 0 to use all combinations; if > 0, it randomly selects a specified number of items from the pool based on the current Seed.
|
||||
> * **Seed Control & Records**:
|
||||
> * The node determines the iteration index or random sampling order based on the Seed.
|
||||
> * **♻️ Reuse Last Seed**: Automatically records the Seed from the last successful run. Click to quickly fill it back into the Seed input to reproduce specific combinations.
|
||||
> </details>
|
||||
|
||||
### 💾 Dynamic Tag Saver
|
||||
> Saves prompt text instantly as a `.txt` tag file and automatically integrates selected LoRA syntax. Helps users build personal tag libraries for future use with the Dynamic Tag Loader.
|
||||
> <details>
|
||||
> <summary><i>More...</i></summary>
|
||||
|
||||
> * **Text Input**: The main prompt input area. Extra spaces are trimmed automatically.
|
||||
> * **Folder & Filename**:
|
||||
> * **Folder Name**: Specify the save directory. If it doesn't exist, it will be created (within the `tags` folder in the node directory).
|
||||
> * **Filename**: Specify the file name. If a duplicate exists, a suffix (e.g., `_1`, `_2`) is added to prevent overwriting.
|
||||
>
|
||||
>
|
||||
> * **LoRA Auto Merge**:
|
||||
> * **+ Add LoRA**: Opens a search menu to select installed LoRA files.
|
||||
> * **Strength**: Adjust weights (supports -10.0 to 10.0).
|
||||
> * **Auto Integration**: Upon saving, selected LoRAs are converted to `<lora:name:weight>` and appended to the text.
|
||||
>
|
||||
>
|
||||
> * **Advanced Menu**: Right-click the LoRA block to reorder or delete entries.
|
||||
> <summary><i>More...</i></summary>
|
||||
>
|
||||
> * **Text Input**: The main prompt input area. Extra spaces are trimmed automatically.
|
||||
> * **Folder & Filename**:
|
||||
> * **Folder Name**: Specify the save directory. If it doesn't exist, it will be created (within the `tags` folder in the node directory).
|
||||
> * **Filename**: Specify the file name. If a duplicate exists, a suffix (e.g., `_1`, `_2`) is added to prevent overwriting.
|
||||
> * **LoRA Auto Merge**:
|
||||
> * **+ Add LoRA**: Opens a search menu to select installed LoRA files.
|
||||
> * **Strength**: Adjust weights (supports -10.0 to 10.0).
|
||||
> * **Auto Integration**: Upon saving, selected LoRAs are converted to `<lora:name:weight>` and appended to the text.
|
||||
> * **Advanced Menu**: Right-click the LoRA block to reorder or delete entries.
|
||||
> </details>
|
||||
|
||||
### 🔍 Workflow Metadata Reader
|
||||
> Extracts complete Workflow JSON data from generated images (PNG). It retrieves content based on Node IDs to output prompts and images. Supports single image parsing or random selection from a directory.
|
||||
> <details>
|
||||
> <summary><i>More...</i></summary>
|
||||
|
||||
> * **image_or_dir**: Input a file path or a directory path.
|
||||
> * **Search By**:
|
||||
> * **ID**: Locates and extracts all widget values (Prompt, Seed, etc.) via Node ID.
|
||||
> * **Type**: Filters and extracts text based on node type (e.g., `CLIPTextEncode`).
|
||||
>
|
||||
>
|
||||
> * **Selection Logic**:
|
||||
> * **Directory Mode**: Uses the **Seed** to randomly sample images from a folder.
|
||||
> * **Single Image Mode**: Reads info from a specific file.
|
||||
>
|
||||
>
|
||||
> * **Note**: Supports Drag & Drop or `Ctrl+V` to paste images (copies them to the `input` folder).
|
||||
> ⚠️ **Warning**: For prompts to be read correctly, the workflow should use a node like **Show Text** and the prompt must be written to the metadata *before* image generation. If execution order issues occur, use the **⏳ Wait For** node.
|
||||
> <summary><i>More...</i></summary>
|
||||
>
|
||||
> * **image_or_dir**: Input a file path or a directory path.
|
||||
> * **Search By**:
|
||||
> * **ID**: Locates and extracts all widget values (Prompt, Seed, etc.) via Node ID.
|
||||
> * **Type**: Filters and extracts text based on node type (e.g., `CLIPTextEncode`).
|
||||
> * **Selection Logic**:
|
||||
> * **Directory Mode**: Uses the **Seed** to randomly sample images from a folder.
|
||||
> * **Single Image Mode**: Reads info from a specific file.
|
||||
> * **Note**: Supports Drag & Drop or `Ctrl+V` to paste images (copies them to the `input` folder).
|
||||
>
|
||||
> ⚠️ **Warning**: For prompts to be read correctly, the workflow should use a node like **Show Text** and the prompt must be written to the metadata *before* image generation. If execution order issues occur, use the **⏳ Wait For** node.
|
||||
> </details>
|
||||
|
||||
### ⏳ Wait For
|
||||
|
||||
> Forces execution order in ComfyUI's non-linear environment. Ensures a "Target Node" finishes before the subsequent node begins.
|
||||
> <details>
|
||||
> <summary><i>More...</i></summary>
|
||||
|
||||
> * **Data Input**: The primary data to pass through (AnyType).
|
||||
> * **Wait For (Optional)**: Connect to the output of the node you want to finish first. Data is only released once this connection receives data.
|
||||
> <summary><i>More...</i></summary>
|
||||
>
|
||||
> * **Data Input**: The primary data to pass through (AnyType).
|
||||
> * **Wait For (Optional)**: Connect to the output of the node you want to finish first. Data is only released once this connection receives data.
|
||||
> </details>
|
||||
|
||||
ワークフローの例:
|
||||
Example Workflows:
|
||||

|
||||

|
||||
これらの画像を ComfyUI にドラッグ&ドロップすることで、サンプルワークフローを読み込むことができます。
|
||||
You can drag these into ComfyUI to load and read the example workflows.
|
||||
+41
-50
@@ -26,82 +26,73 @@ ComfyUI を再起動してください。
|
||||
### ⚡ Dynamic Tag Loader
|
||||
> 整理されたタグフォルダから `.txt` ファイルを高速に読み込み、ソートします。LoRA の読み込みにも対応しており、🔄 **Dynamic Tag Iterator** と接続することで、プロンプトのランダム化やバッチ出力が可能です。
|
||||
> <details>
|
||||
> <summary><i>詳細...</i></summary>
|
||||
|
||||
> * **Global Prompt**: すべての組み合わせの先頭に出力されます。
|
||||
> * **+ Add Tag Group**: クリックして読み込むフォルダを追加します。必要に応じて無制限に追加可能です。
|
||||
> * **Tag Group**:
|
||||
> * **Folder**: 現在読み込んでいるフォルダ。クリックしてフォルダを切り替えられます。
|
||||
> * **File**: 現在のフォルダ内で読み込まれているファイル。「ALL」を選択すると、このフォルダ内のすべての `.txt` が他のグループのファイルと組み合わされ、全パターンが出力されます。
|
||||
>
|
||||
>
|
||||
> * **LoRA 読み込み**: `.txt` ファイルまたは Global Prompt 内に `<lora:lora_name:weight>` を直接記述できます。ノードが自動的に構文を抽出してモデルウェイトをロードし、最終的なプロンプトからは構文を削除します。
|
||||
> * **右クリックメニュー**: Tag Group 領域を右クリックして、「上へ/下へ移動」、「最上部/最下部へ」、「新しいグループを挿入」、「削除」などの操作が可能です。
|
||||
> <summary><i>詳細...</i></summary>
|
||||
>
|
||||
> * **Global Prompt**: すべての組み合わせの先頭に出力されます。
|
||||
> * **+ Add Tag Group**: クリックして読み込むフォルダを追加します。必要に応じて無制限に追加可能です。
|
||||
> * **Tag Group**:
|
||||
> * **Folder**: 現在読み込んでいるフォルダ。クリックしてフォルダを切り替えられます。
|
||||
> * **File**: 現在のフォルダ内で読み込まれているファイル。「ALL」を選択すると、このフォルダ内のすべての `.txt` が他のグループのファイルと組み合わされ、全パターンが出力されます。
|
||||
> * **LoRA 読み込み**: `.txt` ファイルまたは Global Prompt 内に `<lora:lora_name:weight>` を直接記述できます。ノードが自動的に構文を抽出してモデルウェイトをロードし、最終的なプロンプトからは構文を削除します。
|
||||
> * **右クリックメニュー**: Tag Group 領域を右クリックして、「上へ/下へ移動」、「最上部/最下部へ」、「新しいグループを挿入」、「削除」などの操作が可能です。
|
||||
> </details>
|
||||
|
||||
### 🔄 Dynamic Tag Iterator
|
||||
> Dynamic Tag Loader から組み合わせリストを受け取り、設定に基づいて単一のイテレーションまたはバッチ出力を行います。
|
||||
> <details>
|
||||
> <summary><i>詳細...</i></summary>
|
||||
|
||||
> * **Output Mode**:
|
||||
> * **Iterate (One by One)**: ComfyUI のキュー機能と連動し、実行ごとに組み合わせを1つずつ出力します(Seed に基づいて順序を切り替え)。
|
||||
> * **Batch (List)**: すべての組み合わせ(またはフィルタリング後のリスト)を一度に出力します。リスト処理に対応したノードに最適です。
|
||||
>
|
||||
>
|
||||
> * **Sample Limit**: サンプリング制限機能。0 の場合はすべての組み合わせを使用します。0 より大きい場合、現在の Seed に基づいて指定された数だけランダムに抽出します。
|
||||
> * **Seed コントロールと記録**:
|
||||
> * Seed によってイテレーションのインデックスやランダムサンプリングの順序が決定されます。
|
||||
> * **♻️ Reuse Last Seed**: 直前の成功した実行で使用された Seed を自動記録します。ボタンをクリックして Seed 入力欄に値を戻し、特定の組み合わせを再現できます。
|
||||
> <summary><i>詳細...</i></summary>
|
||||
>
|
||||
> * **Output Mode**:
|
||||
> * **Iterate (One by One)**: ComfyUI のキュー機能と連動し、実行ごとに組み合わせを1つずつ出力します(Seed に基づいて順序を切り替え)。
|
||||
> * **Batch (List)**: すべての組み合わせ(またはフィルタリング後のリスト)を一度に出力します。リスト処理に対応したノードに最適です。
|
||||
> * **Sample Limit**: サンプリング制限機能。0 の場合はすべての組み合わせを使用します。0 より大きい場合、現在の Seed に基づいて指定された数だけランダムに抽出します。
|
||||
> * **Seed コントロールと記録**:
|
||||
> * Seed によってイテレーションのインデックスやランダムサンプリングの順序が決定されます。
|
||||
> * **♻️ Reuse Last Seed**: 直前の成功した実行で使用された Seed を自動記録します。ボタンをクリックして Seed 入力欄に値を戻し、特定の組み合わせを再現できます。
|
||||
> </details>
|
||||
|
||||
### 💾 Dynamic Tag Saver
|
||||
> プロンプトテキストを即座に `.txt` タグファイルとして保存し、選択した LoRA 構文を自動的に統合します。個人用のタグライブラリを構築し、将来的に Dynamic Tag Loader で再利用するのに便利です。
|
||||
> <details>
|
||||
> <summary><i>詳細...</i></summary>
|
||||
> <summary><i>詳細...</i></summary>
|
||||
|
||||
> * **Text Input**: メインのプロンプト入力エリア。保存時に前後の不要な空白を自動削除します。
|
||||
> * **Folder & Filename**:
|
||||
> * **Folder Name**: 保存先フォルダ名。存在しない場合は自動生成されます(ノードディレクトリ内の `tags` フォルダ内)。
|
||||
> * **Filename**: ファイル名。同名ファイルがある場合は自動で連番(`_1`, `_2`)が付与されます。
|
||||
>
|
||||
>
|
||||
> * **LoRA Auto Merge**:
|
||||
> * **+ Add LoRA**: クリックしてインストール済みの LoRA ファイルを検索・選択します。
|
||||
> * **Strength**: ウェイト値を調整します(-10.0 ~ 10.0 対応)。
|
||||
> * **自動構文統合**: 保存時、選択した LoRA は標準のプロンプト構文 `<lora:名称:ウェイト>` に変換され、テキストの末尾に追加されます。
|
||||
>
|
||||
>
|
||||
> * **右クリックメニュー**: LoRA ブロックを右クリックして、順序の変更や削除が可能です。
|
||||
> * **Text Input**: メインのプロンプト入力エリア。保存時に前後の不要な空白を自動削除します。
|
||||
> * **Folder & Filename**:
|
||||
> * **Folder Name**: 保存先フォルダ名。存在しない場合は自動生成されます(ノードディレクトリ内の `tags` フォルダ内)。
|
||||
> * **Filename**: ファイル名。同名ファイルがある場合は自動で連番(`_1`, `_2`)が付与されます。
|
||||
> * **LoRA Auto Merge**:
|
||||
> * **+ Add LoRA**: クリックしてインストール済みの LoRA ファイルを検索・選択します。
|
||||
> * **Strength**: ウェイト値を調整します(-10.0 ~ 10.0 対応)。
|
||||
> * **自動構文統合**: 保存時、選択した LoRA は標準のプロンプト構文 `<lora:名称:ウェイト>` に変換され、テキストの末尾に追加されます。
|
||||
> * **右クリックメニュー**: LoRA ブロックを右クリックして、順序の変更や削除が可能です。
|
||||
> </details>
|
||||
|
||||
### 🔍 Workflow Metadata Reader
|
||||
> 生成された画像(PNG)から完全な Workflow JSON データを抽出します。ノード ID に基づいてプロンプトや画像を取得し、単一画像の解析やフォルダからのランダム選択に対応しています。
|
||||
> <details>
|
||||
> <summary><i>詳細...</i></summary>
|
||||
> <summary><i>詳細...</i></summary>
|
||||
|
||||
> * **image_or_dir**: 画像ファイルまたはフォルダのパスを入力します。
|
||||
> * **Search By**:
|
||||
> * **ID**: ノード ID を通じて、そのノードの全ウィジェット値(プロンプト、Seed など)を抽出します。
|
||||
> * **Type**: ノードタイプ(例: `CLIPTextEncode`)を指定してテキスト内容を抽出します。
|
||||
> * **image_or_dir**: 画像ファイルまたはフォルダのパスを入力します。
|
||||
> * **Search By**:
|
||||
> * **ID**: ノード ID を通じて、そのノードの全ウィジェット値(プロンプト、Seed など)を抽出します。
|
||||
> * **Type**: ノードタイプ(例: `CLIPTextEncode`)を指定してテキスト内容を抽出します。
|
||||
>
|
||||
>
|
||||
> * **画像選択ロジック**:
|
||||
> * **フォルダモード**: フォルダパスを入力し、**Seed** を利用してランダムに画像をサンプリングします。
|
||||
> * **単一画像モード**: 指定した画像の情報を直接読み込みます。
|
||||
>
|
||||
>
|
||||
> * **ヒント**: 画像をノードにドラッグ&ドロップするか `Ctrl+V` で貼り付けることができます(`input` フォルダにコピーされます)。
|
||||
> * **画像選択ロジック**:
|
||||
> * **フォルダモード**: フォルダパスを入力し、**Seed** を利用してランダムに画像をサンプリングします。
|
||||
> * **単一画像モード**: 指定した画像の情報を直接読み込みます。
|
||||
> * **ヒント**: 画像をノードにドラッグ&ドロップするか `Ctrl+V` で貼り付けることができます(`input` フォルダにコピーされます)。
|
||||
>
|
||||
> ⚠️ **注意**: プロンプトを正しく読み込むには、ワークフロー内で **Show Text** のようなノードを使用し、画像生成前にプロンプトがメタデータに書き込まれている必要があります。順序の問題が発生する場合は **⏳ Wait For** ノードを使用してください。
|
||||
> </details>
|
||||
|
||||
### ⏳ Wait For
|
||||
> ComfyUI の非線形実行環境で実行順序を強制制御します。特定のノードが完了してから次の計算を開始するように調整し、非同期実行によるエラーを防ぎます。
|
||||
> <details>
|
||||
> <summary><i>詳細...</i></summary>
|
||||
> <summary><i>詳細...</i></summary>
|
||||
|
||||
> * **Data Input**: 次に渡すメインデータ(AnyType 対応)。そのまま出力されます。
|
||||
> * **Wait For (Optional)**: 先に実行を完了させたいノードの出力を接続します。この接続点にデータが届くまで、`Data Input` は次へ放出されません。
|
||||
> * **Data Input**: 次に渡すメインデータ(AnyType 対応)。そのまま出力されます。
|
||||
> * **Wait For (Optional)**: 先に実行を完了させたいノードの出力を接続します。この接続点にデータが届くまで、`Data Input` は次へ放出されません。
|
||||
> </details>
|
||||
|
||||
ワークフローの例:
|
||||
|
||||
Reference in New Issue
Block a user