Tag Combiner
Set math for taggers, no model download required
- combined_text
Tag Combiner is the only node in this pack that doesn't tag a single thing. No model files, no downloads, no GPU. It takes up to four tag strings - from Camie, Taggerine, PixAI, a WD14 elsewhere in your graph, or even hand-typed text - and merges them into one. That's the whole job, and it's more useful than it sounds.
The trick is that you're meant to feed it more than one tagger. Different taggers have different blind spots: Camie knows characters and copyrights that WD14 misses, Taggerine sees the image at its true aspect ratio, PixAI brings its franchise mapping. Wire their outputs into text_1 through text_4, flip one toggle, and you've built a poor-man's ensemble tagger that's reliably better than any single model alone - which is how a lot of people actually use it.
The one toggle that matters
only_unique_diff- with it off, you get the union: every unique tag from all inputs, deduplicated, in first-seen order. Standard merge.- With it on, you get only the tags that appear in exactly one input stream. Feed it two taggers and that's effectively subtraction - the tags each caught that the other didn't. Those are often exactly the signal you want: "Camie spotted something WD14 ignored" is a detail worth keeping.
The inputs are text_1..text_4 (all optional - wire two, three, or four; empty and unconnected inputs are ignored) plus that single only_unique_diff boolean. One output: combined_text, which drops straight into a positive prompt, a CLIP text encode, or a captioning pass for a LoRA training set.
Internally it's boring and reliable: each input is split on commas and newlines, tags are counted across streams, order of first appearance is preserved. forceInput is on for the text slots, so you can wire node outputs directly instead of typing.
Gotchas
Two small ones. First, the UI labels on the toggle are confusingly worded - it shows "Only Unique" vs "All unique", which reads like a yes/no on deduplication. It's not. "Only Unique" means only the tags unique to one stream (only_unique_diff on); "All unique" means the deduplicated union. The behavior is right; the label is doing its best.
Second, this is not a blacklist subtractor. You can't feed it a list of tags to always remove - it's a set operation between streams. If you want to strip fixed tags (your own name, a rating tag), use the exclude_tags input on the tagger node itself instead; that's what it's for.
Should you use it?
If you're running one tagger and are happy with it, you don't need this node. If you're running two - and this pack makes that effortless - you absolutely do. It's the glue, not the star, and it's the only node in the whole pack that installs with zero extra work: the pack's other nodes each demand a manual model download, and this one demands nothing.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| only_unique_diff | BOOLEAN | false | — |
| text_1opt | STRING | — | |
| text_2opt | STRING | — | |
| text_3opt | STRING | — | |
| text_4opt | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| combined_text | STRING | — |