feat(ai-studio): add thumbnail workspace grids
This commit is contained in:
+31
-3
@@ -1,9 +1,9 @@
|
||||
---
|
||||
id: T-607
|
||||
title: AI工场原主图与照片池缩略图网格优化
|
||||
title: AI工场图片网格与生成设置布局优化
|
||||
phase: 7
|
||||
deps: [T-606]
|
||||
status: TODO
|
||||
status: DONE
|
||||
created: 2026-07-11
|
||||
---
|
||||
|
||||
@@ -52,6 +52,13 @@ T-605 已为 AI工场补了缩略图图标和状态,但「蝦皮原主图」
|
||||
- 预览缓存按当前 tab 生命周期或当前项目管理,项目切换/关闭时释放不再引用的 `QPixmap`,避免长时间使用导致内存无界增长。
|
||||
- 禁止使用嵌套卡片制造视觉层级;原图区/照片池是面板,单张图片才是卡片。
|
||||
|
||||
### 5. 收紧生成设置布局
|
||||
|
||||
- 去掉源图预览框右侧的说明文字;未选择源图时由预览框空状态和 tooltip 表达,避免右栏出现重复说明。
|
||||
- 源图预览框右侧第一行放「提示词模板」标签和模板下拉框;第二行把「新建」「重命名」「保存」「删除」四个按钮等宽并排。
|
||||
- 释放出的垂直空间分配给完整提示词输入框;提示词说明保留在输入框下方。
|
||||
- 「类型」「数量」「比例」改为提示词输入框下方的同一行紧凑控件组,保留现有下拉/数字输入语义和生成按钮动态文案。
|
||||
|
||||
## 验收要点
|
||||
|
||||
- 拉取有效商品后,原图区按原图顺序展示最多 9 张真实缩略图;缩略图加载不冻结 GUI。
|
||||
@@ -62,6 +69,7 @@ T-605 已为 AI工场补了缩略图图标和状态,但「蝦皮原主图」
|
||||
- 照片池的选源图、双击预览、右键移除、拖入终选、终选排序、生成、停止、继续查询和导出均不回归。
|
||||
- 项目切换、删除后切换到其他项目、后台任务完成后,不显示旧项目缩略图或错误的源图高亮。
|
||||
- 不改 CDP 拉图/Chrome/登录流程,不因缩略图预览批量保存九张完整原图,不暴露远程 URL 或敏感信息到用户日志。
|
||||
- 生成设置区不再出现源图右侧说明文字;模板选择与四个模板操作按钮按两行排列,提示词输入框面积增大,类型/数量/比例在同一行。
|
||||
|
||||
## 测试要求
|
||||
|
||||
@@ -100,4 +108,24 @@ git diff --check
|
||||
|
||||
## 执行记录
|
||||
|
||||
- 待执行。
|
||||
- 2026-07-11:已完成。
|
||||
- 代码:
|
||||
- `app/gui/tabs/image_studio.py`:原图区和照片池由字段表格改为固定尺寸的 `QListWidget` 图片网格。原图区按 `source_order` 展示主图;照片池只展示已落盘可用的原图/生成图和未完成或失败任务卡片,不再重复显示只有远程 URL 的原图。
|
||||
- `app/gui/tabs/image_studio.py`:接入既有 `image_studio_images.ThumbnailLoader`。远程缩略图使用受限后台线程池和内存缓存,结果通过 Qt signal 回到 GUI 线程;不保存完整原图、不在日志中输出远程 URL。单张失败只显示中文卡片状态,并可右键「重新加载缩略图」。
|
||||
- `app/gui/tabs/image_studio.py`:项目切换、软删除和窗口关闭会取消不再需要的缩略图回调并释放 GUI 缓存;原图区点击下载、照片池选源图/预览/右键移除/拖入终选、任务续查均保留。
|
||||
- `app/gui/tabs/image_studio.py`:生成设置去掉源图右侧说明文字;模板标签与下拉在源图右侧第一行,四个模板操作按钮同列第二行;提示词输入框扩展,类型/数量/比例调整为其下方同一行。
|
||||
- 测试:
|
||||
- `tests/test_gui.py`:更新 AI工场构建测试,覆盖网格替换、缩略图仅内存预览、原图落盘后才进入照片池、单张缩略图失败重试、9 张原图顺序、固定网格尺寸、模板按钮同排和三项生成参数同排。
|
||||
- `tests/test_gui.py`:更新已提交 cmhub 任务卡片断言,确认照片池保留可继续查询的任务状态和扣点信息。
|
||||
- `tests/test_image_studio_images.py`:既有缩略图下载、内存缓存、取消和不落盘原图测试继续通过。
|
||||
- 验证:
|
||||
- 主工作区定向验证通过:
|
||||
- `py -3.10 -m unittest tests.test_gui.GuiTests.test_image_studio_tab_builds_project_pool_and_template_controls tests.test_gui.GuiTests.test_image_studio_thumbnail_grids_keep_order_and_hide_remote_pool_duplicates tests.test_gui.GuiTests.test_image_studio_tab_shows_resume_and_job_billing_status tests.test_gui.GuiTests.test_image_studio_final_selection_order_and_guards tests.test_image_studio_images`
|
||||
- `python -m ruff check app tests main.py`
|
||||
- `py -3.10 -m compileall app main.py`
|
||||
- `git diff --check -- app/gui/tabs/image_studio.py tests/test_gui.py docs/tasks/T-607.md`
|
||||
- 主工作区存在未提交默认提示词文件改动;为隔离无关改动,在临时干净 worktree `D:\chengma\cmshopee-t607-verify` 应用本任务 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`(381 tests)
|
||||
- `git diff --check`
|
||||
|
||||
Reference in New Issue
Block a user