前言

如果你曾經用過 Stable Diffusion 的 Booru 訓練模型(比如各種 Nijijourney、Animagine checkpoint),你一定有過這種痛苦:明明腦海中有個很生動的畫面——「一個穿著牛仔短褲的黑髮吸血鬼少女,在深夜的教室裡抱臂微笑」——但打到提示詞框裡的卻是一串像亂碼的 tag:

1dgairrkl,clvaasmsprioroem,,fnaingghst,,dmeansitmersphioerctes,,bbelsatckquhaaliirt,yarmscrossed,smirk,

寫過一次還好,寫了十次之後手會酸、腦會霧。更別說你根本不知道哪些 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 詞彙表做驗證

工作流程

整個流程可以拆成四個步驟:

第一步:輸入自然語言

你只需要寫一段普通的英文描述,比如:

Aarcmustecrvoasmspeidreangdirslmiwriktihngf,ansgtsa,ndwienagriinngajedaanrkshcolratsssraonodmaatblnaicgkhtcroptop,

不用管格式、不用管順序、不用管單複數——就像在跟朋友描述你想畫的畫面一樣。

第二步:本地 LLM 翻譯

NeuralBooru 會呼叫 LM Studio 裡跑的本地 LLM(推薦用 Qwen3-1.7B),讓它把這段話轉成 tag 形式:

1agrimrsl,cryoosusnegd,adsumlitr,kivnagm,pidraer,kfcalnagsss,rojoema,nnsihgohrtt,s,stbalnadcikngcroptop,

注意這裡的輸出還不算完美——young adult 不是標準 tag、jean shorts 應該是 denim shortssmirking 應該是 smirk。這就是下一步要處理的。

第三步:Danbooru 詞彙驗證

這是 NeuralBooru 最聰明的地方。它內建了一份約 14 萬個 tag 的 Danbooru 白名單(來源是 DominikDoom 的 a1111-sd-webui-tagcomplete 專案),對 LLM 的輸出做以下處理:

處理動作範例
別名映射jean shortsdenim shorts
詞形修正smirkingsmirk
多詞拆解dark classroomdark, classroom
不存在 tag 刪除young adult → 移除並記錄到 dropped_tags

第四步:套用模板輸出

驗證通過的 tag 會被套入你自訂的模板(預設是 masterpiece, best quality, {prompt}),最終輸出:

masterpiece,bestquality,1girl,vampire,fangs,denimshorts,croptop,crossedarms,smirk,dark,classroom,night,standing

這段提示詞就可以直接餵給 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_9absurdres 這類 tag
  • validate_tags:開關驗證功能
  • strict_tags:嚴格模式——不存在的 tag 直接砍掉
  • fuzzy_cutoff:模糊匹配閾值(0.0-1.0),可以容許近似的 tag 被映射
  • min_post_count:根據 Danbooru 上的貼文數量過濾稀有 tag

另外還有一個 dropped_tags 輸出埠,讓你看到哪些 tag 被砍掉了——debug 的時候非常有用。

跟其他方案的比較

市面上已經有幾個類似的工具,我們來對比一下:

工具原理需要 GPU需要網路詞彙驗證適合場景
NeuralBooruLLM 翻譯 + 白名單驗證不需要(文字模型)不需要✅ 內建自然語言 → 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

  1. 下載 Qwen3-1.7B 模型(約 1.4 GB)
  2. 在 LM Studio 中載入模型
  3. 啟動本地伺服器(預設 http://localhost:1234
  4. 建議設定:Temperature 0.4、Max Tokens 500

在 ComfyUI 中連線

回到 ComfyUI,加入 NeuralBooru 節點,填入以下設定:

  • LM Studio URLhttp://localhost:1234
  • Temperature0.4
  • Max Tokens500
  • Validate Tags:勾選(建議保持開啟)
  • Strict Tags:勾選(嚴格模式)
  • Prompt Templatemasterpiece, 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 搞得頭疼,不妨試試看這個工具。至少,它讓「描述你想要的畫面」這件事重新變得有趣。

- 廣告 -

參考資源