
EcomGen 是面向个人卖家的本地优先电商 AI 应用。它不直接替用户一键出图,而是先把商品事实、商品素材、目标市场和平台要求整理成一份可审核的分镜,再由 Worker 调用兼容 OpenAI 的图像 Provider 逐张生成、审核并导出整套图片。
项目采用 MIT 协议开源,默认把 SQLite、上传素材、生成结果和导出文件都放在 ./data 目录,API Key 加密保存,前端不会直连 Provider、Redis 或 SQLite。对想把 AI 生产力落到具体出图流程里、又不愿把商品资料交给在线服务的独立卖家和小团队,这类自托管方案更可控。
技术栈方面,Web 端是 React 19、Vite、Ant Design、TanStack Query 和 Motion,API 层是 Fastify 5、TypeBox、SQLite、SSE 和 multipart,Worker 侧用 BullMQ、Redis、Sharp 和 Archiver,Agent 能力来自 @earendil-works/pi-agent-core 与 @earendil-works/pi-ai,工程侧是 TypeScript、pnpm workspace、Vitest 和 OpenAPI 3.1。
界面预览
工作台由 React + Vite 构建的 Web 前端承载,覆盖从建项目到导出的全过程。

项目入口:列出已有商品项目,每个项目的分镜、生成任务和导出状态一目了然。

商品配置:录入商品描述、已核实事实、禁止声明、品牌规范、目标市场和目标平台。

分镜确认:Pi Agent 给出分镜方案后,用户可直接编辑并逐条确认最终提示词。

生成结果:Worker 出图后在此审核,通过的图片打包成 ZIP 导出。
场景痛点
个人卖家做一套商品图,通常要在几个网页端工具之间反复横跳:先在主图工具里拼背景,再切到信息图模板改文案,最后回到修图软件统一尺寸。每次切换都要重新上传商品图、重新描述一遍卖点,改一个参数就得整批重做。中间缺的不是某个出图按钮,而是一套能把商品资料、分镜和出图串起来的效率工具。
更麻烦的是商品事实的一致性。卖家把「材质」「功率」「容量」这类信息交给通用聊天机器人写 AI 绘画提示词,模型会顺着语境编出没核实过的参数,生成的包装图上还可能印错规格。等图上了架才发现,返工成本比重新做一遍还高。
核心功能
项目化工作流
每个商品是一个独立项目,记录商品描述、已核实事实、禁止声明、品牌规范、目标市场和平台。这些字段后续会作为分镜规划的约束条件,避免每次生成都从头描述一遍商品。
Pi Agent 分镜规划
Pi Agent 读取内置的电商模板和平台规范,产出可直接交给图像模型的最终 Prompt。用户可以在确认环节自己改,改完再交给 Worker—— promptInstruction 就是最终 Prompt,Worker 不会在下游二次拼接模板。
25 种电商图片模板
内置改造后的 ecom-details-image 模板目录,覆盖主图、场景图、信息图、包装、对比和社媒等场景,模板定义在 packages/ecom-skill。未知模板 ID 会显式失败,不允许绕过模板校验。
素材与像素保护
素材按 PRODUCT_TRUTH、包装图和参考图三类区分。开启 PIXEL_PROTECTED 模式后,生成时必须使用当前项目的商品真值素材;缺少 PRODUCT_TRUTH 时任务直接失败,不会拿参考图顶替商品真实像素。
异步生成与审计
规划、生图、编辑和导出都由 BullMQ Worker 排队处理,每一步保存 compiledPrompt、生成快照和任务状态。这套 AI 自动化流水线在每一步都留了人工入口:SSE 只负责通知前端重新查询,REST 接口才是状态真相,刷新页面不会丢失进度。
Provider 管理
可以配置多个推理和生图 Provider,支持 OpenAI-compatible Images,也支持 Google Gemini 原生生图(Nano Banana)。API Key 加密存储,且明确规定:API Key、主密钥和其他凭据不得写入 Prompt、日志、manifest.json 或提交记录。
编辑、审核与导出
支持基于输出分支的图像编辑、人工审核和 ZIP 导出,导出时会附带 manifest 便于追溯整套图的生成参数。
安装与使用
前置条件
- Windows、Node.js 22 或更高版本
- pnpm 11(仓库锁定版本为
11.19.0) - Redis 6.2 或更高版本;本地可用 Redis 7 Docker 容器
- 一个 Base 64 编码的 32 字节
ECOMGEN_MASTER_KEY - 至少一个可用的推理 Provider;生图可用 OpenAI-compatible Images 或 Google Gemini Nano Banana
安装
生成主密钥并写入 .env 的 ECOMGEN_MASTER_KEY(不要提交 .env):
默认配置使用 ./data 保存 SQLite、上传素材、生成结果和导出文件,使用 redis://127.0.0.1:6379 连接 Redis。Web 端可按需在 apps/web/.env 中设置:
启动服务
先确保 Redis 已启动,再在三个终端分别运行:
默认地址:Web 为 Vite 输出的本地地址(通常为 http://127.0.0.1:5173),API 为 http://127.0.0.1:8787,API 契约见 openapi.yaml。也可以用根脚本一次拉起三个服务:pnpm dev。
Docker Compose 部署
Compose 会启动 Redis、API 和 Worker,业务数据存到命名卷;API 同时托管 apps/web/dist,因此只需暴露一个端口。先在根目录创建 .env 并至少设置 ECOMGEN_MASTER_KEY:
启动后访问 http://127.0.0.1:8787 即完整工作台。部署在 VPS 或远程服务器时,用 http://<服务器IP>:8787 访问,建议前置 Nginx 或 Caddy 反代并配置 HTTPS。查看日志和停止服务:
需要注意,VITE_API_BASE_URL 是构建期变量:前后端分开部署时,必须在 pnpm --filter @ecomgen/web build 之前设置为浏览器可访问的 API 地址,构建后无法修改;不设置时默认走同源相对路径 /api/v1。
常用命令
按包运行示例:pnpm --filter @ecomgen/web test、pnpm --filter @ecomgen/agent test -- --run、pnpm --filter @ecomgen/worker build。
Gemini 生图配置
| 配置项 | 取值 |
| Base URL | https://generativelanguage.googleapis.com/v1beta |
| 模型 ID | gemini-2.5-flash-image |
| 生图 API 类型 | gemini |
该适配器使用 Gemini generateContent 的原生图像响应,参考图以内联图片发送。Gemini 不支持 OpenAI 式蒙版,因此局部蒙版编辑和画布外扩会按能力检查显式拒绝——这是能力边界,不是配置项能绕过的。
我的使用感受
EcomGen 的思路和常见的一键出图工具不太一样:它把「先说清楚商品是什么」放在「生成图片」之前,分镜这一层是可以逐条改、逐条确认的。对卖家长尾 SKU 多的情况,这套约束比多轮对话调提示词更省事。
代价是上手成本不低。要自备 Redis、自备推理 Provider,还得理解 PRODUCT_TRUTH 和 PIXEL_PROTECTED 这类概念。它属于那种需要花半小时配环境、之后能长期复用的实用软件,在众多 AI 工具里定位偏流程管控而非出图速度。指望开箱即用会有点落差,但对正在找电商出图方案的卖家,这是值得放进工具推荐清单的一个选择。
官方网站
https://github.com/linbei0/EcomGen
下载地址
https://pan.quark.cn/s/6b0434d9a1ec







