Files
da2el-ai-D2-nodes-ComfyUI/docs/ja/node_text.md
T
da2el-aiandClaude Opus 4.7 bfd9e6cbee docs: document D2 Tag Report exclude_tags and bump to 38.1.0
Describe the tag dictionary formats, the matching rules, and the
restriction that the value must be typed into the widget because the
Get tags button runs before the workflow executes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-09-15 15:36:22 +09:00

19 KiB
Raw Blame History

English | 日本語 | 繁体中文

Node

🍅 Text Node

D2 Regex Replace

  • 正規表現を使って置換ができる
  • 複数の条件を指定できる
  • 正規表現によるマッチ文字列の再利用ができる(\1、\2 など)
  • 対象文字列を「タグ単位」と「全体」で指定できる

Input

  • text
    • 検索対象文字列
  • mode
    • Tag: text を改行と「,」で分解し、個別に置換する
    • Advanced: text をまとめて置換する
  • regex_and_output
    • 検索文字列と出力文字列の一覧
    • 下記のフォーマットで記入する
    • 出力文字列に何も記載されてない時はマッチした部分を削除する
    • 個数に上限は無い
検索文字 1
--
出力文字列 1
--
検索文字 2
--
出力文字列 2

Output

  • text
    • 置換処理をしたテキスト

Sample

Pony系列のクオリティタグを削除するサンプル。

Mode: Tag

Input text

score_9, score_8_up, (score_7_up, score_6_up:0.8) , rating_explicit, source_anime, BREAK
1girl, swimsuit

Regex Replace

.*(score_|rating_|source_).*
--
--
BREAK
--

Output text

1girl, swimsuit

D2 Regex Switcher

  • 入力テキストを正規表現で検索し、該当したテキストを出力
  • 主な目的は Checkpoint 毎のクオリティタグの切り替え
  • 入力した text の中に合致する文字列を発見すると、対象文字列と、何番目に合致したか(0 から開始)を出力する
  • 上の画像では ioliPonyMixV4.safetensors を受け取り、検索条件 pony に合致したので score_9 が出力されている
  • 最初の検索条件に合致したので index は 0 が出力される
  • 全ての条件に合致しないと -1 が出力される
  • 文字列の前方結合、後方結合もできる。

Input

  • text
    • 検索対象文字列
  • prefix
    • 前方に結合する文字列
  • suffix
    • 後方に結合する文字列
  • regex_and_output
    • 検索文字列と出力文字列の一覧
    • 下記のフォーマットで記入する
  • pre_delim
    • prefix と regex_and_output を接続する時に挟む文字
    • Comma: , / Line break: 改行 / None: 何も挟まない
  • suf_delim
    • suffix と regex_and_output を接続する時に挟む文字
検索文字 1(正規表現も使用可能)
--
出力文字列 1
--
検索文字 2(正規表現も使用可能)
--
出力文字列 2
--
--
合致するものが無い時に出力する文字

Output

  • combined_text
    • prefix + 出力文字列 + suffix を結合した文字列
  • prefix / suffix
    • Input のパススルー

使用例

この例では合致した番号(index)を Easy Use の Text Index Switch に渡して切り替えている。

合致しないと -1 になってしまうので、全ての文字列に合致する正規表現 .+ を使ってデフォルト出力の代わりにしている。


D2 Multi Output

  • seed や cfg など汎用的なパラメータをリスト出力するノード

Input

  • type
    • FLOAT: 浮動小数点数。CFG など
    • INT: 整数。steps など
    • STRING: 文字列。sampler など
    • SEED: 乱数生成ボタンで seed 値を入力できる
  • Add Random
    • 入力欄に乱数を追加する
    • type が SEED の時だけ表示される

Output

  • LIST
    • 改行で分解して配列で出力する
  • x/y_list
    • 普通の改行区切りテキスト
    • D2 XY Plot、D2 XY Plot Easy、D2 XY Plot Easy Mini で使用する

D2 List To String

  • 配列(LIST)を1つの文字列に結合するノード
  • separator で区切り文字を選択する

Input

  • separator
    • Comma + Space: , で結合
    • Comma: , で結合
    • Line break: 改行で結合
    • Semicolon: ; で結合
    • Space: 半角スペースで結合
    • None: 区切り文字なしで結合

