*Danbooru辞書DBの作り方と使い方(うちの事例) 最終更新:2026-11-15 画像生成で使うDanbooruタグを、生成のたびにWebで調べ直すのが面倒だったので、タグとWikiを全部ローカルに落としてSQLiteに入れ、コマンド一発で引ける「辞書」にした、といううちの事例紹介です。数字は2026-11-15時点のうちのDBのものです。 **これは何か Danbooruの「タグの辞書」を丸ごと手元に置いたものです。中身は3つです。 -''タグ表'': タグ名・カテゴリ・投稿数(post_count)・別名の一覧。うちは185,520件 -''別名表'': 別名(alias)から正規タグへの対応表。37,555件 -''Wiki本文'': 各タグの定義・使い分け・関連タグを書いたWikiページの全文。286,682件 この3つをSQLiteのデータベースに入れて、全文検索(FTS5、trigram方式)のインデックスをタグとWikiの両方に張ってあります。DBファイルは約640MBです。 検索は小さなCLIツール(Python製)で、次の4コマンドだけです。 -tag 名前: タグの生存確認。カテゴリ・投稿数・別名と、Wikiの冒頭を返す。別名で引くと正規タグに案内され、存在しないタグは「NOT A TAG」と返る -wiki 名前: Wiki本文を全文表示 -find 文字列: タグ名・別名の部分一致で候補を投稿数の多い順に表示 -search 文字列: Wiki本文の全文検索(スニペット付き) **何に効くか -''生成前の「タグの生存確認」が本命'': 実績のない語彙をプロンプトに使う前に、実在するか・投稿数がどれくらいかを確認します。投稿数は、その概念をモデルがどれくらい学習しているかの目安になります。うちの体感では、1万件以上は安定、数千件は効きにばらつきが出る帯域、数百件以下はほぼ引けません -''別名の解決'': 思いついた言い方が正式タグでなくても、正規形が分かります。うちで実際に助かった例では、pointe_shoes は ballet_slippers の別名、bolero は cropped_jacket の別名でした -''「無い」ことが先に分かる'': wrap_top(カシュクール)や gravure のような語は、タグとしては存在しません。無いと分かれば、近いタグで代替する、自然言語で補足する、先に小さい生成テストで効きを確かめる、という判断を生成前にできます -''定義の読み分け'': 似たタグの使い分けをWiki本文で確認できます。たとえば ballet(踊っている様子)と ballerina(バレリーナの格好)は別タグで、Wikiに使い分けが書いてあります -''知らない領域の語彙開拓'': find の部分一致+投稿数順で、その分野の定番タグから拾っていけます。うちは衣装(バレエコアのトップス等)の調査でこの使い方をしました -''注意'': 辞書が示すのは「タグとして実在するか」と「定義」までで、モデルでの効きを保証するものではありません。モデル側のテキストエンコーダが自然言語として解釈して、タグに無い語でも効く余地はあります。最終判断は小さな実生成テストで、というのがうちの運用です **導入の仕方(うちの手順) +タグ一覧を用意する。タグ名・カテゴリ・投稿数・別名が入ったCSVをタグ表の元にしました(タグ情報自体はDanbooruの公開APIからも取得できます) +Wikiを公開APIで全件取得する。wiki_pages.json を、IDの範囲を区切って200件ずつページングし、間隔を空けてJSONL形式で保存。取得は途中再開できる形にしておくと安心です。課金はなく、APIの制限を守って叩くのが前提です +SQLiteに流し込む。tags/tag_aliases/wiki_pages の3テーブルを作り、CSVとJSONLを投入。タグ(名前+別名)とWiki(タイトル+別名+本文)にFTS5の全文検索インデックスを張ります +検索CLIを用意する。sqlite3を叩く小さなスクリプトで十分です。エージェントに使わせるなら、「コマンド名+引数」で完結する形にしておくと扱いが楽です 取得もDB化も一回きりの作業で、うちではどちらも短時間で終わりました。以後の検索はローカルで完結するので、生成のたびに外部へ問い合わせる必要がなくなります。 **運用のコツ -生成で実績のない語彙を使う前に辞書で確認する、をルール化しておくと、存在しないタグを混ぜる事故が目に見えて減ります -投稿数は「効きの目安」として読み、絶対の判定には使わない -辞書に無い語を使いたいときは、いきなり本番に入れず、まず最小のテスト生成で効きを確かめる 以上、あくまでうちの事例です。環境やモデルによって最適な形は変わると思いますが、タグ周りの試行錯誤が多い方の参考になれば幸いです。