Nodes/Autocomplete++/Autocomplete++ Dictionaries Controller
ComfyUI Node

Autocomplete++ Dictionaries Controller

Make the right tag dictionary travel with the workflow

By michikora·Created 10 days ago·Updated 2 days ago· 5
Autocomplete++ Dictionaries Controller
  • passthrough
  • passthrough
tag_fileDefault (From Settings)
extra_tag_files_modeDefault (From Settings)
extra_tag_files
translation_fileDefault (From Settings)

Here's the annoying part of prompt autocomplete in ComfyUI: which dictionary you're searching is a global setting. You do your anime work against danbooru.csv, open a realism workflow that wants plain English words, and your tag list is still booru tags. Flip it in Settings, go back to the anime workflow, and now it's wrong the other way. The setting follows your browser, not your project.

This node moves that choice onto the canvas. Four inputs, no wiring, and the dictionary selection rides along inside the workflow file - so when you open that PNG or JSON next month, the tags that pop up are the ones that made sense for it.

What the inputs do

tag_file is your primary dictionary. The dropdown is built by scanning the pack's tags/ folder at node-registration time, so it lists whatever CSVs are actually sitting there. Out of the box that's danbooru.csv, e621.csv, EnglishDictionary.csv and a tiny curated ExtraQualityTags.csv, plus Default (From Settings) to defer to your global pick. Danbooru's five category colours - general, artist, copyright, character, meta - come from the CSV itself, which is why /artist, /character, /general, /meta and /danbooru /e621 slash filters work as you'd expect.

Those matches are what the model responds to: a booru-trained checkpoint like the Illustrious family learned that exact vocabulary, so long hair, looking at viewer, dutch angle steers it far more precisely than a sentence does. Getting the spelling right is the whole point of a dictionary - the wrong one quietly degrades output instead of erroring.

extra_tag_files_mode plus extra_tag_files is the layered-dictionary pair. The mode is Default (From Settings), Override (Use Custom List), or None (Disable Extra Files). The list is a multiline text field for the additional CSVs you want searched alongside the primary one - personal favourite-tag lists, a studio's house style file, whatever. Calling out the trap: the text box is greyed out unless the mode is Override (Use Custom List). That's intentional, and the tooltip says so. People file bugs about a widget they simply haven't unlocked.

That field also gets its own CSV picker popup with autocompletion, so you don't have to remember filenames exactly.

translation_file picks a translation CSV from tags/translations/, or None. The dropdown is scanned from that folder too, so it's Default (From Settings), None, and anything you've dropped in there. Select a file and you can search by translated name and see translations next to English tags in the suggestion list.

What ships and what you bring

The README is blunt about this: only basic dictionaries are bundled. No translation CSV ships with the pack - the tags/translations/ folder is empty apart from a .gitkeep. Make your own:

tag,translation
1girl,女の子
long_hair,ロングヘア

Drop it in tags/translations/, restart ComfyUI, and it appears in the dropdown. Extra tag dictionaries are the same shape, straight into tags/:

tag,category,count,aliases
masterpiece,5,9999999,"master piece,best"

Because both dropdowns are generated at load time, a new CSV only shows up after a ComfyUI restart. Hard-refresh the browser tab too if the frontend still lists the old set.

One more thing the README hides in the settings section: the clickable WIKI badge next to a tag only appears for CSVs whose filename contains danbooru or e621. Rename your curated file to something else and the wiki links vanish - not broken, just not recognised.

Installing

Manager: search Autocomplete++ and install the pack, then restart. Manually:

cd ComfyUI/custom_nodes
git clone https://github.com/michikora/ComfyUI-Autocomplete-Plus-Plus.git

Restart, hard-refresh. That's the whole install - pyproject.toml declares dependencies = [], there's no requirements file, and no models are downloaded. The tag data is in the repo. The pack is a solo hobby project forked from newtextdoc1111's ComfyUI-Autocomplete-Plus (itself inspired by DominikDoom's a1111 tagcomplete extension): issues get answered slowly and PRs aren't accepted, though forks are fine under MIT.

Gotchas

  • Bundled Danbooru data goes stale. The tag counts in a vendored danbooru.csv trail the live site - people scraping it have found counts short by a million-plus. Scrape a fresh one, drop it in tags/, restart, select it.
  • Muted controller, no effect. A controller that's muted (Ctrl+M) or bypassed (Ctrl+B) is skipped on purpose. That's the intended way to keep two dictionary presets on one canvas and flip between them.
  • Multiple controllers. Last one you touched wins; failing that, the newest node ID. On Node 2.0 the Active/Inactive pill tells you which is live.
  • Autocomplete dead in one specific node. The extension patches ComfyUI's shared multiline-string widget factory, so text boxes that a pack implements itself (Pixaroma's, for instance) don't get suggestions. Right-click → Autocomplete++Force override this node type is the intended lever; it doesn't rescue every custom text widget.
CategoryAutocomplete++

Inputs (5)

NameTypeDefaultDescription
tag_fileCOMBODefault (From Settings)5 options: Default (From Settings), danbooru.csv, e621.csv, EnglishDictionary.csv, ExtraQualityTags.csv
extra_tag_files_modeCOMBODefault (From Settings)3 options: Default (From Settings), Override (Use Custom List), None (Disable Extra Files)
extra_tag_filesSTRING
translation_fileCOMBODefault (From Settings)2 options: Default (From Settings), None
passthroughopt*

Outputs (1)

NameTypeDescription
passthrough*