3.9 KiB
3.9 KiB
id, title, status, phase, deps, created
| id | title | status | phase | deps | created | |
|---|---|---|---|---|---|---|
| T-661 | 图生图内置默认提示词改为 cover_prompt 模板 | DONE | 7 |
|
2026-07-17 |
T-661 图生图内置默认提示词改为 cover_prompt 模板
问题 / 背景
当前打包资源中的图生图默认模板为 app/default_prompts/cover/papa1.txt,首次初始化后用户目录显示为 data/prompts/cover/papa1.txt。现有的新默认提示词来源文件为仓库根 default_prompts/cover/cover_prompt.txt,但根目录资源不会被 PyInstaller 的 app.default_prompts 资源收集逻辑打包,最终用户无法获得该模板。
方案
- 将
default_prompts/cover/cover_prompt.txt的提示词内容纳入正式资源包,文件路径统一为app/default_prompts/cover/cover_prompt.txt。 - 移除正式资源包中旧的
app/default_prompts/cover/papa1.txt,使首次初始化只播种cover_prompt模板,用户目录生成data/prompts/cover/cover_prompt.txt,封面模板下拉显示cover_prompt。 - 保持
prompts.ensure_default_prompts()的已有保护:只有用户封面模板目录为空时才初始化;已有papa1、自定义模板或已修改模板一律不覆盖、不重命名、不迁移。 - 保持 PyInstaller 通过
collect_data_files("app.default_prompts")收集资源的机制,不引入根目录default_prompts/作为运行时依赖。 - 更新测试与文档中旧
papa1的首次初始化表述。
验收要点
app/default_prompts/cover/cover_prompt.txt存在,内容等于提供的default_prompts/cover/cover_prompt.txt。app/default_prompts/cover/papa1.txt不再作为正式默认资源存在。- 全新临时数据目录执行默认提示词初始化后,生成
data/prompts/cover/cover_prompt.txt,下拉模板名为cover_prompt。 - 已有任意封面模板(包括历史
papa1.txt)时,初始化不覆盖、不重命名、不额外新增默认模板。 - 打包资源测试仍确认
app.default_prompts会收集新的cover_prompt.txt。
测试要求
- 更新
tests/test_prompts.py与相关 GUI 测试中的默认封面模板名断言。 - 运行打包资源测试,覆盖新资源会被
cmshopee.spec收集。
文档同步
- 实现时更新
docs/04-architecture.md与docs/api.md中与首次播种默认模板相关的当前事实表述;T-579 保持为历史执行记录,不回写。 - 不修改冻结的
docs/06-tasks.md。
边界(不改什么)
- 不改变图生图接口、cmhub 别名、生成参数或图片生成流程。
- 不覆盖、迁移或删除用户
data/prompts/cover/下的任何模板。 - 不把根目录
default_prompts/作为最终运行时资源目录。
验证
py -3.10 -m unittest tests.test_prompts tests.test_gui tests.test_packaging
py -3.10 -m unittest discover -s tests
py -3.10 -m ruff check app tests main.py
py -3.10 -m compileall app main.py
git diff --check
执行记录
- 2026-07-17:将提供的
default_prompts/cover/cover_prompt.txt内容复制为正式打包资源app/default_prompts/cover/cover_prompt.txt,SHA-256 一致;移除旧正式资源papa1.txt。 - 2026-07-17:默认播种后全新用户目录生成
data/prompts/cover/cover_prompt.txt,模板下拉显示cover_prompt;ensure_default_prompts()仍只在封面模板目录为空时播种,历史papa1和其他用户模板均不覆盖、不重命名、不迁移。 - 2026-07-17:更新 prompts、GUI 和 PyInstaller 资源回归测试;同步架构与 API 当前事实。根目录
default_prompts/保持为本次提供的来源,不作为运行时资源或提交内容。 - 验证通过:
py -3.10 -m unittest tests.test_prompts tests.test_gui tests.test_packaging(214 项)、py -3.10 -m unittest discover -s tests(592 项)、py -3.10 -m ruff check app tests main.py、py -3.10 -m compileall app main.py、git diff --check。离屏 GUI 测试有 Qt 字体/插件告警,但无测试失败。