背景
想和 @niangao2331 一起把 WebUI 「数据集打标」(侧栏 Tagger 页,批量 WD/CL 打标)这块做得更顺手。你之前修的 #23(整合包 Download-Anima-Model.bat 路径套娃)已经帮了大忙,如果你愿意继续盯这块,我们就以这个 Issue 当协作白板:先对齐目标,再各自 PR 合进来。
有想法、想改范围,直接在下面评论就好。
怎么协作(团队内约定)
- 开发方式:fork → 自己的分支(例如
feature/tagger)→ PR 到 main;main 我们这边 merge,避免多人直接推。
- 范围说明:这个 Issue 只管 「数据集打标」,侧栏 「标签编辑」(
mikazuki/dataset-tag-editor/,Gradio 那块)是另一条线,暂时别绑在一起,免得互相踩脚。
- 目录契约:
mikazuki/tagger/、API、schema 都可以大胆加;根目录启动脚本、python_embeded/、SD-Trainer/ 这类路径见 docs/repo-layout.md,动之前咱们说一声就行。
- 发挥空间:Phase 1 下面的条目是「当前最想做的」,不是死规定;UX、模型列表、文档、测试你看着办,只要不拆训练核心、不动上面说的契约路径,后面 Phase 2 也可以你自己拆 Issue。
眼下想一起做的(Phase 1)
1. 默认模型选型和固化
- Danbooru 向:一起看下现在哪套 WD 当默认最合适(现状是
wd14-convnextv2-v2 / SmilingWolf/wd-v1-4-convnextv2-tagger-v2,你有更好选型可以直接换)。
- 自然语言向:希望至少接一种 caption/NL 模型(BLIP、Florence 或其他 HF 上的都行),和 Danbooru 标签在 UI 和输出上区分清楚。
- 动默认模型时,顺带对齐:
mikazuki/tagger/defaults.py、schema 默认项、scripts/prefetch_default_tagger.py、build-scripts/build_portable.ps1 预下载列表。
2. 模型下载进度
小白第一次下 HF 模型时经常不知道在干嘛。目标:WebUI 或控制台能看到进度(字节或分文件阶段都行)。
实现上你定:huggingface_hub 回调、SSE/WebSocket、或给 mikazuki/app/api.py 加个轻量状态接口都行,别卡住训练那条 API 就好。
3. API 打标(例如 Gemini)
- 和本地 ONNX/WD 并列的云端路径,首期 Gemini 多模态就挺好。
- Key 建议走环境变量或本地
config/(别进 git);超时、限速、失败重试、费用提示可以按你习惯来。
- 输出继续写图片旁的
.txt,和现有训练数据集习惯一致。
以后有空可以再聊(Phase 2+)
- 任务队列 / 暂停取消 / 已打标跳过策略
- 整合包体积 vs 离线模型包策略
- 打标结果预览、抽样质检
- 和「标签编辑」页只读衔接(不耦合 Gradio)
代码地图:这块 mainly 动这里 ✅
| 区域 |
路径 |
说明 |
| 打标核心 |
mikazuki/tagger/ |
interrogator.py、interrogators/*、format.py、dbimutils.py、defaults.py |
| 预下载 |
scripts/prefetch_default_tagger.py |
安装/启动/构建时预拉默认模型 |
| API |
mikazuki/app/api.py |
POST /interrogate 及进度/状态类接口 |
| 请求模型 |
mikazuki/app/models.py |
TaggerInterrogateRequest 扩展 |
| 表单 Schema |
mikazuki/schema/tagger.ts |
下拉、默认值、新开关 |
| 打标页文案 |
frontend/dist/tagger.html、frontend/dist/assets/tagger.html.*.js |
说明区、进度 UI(patch 约定见 frontend/VENDOR.md) |
| 文档 |
README-zh.md 打标 FAQ |
用户可见说明 |
| 整合包构建 |
build-scripts/build_portable.ps1 |
内置模型、[3/6] 预下载 |
| 安装/启动 |
install-cn.ps1、install.ps1、run_gui_source.bat、scripts/portable/launch_portable.bat |
预取逻辑可扩展 |
入口:POST /interrogate → on_interrogate()(mikazuki/tagger/interrogator.py),后台跑,标签写同目录 .txt。
缓存:HF_HOME=huggingface → huggingface/hub/(和 wd14.py 里 hf_hub_download 一致)。
尽量少碰 / 动之前喊一声 ⚠️
| 路径 |
说明 |
mikazuki/dataset-tag-editor/ |
标签编辑,另一条产品线 |
vendor/sd-scripts/ 等训练 |
训练引擎 |
gui.py、train_monitor/ |
全局主流程,除非真要挂服务 |
run_gui.bat、python_embeded/、SD-Trainer/ 目录名 |
整合包契约 |
start_autodl.sh(根路径) |
云镜像写死 |
legacy/cli/tagger.ps1 等 |
旧 CLI,参考即可 |
frontend/dist/ 没有上游源码构建权时,可以 patch 预编译 JS/HTML(记得记 hash,见 frontend/VENDOR.md);要大改 UI 咱们先对一下。
当前 main 上的基线(方便你 fork)
- 默认 Danbooru:
wd14-convnextv2-v2(revision=v2.0)
- 源码:
install-cn.ps1 + run_gui.bat 会跑 prefetch_default_tagger.py --if-missing
- 整合包构建会打进
huggingface/hub/ 默认模型
相关:6130033 及之后 CONTRIBUTORS 更新。
Phase 1 做完时咱们怎么算「可以 merge」
@niangao2331 有兴趣的话直接在这个 Issue 里回复分工或开分支;PR 里写 Fixes #40 会自动关联。有卡点 @wochenlong 或群里喊一声就行。
背景
想和 @niangao2331 一起把 WebUI 「数据集打标」(侧栏 Tagger 页,批量 WD/CL 打标)这块做得更顺手。你之前修的 #23(整合包
Download-Anima-Model.bat路径套娃)已经帮了大忙,如果你愿意继续盯这块,我们就以这个 Issue 当协作白板:先对齐目标,再各自 PR 合进来。有想法、想改范围,直接在下面评论就好。
怎么协作(团队内约定)
feature/tagger)→ PR 到main;main我们这边 merge,避免多人直接推。mikazuki/dataset-tag-editor/,Gradio 那块)是另一条线,暂时别绑在一起,免得互相踩脚。mikazuki/tagger/、API、schema 都可以大胆加;根目录启动脚本、python_embeded/、SD-Trainer/这类路径见docs/repo-layout.md,动之前咱们说一声就行。眼下想一起做的(Phase 1)
1. 默认模型选型和固化
wd14-convnextv2-v2/SmilingWolf/wd-v1-4-convnextv2-tagger-v2,你有更好选型可以直接换)。mikazuki/tagger/defaults.py、schema 默认项、scripts/prefetch_default_tagger.py、build-scripts/build_portable.ps1预下载列表。2. 模型下载进度
小白第一次下 HF 模型时经常不知道在干嘛。目标:WebUI 或控制台能看到进度(字节或分文件阶段都行)。
实现上你定:
huggingface_hub回调、SSE/WebSocket、或给mikazuki/app/api.py加个轻量状态接口都行,别卡住训练那条 API 就好。3. API 打标(例如 Gemini)
config/(别进 git);超时、限速、失败重试、费用提示可以按你习惯来。.txt,和现有训练数据集习惯一致。以后有空可以再聊(Phase 2+)
代码地图:这块 mainly 动这里 ✅
mikazuki/tagger/interrogator.py、interrogators/*、format.py、dbimutils.py、defaults.pyscripts/prefetch_default_tagger.pymikazuki/app/api.pyPOST /interrogate及进度/状态类接口mikazuki/app/models.pyTaggerInterrogateRequest扩展mikazuki/schema/tagger.tsfrontend/dist/tagger.html、frontend/dist/assets/tagger.html.*.jsfrontend/VENDOR.md)README-zh.md打标 FAQbuild-scripts/build_portable.ps1install-cn.ps1、install.ps1、run_gui_source.bat、scripts/portable/launch_portable.bat入口:
POST /interrogate→on_interrogate()(mikazuki/tagger/interrogator.py),后台跑,标签写同目录.txt。缓存:
HF_HOME=huggingface→huggingface/hub/(和wd14.py里hf_hub_download一致)。尽量少碰 / 动之前喊一声⚠️
mikazuki/dataset-tag-editor/vendor/sd-scripts/等训练gui.py、train_monitor/run_gui.bat、python_embeded/、SD-Trainer/目录名start_autodl.sh(根路径)legacy/cli/tagger.ps1等frontend/dist/没有上游源码构建权时,可以 patch 预编译 JS/HTML(记得记 hash,见frontend/VENDOR.md);要大改 UI 咱们先对一下。当前 main 上的基线(方便你 fork)
wd14-convnextv2-v2(revision=v2.0)install-cn.ps1+run_gui.bat会跑prefetch_default_tagger.py --if-missinghuggingface/hub/默认模型相关:
6130033及之后 CONTRIBUTORS 更新。Phase 1 做完时咱们怎么算「可以 merge」
dataset-tag-editor、run_gui.bat契约还在@niangao2331 有兴趣的话直接在这个 Issue 里回复分工或开分支;PR 里写
Fixes #40会自动关联。有卡点 @wochenlong 或群里喊一声就行。