feat: add upload replicate mode

This commit is contained in:
2026-05-19 10:43:58 +08:00
parent 12159ca366
commit a9b12507d0
3 changed files with 23 additions and 10 deletions

View File

@@ -477,6 +477,13 @@
"type": "session-heartbeat", "type": "session-heartbeat",
"message": "Codex 会话活跃 · 最近命令codex · 分支 master · 3 项未提交变更 · 最近提交auto-save 2026-05-19 10:35 (+3, ~8, -1)", "message": "Codex 会话活跃 · 最近命令codex · 分支 master · 3 项未提交变更 · 最近提交auto-save 2026-05-19 10:35 (+3, ~8, -1)",
"files_changed": 3 "files_changed": 3
},
{
"ts": "2026-05-19T10:40:30+08:00",
"type": "commit",
"message": "auto-save 2026-05-19 10:40 (+1, ~3)",
"hash": "12159ca",
"files_changed": 4
} }
] ]
} }

View File

@@ -646,14 +646,14 @@ UI 上传图区域要醒目提示:
在 §4 Checklist 之外,额外加: 在 §4 Checklist 之外,额外加:
- [ ] 8.A 上传 API + 存储 `data/uploads/` - [x] 8.A 上传 API + 存储 `data/uploads/`
- [ ] 8.B `PromptPanel` 改 3-tab想法 / 二创 / 复刻 - [x] 8.B `PromptPanel` 改 3-tab想法 / 二创 / 复刻
- [ ] 8.C Mode A二创multipart + `/images/edits` 批量变体 - [x] 8.C Mode A二创multipart + `/images/edits` 批量变体
- [ ] 8.D Mode B复刻跳过批量生图直接 lock + cleanup - [x] 8.D Mode B复刻跳过批量生图直接 lock + cleanup
- [ ] 8.E `inferCharacterSpecFromImage` Vision 推断 - [x] 8.E `inferCharacterSpecFromImage` Vision 推断
- [ ] 8.F Mode C上传图 role 标注 UI + `preFilledSlots` 合并 - [ ] 8.F Mode C上传图 role 标注 UI + `preFilledSlots` 合并
- [ ] 8.G cleanup 加 `preserveLevel` 参数,复刻模式用 strict - [x] 8.G cleanup 加 `preserveLevel` 参数,复刻模式用 strict
- [ ] 8.H 版权合规提示 UI - [x] 8.H 版权合规提示 UI
### 8.11 优先级建议 ### 8.11 优先级建议
@@ -1339,4 +1339,3 @@ extra fingers, distorted toy proportions
3 个 slot 跑通了,宣发素材就够发一波。 3 个 slot 跑通了,宣发素材就够发一波。

View File

@@ -21,7 +21,7 @@
## 元数据回写清单 ## 元数据回写清单
- 改公网域名或迁移部署时,更新 `.project.json.urls` + 本节 - 改公网域名或迁移部署时,更新 `.project.json.urls` + 本节
- 数据持久化在 `data/`gitignored不入库 - 数据持久化在 `data/`gitignored不入库;上传原图在 `data/uploads/`
- VPS 数据持久化在 `/opt/ai-toy-patent-workflow/data` - VPS 数据持久化在 `/opt/ai-toy-patent-workflow/data`
- VPS 生产环境变量在 `/opt/ai-toy-patent-workflow/deploy/.env.production`,不入库 - VPS 生产环境变量在 `/opt/ai-toy-patent-workflow/deploy/.env.production`,不入库
@@ -44,6 +44,7 @@
- 不允许编造不存在的部署域名、账号、密码 - 不允许编造不存在的部署域名、账号、密码
## 图像链路事实 ## 图像链路事实
- 输入入口:想法、二创、复刻三段;复刻模式会把上传主体图直接作为 L0 锚图
- L0用户选中的意向图 - L0用户选中的意向图
- L1角色锁定时生成的白底净化锚图写入 `CharacterSpec.cleanReferenceImageUrl` - L1角色锁定时生成的白底净化锚图写入 `CharacterSpec.cleanReferenceImageUrl`
- L2每个素材包的根图例如 `patent_front``acc_inventory_sheet``prod_front_spec``mkt_white_front` - L2每个素材包的根图例如 `patent_front``acc_inventory_sheet``prod_front_spec``mkt_white_front`
@@ -51,6 +52,9 @@
- pack 图像生成必须走真实图生图:读取 anchor 图片字节后调用 GPT image edit不再把参考图 URL 当纯文本拼进 prompt - pack 图像生成必须走真实图生图:读取 anchor 图片字节后调用 GPT image edit不再把参考图 URL 当纯文本拼进 prompt
- 单张重做接口:`POST /api/assets/[assetId]/regenerate`,必须沿用该图的 anchor - 单张重做接口:`POST /api/assets/[assetId]/regenerate`,必须沿用该图的 anchor
- 视频参考优先级:宣发白底图 `mkt_white_front` → 专利主图 `patent_front` → L1 白底锚图 → L0 意向图 - 视频参考优先级:宣发白底图 `mkt_white_front` → 专利主图 `patent_front` → L1 白底锚图 → L0 意向图
- 上传 API`POST /api/uploads`multipart 图片存入 `data/uploads/`,返回 `UploadedImage`
- 复刻建项目 API`POST /api/projects/from-upload``mode=replicate` 时跳过批量生图,创建 selected L0Vision 推断 `CharacterSpec`,并用 strict L1 净化 prompt
- 上传图锁定 API`POST /api/character/lock-from-upload`,用于对上传主体图重新推断并 strict 净化
## 注意事项 ## 注意事项
- `data/` 目录会存原图generated/selected/refs可能体积大已 gitignored - `data/` 目录会存原图generated/selected/refs可能体积大已 gitignored
@@ -58,7 +62,10 @@
- mock 模式仅用于跑通流程,生图质量为零(只是 SVG 笑脸占位) - mock 模式仅用于跑通流程,生图质量为零(只是 SVG 笑脸占位)
## 工作流 ## 工作流
1. 输入 prompt + 可选参考图(最多 4 张)+ 风格 + 数量4/8/12 1. 输入模式:
- 想法prompt + 可选参考图(最多 4 张)+ 风格 + 数量4/8/12
- 二创:上传参考图 + 变化方向 + 风格 + 数量,生成变体候选
- 复刻:上传主体图,直接作为 L0 锚图并锁定角色
2. 点 🪄 批量生成 / `⌘/Ctrl+Enter` 2. 点 🪄 批量生成 / `⌘/Ctrl+Enter`
3. 九宫格快筛:数字键 `1-9` 选中,`Shift+1-9` 打叉 3. 九宫格快筛:数字键 `1-9` 选中,`Shift+1-9` 打叉
4. 选中的图自动复制到 `data/selected/` 4. 选中的图自动复制到 `data/selected/`