πΈ Vocab Extender
Teach the tag filter your vocabulary β permanently, no restart
Every tag-filtering system has a built-in word list, and every one of them is missing words you care about - usually artist handles, watermarks, or niche terms that keep leaking through into your prompts. πΈ Vocab Extender is the escape hatch: a node whose entire job is to add your own words to the πΈ Tag Filter's vocabulary, save them to disk, and have them active immediately. No restart, no editing a JSON file by hand.
Here's the mechanism. The node has four multiline text boxes, and each one maps to a category of the Tag Filter's exclusion system:
always- words removed unconditionally, no toggle needed. This is where artist handles and watermark terms go. The tooltip's examples are telling:kitew,nyuunz,misamart- the specific artist signatures people are tired of seeing in their generations.fantasy- words removed when thefantasy_traitstoggle is on (dryad, sphinx, centaur...).character_traits- removed when thecharacter_traitstoggle is on (abs,muscular...).overlay_text- removed when theoverlay_texttoggle is on (graffiti, chalk writing...).
When the node executes, it saves whatever you typed to data/vocab_extensions.json and the Tag Filter loads it - the source loads user vocab at import time and updates it live, so your additions are in effect for the next queue run, not after a reboot. Entries persist across sessions automatically. The README's promise is exactly this: "No ComfyUI restart required. Additions persist across sessions automatically."
The word-level matching is worth understanding because it's both powerful and a trap. The fantasy and character_traits categories match at word level: adding elf catches dark elf and forest elf; adding breasts catches large breasts. That's convenient - but it means a short word like elf can over-match. The always category is the unconditional one, so put only things there you really never want to see.
This node has no outputs and is a terminal (output) node - you add it to the canvas, type your words, queue once, and it does its write. It pairs directly with πΈ Tag Filter, which is the node that consumes this vocabulary when it strips Florence2 captions and WD14 tags. If you've been fighting the Tag Filter with a giant exclude list on the filter node itself, Vocab Extender is the cleaner long-term home for words you'll always want removed - they become part of the pack's persistent data rather than per-node text you have to re-paste into every workflow.
Installing it
Part of Frog Node Pack:
- ComfyUI Manager: search Frog Node Pack, install, restart.
- Manual:
cd ComfyUI/custom_nodes && git clone https://github.com/RabbitThatIsPink/FrogNodePack, restart, hard-refresh (Ctrl+Shift+R).
No pip dependencies (requirements.txt is empty; Pillow ships with ComfyUI). Find πΈ Vocab Extender under πΈ Node Pack/Utility.
Common issues
The two things that trip people: category confusion - dropping a word into always when you actually wanted it toggled, or vice versa; since always is unconditional, a word you only sometimes want gone will now always vanish. And over-matching - a short word in a word-level category catches more than you intended. The fix for both is moving the word to the right box. One tip: your additions live in FrogNodePack/data/vocab_extensions.json, which the README explicitly promises is not touched on pack updates - so your vocabulary survives reinstall/upgrade.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| always | STRING | Words filtered unconditionally β no toggle required. Use for artist handles, specific watermarks, or any tag that should ALWAYS be removed. Example: kitew nyuunz misamart | |
| fantasy | STRING | Words filtered when the fantasy_traits toggle is ON. Word-level: 'elf' also catches 'dark elf', 'forest elf'. Example: dryad sphinx centaur | |
| character_traits | STRING | Words filtered when the character_traits toggle is ON. Word-level: 'breasts' also catches 'large breasts', etc. Example: abs muscular | |
| overlay_text | STRING | Words filtered when the overlay_text toggle is ON. Use for text / sign / caption descriptors not already in the built-in list. Example: graffiti chalk writing |
Outputs (0)
No outputs