DanbooruSearch / README.md
SAkizuki's picture
Auto-sync from GitHub Actions
65b0b93 verified
|
Raw
History Blame Contribute Delete
28.8 kB
---
title: DanbooruSearch
emoji: 👁
colorFrom: red
colorTo: indigo
sdk: docker
app_port: 7860
pinned: false
license: gpl-3.0
short_description: 基于语义匹配的 Danbooru 标签搜索引擎,支持多维匹配、智能分词与共现关联推荐。
tags:
- text-to-image
- prompt-engineering
- stable-diffusion
- danbooru
- nlp
thumbnail: >-
https://akizukipic.oss-cn-beijing.aliyuncs.com/img/202604022117025.png
---
# Danbooru Tags Searcher
![](https://akizukipic.oss-cn-beijing.aliyuncs.com/img/202604022117025.png)
本项目提供一种基于语义匹配的 Danbooru 标签查找方案。用户可以通过输入日常语言或模糊描述,查找并匹配 Danbooru 数据集中对应的标准标签,适用于辅助构建 Stable Diffusion、NovelAI 等 AI 绘画工具的提示词(Prompt)。
目前支持使用汉语和英语进行查找
**立即使用:** https://huggingface.co/spaces/SAkizuki/DanbooruSearch
**ComfyUI 插件版本:** [ComfyUI-DanbooruSearcher](https://github.com/SuzumiyaAkizuki/ComfyUI-DanbooruSearcher)
本项目的数据库由Danbooru API抓取而成,使用LLM进行语义扩充和中文翻译。角色名、作品名使用二次元垂类数据库Bangumi API进行精确查询,尽可能地避免了在角色名、作品名上的幻觉问题。
**数据库生成代码:** https://github.com/SuzumiyaAkizuki/danbooru-tag-pipeline
---
## 核心特性
本版本在基础语义检索之上,引入了完整的标签工作流辅助功能:
* **多维度语义匹配:** 底层支持 4 个维度的向量空间检索(英文、中文扩展词、维基释义、中文核心词),大幅提升模糊描述的命中率。
* **智能分词与显式分隔:** 支持一键开启/关闭自动分词。开启后自动提取长句中概念分别检索;同时支持用空格、换行、中文逗号(,)和顿号(、)手动分隔概念,系统会尊重你的分隔意图,将每个片段作为整体匹配(超过 7 字的片段仍然自动分词)。
* **标签互相关推荐:** 引擎内置标签共现数据。当你选中某些标签后,系统会自动推荐在 Danbooru 图库中经常与它们一同出现的相关标签,辅助补全画面细节。
* **推荐擅长画师:** 基于标签-画师 NPMI 共现数据,根据已选标签实时推荐擅长绘制这些元素的画师,支持勾选加入已选标签。
* **已选区工作区编辑:** 搜索结果、关联标签、同类标签和推荐画师可以汇入同一个标签工作区;支持调整 Prompt 权重、撤销/恢复、历史快照、收藏、Prompt 导入与完整备份,数据默认保存在当前浏览器中。
* **精细化查阅与过滤:** 支持按标签类别(General通用 / Character角色 / Copyright作品)进行硬过滤。
* 提供 **NSFW 保护模式**(开启后自动模糊敏感词汇)。
* 表格内置 Danbooru 维基释义悬浮提示,并提供前往原站的快捷链接。
## 快速了解
### 功能概览
本工具提供以下核心功能:
- [精确查词](#1-精确查词)(容错拼写错误)
- [概念模糊发散](#2-概念模糊发散)
- [输入描述查词](#3-输入描述查词)
- [完整画面查找](#4-完整画面查找)
- [关联推荐](#5-关联推荐共现匹配)
- [推荐擅长画师](#6-推荐擅长画师)
- [已选区工作区编辑](#7-已选区工作区编辑)
前四项基于**语义向量匹配**,第 5、6 项基于**共现数据**(标签-标签共现与标签-画师共现);第 7 项用于整理、编辑和复用最终 Prompt。
---
### 参数说明
在进入功能介绍之前,先了解几个关键参数,它们会影响所有搜索模式的结果质量。
**Top K(语义相关)**
针对单个分词,检索语义最相关的候选标签数量。该值作用于每个向量检索层,最终候选池大小约为 Top K × 层数,再截断至结果上限。值越大,召回越广,但热度高的分词会占据更多名额,可能挤压低频但精确的分词。精确查词场景建议调低(20),发散探索场景可以调高(80~160)。
**结果上限**
最终展示的标签总条数。建议设为 70~80 以适配主流 SDXL 模型的 prompt 长度。精确查词时可以调低到 10,避免干扰。
**热度权重(0~1)**
控制标签在 Danbooru 站内发帖量对最终排序的影响。数值越高,越倾向于推荐常用高频标签。默认值 0.15 在大多数场景下表现良好。
**智能分词**
开启时,程序会自动拆分输入的长句,提取其中的关键概念分别检索,再合并结果。适合完整画面描述;若只想检索一个完整短语的语义,建议关闭。
**新版支持显式分隔符:** 用空格、换行、或中文逗号/顿号(,、)手动分隔概念时,系统会将每个分隔片段视为独立的原子概念,不再做进一步拆分。这在你明确知道自己想要哪些概念时比自动分词更精准。
| 输入示例 | 分词结果 | 说明 |
|---|---|---|
| `运动社团 校队 比赛` | `运动社团` `校队` `比赛` | 空格分隔,每个片段原样保留 |
| `运动社团、校队、比赛` | `运动社团` `校队` `比赛` | 逗号/顿号同理 |
| `一个穿着白色水手服的少女` | `穿着` `白色` `水手服` `少女` | 无显式分隔,自动分词(停用词已过滤) |
> 当分隔后的某个片段超过 **7 个字**时,系统会退回到自动分词——因为超过这个长度的片段通常是短句而非单一概念。这一阈值基于对所有标签核心中文名长度的统计分析得出。
---
## 功能介绍
### 1. 精确查词
**适用场景:** 你想用中文或英文查询一个单一概念,或者知道某个标签的大概写法但不确定拼写是否准确。
本工具通过语义相似度匹配而非字符串精确匹配,因此具备一定的拼写容错能力。
中文概念同样会通过中文核心词、中文扩展词和释义等向量层检索,例如输入 `水手服` 可以召回 `serafuku`。语义搜索召回废弃标签时,系统会使用官方 Danbooru Tag Alias 将其规范化为当前标签;Alias 只纠正结果,不替代语义搜索。
**建议参数:** Top K: 20 | 结果上限: 10 | 热度权重: 0.15 | **关闭智能分词**
> 关闭智能分词,确保整个输入作为一个整体进行语义匹配,不会被拆散。
#### 示例
| 你的输入 | 实际标准标签 | 说明 |
|---|---|---|
| `水手服` | `serafuku` | 中文概念通过语义搜索命中 |
| `selafuku` | `serafuku` | 经典拼写错误,仍可命中 |
| `school unifor` | `school_uniform` | 漏字母,仍可命中 |
| `twintail` | `twintails` | 单复数混淆,仍可命中 |
| `zettai ryouiki` | `zettai_ryouiki` | 罗马音输入,可命中 |
| `thighhigh` | `thighhighs` | 词形变体,仍可命中 |
---
### 2. 概念模糊发散
**适用场景:** 你脑中有一个模糊的概念或风格意象,但不知道在 Danbooru 里对应哪些标签,希望系统帮你"发散"出相关的候选标签。
**建议参数:** Top K: 80~160 | 结果上限: 80 | 热度权重: 0.15 | **开启智能分词**
#### 示例
**示例 1:「兔耳朵」**
输入一个宽泛概念,系统会返回各类耳型相关标签,包括真兔耳、头饰耳、兽娘耳等变体。
![image-20260402202537091](https://akizukipic.oss-cn-beijing.aliyuncs.com/img/202604022025661.png)
---
**示例 2:「中国风古装」**
返回汉服、旗袍、各朝代服制等细分标签,帮助你快速了解这一风格下的标签体系。
![image-20260402202652780](https://akizukipic.oss-cn-beijing.aliyuncs.com/img/202604022026925.png)
---
**示例 3:「机械义肢」**
返回包含义肢、机械臂、赛博朋克肢体等标签,适合进一步结合关联推荐做细化筛选。
![image-20260402202730735](https://akizukipic.oss-cn-beijing.aliyuncs.com/img/202604022027911.png)
---
**示例 4:「战斗姿势」**
返回各类战斗动作、持武器动作等标签。
![image-20260402202757757](https://akizukipic.oss-cn-beijing.aliyuncs.com/img/202604022028668.png)
---
### 3. 输入描述查词
**适用场景:** 你能描述某个具体的事物、角色、场景,但不知道 Danbooru 的对应标签。可以使用中文或英文自然语言描述,也可以通过 IP 名称、角色外号来查找角色标签。
**建议参数:** Top K: 20 | 结果上限: 20 | 热度权重: 0.15 | **关闭智能分词**
> 关闭智能分词,使系统对你的整段描述做整体语义匹配,而不是拆词。
#### 示例
**示例 1:用描述定位角色**
| 你的输入 | 期望命中的角色标签 | 说明 |
|---|---|---|
| `原神里面须弥主线的NPC贵族女孩` | `dunyarzad_(genshin_impact)`(迪纳泽黛) | 通过剧情身份描述定位角色 |
| `命运石之门的助手` | `makise_kurisu`(牧瀬红莉栖) | 通过人物关系描述定位角色 |
| `某科学的超电磁炮中会传送的那个人` | `shirai_kuroko`(白井黑子) | 通过能力和动作描述定位角色 |
| `EVA 里驾驶零号机的蓝发角色` | `ayanami_rei`(凌波丽) | 通过机体和外貌描述定位角色 |
| `明日方舟里游戏商店的老板` | `closure_(arknights)`(可露希尔) | 通过职位描述定位角色 |
---
**示例 2:用描述定位服饰/物品**
| 你的输入 | 期望命中的标签 | 说明 |
|---|---|---|
| `紧身衣勒入皮肤产生的凹陷` | `skindentation` | 非常具体的视觉细节描述 |
| `半透明薄纱覆盖胸前` | `see-through_bra` | 材质与遮盖关系描述 |
| `两侧有开缝、有拉绳的运动短裤` | `dolphin_shorts` | 服饰细节描述 |
---
### 4. 完整画面查找
**适用场景:** 你脑中已经有了一幅完整的画面,希望一次性把整段描述转换成尽可能多的 Danbooru 标签,用于 AI 绘画的完整 Prompt。
**建议参数:** Top K: 5 | 结果上限: 80 | 热度权重: 0.15 | **开启智能分词**
> 开启智能分词:系统会自动拆分你的长句,提取其中的关键概念分别检索,再合并去重,覆盖尽可能多的画面元素。
#### 示例
**示例 1:雨中奔跑的少女**
```
一个穿着白色水手服、蓝色短裙的少女,在下着大雨的城市街道奔跑,
她的表情是不甘、愤怒、流泪,她的衣服湿透。
```
> short_dress, city, streaming_tears, street, white_serafuku, furious, fume, rain, tears, running, skirt, crying, tearing_up, urban
**示例 2:赛博朋克城市夜景**
```
赛博朋克风格的城市,霓虹灯招牌,雨后潮湿的街道倒映灯光,
远处高楼林立,一个穿着皮夹克的女孩站在路灯下抽烟。
```
> street, reflection, lights, lamp, leather_jacket, fur_jacket, 1girl, standing, lamppost, smoking, holding_cigarette, cyberpunk, after_rain, city, urban, neon_lights, wet_floor, utility_pole
---
**示例 3:奇幻战场**
```
一个银发的精灵女战士,身穿轻甲,手持弓箭,站在废墟上,
背景是正在燃烧的城市和布满乌云的天空,衣服上有血迹。
```
> burning, city, dark_cloud, sky, clothes, blood_stain, blood_on_clothes, silver_hairband, standing, white_hair, cyberpunk, after_rain, holding, bow_(weapon), urban, ruins, elf, rubble, holding_bow_(weapon), arrow_(projectile), neon_lights, burning_building, wet_floor, utility_pole
---
**技巧:关于描述的写法**
- 分段描述不同要素(人物 / 背景 / 表情 / 服装)比混在一起效果更好
- 细节越具体,匹配越准确——「蓝色长发」优于「特别的发色」
- 遇到感觉应该有但没命中的标签,可以把该部分单独截取,切换到「输入描述查词」模式单独查
---
### 5. 关联推荐(共现匹配)
关联推荐与前四项功能机制不同,它不依赖语义相似度,而是基于 **Danbooru 图库中标签的共现统计**:如果两个标签经常出现在同一张图上,就认为它们相关。
**使用方式:** 在左侧结果表格中勾选你感兴趣的标签,右侧关联推荐栏会自动刷新,显示在 Danbooru 图库中与你选中标签最常共现的其他标签。也可以点击「根据已选刷新」手动触发。
关联推荐的得分是基于 NPMI(互信息归一化)计算的,能有效过滤掉那些只是因为自身热度高而频繁出现的标签。
#### 适用场景
**场景 1:查看某种服饰/道具的常见搭配**
勾选 `fingerless_gloves`(露指手套),关联推荐会列出穿露指手套的角色们。
![image-20260402204128858](https://akizukipic.oss-cn-beijing.aliyuncs.com/img/202604022041742.png)
---
**场景 2:查看某个角色的典型特征**
勾选角色标签(如 `amiya_(arknights)`),关联推荐会列出该角色最常出现的服装、配件、表情等标签,相当于自动生成角色的"标签画像"。
![image-20260402204239836](https://akizukipic.oss-cn-beijing.aliyuncs.com/img/202604022042492.png)
---
**场景 3:探索某类主题的标签体系**
勾选 `fighter_jet`(战斗机),关联推荐会列出各类机型、飞行动作、背景等相关标签,帮助你快速摸清一个主题下的标签生态。
![image-20260402204306860](https://akizukipic.oss-cn-beijing.aliyuncs.com/img/202604022043665.png)
---
**场景 4:组合多个标签获得交集推荐**
同时勾选多个标签时,关联推荐会综合计算多标签的共现关系,推荐与这组标签**整体**最匹配的标签,而不只是单个标签的邻居。
比如同时勾选 `maid` + `twintails`,推荐结果会更倾向于「女仆且双马尾」场景下经常出现的标签,而不是单纯「女仆」或「双马尾」各自的高频搭配。
![image-20260402204415282](https://akizukipic.oss-cn-beijing.aliyuncs.com/img/202604022044935.png)
---
### 6. 推荐擅长画师
推荐擅长画师与关联推荐类似,基于 **标签-画师 NPMI 共现数据**,但目标是推荐擅长绘制已选标签所描述元素的画师。
**使用方式:** 在左侧结果表格或右侧关联推荐中勾选标签后,右栏「推荐擅长画师」区域会**实时自动更新**,无需手动刷新。画师可勾选加入已选标签(Anima 模式下复制时自动加 `@` 前缀)。
**评分逻辑:** 对每个已选标签,计算该标签与画师的 NPMI 共现分,累加后乘以命中标签数加成,最终归一化显示为百分比。
#### 适用场景
**场景 1:根据风格标签找画师**
勾选 `flat_color`(平涂)+ `1girl`,推荐擅长平涂风格女性角色的画师。
**场景 2:根据角色找画师**
勾选某角色标签,推荐经常绘制该角色的画师。
**场景 3:根据画面元素找画师**
勾选 `mecha`(机甲)+ `detailed_background`,推荐擅长机甲和精细背景的画师。
---
### 7. 已选区工作区编辑
在搜索结果、关联标签、同类标签或推荐画师中勾选内容后,它们都会进入同一个已选区(标签工作区)。工作区会自动保存在当前浏览器中,刷新页面后仍可继续编辑。
**标签与 Prompt 编辑:**
- 使用标签两侧的 `− / +` 调整 Prompt 权重,也可以随时移除不需要的标签。
- 使用「撤销 / 恢复」回退或重做最近的工作区修改。
- 可切换 SDXL、NAI、Anima 复制格式,所选格式会随工作区保存;画师标签在 Anima 格式下会自动转换为 `@画师名`
- 「清空已选」只会清空当前工作区,不会删除历史记录或收藏。
**历史与收藏:**
- 每次搜索都会记录查询内容、当时的搜索设置和工作区快照。你可以使用「重新搜索」恢复原查询与参数,使用「恢复工作区」找回当时的标签、权重和格式,或使用「追加查询」保留当前工作区并继续搜索。
- 「保存收藏」会保存当前标签组合、权重、来源和 Prompt 格式。收藏可恢复、合并或直接复制;合并同名标签时,会保留当前工作区已有的权重。
**Prompt 导入与备份:**
- 「导入 Prompt」支持半角/全角逗号和换行分隔,并会使用 Danbooru Tag Alias 替换已弃用标签。重复标签会自动合并,无法唯一识别的内容会进入待确认区,不会被强行加入工作区。
- 「备份 / 迁移」可以导出包含当前配置、工作区、原始搜索查询、历史和收藏的完整 JSON,并支持合并或替换导入。上述数据默认仅保存在当前浏览器中,备份文件只有在你主动下载或上传时才会离开浏览器。
---
### 使用技巧
**技巧 1:先宽后窄**
先用完整画面查找拿到大量候选标签,再用分词筛选 chip 或手动去掉不相关的,然后勾选剩余标签触发关联推荐,补充遗漏细节。
**技巧 2:拿不准标签含义时悬浮查看**
鼠标悬停在任意标签行或关联推荐行上,会弹出该标签的 Danbooru 维基释义,方便快速判断是否符合需求,无需跳转站外。
**技巧 3:点击标签名直接跳转**
标签名是可点击链接,点击后在新标签页打开 Danbooru 的对应维基页,可以查看详细说明、相关图例和近义标签。
**技巧 4:NSFW 保护模式**
默认关闭 NSFW 显示。打开后标签的完整名称和含义会显示出来,但平台限制下(魔搭创空间)此选项不可用。
**技巧 5:复制全部 vs 复制选中**
- **复制全部标签**:把当前搜索结果中所有标签复制为逗号分隔的字符串,适合快速生成完整 Prompt
- **复制选中标签**:只复制你在表格中手动勾选的标签,适合精选后使用
**技巧 6:用显式分隔符精细控制分词**
当你知道自己想要哪些独立概念时,用空格或中文逗号手动分隔它们:
-`运动社团 校队 比赛 运动会 体育祭 田径部`」→ 每个概念原样保留
-`反乌托邦、赛博朋克、蒸汽朋克、废土`」→ 逗号分隔同理
- 分隔后的短片段(≤7 字)作为整体匹配,不会被错误拆开
- 如果需要混合长短查询,可以一部分用空格分隔、另一部分写成自然语句
---
## 接口方法
### REST API
本工具同时提供 REST API,可集成到你自己的工作流中。
启动后访问 `/api/docs` 查看完整的交互式 API 文档。
**搜索接口**
```
POST /api/search
{
"query": "白色水手服的女孩",
"top_k": 5,
"limit": 80,
"popularity_weight": 0.15,
"show_nsfw": true,
"use_segmentation": true,
"target_layers": ["英文", "中文扩展词", "释义", "中文核心词"],
"target_categories": ["General", "Character", "Copyright"],
"group_mode": "off",
"max_per_group": 2
}
```
搜索接口保留底层可调参数,适合需要精细控制召回数量、分层检索、分词策略、类别筛选和分组去重的工作流。
响应包含 `tags_all``tags_sfw``keywords``results`;每条结果默认包含完整字段和 `wiki`。如果语义召回结果经官方 Tag Alias 规范化,还会包含原废弃标签 `alias_from``tag``tags_all``tags_sfw` 始终使用规范标签。
**关联推荐接口**
```
POST /api/related
{
"tags": ["white_serafuku", "sailor_collar"],
"limit": 50,
"show_nsfw": true
}
```
响应为 `results` 列表,每条结果默认包含 `wiki`;如果输入标签拼写错误但可被纠正,会额外返回 `correction_note``corrections`
**推荐擅长画师接口**
```
POST /api/artists
{
"tags": ["1girl", "blue_hair", "school_uniform"],
"limit": 30,
"min_cooc": 3,
"show_nsfw": true
}
```
响应字段:`artist`(画师名)、`cooc_count`(共现次数)、`post_count`(作品数)、`sources`(命中标签)、`top_tags`(该画师最常画的 10 个标签,含中文名)。
**健康检查接口**
```
GET /api/health
```
详见:[API 文档](https://sakizuki-danboorusearch.hf.space/api/docs)
---
### MCP 接口
本工具提供 MCP(Model Context Protocol)服务,支持将搜索引擎直接接入 Claude Desktop、Cursor、Cherry Studio 等支持 MCP 协议的大模型客户端,让 AI 能够在对话中直接调用标签搜索能力。
**MCP 服务地址:**
```
https://sakizuki-danboorusearch.hf.space/mcp/mcp
```
```
https://sakizuki-danboorusearchonline.ms.show/mcp/mcp
```
以上两个端口提供完全相同的服务,互为备份
#### 接入方法
**方法一:Claude Desktop**
Claude Desktop 不支持直接连接 Streamable HTTP 端点,需要通过 `mcp-remote` 作为本地桥接。
首先全局安装 `mcp-remote`(需要本机已安装 Node.js):
```bash
npm install -g mcp-remote
```
然后在配置文件中添加以下内容:
- Windows:`%APPDATA%\Claude\claude_desktop_config.json`
- macOS:`~/Library/Application Support/Claude/claude_desktop_config.json`
```json
{
"mcpServers": {
"danbooru-searcher": {
"command": "mcp-remote",
"args": [
"https://sakizuki-danboorusearch.hf.space/mcp/mcp"
]
}
}
}
```
保存后重启 Claude Desktop,工具列表中出现 `search_tags``get_related_tags``get_artist_recommendations``get_anima_format``get_newbie_format` 即为成功。
> 注意:不要使用 `"url"` 字段直接填写地址,Claude Desktop 不支持该格式,会提示配置无效。也不推荐通过 `npx mcp-remote` 调用,首次执行时 `npx` 需要临时下载包,npm 缓存损坏时会导致启动失败。全局安装可规避此问题。
**方法二:图形界面(Cherry Studio 等)**
在 MCP 服务器管理页面点击「添加」,填写以下信息:
- 名称:`danbooru-searcher`(可自定义)
- 类型:`Streamable HTTP`
- URL:`https://sakizuki-danboorusearch.hf.space/mcp/mcp`
> 注意:类型务必选择 **Streamable HTTP**,不要选 SSE,否则工具列表无法正常加载。
添加完成后重启客户端,或在 MCP 管理界面手动刷新连接。
#### 可用工具
接入后 AI 可调用以下工具:
**`search_tags`** — 自然语言搜索标签
接受中文或英文描述,返回匹配的 Danbooru 标签列表和可直接用于 AI 绘画的 prompt 字符串。支持参数:
| 参数 | 默认值 | 说明 |
|---|---|---|
| `query` | — | 自然语言描述(必填,推荐中文)。支持空格/逗号/顿号显式分隔概念 |
| `search_mode` | `"full_scene"` | 检索策略:`full_scene`、`concept_explore`、`subject_describe`、`precise_lookup` |
| `category` | `"all"` | 标签类别筛选:`"all"` 全部、`"general"` 通用、`"character"` 角色、`"copyright"` 作品 |
| `show_nsfw` | `true` | 是否包含 NSFW 标签 |
| `include_wiki` | `false` | 是否在结果中附带 Danbooru wiki 释义 |
`search_mode` 的选择规则:
- `full_scene`:默认值。用户描述的是一张具体画面时使用,即使描述里有很多元素,也仍然属于完整画面。
- `concept_explore`:用户想浏览某个概念下有哪些候选标签时使用,结果更多,token 消耗更高。
- `subject_describe`:只描述一个单一视觉概念、角色或物品时使用;多元素画面不要用这个模式。
- `precise_lookup`:用于中文或英文的单一概念、拼写纠错及接近精确的标签查询;仍使用语义搜索,并用官方 Tag Alias 规范化返回结果。
返回 JSON 包含:`prompt`(逗号分隔标签)、`keywords`(检索关键词)、`results`(标签结果)。每条结果包含 `tag`、`cn_name`;发生官方 Alias 纠正时包含 `alias_from`,当 `include_wiki=true` 时包含 `wiki`。
**`get_related_tags`** — 共现关联推荐
给定一组已选标签,返回在 Danbooru 图库中与之最常共现的相关标签,基于 NPMI 评分,可有效过滤掉仅因自身热度高而频繁出现的标签。
| 参数 | 默认值 | 说明 |
|---|---|---|
| `tags` | — | 标签列表(必填,Danbooru 英文标签名) |
| `limit` | `50` | 最多返回关联标签数 |
| `show_nsfw` | `true` | 是否包含 NSFW 标签 |
| `include_wiki` | `false` | 是否在结果中附带 Danbooru wiki 释义 |
返回字段:`tag`、`cn_name`、`sources`,当 `include_wiki=true` 时包含 `wiki`。如果输入标签拼写错误但可纠正,会返回纠错说明。
**`get_artist_recommendations`** — 推荐擅长画师
给定一组标签,返回擅长绘制这些元素的画师列表,基于标签-画师 NPMI 共现数据排序。
| 参数 | 默认值 | 说明 |
|---|---|---|
| `tags` | — | 标签列表(必填,Danbooru 英文标签名) |
| `limit` | `30` | 最多返回画师数 |
| `min_cooc` | `3` | 单个 (tag, artist) 对的最小共现次数 |
| `show_nsfw` | `true` | 是否包含 NSFW 数据 |
返回字段:`artist`(画师名)、`cooc_count`(共现次数)、`post_count`(作品数)、`sources`(命中标签)、`top_tags`(该画师最常画的 10 个标签,含中文名)
**`get_anima_format`** — 获取 Anima 提示词格式规范
当用户需要把检索到的标签整理为 Anima 模型的 Hybrid 提示词时调用。返回完整格式说明,包括硬标签层、空间叙事层、标签格式化、权重语法、多人物防串扰和中文解释规则。
**`get_newbie_format`** — 获取 NewBie XML 提示词格式规范
当用户需要输出 NewBie 模型 XML 提示词时调用。返回 XML 结构、字段职责、标签处理规则、多人角色分组和 caption 写作要求。
#### 调用示例
接入后,你可以直接用自然语言告诉 AI 你的需求,AI 会自动选择合适的参数调用工具:
> 帮我把「一个穿白色水手服的少女在大雨中奔跑,表情愤怒、流泪,衣服湿透」转换成 Danbooru 标签 prompt
> 我想找「机械义肢」相关的标签,帮我发散一下
> 帮我查一下「命运石之门的助手」对应的角色标签是什么
> 我已经选了 `white_serafuku` 和 `rain` 这两个标签,帮我推荐一些常见的搭配标签
> 帮我找擅长画「平涂风格 + 蓝发少女」的画师
> 查一下「运动社团 校队 比赛 运动会 体育祭 田径部 网球部 篮球部」这些概念对应的标签
> 找「反乌托邦、赛博朋克、蒸汽朋克」的 General 类标签,只查通用特征不查作品名
> 按 Anima 模型格式,把这些标签整理成 Hybrid 提示词
> 按 NewBie XML 格式输出这个角色场景的提示词
#### 服务使用说明
HF Space 在无流量时会进入休眠状态,首次请求需要等待冷启动(约 30~60 秒)。若 AI 调用超时,稍等片刻后重试即可,或先访问 [Space 页面](https://huggingface.co/spaces/SAkizuki/DanbooruSearch) 将其唤醒。
任何用户都可以免费将本服务的API或MCP接口接入自己的私有或公开服务中。
**如果接入公开服务,务必在主页提供链接到本服务主地址的友情链接**
```
URL: https://huggingface.co/spaces/SAkizuki/DanbooruSearch
简介: 基于语义匹配的Danbooru标签搜索引擎,支持多维匹配与共现关联推荐。
```
---
## 数据库说明
- 数据来源:Danbooru API 抓取
- 中文翻译与语义扩充:由 LLM 辅助完成
- 角色名、作品名:通过二次元垂类数据库 [Bangumi](https://bgm.tv) API 精确查询,尽量避免幻觉
- 仅收录 Danbooru 频数 **≥ 100** 的标签,保证标签实际可用
- 仅覆盖 General(通用特征)、Character(角色)、Copyright(作品)三类标签
**数据库生成代码:** https://github.com/SuzumiyaAkizuki/danbooru-tag-pipeline
---
## 使用注意事项
- 本工具为 AI 辅助工具,检索结果未必 100% 准确
- 查找结果可能包含 NSFW 内容(默认隐藏)
- 仅支持中文 / 英文双语查找
- 如果检索结果不理想,欢迎点击「没搜到?」按钮提交反馈,帮助持续优化引擎
## 支持项目
DanbooruSearch 会继续免费开放。如果这个小工具刚好帮你省了点时间,可以自愿赞赏一点维护成本;赞赏不解锁任何功能、不提高额度、不影响搜索结果,也不会获得特殊待遇。量力而行就好,未成年人请勿赞赏。
![微信赞赏码](https://akizukipic.oss-cn-beijing.aliyuncs.com/img/202501120027592.png)
## 搜索统计
![](https://dsocounter.oss-cn-hongkong.aliyuncs.com/danbooru_counter/search_stats.png)
## 友情链接
- 本项目中借鉴了[Good Anima](https://github.com/ShiroEirin/comfyui-good-anima)项目中关于Anima模型提示词书写的相关内容
- [Linux Do社区](https://linux.do/)
## 开源协议
本项目采用 [GNU General Public License v3.0](./LICENSE) 开源协议。