D2 Text Concat

  • 入力数を調整できるテキスト結合ノード
  • text_count で入力欄を増減し、text_1 〜 text_N に接続したテキストを結合する
  • separator は D2 List To String と共通

Input

  • text_count
    • 入力欄の数を増減する(1〜50)
  • separator
    • Comma + Space: , で結合
    • Comma: , で結合
    • Line break: 改行で結合
    • Semicolon: ; で結合
    • Space: 半角スペースで結合
    • None: 区切り文字なしで結合
  • skip_empty
    • true のとき、未接続や空(空白・改行のみ)の入力をスキップして結合する
    • 余計な区切り文字(, , )が入るのを防ぐ

D2 Filename Template / D2 Filename Template2

  • 日付や他のノードのパラメーターを取り込んで文字列テンプレートを作るためのノード
  • D2 Filename Template2 は複数行対応版です
  • 配列、辞書、オブジェクトから値を取得することも可能
  • Stable Diffusion webui A1111風のメタデータ書式など、よく使う書式をプリセット登録が可能
    • custom_nodes/d2-nodes-comfyui/config/template_config.yaml を編集することで追加可能

Input

  • arg_{数字}
    • 他のノードから値を取り込む
  • format
    • %date:{yyyy/MM/dd/hh/mm/ss}%
      • yyyy: 年
      • MM: 月
      • dd: 日
      • hh: 時
      • mm: 分
      • ss: 秒
    • %{ノード名}.{key}%
      • ノード名と、項目名を指定して値を取得する
      • 例:%Empty Latent Image.width%: Empty Latent Image のノードから width を取得
    • %node:{id}.{key}%
      • ノードIDと、項目名を指定して値を取得する
      • 例:%node:8.width%: ID 8 のノードから width を取得
    • %arg_{数字}%
      • 入力した値を埋め込む
    • %arg_{数字}:ckpt_name%
      • チェックポイント名から .safetensors を除外したものを埋め込む
    • %arg_{数字}:preset.{プリセット名}%
      • プリセットは custom_nodes/d2-nodes-comfyui/config/template_config.yaml を編集することで追加可能
    • %exec_{数字}[{index}]%
      • arg_{数字} に入力された配列から {index} の値を取得
    • %exec_{数字}['{key}']%
      • arg_{数字} に入力された辞書から {key} の値を取得
    • %exec_{数字}.{key}%
      • arg_{数字} に入力されたオブジェクトから {key} の値を取得
  • arg_count
    • 入力項目の増減
  • normalization
    • ファイル名に使えない:を_に変換する
`arg_N`に接続したノード情報や、ノード名などを使って取得している
生成パラメーターをまとめたオブジェクト `d2_pipe` から `steps`,`sampler_name` を取得している
`arg_1` に入力された値をプリセット `a1111` を使って出力している。チェックポイント名を追加するために `D2 Pipe` を使用

D2 Prompt

  • CHOOSEボタンからLoRAを選択し、A1111方式のLoRAプロンプトを挿入できる
  • テキスト内のコメントを削除する
  • 行頭「#」、行頭「//」、「/*」〜「*/」の間が対象
  • トークン数を下部に表示(token_count が true の時に動作する)
  • トークン数の計測のCLIPは"ViT-L/14"を使用。他のCLIPを使いたい時は D2 Token Counter をご利用ください

コメントアウトのショートカットキーについて

  • 全てのテキストボックスでコメントアウトのショートカットキー(ctrl + /)が使用可能
  • ショートカットキーは Settings > D2 > shortcutKey で変更可能
  • 無効にしたい場合は上記の内容を削除する

D2 Prompt Sanitizer

  • プロンプト文字列を整形するノード
  • _(アンダースコア)を半角スペースに変換する(long_hair → long hair)
  • ,(カンマ)の後に必ず半角スペースを1つ入れ、前後の余分な空白を整理する(a , b → a, b)
  • 連続した余分なカンマをまとめ、行頭のカンマを削除する(a,, ,b → a, b)
  • 改行の変換、重複タグの削除もできる
  • 各処理は個別に ON / OFF できる

