diff --git a/docs/10-lan-update.md b/docs/10-lan-update.md index 97cb2fd..2b99626 100644 --- a/docs/10-lan-update.md +++ b/docs/10-lan-update.md @@ -67,7 +67,8 @@ config\ # 出厂默认配置/模板,首次运行播种到 ~/.cmbot(见第 5 节) app.old\ # 上一个可用版本,仅用于回滚,可不存在 staging\ # 下载/解压临时区,安装成功后清理 - 合并后的图片\ # 默认导出目录(就在程序旁、好找、不随更新替换;可在导出面板改) + 合并后的图片\ # 添加印花默认导出目录(就在程序旁、好找、不随更新替换;可在导出面板改) + 穿搭图片\ # AI 穿搭默认输出目录(就在程序旁、好找、不随更新替换;可在 AI 穿搭页改) %USERPROFILE%\.cmbot\ # 用户数据,独立于程序位置,始终可写、按用户隔离 config\ @@ -75,7 +76,7 @@ templates.json # 用户自定义模板 ai_models.json # AI 穿搭模型配置(管理员填写 key,首次可由出厂模板播种) logs\ - output\ # 默认导出目录的回退位置(安装根不可写时) + output\ # 默认导出目录的回退位置(安装根不可写时,AI 穿搭回退到 output\穿搭图片) ``` 说明: @@ -86,7 +87,8 @@ - `app\config\`:出厂默认配置/模板,仅作首次运行的播种来源,运行时不读写。 - `app.old\`:上一个可用程序目录。更新失败或新版启动异常时,可把它改回 `app\` 完成回滚。 - `staging\`:下载的 zip 与解压临时目录。校验通过后,`staging\app.new\` 才会切换为 `app\`。 -- `合并后的图片\`:**默认导出目录**,放在安装根(`Launcher.exe` 旁),便于用户直接找到合成结果,且不随 `app\` 更新替换。用户可在导出面板改成任意目录;安装根不可写时回退 `~/.cmbot/output`。 +- `合并后的图片\`:**添加印花默认导出目录**,放在安装根(`Launcher.exe` 旁),便于用户直接找到合成结果,且不随 `app\` 更新替换。用户可在导出面板改成任意目录;安装根不可写时回退 `~/.cmbot/output`。 +- `穿搭图片\`:**AI 穿搭默认输出目录**,同样放在安装根(`Launcher.exe` 旁),用于保存 AI 生成的人物穿搭图;与 `合并后的图片\` 分开,避免两类产物混在一起。用户可在 AI 穿搭页改成任意目录;安装根不可写时回退 `~/.cmbot/output/穿搭图片`。 - `~/.cmbot\`:配置/模板/日志集中存放,**与程序位置、版本切换均无关**。即便 `app\` 所在目录只读(更新失败),配置/模板仍可正常写。 - 安装根(含 `app\`、`app.old\`、`staging\`、`Launcher.exe`)需免提权可写**才能自更新**;不可写时仅「更新失败」,不影响数据读写。 @@ -102,7 +104,8 @@ - 路径函数划分: - `get_resource_path()` 指向**程序根**下的 `resources/`。 - `get_config_path()`、`get_log_dir()` 指向**数据根**下的对应目录。 - - `get_output_dir()`(默认导出目录)特例:打包态优先返回 `<安装根>\合并后的图片`(就在程序旁、好找、不随更新替换),不可写时回退数据根 `output\`;开发态用项目目录。用户在导出面板的选择(`output_dir`)仍优先。 + - `get_output_dir()`(添加印花默认导出目录)特例:打包态优先返回 `<安装根>\合并后的图片`(就在程序旁、好找、不随更新替换),不可写时回退数据根 `output\`;开发态用项目目录。用户在导出面板的选择(`output_dir`)仍优先。 + - AI 穿搭默认输出目录独立于 `get_output_dir()`:打包态优先返回 `<安装根>\穿搭图片`,不可写时回退 `~/.cmbot/output/穿搭图片`;开发态用项目目录下的 `穿搭图片`。用户在 AI 穿搭页选择的 `outfit_output_dir` 仍优先。 - 数据根解析规则(`get_data_dir()`,三级回退): 1. 环境变量 `CMBOT_DATA_DIR` 非空时使用它(覆盖口,供测试或特殊部署)。 2. 打包态(`sys.frozen`)→ `~/.cmbot`(即 `%USERPROFILE%\.cmbot`)。**不依赖启动器注入环境变量**:即使用户绕过 `Launcher.exe` 直接双击 `app\CMBot.exe`,数据也落在 `~/.cmbot`。 diff --git a/docs/11-ai-outfit.md b/docs/11-ai-outfit.md index 8f80d63..7ecd139 100644 --- a/docs/11-ai-outfit.md +++ b/docs/11-ai-outfit.md @@ -79,7 +79,7 @@ C 列除了单张图片文件,**也可以是一个目录**(如 `d:/images/a/ (扩展名 `.png/.jpg/.jpeg/.webp/.gif`),**不递归**子目录,按文件名排序。 - 该行仍是**一个任务、一次回写**;对目录内**每一张**图各生成一张穿搭图(N→N), 共用本行的标题/货号与话术。 -- 输出落到 `输出目录/<目录叶子名>/`(见 §9.1);Excel 回写仍是**整行一个状态**: +- 输出落到 `AI 穿搭输出目录/<目录叶子名>/`(默认是程序旁的 `穿搭图片\`,见 §9.1);Excel 回写仍是**整行一个状态**: D=子目录绝对路径、E=全部成功才 `完成` 否则 `失败`、F=失败张数/原因。 - 目录不存在或目录内没有图片 → 该行 `失败` 并记录原因,不中断其它行。 @@ -223,7 +223,8 @@ Excel 行 → `OutfitTask` 列表的转换由 `excel_service` 完成;核心只 ## 9. 输出 - 格式 JPG,1:1,压缩到 ≤2MB;质量三档(小文件 75 / 均衡 85 / 高清 92)。 -- 默认输出目录沿用 cmbot `get_output_dir()`(程序旁的「合并后的图片」,见 `docs/10` §5),界面可改。 +- AI 穿搭使用独立默认输出目录:打包态优先为安装根(`Launcher.exe` 旁)的 `穿搭图片\`,不可写时回退到 `~/.cmbot/output/穿搭图片\`;开发态可使用项目目录下的 `穿搭图片\`。界面仍可改为任意目录,用户选择值继续通过 `outfit_output_dir` 记住。 +- `穿搭图片\` 与添加印花页的 `合并后的图片\` 分开,避免两类产物混在一起;二者都不放在 `app\` 内,避免自更新替换 `app\` 时误删输出。 - 命名:`货号.jpg`,重名自动 `_1`/`_2`,非法字符替换为 `_`(不改 Excel 原始货号)。**货号为空时命名回退用源图名**(`<源图名>.jpg`,与目录行一致)。 - 成功后把**实际新图绝对路径**写回 Excel D 列。 @@ -231,9 +232,9 @@ Excel 行 → `OutfitTask` 列表的转换由 `excel_service` 完成;核心只 当 C 列是目录(§4.1)时: -- 每张源图各生成一张穿搭图,存到 `输出目录/<目录叶子名>/<源图名>.jpg` +- 每张源图各生成一张穿搭图,存到 `AI 穿搭输出目录/<目录叶子名>/<源图名>.jpg` (子目录名 = 目录叶子名,文件名沿用源图名;二者均按 §9 规则替换非法字符)。 - 例:`d:/images/a/img1.png` → `输出目录/a/img1.jpg`。 + 例:`d:/images/a/img1.png` → `穿搭图片/a/img1.jpg`。 - **不加 `_1`/`_2` 去重后缀**:目标文件已存在视为「已生成」并**跳过**,使整行可 幂等重试——重试只补做缺失/失败的那几张,已成功的不重复调 API。 - 整行回写 Excel 时,D 列写**子目录**绝对路径(而非单个文件)。 @@ -344,6 +345,7 @@ Excel 行 → `OutfitTask` 列表的转换由 `excel_service` 完成;核心只 - 发布包可附带 `app\config\ai_models.json` 出厂模板(见 §6.1),用于首次播种;模板中的 `api_key` 必须为空或占位,真实 key 只写入用户数据目录。 - **提示词** → `~/.cmbot/config/outfit_prompt.txt`。 - **批量设置 + 上次 Excel/输出路径** → 并入 `app_config.json`(`config_service` 集中读写,UI 不直接读写配置文件,遵守 `docs/04` 第 6 节 / `docs/05` 4.12)。 +- **AI 穿搭默认输出目录** → 安装根旁的 `穿搭图片\`(不可写时回退 `~/.cmbot/output/穿搭图片\`);用户手动选择的目录存入 `app_config.json` 的 `outfit_output_dir`。 - 失败记录 / 日志沿用 `~/.cmbot/logs` 与现有日志服务。 ## 12. 依赖与兼容 diff --git a/docs/ui-ai-outfit.html b/docs/ui-ai-outfit.html index 132d848..f5d7d30 100644 --- a/docs/ui-ai-outfit.html +++ b/docs/ui-ai-outfit.html @@ -228,7 +228,7 @@