Files
ai-toy-patent-workflow/RULES.md

9.4 KiB
Raw Blame History

AI玩具专利生成工作流

启动

  • 推荐本地环境:cd ~/Projects/code/20260518-ai-toy-patent-workflow && npm run docker:up — Docker Compose端口 4560
  • 浏览器打开 http://localhost:4560
  • 备用非 Docker 开发:npm run dev — 端口 4560
  • 首次依赖装好:npm install --legacy-peer-depsnext 15 + react 19 有 peer 警告)

部署事实

  • 平台:个人 VPS 76.13.31.179Docker Compose接入现有 Coolify Traefik
  • 发布状态VPS 生产已发布,仅个人使用
  • 最近生产部署2026-05-31有你家族 · 亥猪 模板约束已发布并完成生产:视频任务统一改为 45 秒;图片包模板移除默认动物鼻子、尾巴、耳朵等提示,改为 40cm+ AI 陪伴机器人摆件、正面宽约 28cm、侧面深约 22cm、软壳/短绒触感但不改变基础机甲结构。生产 session s_mpsn5ef3_edc352 已完成 64 张基础图片、4 张十二生肖装甲组合图、5 条 45 秒亥猪视频和 2 条 30 秒十二生肖集合视频。
  • 上一轮生产部署2026-05-30视频 provider 改为默认 SeedanceVIDEO_PROVIDER=seedanceOpenAI Sora 仅作为可选回退;实测 Ark / Seedance doubao-seedance-2-0 R2V 不接受 duration=60,当前 Seedance 单任务按 15 秒提交。若仍需 60 秒成片,需要分段拼接,或回退 OpenAI Sora 的延展链路。
  • 最近生产数据同步2026-05-30有你家族 · 糯糯猪 session s_mps3u047_48e383 已同步到 VPS data/,包含专利包、配件包、生产打样包、宣发包共 64 张图片Seedance 生产环境 Key 已换新并作为当前默认视频 provider。
  • 服务名 / 容器名:ai-toy-patent-workflow
  • 服务器路径:/opt/ai-toy-patent-workflow
  • 主站 / 前端:https://ai-toy.kang-kang.com
  • 登录页:https://ai-toy.kang-kang.com/login
  • 本地 Dockerhttp://localhost:4560
  • API / 后端:内置 Next.js API Route生产同域名
  • 文档 / 解析:无
  • 管理后台:无

快捷登录

  • 已启用应用内登录页
  • 登录地址:https://ai-toy.kang-kang.com/login
  • 用户名 / 密码:见 .project.json.quick_login;生产备份在 VPS /root/ai-toy-patent-workflow-login.txt
  • 会话HttpOnly HMAC Cookie生产变量只放 VPS deploy/.env.production

