背景
现有标签编辑页来自 mikazuki/dataset-tag-editor 子模块,通过 Gradio 子服务挂到 /proxy/tageditor。在 Windows 整合包里它同时引入了子模块初始化、额外端口、反代、Gradio 版本兼容和首开稳定性问题。2.5.x/2.6.0 的反馈已经说明这条链路会反复影响整合包体验。
目标
在主 WebUI 内置一个原生“数据集标签编辑器”,走主 FastAPI + 主前端页面:
- 不再为标签编辑启动独立 Gradio 服务。
- 不再占用额外端口。
- 不再依赖
mikazuki/dataset-tag-editor 子模块作为主入口。
- 旧 Gradio 标签编辑器先保留到边缘位置,作为过渡/兼容入口,后续版本逐步下线。
M1 范围
先覆盖 LoRA 用户最高频链路,不追求 100% 复刻旧编辑器:
- 扫描数据集目录,识别图片与同名
.txt caption。
- 图片网格/预览。
- 单图 caption 读取、编辑、保存。
- 标签搜索与正/反向过滤。
- 批量追加、删除、替换、排序 tag。
- 批量操作只作用于当前过滤/选择范围。
- 预留“自动打标”区域,但 M1 可以不接入实际打标流程。
- 文件操作必须限制在数据集目录内,避免误删/误写用户其它文件。
非目标
- M1 不复刻旧 Gradio 的 BLIP/GIT/DeepDanbooru 等全部 interrogator。
- M1 不做独立端口或新子服务。
- M1 不要求重构整个 VuePress 前端构建链,现阶段可接受对
frontend/dist 做小范围补丁。
验收
- 源码用户
python gui.py 后可在主 WebUI 打开新标签编辑页。
- 整合包用户运行
<PortableRoot>\run_gui.bat 后同样通过主端口访问。
- 新页面不依赖
MIKAZUKI_TAGEDITOR_PORT,不需要 /proxy/tageditor。
- 未初始化或缺失旧子模块时,新编辑器仍可用。
- 旧 Gradio 入口降级为兼容入口,不阻塞主链路。
背景
现有标签编辑页来自
mikazuki/dataset-tag-editor子模块,通过 Gradio 子服务挂到/proxy/tageditor。在 Windows 整合包里它同时引入了子模块初始化、额外端口、反代、Gradio 版本兼容和首开稳定性问题。2.5.x/2.6.0 的反馈已经说明这条链路会反复影响整合包体验。目标
在主 WebUI 内置一个原生“数据集标签编辑器”,走主 FastAPI + 主前端页面:
mikazuki/dataset-tag-editor子模块作为主入口。M1 范围
先覆盖 LoRA 用户最高频链路,不追求 100% 复刻旧编辑器:
.txtcaption。非目标
frontend/dist做小范围补丁。验收
python gui.py后可在主 WebUI 打开新标签编辑页。<PortableRoot>\run_gui.bat后同样通过主端口访问。MIKAZUKI_TAGEDITOR_PORT,不需要/proxy/tageditor。