Files
da2el-aiandClaude Opus 5.5 9cd412e79f docs: document LIST/ARRAY renaming and D2 List Converter and bump to 43.0.0
Add a 2026.11.04 notice to README explaining that many node inputs and
outputs were renamed or reordered and need reconnecting, and update the
ja/en/zh node docs and changelog for LIST/ARRAY, x / y_items, the new
D2 List Converter and the deprecated list nodes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-04 01:16:42 +09:00

25 KiB
Raw Permalink 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

  • x / y_items
    • 普通の改行区切りテキスト
    • D2 XY Plot、D2 XY Plot Easy、D2 XY Plot Easy Mini で使用する
  • LIST
    • 改行で分解して1つずつ出力する。繋いだ先のノードは要素の数だけ実行される
  • ARRAY
    • 改行で分解して配列で出力する

D2 List Converter

  • LIST(要素を1つずつ出力する ComfyUI の list)と ARRAY(配列を1つの値として出力する ComfyUI 標準の Array 型)を相互に変換し、文字列にもするノード
  • D2 List To String と D2 XY List To Plot の機能をまとめたもの

Input

  • LIST / ARRAY
    • 変換する値。どちらか一方を繋ぐ
    • 両方繋いだ時は LIST → ARRAY の順に連結する
  • separator
    • STRING 出力の区切り文字
    • Comma + Space: , で結合
    • Comma: , で結合
    • Line break: 改行で結合
    • Semicolon: ; で結合
    • Space: 半角スペースで結合
    • None: 区切り文字なしで結合

Output

  • x / y_items
    • 改行区切りテキスト。D2 XY Plot に使う
    • 要素の中の改行は消して出力する
  • LIST
    • 要素を1つずつ出力する
  • ARRAY
    • 配列として出力する
  • STRING
    • separator で結合したテキスト
    • 要素の中の改行はそのまま残す

D2 List To String

非推奨になりました。今後は D2 List Converter をご利用ください。


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 との併用向け)
  • comment_type:削除するコメントの書き方。D2 Prompt と同じ
    • # + // + /**/:行頭が # の行、行頭が // の行、/* 〜 */ の間(複数行可)を削除する
    • # only / // only / /* */ only:それぞれの書き方だけを削除する
    • None:何もしない(初期値)

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


D2 Convert NAI Prompt

  • StableDiffusion と NovelAI のプロンプトの weight を相互変換するノード
  • Prompt convert dialog と同じ変換をワークフロー内で行える
  • weight の範囲は改行で区切られる(改行をまたいで変換しない)
  • 重複したカンマや空白の整形は行わない。必要なら D2 Prompt Sanitizer を後ろにつなぐ

Input

  • prompt:変換するプロンプト(入力専用)
  • convert:変換の向き
    • sd_to_nai:StableDiffusion 方式 → NovelAI 方式
    • nai_to_sd:NovelAI 方式 → StableDiffusion 方式
  • mode:NovelAI 側の weight の書き方
    • number:数値方式(1.2::aaa ::)
    • brace:ブレース方式({{aaa}} / [[aaa]])。weight が 0 以下のタグはブレースで表せないため、そのタグだけ数値方式で出力する
  • remove_negative:nai_to_sd かつ number のときだけ有効。マイナス weight のタグを削除する
    • 削除したタグの前後のカンマは残る(-2::aaa::, 1.2::bbb:: → , (bbb:1.2))
    • weight が 0 のタグは削除しない(0 でも生成結果に影響があるため)

数値方式の変換ルール

  • sd_to_nai では閉じ :: の前に必ず半角スペースを入れる((aaa5:1.2) → 1.2::aaa5 ::)。aaa5:: の 5:: が weight の開始と誤解釈されるのを防ぐため
  • nai_to_sd では :: の閉じ忘れにも対応する。閉じ忘れた weight は、次の weight の開始か行末までを範囲とする
    • 1.2::blonde hair, 1.3::from side:: → (blonde hair:1.2), (from side:1.3)
    • 1.2::aaa, bbb:: → (aaa, bbb:1.2)(複数タグをまとめた指定はそのまま)
  • マイナス weight は (aaa:-2) のように数値の前にマイナスを付ける

D2 Moss Item / D2 Moss Prompt

  • 画像生成モデル MOSS-Image のレイアウトプロンプト(JSON 形式)を作るノード
  • マスクの範囲を、要素を置く位置(bbox)として使う
  • bbox の座標(キャンバス中心が原点のピクセル座標)を自動で計算するので、手で計算する必要がない。解像度を変えても配置が追従する
  • D2 Create Masks → D2 Moss Item → D2 Moss Prompt の順につないで使う
  • MOSS-Image のレイアウトプロンプトは実験的機能なので、USERGUIDE に書かれている項目だけに対応している

D2 Moss Item

  • レイアウトの要素1つ分を作る
  • マスクの中で値のある範囲を囲む長方形を bbox にする。マスクが空のときはキャンバス全体を bbox にする
Input
  • mask:要素を置く範囲のマスク
  • label:要素の種類
    • object:物や人物などを描かせる
    • text:文字を描かせる
  • caption:要素の見た目の説明(大きさ・スタイル・位置など)
    • D2 Prompt と同じ書き方でコメントアウトできる(行頭の # / //、/* 〜 */)
  • text:描かせる文字。label が text のときだけ使う
    • 改行したいときは \n と入力するか、または他のノード(D2 Prompt など)を接続する
Output
  • moss_item:要素1つ分のデータ。D2 Moss Prompt に接続する

D2 Moss Prompt

  • 画像全体の説明と、複数の moss_item をまとめて JSON 文字列のプロンプトにする
Input
  • meta:画像の種類を表すタグ。カンマ区切りで複数入力できる
    • 例:poster / photograph / illustration, anime
  • canvas_type:通常は single のままでよい
  • summary_caption:画像全体のシーンや画風の説明
    • caption と同じくコメントアウトできる
  • item_count:moss_item の入力数
  • moss_item_{数字}:D2 Moss Item を接続する
Output
  • prompt:レイアウトプロンプトの JSON 文字列。テキストエンコーダーに接続する

meta / canvas_type / summary_caption は、空欄にすると JSON から省略される。


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 ボタンはワークフロー実行前に動くため、他のノードから接続した値は読み取れない。辞書は必ずこの欄にパスを直接書いて指定する