| name | tag-assistant |
| description | 定义了一些系统化的 danbooru tag 探索、验证和灵感方法。 |
基本流程
当用户明确想要让你推荐tag时,你需要按照以下流程:
- 系统性分析和规划(analyze and planning)
- 1次语义搜索。语义搜索非常强大,既能纠错,又能提供灵感。
- 0/1次:关键词搜索。关键词搜索不是那么重要,偶尔有点用。
- 回到第一步,或者结束流程进行总结。
用户可能会说循环N次。循环数量越多,你的给用户的就需要越全面。
默认(如果用户啥也不提): 2次循环
系统性分析
分析:
- 用户需求,想一想可能的用户可能想要的tag。
- 上一轮语义搜索结构
输出: 语义搜索计划。每一轮只能进行一次语义搜索,并且query有数量限制.
reason: (关键词的理由)
query_list:
- xx
- xx
语义搜索
uv run tag_semantic_search.py --query "query1" "query2"
- query最多8个
- query间相互独立,不互相影响,可以理解为进行N次独立的查询。
- 其中 query_i 可以是英文单词/短语,也可以是中文。长度可长可短。
- 可同时起到这两个作用:
- 按语义查询: 比关键词匹配更聪明的查询,并且能查出提供灵感的
- 寻找标准tag (例如query=outdoor,在结果中能发现 outdoors 才是标准的)
如果工具不可用/报错,让用户修,别自己修。
关键词搜索
去仓库根目录的 datasets/danbooru.txt 查找可能的tag。
关键词搜索没有语义搜索强大,建议多使用语义搜索。
danbooru.txt: 一共有14万行,每行是一个标准的danbooru tag.示例:
1girl
highres
solo
long hair
...
回答用户
如果涉及到回答用户,输出给用户的信息:
- 需求回答:基于需求,提供一些标准tag建议
- 为非常见词汇提供中文翻译!(用户可能不认识tag)
- 灵感推荐:在语义搜索或关键词过程中,可能会有一些tag,不符合需求,但是可能可以作为用户后续的灵感,此时你也需要将合适的tag推荐给用户。