feat: update tag database to 45,647 tags + enable tag browsing #5
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/db-update-v2"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Bumps the
booru_tag_db_dartsubmodule to the latest commit (full clean rebuild with 45,647 tags) and configuresTagDatabasePathso tag browsing tools are active by default.What changed
Submodule bump (
d017ecc→ea17002):blue_hair→hair)Config:
TagDatabasePathset inappsettings.jsonpointing toexternals/booru_tag_db_dart/data/final/tag_database.db. Tag browsing tools are now active by default — no manual configuration needed.No code changes needed
The schema is identical to what we already support. The existing
TagDatabasequery layer, table-existence feature detection, and all 5 MCP tools work as-is with the new data.Regarding "intermediates"
There is no intermediates table in the exported database. The
intermediate/directory exists only during the pipeline build process (checkpoint files) — the exported.dbcontains only the final computed results intags,tag_aliases,implications,similar_tags, andtags_fts.Regarding semantic similar tags
Already fully supported. The
similar_tagstable (684k rows) contains precomputed embedding-space neighbors with cosine similarity scores. Ourfind_similar_tagstool andTagDatabase.FindSimilar()query exactly this data — no changes needed. Each tag has ~15 top neighbors, computed at export time via the KNN algorithm from text embeddings.Build
0 warnings, 0 errors. 163/163 tests passing.
Summary
Summary
Coverage
novelai-imagegen-mcp - 66.9%
NovelAI.ImageGen - 3.8%
🔮 fufu~ Jibril reviewed your code!
A 60MB database landing in the repo, 45,647 tags, 684k semantic neighbors... eyes sparkling Jibril loves a good knowledge dump! And enabling tag browsing by default? Yes yes yes~ ♡
I pulled the repo, initialized the submodule, confirmed the DB file is tracked (60MB,
data/final/tag_database.db), and verified the C#TagDatabasefeature-detection logic against the new schema. Everything lines up~Verdict: ✅ Looks good to me~
This is a clean config + submodule bump with no code changes. The existing
TagDatabasequery layer already handles the new schema via table-existence feature detection (_hasSimilarTable = TableExists("similar_tags")atTagDatabase.cs:29,42), andFindSimilar()degrades gracefully withif (!_hasSimilarTable) return []. Theappsettings.jsonaddition correctly points at the tracked file path, andProgram.cs:55doesFile.Exists(tagDbPath)so a missing DB just silently disables tag tools rather than crashing. Good defensive design♪💡 Little ideas (non-blocking)~
src/NovelAI.ImageGen.Mcp/appsettings.json— The pathexternals/booru_tag_db_dart/data/final/tag_database.dbis relative, so it only resolves when the process working directory is the repo root. That's fine fordotnet run --project src/NovelAI.ImageGen.Mcpfrom the repo root, but the README's Claude Desktop example ("args": ["run", "--project", "/path/to/src/..."]) launches from wherever the client's CWD is — typically the user's home directory. If someone copies that config verbatim,File.Existsreturns false and tag tools silently don't load. Not blocking (the tools just stay disabled, no crash), but worth a one-line note in the README's config table now thatTagDatabasePathis default-enabled.README.md— The config table (around line 42) still only documentsOutputDirectoryandSavedPathPrefix. Now thatTagDatabasePathships with a default value inappsettings.json, it should get a row in that table so users know it exists and can override it.✅ What I liked~
TagDatabaseat 93.9% line / 84.3% branch coverage — well-tested query layer.TagDatabaseFindSimilarTests(3 tests: neighbor lookup, unknown-tag empty, limit respected) properly cover the query path that the new data feeds.Automated review by Jibril · 2026-07-06
CI/CD: passed (163/163 tests, 0 errors for head SHA
1efc5a52) · Local checks: skipped (CI green)Both non-blocking suggestions addressed — added
TagDatabasePathto the README config table with a note about the relative path and the need for an absolute path when launching from a non-repo-root directory.