Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
Auto-sync from GitHub Actions
Browse files- README.md +99 -44
- mcp_server.py +80 -26
README.md
CHANGED
|
@@ -49,7 +49,9 @@ thumbnail: >-
|
|
| 49 |
* 表格内置 Danbooru 维基释义悬浮提示,并提供前往原站的快捷链接。
|
| 50 |
|
| 51 |
|
| 52 |
-
##
|
|
|
|
|
|
|
| 53 |
|
| 54 |
本工具提供以下核心功能:
|
| 55 |
|
|
@@ -60,11 +62,11 @@ thumbnail: >-
|
|
| 60 |
- [关联推荐](#5-关联推荐共现匹配)
|
| 61 |
- [推荐擅长画师](#6-推荐擅长画师)
|
| 62 |
|
| 63 |
-
前四项基于**语义向量匹配**,后两项基于**标签-画师共现
|
| 64 |
|
| 65 |
---
|
| 66 |
|
| 67 |
-
## 参数说明
|
| 68 |
|
| 69 |
在进入功能介绍之前,先了解几个关键参数,它们会影响所有搜索模式的结果质量。
|
| 70 |
|
|
@@ -92,7 +94,9 @@ thumbnail: >-
|
|
| 92 |
|
| 93 |
---
|
| 94 |
|
| 95 |
-
##
|
|
|
|
|
|
|
| 96 |
|
| 97 |
**适用场景:** 你知道某个标签的大概写法,但不确定拼写是否准确,或者只记得部分写法。
|
| 98 |
|
|
@@ -102,7 +106,7 @@ thumbnail: >-
|
|
| 102 |
|
| 103 |
> 关闭智能分词,确保整个输入作为一个整体进行语义匹配,不会被拆散。
|
| 104 |
|
| 105 |
-
### 示例
|
| 106 |
|
| 107 |
| 你的输入 | 实际标准标签 | 说明 |
|
| 108 |
|---|---|---|
|
|
@@ -114,13 +118,13 @@ thumbnail: >-
|
|
| 114 |
|
| 115 |
---
|
| 116 |
|
| 117 |
-
## 2. 概念模糊发散
|
| 118 |
|
| 119 |
**适用场景:** 你脑中有一个模糊的概念或风格意象,但不知道在 Danbooru 里对应哪些标签,希望系统帮你"发散"出相关的候选标签。
|
| 120 |
|
| 121 |
**建议参数:** Top K: 80~160 | 结果上限: 80 | 热度权重: 0.15 | **开启智能分词**
|
| 122 |
|
| 123 |
-
### 示例
|
| 124 |
|
| 125 |
**示例 1:「兔耳朵」**
|
| 126 |
|
|
@@ -154,7 +158,7 @@ thumbnail: >-
|
|
| 154 |
|
| 155 |
---
|
| 156 |
|
| 157 |
-
## 3. 输入描述查词
|
| 158 |
|
| 159 |
**适用场景:** 你能描述某个具体的事物、角色、场景,但不知道 Danbooru 的对应标签。可以使用中文或英文自然语言描述,也可以通过 IP 名称、角色外号来查找角色标签。
|
| 160 |
|
|
@@ -162,7 +166,7 @@ thumbnail: >-
|
|
| 162 |
|
| 163 |
> 关闭智能分词,使系统对你的整段描述做整体语义匹配,而不是拆词。
|
| 164 |
|
| 165 |
-
### 示例
|
| 166 |
|
| 167 |
**示例 1:用描述定位角色**
|
| 168 |
|
|
@@ -186,7 +190,7 @@ thumbnail: >-
|
|
| 186 |
|
| 187 |
---
|
| 188 |
|
| 189 |
-
## 4. 完整画面查找
|
| 190 |
|
| 191 |
**适用场景:** 你脑中已经有了一幅完整的画面,希望一次性把整段描述转换成尽可能多的 Danbooru 标签,用于 AI 绘画的完整 Prompt。
|
| 192 |
|
|
@@ -194,7 +198,7 @@ thumbnail: >-
|
|
| 194 |
|
| 195 |
> 开启智能分词:系统会自动拆分你的长句,提取其中的关键概念分别检索,再合并去重,覆盖尽可能多的画面元素。
|
| 196 |
|
| 197 |
-
### 示例
|
| 198 |
|
| 199 |
**示例 1:雨中奔跑的少女**
|
| 200 |
|
|
@@ -235,7 +239,7 @@ thumbnail: >-
|
|
| 235 |
|
| 236 |
---
|
| 237 |
|
| 238 |
-
## 5. 关联推荐(共现匹配)
|
| 239 |
|
| 240 |
关联推荐与前四项功能机制不同,它不依赖语义相似度,而是基于 **Danbooru 图库中标签的共现统计**:如果两个标签经常出现在同一张图上,就认为它们相关。
|
| 241 |
|
|
@@ -243,7 +247,7 @@ thumbnail: >-
|
|
| 243 |
|
| 244 |
关联推荐的得分是基于 NPMI(互信息归一化)计算的,能有效过滤掉那些只是因为自身热度高而频繁出现的标签。
|
| 245 |
|
| 246 |
-
### 适用场景
|
| 247 |
|
| 248 |
**场景 1:查看某种服饰/道具的常见搭配**
|
| 249 |
|
|
@@ -279,7 +283,7 @@ thumbnail: >-
|
|
| 279 |
|
| 280 |
---
|
| 281 |
|
| 282 |
-
## 6. 推荐擅长画师
|
| 283 |
|
| 284 |
推荐擅长画师与关联推荐类似,基于 **标签-画师 NPMI 共现数据**,但目标是推荐擅长绘制已选标签所描述元素的画师。
|
| 285 |
|
|
@@ -287,7 +291,7 @@ thumbnail: >-
|
|
| 287 |
|
| 288 |
**评分逻辑:** 对每个已选标签,计算该标签与画师的 NPMI 共现分,累加后乘以命中标签数加成,最终归一化显示为百分比。
|
| 289 |
|
| 290 |
-
### 适用场景
|
| 291 |
|
| 292 |
**场景 1:根据风格标签找画师**
|
| 293 |
|
|
@@ -303,7 +307,7 @@ thumbnail: >-
|
|
| 303 |
|
| 304 |
---
|
| 305 |
|
| 306 |
-
## 使用技巧
|
| 307 |
|
| 308 |
**技巧 1:先宽后窄**
|
| 309 |
先用完整画面查找拿到大量候选标签,再用分词筛选 chip 或手动去掉不相关的,然后勾选剩余标签触发关联推荐,补充遗漏细节。
|
|
@@ -330,7 +334,9 @@ thumbnail: >-
|
|
| 330 |
|
| 331 |
---
|
| 332 |
|
| 333 |
-
##
|
|
|
|
|
|
|
| 334 |
|
| 335 |
本工具同时提供 REST API,可集成到你自己的工作流中。
|
| 336 |
|
|
@@ -341,37 +347,61 @@ thumbnail: >-
|
|
| 341 |
POST /api/search
|
| 342 |
{
|
| 343 |
"query": "白色水手服的女孩",
|
| 344 |
-
"
|
| 345 |
-
"
|
| 346 |
-
"show_nsfw":
|
|
|
|
| 347 |
}
|
| 348 |
```
|
| 349 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 350 |
**关联推荐接口**
|
| 351 |
```
|
| 352 |
POST /api/related
|
| 353 |
{
|
| 354 |
"tags": ["white_serafuku", "sailor_collar"],
|
| 355 |
-
"limit":
|
| 356 |
-
"show_nsfw":
|
|
|
|
| 357 |
}
|
| 358 |
```
|
| 359 |
|
|
|
|
|
|
|
| 360 |
**推荐擅长画师接口**
|
| 361 |
```
|
| 362 |
POST /api/artists
|
| 363 |
{
|
| 364 |
"tags": ["1girl", "blue_hair", "school_uniform"],
|
| 365 |
"limit": 30,
|
| 366 |
-
"min_cooc": 3
|
|
|
|
| 367 |
}
|
| 368 |
```
|
| 369 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 370 |
详见:[API 文档](https://sakizuki-danboorusearch.hf.space/api/docs)
|
| 371 |
|
| 372 |
---
|
| 373 |
|
| 374 |
-
## MCP 接口
|
| 375 |
|
| 376 |
本工具提供 MCP(Model Context Protocol)服务,支持将搜索引擎直接接入 Claude Desktop、Cursor、Cherry Studio 等支持 MCP 协议的大模型客户端,让 AI 能够在对话中直接调用标签搜索能力。
|
| 377 |
|
|
@@ -387,7 +417,7 @@ https://sakizuki-danboorusearchonline.ms.show/mcp/mcp
|
|
| 387 |
|
| 388 |
以上两个端口提供完全相同的服务,互为备份
|
| 389 |
|
| 390 |
-
### 接入方法
|
| 391 |
|
| 392 |
**方法一:Claude Desktop**
|
| 393 |
|
|
@@ -417,7 +447,7 @@ npm install -g mcp-remote
|
|
| 417 |
}
|
| 418 |
```
|
| 419 |
|
| 420 |
-
保存后重启 Claude Desktop,工具列表中出现 `search_tags`、`get_related_tags` 和 `
|
| 421 |
|
| 422 |
> 注意:不要使用 `"url"` 字段直接填写地址,Claude Desktop 不支持该格式,会提示配置无效。也不推荐通过 `npx mcp-remote` 调用,首次执行时 `npx` 需要临时下载包,npm 缓存损坏时会导致启动失败。全局安装可规避此问题。
|
| 423 |
|
|
@@ -433,7 +463,7 @@ npm install -g mcp-remote
|
|
| 433 |
|
| 434 |
添加完成后重启客户端,或在 MCP 管理界面手动刷新连接。
|
| 435 |
|
| 436 |
-
### 可用工具
|
| 437 |
|
| 438 |
接入后 AI 可调用以下工具:
|
| 439 |
|
|
@@ -444,17 +474,33 @@ npm install -g mcp-remote
|
|
| 444 |
| 参数 | 默认值 | 说明 |
|
| 445 |
|---|---|---|
|
| 446 |
| `query` | — | 自然语言描述(必填,推荐中文)。支持空格/逗号/顿号显式分隔概念 |
|
| 447 |
-
| `
|
| 448 |
-
| `top_k` | `5` | 每个分词的语义召回数量,发散探索时调高至 80~160 |
|
| 449 |
-
| `limit` | `80` | 返回标签总数上限 |
|
| 450 |
-
| `popularity_weight` | `0.15` | 热度权重,控制高频标签的排名影响 |
|
| 451 |
-
| `show_nsfw` | `true` | 是否包含 NSFW 标签 |
|
| 452 |
| `category` | `"all"` | 标签类别筛选:`"all"` 全部、`"general"` 通用、`"character"` 角色、`"copyright"` 作品 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 453 |
|
| 454 |
**`get_related_tags`** — 共现关联推荐
|
| 455 |
|
| 456 |
给定一组已选标签,返回在 Danbooru 图库中与之最常共现的相关标签,基于 NPMI 评分,可有效过滤掉仅因自身热度高而频繁出现的标签。
|
| 457 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 458 |
**`get_artist_recommendations`** — 推荐擅长画师
|
| 459 |
|
| 460 |
给定一组标签,返回擅长绘制这些元素的画师列表,基于标签-画师 NPMI 共现数据排序。
|
|
@@ -468,7 +514,15 @@ npm install -g mcp-remote
|
|
| 468 |
|
| 469 |
返回字段:`artist`(画师名)、`cooc_count`(共现次数)、`post_count`(作品数)、`sources`(命中标签)、`top_tags`(该画师最常画的 10 个标签,含中文名)
|
| 470 |
|
| 471 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 472 |
|
| 473 |
接入后,你可以直接用自然语言告诉 AI 你的需求,AI 会自动选择合适的参数调用工具:
|
| 474 |
|
|
@@ -486,21 +540,22 @@ npm install -g mcp-remote
|
|
| 486 |
|
| 487 |
> 找「反乌托邦、赛博朋克、蒸汽朋克」的 General 类标签,只查通用特征不查作品名
|
| 488 |
|
| 489 |
-
|
| 490 |
-
|
| 491 |
-
为了让搜索更精准,在构造 `query` 时请注意以下几点:
|
| 492 |
|
| 493 |
-
|
| 494 |
|
| 495 |
-
|
| 496 |
|
| 497 |
-
|
| 498 |
|
| 499 |
-
|
| 500 |
|
| 501 |
-
|
| 502 |
|
| 503 |
-
|
|
|
|
|
|
|
|
|
|
| 504 |
|
| 505 |
---
|
| 506 |
|
|
@@ -516,7 +571,7 @@ HF Space 在无流量时会进入休眠状态,首次请求需要等待冷启
|
|
| 516 |
|
| 517 |
---
|
| 518 |
|
| 519 |
-
## 注意事项
|
| 520 |
|
| 521 |
- 本工具为 AI 辅助工具,检索结果未必 100% 准确
|
| 522 |
- 查找结果可能包含 NSFW 内容(默认隐藏)
|
|
@@ -527,7 +582,7 @@ HF Space 在无流量时会进入休眠状态,首次请求需要等待冷启
|
|
| 527 |
|
| 528 |
DanbooruSearch 会继续免费开放。如果这个小工具刚好帮你省了点时间,可以自愿赞赏一点维护成本;赞赏不解锁任何功能、不提高额度、不影响搜索结果,也不会获得特殊待遇。量力而行就好,未成年人请勿赞赏。
|
| 529 |
|
| 530 |
-
微信赞赏码
|
| 531 |
|
| 532 |
|
| 533 |
## 搜索统计
|
|
|
|
| 49 |
* 表格内置 Danbooru 维基释义悬浮提示,并提供前往原站的快捷链接。
|
| 50 |
|
| 51 |
|
| 52 |
+
## 快速了解
|
| 53 |
+
|
| 54 |
+
### 功能概览
|
| 55 |
|
| 56 |
本工具提供以下核心功能:
|
| 57 |
|
|
|
|
| 62 |
- [关联推荐](#5-关联推荐共现匹配)
|
| 63 |
- [推荐擅长画师](#6-推荐擅长画师)
|
| 64 |
|
| 65 |
+
前四项基于**语义向量匹配**,后两项基于**共现数据**(标签-标签共现与标签-画师共现)。
|
| 66 |
|
| 67 |
---
|
| 68 |
|
| 69 |
+
### 参数说明
|
| 70 |
|
| 71 |
在进入功能介绍之前,先了解几个关键参数,它们会影响所有搜索模式的结果质量。
|
| 72 |
|
|
|
|
| 94 |
|
| 95 |
---
|
| 96 |
|
| 97 |
+
## 功能介绍
|
| 98 |
+
|
| 99 |
+
### 1. 精确查词
|
| 100 |
|
| 101 |
**适用场景:** 你知道某个标签的大概写法,但不确定拼写是否准确,或者只记得部分写法。
|
| 102 |
|
|
|
|
| 106 |
|
| 107 |
> 关闭智能分词,确保整个输入作为一个整体进行语义匹配,不会被拆散。
|
| 108 |
|
| 109 |
+
#### 示例
|
| 110 |
|
| 111 |
| 你的输入 | 实际标准标签 | 说明 |
|
| 112 |
|---|---|---|
|
|
|
|
| 118 |
|
| 119 |
---
|
| 120 |
|
| 121 |
+
### 2. 概念模糊发散
|
| 122 |
|
| 123 |
**适用场景:** 你脑中有一个模糊的概念或风格意象,但不知道在 Danbooru 里对应哪些标签,希望系统帮你"发散"出相关的候选标签。
|
| 124 |
|
| 125 |
**建议参数:** Top K: 80~160 | 结果上限: 80 | 热度权重: 0.15 | **开启智能分词**
|
| 126 |
|
| 127 |
+
#### 示例
|
| 128 |
|
| 129 |
**示例 1:「兔耳朵」**
|
| 130 |
|
|
|
|
| 158 |
|
| 159 |
---
|
| 160 |
|
| 161 |
+
### 3. 输入描述查词
|
| 162 |
|
| 163 |
**适用场景:** 你能描述某个具体的事物、角色、场景,但不知道 Danbooru 的对应标签。可以使用中文或英文自然语言描述,也可以通过 IP 名称、角色外号来查找角色标签。
|
| 164 |
|
|
|
|
| 166 |
|
| 167 |
> 关闭智能分词,使系统对你的整段描述做整体语义匹配,而不是拆词。
|
| 168 |
|
| 169 |
+
#### 示例
|
| 170 |
|
| 171 |
**示例 1:用描述定位角色**
|
| 172 |
|
|
|
|
| 190 |
|
| 191 |
---
|
| 192 |
|
| 193 |
+
### 4. 完整画面查找
|
| 194 |
|
| 195 |
**适用场景:** 你脑中已经有了一幅完整的画面,希望一次性把整段描述转换成尽可能多的 Danbooru 标签,用于 AI 绘画的完整 Prompt。
|
| 196 |
|
|
|
|
| 198 |
|
| 199 |
> 开启智能分词:系统会自动拆分你的长句,提取其中的关键概念分别检索,再合并去重,覆盖尽可能多的画面元素。
|
| 200 |
|
| 201 |
+
#### 示例
|
| 202 |
|
| 203 |
**示例 1:雨中奔跑的少女**
|
| 204 |
|
|
|
|
| 239 |
|
| 240 |
---
|
| 241 |
|
| 242 |
+
### 5. 关联推荐(共现匹配)
|
| 243 |
|
| 244 |
关联推荐与前四项功能机制不同,它不依赖语义相似度,而是基于 **Danbooru 图库中标签的共现统计**:如果两个标签经常出现在同一张图上,就认为它们相关。
|
| 245 |
|
|
|
|
| 247 |
|
| 248 |
关联推荐的得分是基于 NPMI(互信息归一化)计算的,能有效过滤掉那些只是因为自身热度高而频繁出现的标签。
|
| 249 |
|
| 250 |
+
#### 适用场景
|
| 251 |
|
| 252 |
**场景 1:查看某种服饰/道具的常见搭配**
|
| 253 |
|
|
|
|
| 283 |
|
| 284 |
---
|
| 285 |
|
| 286 |
+
### 6. 推荐擅长画师
|
| 287 |
|
| 288 |
推荐擅长画师与关联推荐类似,基于 **标签-画师 NPMI 共现数据**,但目标是推荐擅长绘制已选标签所描述元素的画师。
|
| 289 |
|
|
|
|
| 291 |
|
| 292 |
**评分逻辑:** 对每个已选标签,计算该标签与画师的 NPMI 共现分,累加后乘以命中标签数加成,最终归一化显示为百分比。
|
| 293 |
|
| 294 |
+
#### 适用场景
|
| 295 |
|
| 296 |
**场景 1:根据风格标签找画师**
|
| 297 |
|
|
|
|
| 307 |
|
| 308 |
---
|
| 309 |
|
| 310 |
+
### 使用技巧
|
| 311 |
|
| 312 |
**技巧 1:先宽后窄**
|
| 313 |
先用完整画面查找拿到大量候选标签,再用分词筛选 chip 或手动去掉不相关的,然后勾选剩余标签触发关联推荐,补充遗漏细节。
|
|
|
|
| 334 |
|
| 335 |
---
|
| 336 |
|
| 337 |
+
## 接口方法
|
| 338 |
+
|
| 339 |
+
### REST API
|
| 340 |
|
| 341 |
本工具同时提供 REST API,可集成到你自己的工作流中。
|
| 342 |
|
|
|
|
| 347 |
POST /api/search
|
| 348 |
{
|
| 349 |
"query": "白色水手服的女孩",
|
| 350 |
+
"search_mode": "full_scene",
|
| 351 |
+
"category": "all",
|
| 352 |
+
"show_nsfw": true,
|
| 353 |
+
"include_wiki": false
|
| 354 |
}
|
| 355 |
```
|
| 356 |
|
| 357 |
+
`search_mode` 使用预设检索策略,不再直接暴露 `top_k`、`limit`、`popularity_weight`、`use_segmentation` 等底层参数:
|
| 358 |
+
|
| 359 |
+
| 模式 | 适用场景 |
|
| 360 |
+
|---|---|
|
| 361 |
+
| `full_scene` | 默认模式。用于完整画面、多人/多元素描述,返回可直接使用的 prompt |
|
| 362 |
+
| `concept_explore` | 开放式概念发散,例如“兔耳朵都有哪些” |
|
| 363 |
+
| `subject_describe` | 单一角色、物品或视觉概念描述,例如“EVA中蓝发的驾驶员” |
|
| 364 |
+
| `precise_lookup` | 精确查词或拼写���错,例如 `selafuku` |
|
| 365 |
+
|
| 366 |
+
`category` 可选:`all`、`general`、`character`、`copyright`。搜索响应包含 `prompt`、`keywords`、`results`,当 `include_wiki=true` 时,每条结果会附带 `wiki` 字段。
|
| 367 |
+
|
| 368 |
**关联推荐接口**
|
| 369 |
```
|
| 370 |
POST /api/related
|
| 371 |
{
|
| 372 |
"tags": ["white_serafuku", "sailor_collar"],
|
| 373 |
+
"limit": 50,
|
| 374 |
+
"show_nsfw": true,
|
| 375 |
+
"include_wiki": false
|
| 376 |
}
|
| 377 |
```
|
| 378 |
|
| 379 |
+
响应为 `results` 列表;如果输入标签拼写错误但可被纠正,会额外返回 `correction_note` 和 `corrections`。
|
| 380 |
+
|
| 381 |
**推荐擅长画师接口**
|
| 382 |
```
|
| 383 |
POST /api/artists
|
| 384 |
{
|
| 385 |
"tags": ["1girl", "blue_hair", "school_uniform"],
|
| 386 |
"limit": 30,
|
| 387 |
+
"min_cooc": 3,
|
| 388 |
+
"show_nsfw": true
|
| 389 |
}
|
| 390 |
```
|
| 391 |
|
| 392 |
+
响应字段:`artist`(画师名)、`cooc_count`(共现次数)、`post_count`(作品数)、`sources`(命中标签)、`top_tags`(该画师最常画的 10 个标签,含中文名)。
|
| 393 |
+
|
| 394 |
+
**健康检查接口**
|
| 395 |
+
|
| 396 |
+
```
|
| 397 |
+
GET /api/health
|
| 398 |
+
```
|
| 399 |
+
|
| 400 |
详见:[API 文档](https://sakizuki-danboorusearch.hf.space/api/docs)
|
| 401 |
|
| 402 |
---
|
| 403 |
|
| 404 |
+
### MCP 接口
|
| 405 |
|
| 406 |
本工具提供 MCP(Model Context Protocol)服务,支持将搜索引擎直接接入 Claude Desktop、Cursor、Cherry Studio 等支持 MCP 协议的大模型客户端,让 AI 能够在对话中直接调用标签搜索能力。
|
| 407 |
|
|
|
|
| 417 |
|
| 418 |
以上两个端口提供完全相同的服务,互为备份
|
| 419 |
|
| 420 |
+
#### 接入方法
|
| 421 |
|
| 422 |
**方法一:Claude Desktop**
|
| 423 |
|
|
|
|
| 447 |
}
|
| 448 |
```
|
| 449 |
|
| 450 |
+
保存后重启 Claude Desktop,工具列表中出现 `search_tags`、`get_related_tags`、`get_artist_recommendations`、`get_anima_format` 和 `get_newbie_format` 即为成功。
|
| 451 |
|
| 452 |
> 注意:不要使用 `"url"` 字段直接填写地址,Claude Desktop 不支持该格式,会提示配置无效。也不推荐通过 `npx mcp-remote` 调用,首次执行时 `npx` 需要临时下载包,npm 缓存损坏时会导致启动失败。全局安装可规避此问题。
|
| 453 |
|
|
|
|
| 463 |
|
| 464 |
添加完成后重启客户端,或在 MCP 管理界面手动刷新连接。
|
| 465 |
|
| 466 |
+
#### 可用工具
|
| 467 |
|
| 468 |
接入后 AI 可调用以下工具:
|
| 469 |
|
|
|
|
| 474 |
| 参数 | 默认值 | 说明 |
|
| 475 |
|---|---|---|
|
| 476 |
| `query` | — | 自然语言描述(必填,推荐中文)。支持空格/逗号/顿号显式分隔概念 |
|
| 477 |
+
| `search_mode` | `"full_scene"` | 检索策略:`full_scene`、`concept_explore`、`subject_describe`、`precise_lookup` |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 478 |
| `category` | `"all"` | 标签类别筛选:`"all"` 全部、`"general"` 通用、`"character"` 角色、`"copyright"` 作品 |
|
| 479 |
+
| `show_nsfw` | `true` | 是否包含 NSFW 标签 |
|
| 480 |
+
| `include_wiki` | `false` | 是否在结果中附带 Danbooru wiki 释义 |
|
| 481 |
+
|
| 482 |
+
`search_mode` 的选择规则:
|
| 483 |
+
|
| 484 |
+
- `full_scene`:默认值。用户描述的是一张具体画面时使用,即使描述里有很多元素,也仍然属于完整画面。
|
| 485 |
+
- `concept_explore`:用户想浏览某个概念下有哪些候选标签时使用,结果更多,token 消耗更高。
|
| 486 |
+
- `subject_describe`:只描述一个单一视觉概念、角色或物品时使用;多元素画面不要用这个模式。
|
| 487 |
+
- `precise_lookup`:用于拼写纠错或接近精确的标签查询。
|
| 488 |
+
|
| 489 |
+
返回 JSON 包含:`prompt`(逗号分隔标签)、`keywords`(检索关键词)、`results`(标签结果)。每条结果包含 `tag`、`cn_name`,当 `include_wiki=true` 时包含 `wiki`。
|
| 490 |
|
| 491 |
**`get_related_tags`** — 共现关联推荐
|
| 492 |
|
| 493 |
给定一组已选标签,返回在 Danbooru 图库中与之最常共现的相关标签,基于 NPMI 评分,可有效过滤掉仅因自身热度高而频繁出现的标签。
|
| 494 |
|
| 495 |
+
| 参数 | 默认值 | 说明 |
|
| 496 |
+
|---|---|---|
|
| 497 |
+
| `tags` | — | 标签列表(必填,Danbooru 英文标签名) |
|
| 498 |
+
| `limit` | `50` | 最多返回关联标签数 |
|
| 499 |
+
| `show_nsfw` | `true` | 是否包含 NSFW 标签 |
|
| 500 |
+
| `include_wiki` | `false` | 是否在结果中附带 Danbooru wiki 释义 |
|
| 501 |
+
|
| 502 |
+
返回字段:`tag`、`cn_name`、`sources`,当 `include_wiki=true` 时包含 `wiki`。如果输入标签拼写错误但可纠正,会返回纠错说明。
|
| 503 |
+
|
| 504 |
**`get_artist_recommendations`** — 推荐擅长画师
|
| 505 |
|
| 506 |
给定一组标签,返回擅长绘制这些元素的画师列表,基于标签-画师 NPMI 共现数据排序。
|
|
|
|
| 514 |
|
| 515 |
返回字段:`artist`(画师名)、`cooc_count`(共现次数)、`post_count`(作品数)、`sources`(命中标签)、`top_tags`(该画师最常画的 10 个标签,含中文名)
|
| 516 |
|
| 517 |
+
**`get_anima_format`** — 获取 Anima 提示词格式规范
|
| 518 |
+
|
| 519 |
+
当用户需要把检索到的标签整理为 Anima 模型的 Hybrid 提示词时调用。返回完整格式说明,包括硬标签层、空间叙事层、标签格式化、权重语法、多人物防串扰和中文解释规则。
|
| 520 |
+
|
| 521 |
+
**`get_newbie_format`** — 获取 NewBie XML 提示词格式规范
|
| 522 |
+
|
| 523 |
+
当用户需要输出 NewBie 模型 XML 提示词时调用。返回 XML 结构、字段职责、标签处理规则、多人角色分组和 caption 写作要求。
|
| 524 |
+
|
| 525 |
+
#### 调用示例
|
| 526 |
|
| 527 |
接入后,你可以直接用自然语言告诉 AI 你的需求,AI 会自动选择合适的参数调用工具:
|
| 528 |
|
|
|
|
| 540 |
|
| 541 |
> 找「反乌托邦、赛博朋克、蒸汽朋克」的 General 类标签,只查通用特征不查作品名
|
| 542 |
|
| 543 |
+
> 按 Anima 模型格式,把这些标签整理成 Hybrid 提示词
|
|
|
|
|
|
|
| 544 |
|
| 545 |
+
> 按 NewBie XML 格式输出这个角色场景的提示词
|
| 546 |
|
| 547 |
+
#### 服务使用说明
|
| 548 |
|
| 549 |
+
HF Space 在无流量时会进入休眠状态,首次请求需要等待冷启动(约 30~60 秒)。若 AI 调用超时,稍等片刻后重试即可,或先访问 [Space 页面](https://huggingface.co/spaces/SAkizuki/DanbooruSearch) 将其唤醒。
|
| 550 |
|
| 551 |
+
任何用户都可以免费将本服务的API或MCP接口接入自己的私有或公开服务中。
|
| 552 |
|
| 553 |
+
**如果接入公开服务,务必在主页提供链接到本服务主地址的友情链接**:
|
| 554 |
|
| 555 |
+
```
|
| 556 |
+
URL: https://huggingface.co/spaces/SAkizuki/DanbooruSearch
|
| 557 |
+
简介: 基于语义匹配的Danbooru标签搜索引擎,支持多维匹配与共现关联推荐。
|
| 558 |
+
```
|
| 559 |
|
| 560 |
---
|
| 561 |
|
|
|
|
| 571 |
|
| 572 |
---
|
| 573 |
|
| 574 |
+
## 使用注意事项
|
| 575 |
|
| 576 |
- 本工具为 AI 辅助工具,检索结果未必 100% 准确
|
| 577 |
- 查找结果可能包含 NSFW 内容(默认隐藏)
|
|
|
|
| 582 |
|
| 583 |
DanbooruSearch 会继续免费开放。如果这个小工具刚好帮你省了点时间,可以自愿赞赏一点维护成本;赞赏不解锁任何功能、不提高额度、不影响搜索结果,也不会获得特殊待遇。量力而行就好,未成年人请勿赞赏。
|
| 584 |
|
| 585 |
+

|
| 586 |
|
| 587 |
|
| 588 |
## 搜索统计
|
mcp_server.py
CHANGED
|
@@ -590,25 +590,80 @@ prompt 内部分两层组装,同一语义不跨层重复:
|
|
| 590 |
|
| 591 |
---
|
| 592 |
|
| 593 |
-
##
|
|
|
|
|
|
|
| 594 |
|
| 595 |
组装前必须消解以下冲突,逐项通过后才输出:
|
| 596 |
|
| 597 |
-
|
| 598 |
-
|
| 599 |
-
|
|
| 600 |
-
|
|
| 601 |
-
| `from
|
| 602 |
-
| `from
|
| 603 |
-
| `
|
| 604 |
-
|
|
| 605 |
-
|
|
| 606 |
-
|
| 607 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 608 |
|
| 609 |
-
|
| 610 |
|
| 611 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 612 |
|
| 613 |
---
|
| 614 |
|
|
@@ -640,7 +695,7 @@ prompt 内部分两层组装,同一语义不跨层重复:
|
|
| 640 |
### 多人物详细结构(防串扰核心规则)
|
| 641 |
|
| 642 |
```
|
| 643 |
-
[quality/meta/safety], [2girls / 1girl 1boy],
|
| 644 |
[character_A name], [series_A], [A hair], [A eyes], [A clothing], [A body], [A expression],
|
| 645 |
[character_B name], [series_B], [B hair], [B eyes], [B clothing], [B body], [B expression],
|
| 646 |
[shared pose/action], [background], [atmosphere], [composition], [@artist]
|
|
@@ -672,6 +727,9 @@ prompt 内部分两层组装,同一语义不跨层重复:
|
|
| 672 |
|
| 673 |
### 数据集标签(非动漫风格时的备选)
|
| 674 |
|
|
|
|
|
|
|
|
|
|
| 675 |
在提示词最开头另起一行使用,可大幅改变风格倾向:
|
| 676 |
- `ye-pop`:LAION-POP 数据集风格,偏抽象/油画/概念艺术
|
| 677 |
- `deviantart`:DeviantArt 数据集风格,偏数字绘画/插画
|
|
@@ -695,7 +753,7 @@ masterpiece, best quality, very aesthetic, score_7, safe,
|
|
| 695 |
## 权重语法
|
| 696 |
|
| 697 |
Anima 支持 Prompt Weighting,但需要的权重值 **高于 SDXL**:
|
| 698 |
-
|
| 699 |
- 正常强调:`(tag:2)` 起步
|
| 700 |
- 强强调:`(tag:3)` 到 `(tag:5)`
|
| 701 |
- 权重取值范围:2 ~ 5
|
|
@@ -719,16 +777,12 @@ Anima 支持 Prompt Weighting,但需要的权重值 **高于 SDXL**:
|
|
| 719 |
Anima 在多人场景中极易发生特征混淆。必须严格遵守:
|
| 720 |
|
| 721 |
1. **角色属性按角色分组排列**。同一角色的发型、瞳色、服装、体型连续出现后再切换。严禁交叉排列(如 `blue hair, red hair, short hair, long hair`)。
|
| 722 |
-
|
| 723 |
-
|
| 724 |
-
|
| 725 |
-
|
| 726 |
-
|
| 727 |
-
|
| 728 |
-
|
| 729 |
-
5. **角色外观在硬锚点层中充分描述**。官方文档明确指出:先命名角色,再描述其外观。仅列出角色名而不描述外观会让模型困惑。
|
| 730 |
-
|
| 731 |
-
6. **空间叙事层中不重复标签内容**——空间叙事层补充空间关系、互动动作、光影氛围、构图取景。
|
| 732 |
|
| 733 |
---
|
| 734 |
|
|
|
|
| 590 |
|
| 591 |
---
|
| 592 |
|
| 593 |
+
## 标签质量检查(输出前必做)
|
| 594 |
+
|
| 595 |
+
### 冲突消解
|
| 596 |
|
| 597 |
组装前必须消解以下冲突,逐项通过后才输出:
|
| 598 |
|
| 599 |
+
#### 视角互斥示例
|
| 600 |
+
|
| 601 |
+
| 标签A | 标签B | 原因 |
|
| 602 |
+
|---|---|---|
|
| 603 |
+
| `from front` | `from behind` | 物理矛盾 |
|
| 604 |
+
| `from above` | `from below` | 物理矛盾 |
|
| 605 |
+
| `looking at viewer` | `facing away` | 视线矛盾 |
|
| 606 |
+
| `pov` | `full body` | POV 不可能看到自己全身 |
|
| 607 |
+
| `close-up` | `full body` | 景别矛盾 |
|
| 608 |
+
|
| 609 |
+
#### 身份互斥示例
|
| 610 |
+
|
| 611 |
+
| 标签A | 标签B | 原因 |
|
| 612 |
+
|---|---|---|
|
| 613 |
+
| `solo` | `hetero` / `1boy` / `yuri` | 单人不存在互动 |
|
| 614 |
+
| `femdom` | `male-on-female rape` | 逻辑矛盾(主导方冲突) |
|
| 615 |
+
| `sleeping` / `unconscious` | `looking at viewer` | 无意识不可能直视 |
|
| 616 |
+
| `blindfold` | `heart-shaped pupils` / `rolling eyes` | 看不到眼睛 |
|
| 617 |
+
|
| 618 |
+
#### 服装互斥示例
|
| 619 |
+
|
| 620 |
+
| 标签A | 标签B | 原因 |
|
| 621 |
+
|---|---|---|
|
| 622 |
+
| `completely nude` | 任何具体服装标签 | 全裸不穿衣 |
|
| 623 |
+
| `pantyhose` | `barefoot` | 穿了丝袜不可能光脚(除非 `torn pantyhose`) |
|
| 624 |
+
| `blindfold` | `glasses` | 物理冲突 |
|
| 625 |
+
| 内衣套装 (`cat lingerie`, `lace lingerie`, `babydoll`, `negligee`, `chemise` 等) | `no panties` / `bottomless` | 内衣套装隐含包含内裤,模型优先解析套装忽略暴露标签;需暴露时拆为单件(`cat bra` + `no panties`) |
|
| 626 |
|
| 627 |
+
> **不互斥**:外衣/制服(`maid outfit`、`school uniform`、`bunny suit`、`sailor uniform` 等)与 `no panties` / `bottomless` 完全兼容——穿制服不穿内裤 = 合理场景。
|
| 628 |
|
| 629 |
+
#### 动作互斥示例
|
| 630 |
+
|
| 631 |
+
| 标签A | 标签B | 原因 |
|
| 632 |
+
|---|---|---|
|
| 633 |
+
| `standing sex` | `lying` / `on back` | 体位矛盾 |
|
| 634 |
+
| `missionary` | `doggystyle` | 不可能同时两个体位 |
|
| 635 |
+
| `cowgirl position` | `prone bone` | 体位矛盾 |
|
| 636 |
+
|
| 637 |
+
#### 细节过多互斥示例
|
| 638 |
+
|
| 639 |
+
同一身体部位同时堆叠多个细节标签会导致模型过度渲染,产生畸形。**每部位细节标签 ≤2 个,且不能互斥。**
|
| 640 |
+
|
| 641 |
+
| 部位 | 矛盾组合 | 原因 |
|
| 642 |
+
|---|---|---|
|
| 643 |
+
| 脚趾 | `spread toes` + `toe scrunch` / `toes curling` | 舒展 vs 蜷缩,物理矛盾 |
|
| 644 |
+
| 脚趾 | `spread toes` + `feet together` | 分趾需要空间,合拢则压缩 |
|
| 645 |
+
| 手指 | `spread fingers` + `clenched fist` / `gripping` | 张开 vs 握拳 |
|
| 646 |
+
| 胸部 | `bouncing breasts` + `breasts squeeze together` | 弹跳 vs 挤压,动态矛盾 |
|
| 647 |
+
| 嘴巴 | `open mouth` + `clenched teeth` / `closed mouth` | 张嘴 vs 闭嘴 |
|
| 648 |
+
| 眼睛 | `rolling eyes` + `looking at viewer` | 翻白眼 vs 直视 |
|
| 649 |
+
| 腿部 | `spread legs` + `legs together` | 分开 vs 并拢 |
|
| 650 |
+
| 足部整体 | 3 个以上足部标签(如 `foot focus` + `footjob` + `toe scrunch` + `spread toes`) | 过度细化导致脚趾/脚掌畸形 |
|
| 651 |
+
|
| 652 |
+
|
| 653 |
+
### 视线保护规则
|
| 654 |
+
|
| 655 |
+
**单人场景下**,除非用户明确要求「背影/背对/转身离开/侧脸/profile/from behind」等具体视线限制,否则必须注入 `direct eye contact, facing viewer`。
|
| 656 |
+
**两人及以上场景**:不强制注入 `direct eye contact`。根据角色间互动关系选择合适的视线标签(如 `looking at another`),或由用户明确指定。
|
| 657 |
+
|
| 658 |
+
### 标签数量
|
| 659 |
+
|
| 660 |
+
组装前按照下面的表格检查标签数量,严禁输出过多标签。过多标签会破坏模型的注意力。
|
| 661 |
+
|
| 662 |
+
| 场景复杂度 | 总标签数 |
|
| 663 |
+
|---|---|
|
| 664 |
+
| 简单 | 16-30 |
|
| 665 |
+
| 标准 | 22-38 |
|
| 666 |
+
| 复杂(多人/特殊主题/剧情主视觉) | 30-48 |
|
| 667 |
|
| 668 |
---
|
| 669 |
|
|
|
|
| 695 |
### 多人物详细结构(防串扰核心规则)
|
| 696 |
|
| 697 |
```
|
| 698 |
+
[quality/meta/safety], [2girls / 1girl 1boy],[多人互动标签,例如:duo, holding each other's hands...]
|
| 699 |
[character_A name], [series_A], [A hair], [A eyes], [A clothing], [A body], [A expression],
|
| 700 |
[character_B name], [series_B], [B hair], [B eyes], [B clothing], [B body], [B expression],
|
| 701 |
[shared pose/action], [background], [atmosphere], [composition], [@artist]
|
|
|
|
| 727 |
|
| 728 |
### 数据集标签(非动漫风格时的备选)
|
| 729 |
|
| 730 |
+
当且仅当用户明确要求抽象、油画、概���艺术、数字绘画、插画风格,且 **明确要求排除动漫风格** 时才可用。
|
| 731 |
+
如果用户仅要求油画风格,但没有明确说明排除动漫风格,仍然不能使用。
|
| 732 |
+
|
| 733 |
在提示词最开头另起一行使用,可大幅改变风格倾向:
|
| 734 |
- `ye-pop`:LAION-POP 数据集风格,偏抽象/油画/概念艺术
|
| 735 |
- `deviantart`:DeviantArt 数据集风格,偏数字绘画/插画
|
|
|
|
| 753 |
## 权重语法
|
| 754 |
|
| 755 |
Anima 支持 Prompt Weighting,但需要的权重值 **高于 SDXL**:
|
| 756 |
+
- 慎用权重:一段提示词中最多用权重强调4个标签,少而精,只强调最重要的部分
|
| 757 |
- 正常强调:`(tag:2)` 起步
|
| 758 |
- 强强调:`(tag:3)` 到 `(tag:5)`
|
| 759 |
- 权重取值范围:2 ~ 5
|
|
|
|
| 777 |
Anima 在多人场景中极易发生特征混淆。必须严格遵守:
|
| 778 |
|
| 779 |
1. **角色属性按角色分组排列**。同一角色的发型、瞳色、服装、体型连续出现后再切换。严禁交叉排列(如 `blue hair, red hair, short hair, long hair`)。
|
| 780 |
+
2. **互动词必须紧跟在人数后**。如果画中有多个人物,必须在人数声明完毕后,**立即** 写下他们的互动行为。推荐写法:2girls, duo, holding each other's hands,,然后开始分开描述每位美少女的容貌和衣服。
|
| 781 |
+
3. **空间叙事层中为每个角色写一句"外观锚定短语"**。格式:`CharacterName with [key features]... do something...` 明确指出视觉归属。这比仅靠标签的防串扰效果强得多。
|
| 782 |
+
4. **使用空间方位词分离角色**:left/right/foreground/background。
|
| 783 |
+
5. **为易混淆特征使用权重**:`(blue hair:2)`, `(red hair:2)`。
|
| 784 |
+
6. **角色外观在硬锚点层中充分描述**。官方文档明确指出:先命名角色,再描述其外观。仅列出角色名而不描述外观会让模型困惑。
|
| 785 |
+
7. **空间叙事层中不重复标签内容**——空间叙事层补充空间关系、互动动作、光影氛围、构图取景。
|
|
|
|
|
|
|
|
|
|
|
|
|
| 786 |
|
| 787 |
---
|
| 788 |
|