元数据回写清单

  • 改公网域名或迁移部署时,更新 .project.json.urls + 本节
  • 数据持久化在 data/gitignored不入库上传原图在 data/uploads/
  • 后端审计库:data/app.dbSQLiteDocker 镜像内置 sqlite3,记录上传、生成、选择、角色锁定、素材包进度、重做、视频提交、图库/记录查看等事件
  • 审计兜底:非 Docker 本地如果缺少 sqlite3,写入 data/audit-fallback.jsonl,不阻断生成流程
  • 本地 Docker 使用 docker-compose.yml,挂载 ./data:/app/data,读取 .env.local,并强制 PUBLIC_APP_URL=http://localhost:4560
  • VPS 生产 Docker 使用 docker-compose.prod.yml,挂载 ./data:/app/data,读取 deploy/.env.production,并强制 PUBLIC_APP_URL=https://ai-toy.kang-kang.com
  • VPS 数据持久化在 /opt/ai-toy-patent-workflow/data
  • VPS 生产环境变量在 /opt/ai-toy-patent-workflow/deploy/.env.production,不入库
  • 资源索引:运行 npm run resources:index 生成 data/resource-index.jsondata/resource-index.mddata/named/ 人类可读软链接;原始资源文件名不能直接改,避免 session JSON / 图片 URL 断链
  • 风格示意图:运行 npm run styles:previews -- --force 用 GPT 图片模型生成 public/style-previews/*.pngUI 左侧风格卡片直接引用这些小图

环境变量

  • OPENAI_API_KEY — GPT / OpenAI API Key文本、结构化、图片生成以及默认 OpenAI Sora 视频生成共用
  • GPT_TEXT_MODEL — 默认 gpt-5.5,用于角色设定等结构化输出
  • GPT_IMAGE_MODEL — 默认 gpt-image-2,用于意向图和三类素材包图片生成
  • GPT_API_BASE — 默认 https://api.openai.com/v1
  • VIDEO_PROVIDER — 默认 seedance;需要回退 OpenAI Sora 时可设为 openai_sora
  • OPENAI_VIDEO_MODEL — 默认 sora-2-pro,用于 OpenAI 视频生成
  • OPENAI_VIDEO_MIN_SECONDS — 默认 60;仅用于 OpenAI Sora 目标时长Seedance 当前单任务按模型可接受的 15 秒上限提交
  • OPENAI_VIDEO_QUALITY — 默认生产建议 high,对应 OpenAI 允许的视频输出尺寸
  • SEEDANCE_API_KEY — Seedance 视频生成 Key当前默认视频 provider 使用,未配置则视频接口返回 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
  • WEB_AUTH_USERNAME / WEB_AUTH_PASSWORD / WEB_AUTH_SESSION_SECRET — 网页登录;真实值只放 .env.local 和 VPS deploy/.env.production
  • WEB_AUTH_COOKIE_NAME — 默认 ai_toy_session
  • WEB_AUTH_COOKIE_SECURE — 本地 false,生产 true
  • 配置位置:.env.localgitignored参考 .env.local.example
  • 生产配置模板:deploy/.env.production.example;真实生产值只放 VPS 的 /opt/ai-toy-patent-workflow/deploy/.env.production
  • 图片生成未配置 GPT Key 时回退 mockSVG 占位图),视频生成不 mock必须配置 Seedance Key
  • /login/api/auth/*/api/img/* 外,页面与 API 都需要登录;/api/img/* 保持公开是为了 Seedance 能从公网读取参考图

规则

  • 全项目规则真源:/Users/kangwan/Projects/code/20260317-rules-dashboard/RULES.md
  • 文本/结构化/图片生成统一使用 GPT 最高规格配置
  • 视频生成默认使用 SeedanceOpenAI Sora 只作为可选回退 provider当前 Seedance 模型不支持单次 60 秒直出,使用 npm run videos:seedance -- --session <id> --target-seconds 45 按 15 秒分段生成并拼接30 秒集合片同理设置 --target-seconds 30
  • 不允许编造不存在的部署域名、账号、密码

图像链路事实

  • 输入入口:想法、二创、复刻三段;复刻模式会把上传主体图直接作为 L0 锚图
  • L0用户选中的意向图
  • L1角色锁定时生成的白底净化锚图写入 CharacterSpec.cleanReferenceImageUrl
  • L2每个素材包的根图例如 patent_frontacc_inventory_sheetprod_front_specmkt_white_front
  • L3包内其它图基于对应 L2 根图生成
  • pack 图像生成必须走真实图生图:读取 anchor 图片字节后调用 GPT image edit不再把参考图 URL 当纯文本拼进 prompt
  • 单张重做接口:POST /api/assets/[assetId]/regenerate,必须沿用该图的 anchor
  • 单张重做需要 confirmCost=true;前端会二次确认,服务端会拒绝未确认请求,并对同一 session/asset 加并发锁防连点烧钱
  • 生成图库:/api/gallery/[sessionId],按真实图片宽高比例展示缩略图,鼠标悬停显示大图;同页可跳转操作记录
  • 操作记录:/api/audit/[sessionId],读取 data/app.db 展示事件流水和图片索引
  • 视频参考优先级:宣发白底图 mkt_white_front → 专利主图 patent_front → L1 白底锚图 → L0 意向图
  • 上传 APIPOST /api/uploadsmultipart 图片存入 data/uploads/,返回 UploadedImage
  • 复刻建项目 APIPOST /api/projects/from-uploadmode=replicate 时跳过批量生图,创建 selected L0Vision 推断 CharacterSpec,并用 strict L1 净化 prompt
  • 上传图锁定 APIPOST /api/character/lock-from-upload,用于对上传主体图重新推断并 strict 净化
  • 多宫格提案板 / 品牌手册 / 包装展示图上传后strict L1 会先抽取最大最清晰的单一主角色,不保留版式、标题、包装平铺和场景小图
  • 用户上传图中的原创品牌字样、帽标、服装标识、面罩图案和配件图形必须保留;只对明显第三方已注册 IP 做替换提示
  • 素材包生成支持后台模式和增量保存;长耗时任务会逐张写回 session重复触发同一 session/image/kind 会被并发锁挡住

注意事项

  • data/ 目录会存原图generated/selected/refs可能体积大已 gitignored
  • refs/ 下放参考资料 PDF/DOCX/图(已 gitignoredrefs/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. 前一个图片包完整生成后,下一个图片包才解锁;不提供“一键全包”入口或全包 API
  8. 四个图片包完成后才解锁文案模板和视频任务旋转展示、开箱、触感细节、角色故事、工厂预览Seedance 单任务按 15 秒提交30/45/60 秒成片使用 scripts/seedance-60s-compose.mjs 分段拼接
  9. 侧栏保留历史会话,点击切换

后续路线

  • 导出专利包PNG高清 + PDF合订
  • ZIP/PDF 打包下载
  • OpenAI Sora 长视频任务轮询 UI 细化