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

21 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
    • 連接 regex_and_output 和 suffix 時插入的字元
搜索字串 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
    • 以換行分解並逐一輸出。連接的節點會依元素數量執行
  • ARRAY
    • 以換行分解並以陣列形式輸出

D2 List Converter

  • 將 LIST(逐一輸出元素的 ComfyUI list)與 ARRAY(將陣列作為單一值輸出的 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
    • 逐一輸出元素
  • 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 時生效)
  • 令牌計數使用"ViT-L/14" CLIP。如果想使用其他CLIP模型,請使用D2 Token Counter

關於註解快捷鍵

  • 所有文字框都可使用註解快捷鍵(ctrl + /)
  • 快捷鍵可在Settings > D2 > shortcutKey中更改
  • 如需停用此功能,請刪除上述內容

D2 Prompt Sanitizer

  • 整理提示詞字串的節點
  • 將 _(底線)轉換為半形空格(long_hair → long hair)
  • 在每個 ,(逗號)之後確保有一個半形空格,並整理前後多餘的空白(a , b → a, b)
  • 合併多餘的連續逗號,並刪除行首的逗號(a,, ,b → a, b)
  • 也可以轉換換行、刪除重複的標籤、刪除註解
  • 各項處理皆可獨立切換開關

Input

  • underscore_to_space:將 _ 轉換為半形空格
  • space_after_comma:整理逗號前後的空白並統一為 , (保留換行)
  • remove_extra_comma:將多餘的連續逗號(,, / , ,)合併為一個,並刪除行首的逗號(保留換行)
  • protect_lora:保護以 <...> 包圍的 LoRA 表記不被轉換(保留 <lora:my_lora:1> 中的底線)
  • protect_score:保護 Pony 系的品質標籤 score_9 / score_8_up 等不被轉換
  • newline_mode:換行的轉換方式
    • keep:不做任何處理(保留換行)
    • add_comma:在每行結尾加上 ,(保留換行;空行與已以 , 結尾的行不會添加)
    • to_comma:將換行轉換為 , 並合併為一行
    • 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 清理,因此兩者都開啟即可整理得乾淨。


D2 Convert NAI Prompt

  • 在 StableDiffusion 與 NovelAI 之間互相轉換提示詞權重的節點
  • 可在工作流程中進行與 Prompt convert dialog 相同的轉換
  • 權重的範圍以換行為界(不會跨行轉換)
  • 不會整理重複的逗號或空白。需要時請在後方連接 D2 Prompt Sanitizer

Input

  • prompt:要轉換的提示詞(僅限連接輸入)
  • convert:轉換方向
    • sd_to_nai:StableDiffusion 格式 → NovelAI 格式
    • nai_to_sd:NovelAI 格式 → StableDiffusion 格式
  • mode:NovelAI 側的權重寫法
    • number:數值格式(1.2::aaa ::)
    • brace:括號格式({{aaa}} / [[aaa]])。權重為 0 以下的標籤無法以括號表示,因此只有這些標籤以數值格式輸出
  • remove_negative:僅在 nai_to_sd 且 number 時有效。刪除負權重的標籤
    • 被刪除標籤前後的逗號會保留(-2::aaa::, 1.2::bbb:: → , (bbb:1.2))
    • 權重為 0 的標籤不會刪除(權重 0 仍會影響生成結果)

數值格式的轉換規則

  • sd_to_nai 一定會在結尾 :: 前加入半形空格((aaa5:1.2) → 1.2::aaa5 ::),以避免 aaa5:: 的 5:: 被誤判為權重的開始
  • nai_to_sd 也能處理忘記加上結尾 :: 的情況。未結束的權重範圍持續到下一個權重的開始或行尾
    • 1.2::blonde hair, 1.3::from side:: → (blonde hair:1.2), (from side:1.3)
    • 1.2::aaa, bbb:: → (aaa, bbb:1.2)(對多個標籤一起指定的權重維持原樣)
  • 負權重會像 (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

  • 建立版面中的一個元素
  • 以包圍遮罩中有值範圍的長方形作為 bbox。遮罩為空時,以整個畫布作為 bbox
Input
  • mask:放置元素範圍的遮罩
  • label:元素的種類
    • object:繪製物品或人物等
    • text:繪製文字
  • caption:元素外觀的說明(大小、風格、位置等)
    • 可用與 D2 Prompt 相同的寫法註解掉文字(行首的 # / //、/* 〜 */)
  • text:要繪製的文字。僅在 label 為 text 時使用
    • 想換行時請輸入 \n,或連接其他節點(如 D2 Prompt)
Output
  • moss_item:一個元素的資料。連接到 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 跳脫)
  • 為了即使是大型檔案也能抑制記憶體用量,輸出只有一個,並以 output_mode 切換格式

Input

  • file_path
    • 要讀取的檔案完整路徑
  • file_type
    • csv: 逗號分隔 / tsv: 定位字元(Tab)分隔。輸入檔案的分隔字元
  • 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/pattern/ 時排除符合正規表示式的標籤(僅排除)
    • 比較時忽略括號的跳脫(提示詞的 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

  • 從指定資料夾內的標註集計標籤出現頻率,並建立排除標籤清單的節點
  • 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/pattern/ 等含逗號的項目不會被破壞)
    • comma: 以逗號+空格的單行輸出

Output

  • text
    • 編輯後的標籤清單(傳給 D2 Save Caption 的 exclude_tags)

關於 exclude_tags

  • 用於找出未收錄於字典中的標籤,也就是疑似誤輸入的標籤

  • 字典中已收錄的標籤不會被集計,因此報告中只會留下字典裡沒有的標籤

  • 支援三種字典格式。三者皆讀取第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 按鈕會在工作流程執行前運作,因此無法讀取從其他節點連接的值。字典請務必在此欄位直接輸入路徑