Input

  • underscore_to_space:_ を半角スペースに変換する
  • space_after_comma:カンマ前後の空白を整理し , に統一する(改行は保持)
  • remove_extra_comma:連続した余分なカンマ(,, / , ,)を1つにまとめ、行頭のカンマを削除する(改行は保持)
  • protect_lora:<...> で囲まれた LoRA 表記などを変換対象から保護する(<lora:my_lora:1> のアンダースコアを残す)
  • protect_score:Pony 系の品質タグ score_9 / score_8_up などを変換対象から保護する
  • newline_mode:改行の変換方式
    • keep:何もしない(改行を保持)
    • add_comma:各行末に , を追加する(改行は保持。空行・既に , で終わる行には追加しない)
    • to_comma:改行を , に変換して1行にまとめる
    • to_space:改行を半角スペースに変換する
    • remove:改行を削除する(1girl\nsmile → 1girlsmile。日本語テキストの結合向け)
  • remove_duplicate_tags:重複したタグを削除する(先に出てきたものを残す。_ と半角スペースの違い・大文字小文字は無視して比較する)
  • strip_trailing_comma:文字列全体の末尾にあるカンマを削除する(add_comma との併用向け)

処理は「重複タグ削除 → 改行変換 → アンダースコア変換 → 余分なカンマ除去 → カンマ整形 → 末尾カンマ削除」の順で行われる。remove_duplicate_tags で残る ,, は remove_extra_comma が掃除するので、両方 ON にしておくときれいに整う。


D2 Token Counter

  • プロンプトのトークンを数える

D2 Load Text

  • テキストファイルを読み込む汎用ノード
  • 学習用キャプションの一括編集では、D2 Folder Image Queue で *.txt のパスを取得して読み込む用途で使う

Input

  • file_path
    • 読み込むテキストファイルのフルパス
  • encode_to_utf8
    • true: 文字コードを自動判別して utf-8 に変換して読み込む
    • false: 変換しない(utf-8 として読み込む)

Output

  • text
    • ファイルの中身(整形せずそのまま。ファイルが存在しない場合は空文字)
  • file_path
    • 入力した file_path をそのまま出力(D2 Save Caption の base_filename に渡す用)

D2 Load CSV

  • CSV / TSV ファイルを読み込み、行・列の範囲を指定して取り出すノード
  • プロンプトのようにカンマを含むデータは、ダブルクォートされている前提(標準的な CSV エスケープ)
  • 巨大なファイルでもメモリを抑えるため、出力は1つにし output_mode で形式を切り替える

Input

  • file_path
    • 読み込むファイルのフルパス
  • file_type
    • csv: カンマ区切り / tsv: タブ区切り。入力ファイルの区切り文字
  • encode_to_utf8
    • true: 文字コードを自動判別して utf-8 に変換して読み込む
  • output_mode
    • list: 2次元配列で出力
    • csv: 改行+カンマ区切りのテキストで出力
  • row_index / column_index
    • 出力する行・列の範囲(1スタート)。無指定(空)で全て
    • 3: 3行(列)目のみ
    • 2-: 2行(列)目から最後まで
    • -4: 1〜4行(列)目
    • 2-4: 2〜4行(列)目
    • 壊れた書式(0・2--4・非数値など)はエラーで実行を停止する(誤ったデータを流さないため)
  • use_doublequote
    • output_mode:csv のとき、全セルをダブルクォートする
    • false にすると素のカンマ結合になり、カンマを含むセルは区切りが失われる("AAA,BBB","XXX,YYY" → AAA,BBB,XXX,YYY)

Output

  • output
    • 選択範囲のデータ。output_mode により2次元配列またはテキスト
  • lines_count
    • 選択範囲の行数
  • file_path
    • 入力した file_path をそのまま出力

D2 Save Caption

  • タグを整形してキャプションファイルを保存するノード
  • base_filename の拡張子を extension に置き換えたパスに保存する(例 d:/images/aaa.jpg → d:/images/aaa.txt)
  • 整形は「分割 → 前後空白除去 → 区切り統一 → エスケープ除去 → 除外 → 重複除去 → 先頭追加 → 末尾カンマ」の順で行う

