logo
0
0
WeChat Login
WalkingMeatAxolotl<266651436+WalkingMeatAxolotl@users.noreply.github.com>
feat(studio): cross-platform Python launcher (python -m studio)

AnimaStudio

训练监控、配置编辑与任务队列的 Web 面板。后端 FastAPI + SQLite,前端 React + Vite。

目录结构

studio/
├── server.py        # FastAPI 守护进程入口
├── paths.py         # 路径常量
├── web/             # React + Vite 前端源码
│   ├── package.json
│   ├── src/
│   └── dist/        # npm run build 产物(被 server.py 挂在 /studio)
└── README.md

运行时数据写到仓库根目录下的 studio_data/(SQLite + 用户保存的 config + 任务日志),已加入 .gitignore

启动

跨平台启动器(推荐)

python -m studio 是统一入口,子进程由 Python 管理(Windows / macOS / Linux 都用一样的命令):

python -m studio              # 默认 = run
python -m studio run          # 构建前端(如缺)+ 起后端
python -m studio dev          # 前后端开发模式(5173 + 8765 --reload,并行)
python -m studio build        # 仅构建前端
python -m studio test         # 跑 pytest + vitest

dev 模式会同时起 Vite 和 uvicorn 两个子进程,Ctrl+C 会一起干掉(Windows 用 CTRL_BREAK_EVENT,POSIX 用进程组 SIGTERM)。

Windows 快捷脚本

studio.bat 调同一份 Python 启动器,双击即可。

直接调后端

python -m studio.server --host 0.0.0.0 --port 8765

参数:

python -m studio.server --host 0.0.0.0 --port 8765 --reload

前端

开发模式(热重载):

cd studio/web
npm install            # 首次
npm run dev            # → http://127.0.0.1:5173/studio/

Vite dev server 会把 /api/samples 反代到后端。

生产构建(产物给后端挂在 /studio):

cd studio/web
npm run build          # 输出到 studio/web/dist/
# 后端不用重启,刷新浏览器即可(服务端启动时检测 dist/ 是否存在)

当前进度

  • P1 FastAPI 骨架 + Vite/React/TS 工程骨架;/api/health/api/state/samples/{name} 端点;旧监控页保留在 /;训练侧 --no-monitor 接通
  • P2-A 配置 schema(studio.schema.TrainingConfig 单一权威源)+ CRUD 端点(/api/schema/api/configs/*
  • P2-B studio.argparse_bridge schema → argparse 反向生成
  • P2-C anima_train.py 迁移到 schema;React Configs 页(schema-driven 表单 + 列表 CRUD)
  • P3 任务队列 + supervisor + SSE(Queue.tsx 列表 + 操作,Log.tsx 实时日志)
  • P4 数据集浏览 (Datasets.tsx) + 队列 JSON 导入导出
  • P5 Toast 通知、监控页内嵌 iframe、PathPicker 浏览控件、/api/browse 端点、studio.bat 一键启动、Vitest 框架 + 首批测试
  • P5 一键启动脚本、字段说明 tooltip、错误提示、Vitest 前端测试

详见仓库根的 plan。

前端页面(已上线)

  • / 旧监控页(loss / lr / 采样图)
  • /studio/ React 应用入口
    • 监控 守护进程状态 + 跳转旧监控
    • 配置 schema-driven 表单 + 列表(新建 / 保存 / 复制 / 删除)
    • 队列 入队 / 取消 / 重试 / 删除 / 查日志 / JSON 导入导出;SSE 实时刷新
    • /queue/{id}/log 全屏日志查看(自动滚动 + 运行中每 2 秒拉一次)
    • 数据集 扫描子目录、解析 Kohya 前缀、统计 caption 类型、缩略图预览

需要本地起前端开发服务器:

cd studio/web
npm install
npm run dev      # http://127.0.0.1:5173/studio/

或构建后由后端 /studio/ 路径服务:

cd studio/web && npm run build
# 启动后端:python -m studio.server
# 浏览器:http://127.0.0.1:8765/studio/