2.9 KiB
2.9 KiB
id, title, status, phase, deps, created
| id | title | status | phase | deps | created | |
|---|---|---|---|---|---|---|
| T-661 | 图生图内置默认提示词改为 cover_prompt 模板 | TODO | 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
执行记录
- 待实现。