前言
如果你曾經用過 Stable Diffusion 的 Booru 訓練模型(比如各種 Nijijourney、Animagine checkpoint),你一定有過這種痛苦:明明腦海中有個很生動的畫面——「一個穿著牛仔短褲的黑髮吸血鬼少女,在深夜的教室裡抱臂微笑」——但打到提示詞框裡的卻是一串像亂碼的 tag:
寫過一次還好,寫了十次之後手會酸、腦會霧。更別說你根本不知道哪些 tag 是模型真正看得懂的、哪些只是多餘的噪音。
最近 Reddit 的 ComfyUI 社群裡出現了一個叫 NeuralBooru 的自訂節點,解決的就是這個問題——你用自然語言描述場景,它幫你翻譯成 Booru 風格的提示詞,而且全部在本機跑,不需要雲端 API。
今天我們來深度剖析這個工具,看看它怎麼運作、跟其他方案有什麼不同,以及值不值得加入你的工作流。
什麼是 Booru Tags?為什麼那麼重要?
先簡單複習一下。Booru 是一類圖片標籤網站的統稱,最著名的就是 Danbooru——一個擁有數百萬張動漫圖片、以 tag 系統分類的社群網站。
當 Stable Diffusion 的某些模型(特別是 anime 風格的 checkpoint)在 Danbooru 數據集上訓練時,它們學會的「語言」就是 tag。這些 tag 有幾個特點:
- 單詞形式固定:模型學到的是
denim shorts,不是jean shorts;是smirk,不是smirking。 - 順序相對不重要:跟自然語言不同,tag 之間是「並列關係」,模型靠的是 tag 的出現而非語法結構。
- 有明確的語義分類:角色(1girl)、服裝(crop top)、姿勢(arms crossed)、背景(classroom)、品質(masterpiece)各自歸類。
這就是為什麼你用自然語言提示詞喂給 Booru 訓練模型,效果往往不如用 tag——模型「聽不懂」你的句子,它只認 tag。
NeuralBooru 怎麼解決這個問題?
NeuralBooru 的核心思路很直接:用一個輕量級的本地 LLM 當翻譯官,把你的自然語言描述轉成 tag,再用 Danbooru 詞彙表做驗證。
工作流程
整個流程可以拆成四個步驟:
第一步:輸入自然語言
你只需要寫一段普通的英文描述,比如:
不用管格式、不用管順序、不用管單複數——就像在跟朋友描述你想畫的畫面一樣。
第二步:本地 LLM 翻譯
NeuralBooru 會呼叫 LM Studio 裡跑的本地 LLM(推薦用 Qwen3-1.7B),讓它把這段話轉成 tag 形式:
注意這裡的輸出還不算完美——young adult 不是標準 tag、jean shorts 應該是 denim shorts、smirking 應該是 smirk。這就是下一步要處理的。
第三步:Danbooru 詞彙驗證
這是 NeuralBooru 最聰明的地方。它內建了一份約 14 萬個 tag 的 Danbooru 白名單(來源是 DominikDoom 的 a1111-sd-webui-tagcomplete 專案),對 LLM 的輸出做以下處理:
| 處理動作 | 範例 |
|---|---|
| 別名映射 | jean shorts → denim shorts |
| 詞形修正 | smirking → smirk |
| 多詞拆解 | dark classroom → dark, classroom |
| 不存在 tag 刪除 | young adult → 移除並記錄到 dropped_tags |
第四步:套用模板輸出
驗證通過的 tag 會被套入你自訂的模板(預設是 masterpiece, best quality, {prompt}),最終輸出:
這段提示詞就可以直接餵給 CLIP Text Encode 節點了。
技術亮點
NeuralBooru 有幾個設計細節很值得稱道:
1. 模型無關(Model-Agnostic)
它不綁定任何特定的 LLM 或 checkpoint。你用 LM Studio 跑 Qwen3-1.7B 可以、跑 Llama 也可以、甚至用 Ollama 換個模型也一樣。輸出端則是「只要吃 Danbooru tag 的模型就適用」。
這跟 DanTagGen 的路线完全不同——DanTagGen 是一個針對 Danbooru tag 微調過的專用模型,把詞彙表 baked-in 到模型裡;NeuralBooru 則是在 LLM 輸出之後用白名單過濾,兩者是不同的設計哲學。
2. 零依賴、純 stdlib
整個節點只有約 130 行 Python 程式碼,全部使用 Python 標準庫(主要靠 http.client 跟 LM Studio 通訊),不需要額外 pip install 任何第三方套件。對於追求輕量的使用者來說非常友善。
3. 透明可調
每個參數都可以微調:
prompt_template:自訂輸出模板,比如你想加score_9、absurdres這類 tagvalidate_tags:開關驗證功能strict_tags:嚴格模式——不存在的 tag 直接砍掉fuzzy_cutoff:模糊匹配閾值(0.0-1.0),可以容許近似的 tag 被映射min_post_count:根據 Danbooru 上的貼文數量過濾稀有 tag
另外還有一個 dropped_tags 輸出埠,讓你看到哪些 tag 被砍掉了——debug 的時候非常有用。
跟其他方案的比較
市面上已經有幾個類似的工具,我們來對比一下:
| 工具 | 原理 | 需要 GPU | 需要網路 | 詞彙驗證 | 適合場景 |
|---|---|---|---|---|---|
| NeuralBooru | LLM 翻譯 + 白名單驗證 | 不需要(文字模型) | 不需要 | ✅ 內建 | 自然語言 → tag |
| DanTagGen | 微調過的專用 LLM | 建議有 | 不需要(本地) | ✅ 內建於模型 | 角色資訊 → tag |
| WD14 Tagger | 影像辨識 tag | 建議有 | 不需要 | ✅ 內建 | 圖片 → tag |
| ComfyUI-Prompt-Translator | 通用 prompt 翻譯 | 看配置 | 可選 | 可選 | 跨模型 prompt 轉換 |
NeuralBooru 的優勢很明確:
- 對硬體要求最低——Qwen3-1.7B 只要約 1.4 GB 記憶體,CPU 就能跑
- 驗證機制最透明——白名單可編輯、dropped_tags 可查
- 設定最簡單——不需要微調模型、不需要下載額外權重
缺點也有:
- 依賴 LM Studio 作為中介(雖然可以改用其他 HTTP 服務)
- 翻譯品質取決於你用的 LLM——小模型偶爾會漏掉細節
- 需要 LM Studio 在背景運行(雖然有優雅降級機制)
實際設定步驟
安裝節點
最簡單的方式是用 ComfyUI Manager,搜尋 NeuralBooru 安裝即可。
手動安裝的話,把專案 clone 到 ComfyUI/custom_nodes/ 目錄下:
cd ComfyUI/custom_nodes
git clone https://github.com/ChrisJohnson89/ComfyUI-NeuralBooru.git
然後重新啟動 ComfyUI。
設定 LM Studio
- 下載 Qwen3-1.7B 模型(約 1.4 GB)
- 在 LM Studio 中載入模型
- 啟動本地伺服器(預設
http://localhost:1234) - 建議設定:Temperature 0.4、Max Tokens 500
在 ComfyUI 中連線
回到 ComfyUI,加入 NeuralBooru 節點,填入以下設定:
- LM Studio URL:
http://localhost:1234 - Temperature:
0.4 - Max Tokens:
500 - Validate Tags:勾選(建議保持開啟)
- Strict Tags:勾選(嚴格模式)
- Prompt Template:
masterpiece, best quality, {prompt}
連線完成後,你就可以開始用了。
使用 /no_think 加速
LM Studio 支援 /no_think 參數,可以跳過 LLM 的內部推理步驟,直接輸出結果。對於 NeuralBooru 這種只需要 tag 列表的場景,速度會快很多。
實際使用心得
用了一陣子之後,我覺得 NeuralBooru 最適合這幾種人:
第一類:想畫動漫但不會寫 tag 的新手
你只需要用英文描述你想要的畫面,剩下的交給它。不需要背 tag 表、不需要記格式,大大降低了上手門檻。
第二類:想快速迭代的大量產出者
如果你每天要產出幾十張圖,每次花兩分鐘調 tag 真的很浪費時間。NeuralBooru 讓你專注在「構思場景」而不是「拼湊 tag」。
第三類:隱私至上的本地派
不需要 API key、不需要雲端連線、不需要付月費。Qwen3-1.7B 在你電腦上跑完就結束,提示詞不會外洩。
不過也要說實話,它不是萬能的。如果你用一個很小的模型(比如 700M 參數的),偶爾會漏掉一些細節 tag;如果你要畫的場景非常複雜(超過 20 個 tag),小模型的輸出品質會下降。在這種情況下,換一個大一點的模型就好——NeuralBooru 的模型無關特性讓這件事情很輕鬆。
進階玩法:自訂白名單
NeuralBooru 的 Danbooru 詞彙表是一個可編輯的 CSV 檔案。這意味著你可以:
- 加入自訂 tag:比如你的模型有幾個特殊的 tag 不在 Danbooru 白名單裡
- 移除不需要的 tag:比如你討厭
masterpiece這種品質 tag - 設定別名規則:比如把
bikini自動映射到swimsuit
這讓 NeuralBooru 不僅是一個翻譯工具,更像是一個提示詞工程的中間層——你控制輸入的語言和輸出的格式,中間的翻譯過程交給 LLM 處理。
小結
NeuralBooru 是一個小而美的工具。它沒有花俏的功能、沒有龐大的依賴、也沒有昂貴的 API 費用。它只做一件事:把你嘴裡說的話,變成 AI 模型聽得懂的語言。
在 LLM 快速發展的今天,這種「用 LLM 做翻譯」的思路其實可以套用到很多場景——不只是 Booru tag,任何兩種「語言」之間的轉換都可以試試看。NeuralBooru 給了我們一個很好的起點。
如果你正在用 ComfyUI 畫動漫、但又被 tag 搞得頭疼,不妨試試看這個工具。至少,它讓「描述你想要的畫面」這件事重新變得有趣。