comfyui_tag_filter
This is a custom node of ComfyUI that categorizes tags outputted by tools like WD14Tagger, filters them by each category, and returns the filtered results.
Nodes (25)
What categories does this tag string actually contain?
Boost every tag in a category at once, without listing them
Random color variations for characters, one seed at a time
What's unique to each, what they share
Rescue tags from messy strings that aren't comma-separated
Swap in a fallback prompt when your tags come back empty
Set or strip emphasis on matching tags — including the de-emphasize trick
Keep only the categories you asked for
A manual switchboard for which tag sets make it through
Pick between images with boolean flags, fallback included
Branch your prompt on whether certain tags are present
Merge two tag strings without duplicating anything
Merge four tag streams into one deduplicated string
Six tag streams, one deduplicated string
Bundle six key/value strings into one TAGSET wire
Unpack a TAGSET into six strings by key
Grab one value out of a TAGSET by key
Set one key in a TAGSET without mutating the original
Roll the dice on your prompt, keep your seed
Want a random prop? ask the category, not the list
Delete one tag, leave the rest of the prompt alone
Same-category tag swap, with the author's own 'might not work' warning
Pick tags by category with a whitelist, a blacklist, and a fuzzy filter
Only show the 'fixed' image when the thing is actually in the frame
Every *hair, none of the hair_*
comfyui_tag_filter
WD14Tagger などが出力したタグを、特定のカテゴリに分けて、カテゴリごとにフィルタリングして返す ComfyUI のカスタムノードです。
TagFilter
特定のカテゴリに属するタグだけを抽出します。 smile や grin などは、expression というカテゴリです。 色のついているものは color カテゴリです。
include_categories は、含めたいカテゴリ名をカンマ区切りで指定します。
include_categories に expression と入力すると、上のチェックボックスをクリックしたのと同じ結果になります。
exclude_categories は逆に取り除きたいカテゴリを指定できます。服のタグだけ取りたいが色の指定は不要な場合に、include_categories に cloth と入れて、exclude_categories に color と打ちます。
何がどのカテゴリに分類されているかは、tag_category_v2.json を見て確認してください。
tag_category.json は AI により自動仕分けされた、タグのカテゴリ分けファイルです。誤った内容が含まれる場合もあります(細々と手動で調整を進めています)
TagRemover
プロンプトの中から指定されたタグを削除したい時に使います。 TagFilter と合わせて使うと、表情のタグだけ消す、色(color)タグだけ消す、といった事が出来ます。
TagReplace (動作検証中、うまく動かないかも)
同じカテゴリのタグを置き換えます。
例えば long hair というタグが含まれるプロンプトを入力し、置き換えるタグに twintails を指定すると、long hair を twintails に置き換える事が出来ます。
どれぐらい近いタグを置き換えるかを、0.0 ~ 1.0 で指定します。1.0 を指定するとカテゴリとして完全一致した場合にのみタグが置換されます。0.3 ぐらいがちょうどいいです。うまく置換されない場合は値を下げてください。
TagSwitcher
default_image と image1 という画像をセットする必要があります。 input_tags に WD14 Tagger などのから出力されたタグを渡して、tag1 にフィルタリングするタグをセットします。 こうすると、input_tags の中に tag1 のタグが含まれる場合(どれか1つでも含まれる条件なら any1 を True)に、image1 の画像を出力します。 同様に tag2 のタグが含まれる場合は image2 を出力します。
使用用途としては、例えば入力画像にもし猫耳が含まれる場合には絶対消すという処理を行いたい場合。 CLIPSeg Masking などのノードで動物の耳を検出しそれを Big lama Remover で消去した画像を作ります。 もし画像のタグに animal_ears, cat_ears が含まれる場合、Big lama で消去した画像を出力し、それらの動物耳のタグが含まれない場合は元の画像を出力します。
何が嬉しいかというと、CLIPSeg は、探したい対象物が画面内に見つけられない場合、適当な部分をマスクしてしまい、無関係なものを消してしまう事があります。
TagSwitcher では入力タグに基づいて、その物が画像内に含まれる場合のみに動作し、対象物を消去した画像を提供出来ます。
TagMerger
ただタグをマージするだけです。既に存在するタグを無視されます。
TagSelector
タグをカテゴリで指定、あるいは指定したカテゴリのタグだけ除外します。exclude が False で選択。exclude が True で指定したカテゴリを除外します。
ホワイトリストのオプションは、タグの中でも「tag_category.json」に記載があるタグのみを許可して、不明なタグを削除します。
フレキシブルフィルターは、例えば「crasy long hair」という謎のタグを使用した場合でも、自動的にこれを「long hair」であると認識して「long hair」のカテゴリである「hair style」にマッチさせて、タグの認識を柔軟に処理します。
TagEnhance / TagCategoryEnhance
タグを、指定されたタグに関して、タグの強度を追加あるいは置き換えします。
TagCategoryEnhance は、タグの強度の調整の際にタグではなくタグのカテゴリを指定して、強度の追加あるいは置き換えを行います。
TagEnhance の入力を二つとも同じにして、strength = 1.0, add_strength = false にすれば、(tag_name:1.2) のような、カッコを使った強調を全て外して tag_name だけにするような、強調外し処理も行えます。
TagIf
特定のタグが含まれる場合に、output1, 2, 3 に設定した文字列を出力し、含まれない場合に else_output1, 2, 3 が出力されます。
例えば、特定のタグの条件下でポジティブタグ、ネガティブタグを出力するなどの使い方が出来ます。
anytag に True を指定すると、いずれかのタグが含まれる場合に True になり、False にすると、全てのタグが含まれる場合にのみ True になります。
TagComparator
2つのタグ群を比較して、タグ1だけのタグ、タグ2だけのタグ、共通のタグを出します。
何に使うのかは分かりません。
TagWildcardFilter
タグをワイルドカード(* ← このアスタリスク)でフィルタリングします。
例えば、wildcard に *hair と指定すると、long_hair や short_hair がヒットします。
逆に hair* とすると、hair_ornament のようなものだけをフィルタリング出来ます。
アスタリスクを含めない場合は、タグの文字列の中のどこかに含まれる場合、つまり *hair* を指定した事と同じになります。
TagCategory
入力されたタグが所属しているカテゴリー名をカンマ区切りで出力します。
TagRandomCategory
入力されたカテゴリから、ランダムに指定された個数のタグを選択して返します。
これを使うと「何か小物が欲しい」や「何かロケーションの設定が欲しい」という時に、props や location カテゴリを指定することで、ランダムにそれらのタグを選択して返します。
なお、構成要素すべてにこれを採用すると、意味の分からない画像が出来るので、それはそれで面白いかもしれません。
<img width="2221" height="1278" alt="image" src="https://github.com/user-attachments/assets/cca6c142-db14-4969-983e-0c2b79932d55" />TagDetector
任意の文字列の中から、タグっぽい文字列を自動的に検出します。
検出に失敗する事もあります。
max_join には、そのタグが、最大で何単語で構成されているかを指定します。
<img width="1451" height="1148" alt="image" src="https://github.com/user-attachments/assets/ea2e6173-37fd-4585-917d-b3234b9cce6b" />TagColorChanger
入力されたタグのカラーをランダムに変更します。
実験的な実装なので、意図しない変換が起きるかもしれないので、お遊びの範囲内で使ってください。
強調指示もそのまま使われます。
シードをランダムにすると、キャラクターのランダムなカラーバリエーションが作れます。
<img width="1352" height="1001" alt="image" src="https://github.com/user-attachments/assets/6fc914ac-27ce-44c2-a4c8-057072a76331" />