Document the new remove_extra_comma option in 3 languages and bump the package version (existing-node enhancement, minor bump). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
8.8 KiB
8.8 KiB
- Top
- Node / Image Node / Text Node / XYPlot Node / Float Palet
- Workflow
Node
🍅 Text Node
D2 Regex Replace
- 正規表現を使って置換ができる
- 複数の条件を指定できる
- 正規表現によるマッチ文字列の再利用ができる(\1、\2 など)
- 対象文字列を「タグ単位」と「全体」で指定できる
Input
text- 検索対象文字列
modeTag: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_delimprefixとregex_and_outputを接続する時に挟む文字Comma:,/Line break: 改行 /None: 何も挟まない
suf_delimsuffixとregex_and_outputを接続する時に挟む文字
検索文字 1(正規表現も使用可能)
--
出力文字列 1
--
検索文字 2(正規表現も使用可能)
--
出力文字列 2
--
--
合致するものが無い時に出力する文字
Output
combined_textprefix+ 出力文字列 +suffixを結合した文字列
prefix/suffix- Input のパススルー
使用例
この例では合致した番号(index)を Easy Use の Text Index Switch に渡して切り替えている。
合致しないと -1 になってしまうので、全ての文字列に合致する正規表現 .+ を使ってデフォルト出力の代わりにしている。
D2 Multi Output
- seed や cfg など汎用的なパラメータをリスト出力するノード
Input
typeFLOAT: 浮動小数点数。CFG などINT: 整数。steps などSTRING: 文字列。sampler などSEED: 乱数生成ボタンで seed 値を入力できる
Add Random- 入力欄に乱数を追加する
typeがSEEDの時だけ表示される
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などを変換対象から保護する
D2 Token Counter
- プロンプトのトークンを数える