feat(ai-studio): add final selection trays

This commit is contained in:
chengma
2026-07-11 14:20:56 +08:00
parent 5451579073
commit 5754e4831a
4 changed files with 369 additions and 14 deletions
+6 -3
View File
@@ -186,7 +186,7 @@
│ [完整提示词输入框] │
│ 类型[主图▼] 数量[4] 比例[1:1▼] cmhub扣点/余额提示 │
│ [开始生成][停止] 进度条 运行日志 │
│ 底部:主图终选 / 详情图终选占位(T-592 接拖放排序) │
│ 底部:主图终选 / 详情图终选(拖入、插入、重排、移出) │
└───────────────────────────────────────────────────────────────┘
```
@@ -196,8 +196,11 @@
- 照片池展示原图、生成主图、生成详情图和在途/失败任务状态;单击可用图片设为源图,双击打开大图;右键移除只删除未被任务或终选引用的照片池记录,不删除本地图片文件。
- 右侧只有一个完整提示词框;模板目录固定为 `data/prompts/image_studio/`,与②标题/封面模板隔离。界面不显示“主提示词 / 每张动作词”。
- 生图固定走 cmhub 托管模型,使用⑤设置里的 cmhub Base URL/API Key/生图别名和图片并发;界面只显示扣点、余额、进度、失败,不展示自定义 Provider、API Key、生成来源选择或“导入本地图片”入口。
- 拉主图、下载原图、生图 submit/poll/download 均通过 worker 执行,主线程只刷新 UI;运行中禁用项目切换、模板编辑、源图选择和生成设置,停止为协作式停止。
- 本小节只覆盖 T-591 第一版:终选拖放排序由 T-592 接入,导出 JPEG 由 T-593 接入,故底部终选盘当前是只读占位。
- 底部终选盘分为主图和详情图两列;照片池中已下载/已生成且本地文件可用的图片可拖入终选,落到已有位置时按插入顺延,同一类别内同一照片只能出现一次,主图和详情图之间允许复用同一照片。
- 终选列表内可拖动重排,Delete 或右键「移出终选」只移出终选,不删除照片池资产或本地文件;拖放/移出失败时刷新回 SQLite 中的持久化顺序。
- 主图推荐 1:1;比例不匹配只用黄色轻提示和 tooltip 提醒,不硬拦。文件缺失或尚未下载的照片不能拖入终选。
- 拉主图、下载原图、生图 submit/poll/download 均通过 worker 执行,主线程只刷新 UI;运行中禁用项目切换、模板编辑、源图选择、终选拖放和生成设置,停止为协作式停止。
- 本小节当前覆盖 T-591/T-592:导出 JPEG 由 T-593 接入,不自动上传或修改蝦皮。
## 流程导航
+7 -2
View File
@@ -3,7 +3,7 @@ id: T-592
title: AI工场主图/详情图终选拖放、插入排序与比例轻提示
phase: 7
deps: [T-591]
status: TODO
status: DONE
created: 2026-07-11
---
@@ -36,4 +36,9 @@ created: 2026-07-11
## 执行记录
(完成后记录拖放模型、事务和 GUI 测试。)
- 2026-07-11:完成 AI工场主图/详情图终选盘。
- `ImageStudioTab` 底部终选占位升级为主图/详情图两个可拖放列表;照片池可用图片提供 asset_id 拖拽,终选列表支持外部拖入、落点插入顺延、列表内重排、Delete/右键移出。
- 写库统一走 `image_studio.replace_selections()`;同类别重复拖入、满额、文件未下载/缺失会中文提示并拒绝;主图/详情图跨类别复用允许。
- 主图非 1:1 比例显示黄色轻提示和 tooltip,不阻止加入;运行中禁用终选列表,避免生成/下载时状态并发修改。
- 更新 `docs/routes.md` 的 ⑥ AI工场底部终选说明,明确 T-593 才做导出。
- 验证:当前主工作区仍有无关默认提示词脏文件会影响全量 unittest;已在干净 worktree 仅套用 T-592 diff 后运行 `python -m ruff check app tests main.py`、`py -3.10 -m compileall app main.py`、`py -3.10 -m unittest discover -s tests`(363 tests)和 `git diff --check`,全部通过。主工作区也运行了 T-592 相关 targeted unittest,已通过。