Dart Remove Tag Token
Dart Remove Tag Token (DanbooruTagsTransformerRemoveTagToken) — ComfyUI node guide
- tokenizer
- token_ids
- DART_TOKEN_IDS
Dart Remove Tag Token strips specific tags out of a Dart generation after the fact - but unlike the remove_tags field baked into the regular Dart Generate node, this one works on the raw token sequence rather than the finished string. It's the version you reach for on the advanced, token-level pipeline: after Dart Generate(Advanced) hands you DART_TOKEN_IDS, this node lets you cut tags out before anything decodes it back to text.
Why this exists alongside the simpler option
The plain Dart Generate node already has a remove_tags input that does the same conceptual job - the README says plainly that tags listed there "will not be output." So why would you need a separate token-level version? Because that convenience is built specifically into the simple node's own decode step. The moment you're on the Dart Generate(Advanced) path - working with raw tokens so you can also reorder with Dart Rearranged By Animagine, or split the output with Dart Decode By Splited Parts - you're outside the simple node's pipeline entirely, and you need a token-level equivalent that fits into that chain. This is that equivalent: it takes tokens in and gives tokens back out, so it slots between Dart Generate(Advanced) and whatever decode step you're using, in whatever order you want relative to the other token-editing nodes.
Inputs and output
Three required inputs: tokenizer (DART_TOKENIZER, from Dart Load - needed to know which token IDs correspond to which tags), token_ids (DART_TOKEN_IDS, from Dart Generate(Advanced) or another token-editing node upstream), and remove_tags, a multiline string defaulting to empty. List the tags you want stripped, one setup or comma-separated set as needed - this mirrors the remove_tags field on the plain Generate node in what it accepts, just applied to a token sequence instead of decoded text.
The output is DART_TOKEN_IDS - still raw tokens, not a string. You still need Dart Decode (or Dart Decode By Splited Parts) somewhere after this to get readable tags out.
Installing it
Install through ComfyUI Manager (search "ComfyUI-Dart") or clone by hand: cd ComfyUI/custom_nodes && git clone https://github.com/nkchocoai/ComfyUI-Dart.git, then restart ComfyUI. It ships with the rest of the pack - nothing extra to install, and no model download of its own; it operates on tokens you already generated.
Where people get stuck
The obvious one: forgetting this outputs tokens, not text, and wiring it straight into something expecting a STRING. Route it through Dart Decode first.
The more interesting one is deciding whether you even need this node instead of just using the plain Generate node's built-in remove_tags field. If tag removal is the only thing you're doing - no reordering, no split-part decode, no other token-level editing - the simple Dart Generate node already covers it in one step and there's no reason to build the longer Advanced → Remove Tag Token → Decode chain. This node earns its place specifically when tag removal is one step in a longer token-level pipeline alongside Dart Rearranged By Animagine or Dart Decode By Splited Parts - at that point you're already committed to the raw-token path, and this is how removal fits into it.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| tokenizer | DART_TOKENIZER | — | |
| token_ids | DART_TOKEN_IDS | — | |
| remove_tags | STRING | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| DART_TOKEN_IDS | DART_TOKEN_IDS | — |