# 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