baseline: Clover 独立仓库首次基线提交

将 Clover 从上层产品包旧仓库中独立出来,建立专属版本控制。
当前状态=纵切片端到端已打通(登录→选品→出文出图→审核→下载包),
M1文案质量去套路化已验收。此提交作为后续按核销清单逐条修复的基线。

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
yangqianqian
2026-06-16 11:30:22 +08:00
commit 6a2632da70
253 changed files with 27467 additions and 0 deletions

View File

@@ -0,0 +1,59 @@
# 实施方案:生图带产品参考图 + 禁止降级 + 产品库
> 倩倩姐 2026-06-08 拍板:①上传产品图按钮做必填项(需产品图场景)②建任务时用户选"本次要不要产品入镜"③这轮一起做产品库(内置+上传)
## 一、现状(已查清)
**已存在、能用的**
- 产品图上传接口 `POST /products/{id}/upload-image`
- 前端上传组件 `ProductImageUpload`(在配置页产品管理里)✅
- worker 读参考图 → 传 generate_storyboard_images 的链路 ✅
- 产品表已有 `source enum('preset','custom')` 字段(产品库内置/自建早有预留)✅
- 主备生图通道本轮已修apiports 503 自动切 codeproxy
**缺口/坑**
1. 无图时 worker 默默降级纯文生图,无任何阻断(核心要堵)
2. 产品图存/读用**相对路径**api 容器 cwd 与 worker cwd=`/` 不一致 → worker 可能读不到(隐患,需改绝对路径)
3. 建任务时用户看不到"产品有没有图"、也没有"要不要产品入镜"的选择
4. 产品库目前只有 1 个 preset 产品、无图;没有产品库浏览/选择 UI
5. `ProductCreate` DTO 无 image_path建产品时无法带图
## 二、产品决策落地(按倩倩姐拍板)
- 建任务页加开关 **「本次产品是否入镜」**need_product_image默认"是"
- 选"是" → 该产品**必须有参考图**才能点"生成",否则按钮置灰提示"请先上传产品图"
- 选"否" → 允许纯文生图(氛围/科普/话题类内容)
- 产品来源:**内置产品库 + 上传**,靠 `source` 字段区分
## 三、改动清单(分纵切片,逐块可验收)
### 切片 A路径修稳最高优先不修后面全是空中楼阁
- `products.py` upload-image存**绝对路径**`/app/uploads/...`)进 image_path不存相对路径
- `pipeline_io.py` 读参考图:用绝对路径校验 + 读取
- 验收:上传一张图 → worker 日志出现"产品参考图已加载 N bytes"
### 切片 B后端禁降级 + 建任务字段
- `task.py` 模型 + migrationGenerationTask 加 `need_product_image: bool default True`
- `CreateTaskRequest` DTO 加 `need_product_image: bool = True`
- `task_service` 建任务时:若 need_product_image=True 且产品无 image_path → 直接拒绝422"该产品未上传参考图"
- `image_gen.py``ALLOW_TEXT_ONLY_IMAGE` 改由任务的 need_product_image 驱动need=True 时无参考图**硬报错**不降级
- 验收:无图产品 + 需入镜 → 建任务被拒;有图 → 生图带参考图
### 切片 C前端建任务页
- NewTaskForm 加「产品是否入镜」开关 + 展示当前产品图缩略图/未上传状态
- 需入镜且无图 → "生成"按钮置灰 + 提示"请先到产品库上传参考图"
- 验收:浏览器走一遍,无图拦住、有图放行
### 切片 D产品库内置+上传)
- 后端:`GET /products` 支持按 source 筛选;预置 2-3 个常用内置产品(带图)入库 seed
- 前端:配置页产品管理区分"内置库/我的产品",支持从内置库选用、上传自己的
- `ProductCreate` DTO 加 image_path建产品即可带图
- 验收:产品库能看到内置产品、能上传新产品、建任务能选到
## 四、风险/待北哥确认
- **内置产品库放哪些产品+图**:需北哥给真实产品图素材,否则内置库是空壳。先搭框架+占位,图等北哥给。
- 合规产品图入镜后gpt-image-2 仍可能把功效词画进图([[clover-image-gen-compliance-risk]]),需北哥合规 prompt 方案。
## 五、建议执行顺序
A路径→ B后端禁降级→ C前端建任务→ D产品库
每切片做完即验收A+B+C 通了"禁降级"主线就闭环D 是产品库增强。