Input

  • base_filename
    • 保存先の元パス。D2 Folder Image Queue の image_path や D2 Load Text の file_path を受け取る
    • 空の場合はエラーで停止する(意図しない場所への保存を防ぐため)
  • text
    • キャプション本文(WD14 Tagger や D2 Load Text から)
  • extension
    • 保存するファイルの拡張子(例 txt)
  • exclude_tags
    • 除外するタグ。カンマ・改行の両方で区切る
    • regex/パターン/ と書くと正規表現にマッチしたタグを除外する(除外専用)
    • 括弧のエスケープは無視して比較する(プロンプトの rem_\(re:zero\) を除外タグ rem_(re:zero) で除外できる)
  • prepend_tags
    • 先頭に追加するタグ。カンマ区切り。既に存在するタグは追加しない
  • word_separator
    • 単語区切りを統一する(blue eyes と blue_hair の混在を揃える)
    • underscore(デフォルト): スペースを _ に統一(blue eyes → blue_eyes)
    • space: _ をスペースに統一(blue_hair → blue hair)
    • none: 変換しない
  • remove_escape
    • true: 出力タグから括弧のエスケープ(\( \) \[ \])を外す(rem_\(re:zero\) → rem_(re:zero))。学習用キャプション向け
  • trailing_comma
    • true: 末尾にカンマを追加
  • ignore_case
    • true: 除外の判定で大文字小文字を無視する
  • backup
    • true: 同名ファイルがあれば旧ファイルを .bak にリネームしてから保存
  • dry_run
    • true: 変換結果のプレビュー用。ファイルに保存せず、整形結果を text 出力で確認する

Output

  • text
    • 整形後のキャプション
  • file_path
    • 保存先のフルパス(dry_run 時は保存予定のパス)

D2 Tag Report

  • D2 Save Caption の exclude_tags(除外タグ) に繋ぐ除外タグリストを作成するためのノード
  • 指定フォルダー内のキャプションからタグの出現頻度を集計し、除外タグリストを作る
    • Get tags ボタンで集計結果を text に表示する
    • ユーザーは残す・消すを編集し、D2 Save Caption の exclude_tags に渡す
  • 行頭に // または # を付けるとコメント行になる
  • exclude_tags にタグ辞書を指定すると、辞書に載っていないタグだけを集計する
    • カンマ忘れ(blue eyes twintails)や空白ミス(blondehair)など、誤って入力したプロンプトを炙り出せる
  • D2 Tag Report D2 Save Caption の使い方はこちらの記事をご覧ください

Input

  • folder
    • キャプションファイルのあるフォルダー(フルパス)
  • include_subfolders
    • true: サブフォルダーも対象にする
  • extension
    • 対象とする拡張子(例 txt)
  • order_by
    • count_9-0: 出現回数の多い順
    • count_0-9: 出現回数の少ない順
    • tag_a-z: タグ名順(A→Z)
    • tag_z-a: タグ名順(Z→A)
  • without_count
    • true: レポートに出現回数を表示しない
  • exclude_tags
    • 集計から除外するタグ辞書のファイルパス(フルパス)
    • 辞書の中身ではなく、辞書ファイルのパスを指定することに注意
  • output_type
    • remove_comment: コメント行を削除して残りを出力(消したいタグをコメントでマークする運用)
    • output_comment: コメント行のみを出力(消したいタグだけコメント化する運用)
  • separator
    • newline: 改行区切りで出力(regex/パターン/ などカンマを含むエントリが壊れないため推奨)
    • comma: カンマ+空白の1行で出力

Output

  • text
    • 編集後のタグリスト(D2 Save Caption の exclude_tags に渡す)

exclude_tags について

  • 辞書に掲載されていないタグ=誤入力の疑いがあるタグをあぶり出すための機能

  • 辞書に載っているタグは集計されないので、辞書に無いタグだけがレポートに残る

  • 対応する辞書の書式は3種類。いずれも1カラム目をタグとして読む

    • タグだけのリスト

      1girl
      solo
      
    • 見出し行の無い形式(ComfyUI Custom Scripts など)

      1girl,4114588
      solo,3426446
      
    • 見出し行のある形式(ComfyUI Auto Complete Plus など)

      tag,category,count,alias
      1girl,0,4974288,"女の子,女性,少女"
      
  • 大文字小文字、スペースとアンダースコアの違い(long hair と long_hair)、括弧のエスケープ(\( と ()は区別せずに照合する

  • 注意: Get tags ボタンはワークフロー実行前に動くため、他のノードから接続した値は読み取れない。辞書は必ずこの欄にパスを直接書いて指定する