84 lines
4.9 KiB
Markdown
84 lines
4.9 KiB
Markdown
# AI玩具专利生成工作流
|
||
|
||
## 启动
|
||
- `cd ~/Projects/code/20260518-ai-toy-patent-workflow && npm run dev` — 端口 4560
|
||
- 浏览器打开 http://localhost:4560
|
||
- 首次依赖装好:`npm install --legacy-peer-deps`(next 15 + react 19 有 peer 警告)
|
||
|
||
## 部署事实
|
||
- 平台:个人 VPS `76.13.31.179`,Docker Compose,接入现有 Coolify Traefik
|
||
- 发布状态:VPS 生产已发布,仅个人使用
|
||
- 服务名 / 容器名:`ai-toy-patent-workflow`
|
||
- 服务器路径:`/opt/ai-toy-patent-workflow`
|
||
- 主站 / 前端:https://ai-toy.kang-kang.com
|
||
- 本地 dev:http://localhost:4560
|
||
- API / 后端:内置 Next.js API Route(生产同域名)
|
||
- 文档 / 解析:无
|
||
- 管理后台:无
|
||
|
||
## 快捷登录
|
||
- 无登录系统(本地工具)
|
||
|
||
## 元数据回写清单
|
||
- 改公网域名或迁移部署时,更新 `.project.json.urls` + 本节
|
||
- 数据持久化在 `data/`(gitignored),不入库;上传原图在 `data/uploads/`
|
||
- VPS 数据持久化在 `/opt/ai-toy-patent-workflow/data`
|
||
- VPS 生产环境变量在 `/opt/ai-toy-patent-workflow/deploy/.env.production`,不入库
|
||
|
||
## 环境变量
|
||
- `OPENAI_API_KEY` — GPT API Key;文本/结构化/图片生成统一走 GPT 最高规格配置
|
||
- `GPT_TEXT_MODEL` — 默认 `gpt-5.5`,用于角色设定等结构化输出
|
||
- `GPT_IMAGE_MODEL` — 默认 `gpt-image-2`,用于意向图和三类素材包图片生成
|
||
- `GPT_API_BASE` — 默认 `https://api.openai.com/v1`
|
||
- `SEEDANCE_API_KEY` — Seedance 视频生成 Key;未配置时视频接口返回 503
|
||
- `SEEDANCE_MODEL` — 默认 `doubao-seedance-2-0-260128`
|
||
- `SEEDANCE_API_BASE` — 默认 `https://ark.cn-beijing.volces.com/api/v3`
|
||
- `PUBLIC_APP_URL` — 生产填公网入口,用于把 `/api/img/...` 补成 Seedance 可访问的绝对 URL
|
||
- 配置位置:`.env.local`(gitignored),参考 `.env.local.example`
|
||
- 图片生成未配置 GPT Key 时回退 mock(SVG 占位图),视频生成不 mock,必须配置 Seedance Key
|
||
|
||
## 规则
|
||
- 全项目规则真源:`/Users/kangwan/Projects/code/20260317-rules-dashboard/RULES.md`
|
||
- 文本/结构化/图片生成统一使用 GPT 最高规格配置
|
||
- 视频生成固定使用 Seedance
|
||
- 不允许编造不存在的部署域名、账号、密码
|
||
|
||
## 图像链路事实
|
||
- 输入入口:想法、二创、复刻三段;复刻模式会把上传主体图直接作为 L0 锚图
|
||
- L0:用户选中的意向图
|
||
- L1:角色锁定时生成的白底净化锚图,写入 `CharacterSpec.cleanReferenceImageUrl`
|
||
- L2:每个素材包的根图,例如 `patent_front`、`acc_inventory_sheet`、`prod_front_spec`、`mkt_white_front`
|
||
- L3:包内其它图,基于对应 L2 根图生成
|
||
- pack 图像生成必须走真实图生图:读取 anchor 图片字节后调用 GPT image edit,不再把参考图 URL 当纯文本拼进 prompt
|
||
- 单张重做接口:`POST /api/assets/[assetId]/regenerate`,必须沿用该图的 anchor
|
||
- 视频参考优先级:宣发白底图 `mkt_white_front` → 专利主图 `patent_front` → L1 白底锚图 → L0 意向图
|
||
- 上传 API:`POST /api/uploads`,multipart 图片存入 `data/uploads/`,返回 `UploadedImage`
|
||
- 复刻建项目 API:`POST /api/projects/from-upload`,`mode=replicate` 时跳过批量生图,创建 selected L0,Vision 推断 `CharacterSpec`,并用 strict L1 净化 prompt
|
||
- 上传图锁定 API:`POST /api/character/lock-from-upload`,用于对上传主体图重新推断并 strict 净化
|
||
- 多宫格提案板 / 品牌手册 / 包装展示图上传后,strict L1 会先抽取最大最清晰的单一主角色,不保留版式、标题、包装平铺和场景小图
|
||
- 用户上传图中的原创品牌字样、帽标、服装标识、面罩图案和配件图形必须保留;只对明显第三方已注册 IP 做替换提示
|
||
- 素材包生成支持后台模式和增量保存;长耗时任务会逐张写回 session,重复触发同一 session/image/kind 会被并发锁挡住
|
||
|
||
## 注意事项
|
||
- `data/` 目录会存原图(generated/selected/refs),可能体积大,已 gitignored
|
||
- `refs/` 下放参考资料 PDF/DOCX/图(已 gitignored,但 `refs/README` 之类可放进库)
|
||
- mock 模式仅用于跑通流程,生图质量为零(只是 SVG 笑脸占位)
|
||
|
||
## 工作流
|
||
1. 输入模式:
|
||
- 想法:prompt + 可选参考图(最多 4 张)+ 风格 + 数量(4/8/12)
|
||
- 二创:上传参考图 + 变化方向 + 风格 + 数量,生成变体候选
|
||
- 复刻:上传主体图,直接作为 L0 锚图并锁定角色
|
||
2. 点 🪄 批量生成 / `⌘/Ctrl+Enter`
|
||
3. 九宫格快筛:数字键 `1-9` 选中,`Shift+1-9` 打叉
|
||
4. 选中的图自动复制到 `data/selected/`
|
||
5. 锁定角色设定 `CharacterSpec`
|
||
6. 一键生成完整三包:专利包、生产打样包、宣发包
|
||
7. Seedance 生成视频任务:旋转展示、开箱、触感细节、角色故事
|
||
8. 侧栏保留历史会话,点击切换
|
||
|
||
## 后续路线
|
||
- 导出专利包:PNG高清 + PDF合订
|
||
- ZIP/PDF 打包下载
|
||
- Seedance 任务轮询 UI
|