# amazon-image-studio **Repository Path**: KnightKilito/amazon-image-studio ## Basic Information - **Project Name**: amazon-image-studio - **Description**: Fork & diy from https://github.com/Ali-Aria/amazon-image-studio.git - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-27 - **Last Updated**: 2026-07-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 说明 本项目来源于https://github.com/Ali-Aria/amazon-image-studio,在本人自己的需求下进行修改自用 # 亚马逊图片工作台 亚马逊图片工作台是一个面向 Amazon Listing 的产品图片策划与生成工作台,基于 [CookSleep/gpt_image_playground](https://github.com/CookSleep/gpt_image_playground) 修改。 它适合用来把产品标题、五点描述、卖点文案和参考图,整理成 Amazon Listing 图片或 A+ Content 图片策划,并逐张生成图片。 项目仓库:[Ali-Aria/amazon-image-studio](https://github.com/Ali-Aria/amazon-image-studio) ## 管理员统一配置 前端不会直接连接 MySQL。统一游客 API URL、游客权限、参考图上限和管理员账号密码由 Node 管理 API 读写 MySQL。 ```bash npm run admin:server ``` 首次启动会自动创建 `amazon_image_studio` 数据库,以及 `admin_users`、`admin_settings` 表。默认管理员账号为 `admin`,密码沿用旧前端内置管理员密码;部署时建议先复制 `config.example.yaml` 为 `config.yaml`,再在 `config.yaml` 中修改管理员账号、密码、MySQL 连接和管理 API 端口。 `config.yaml` 是本机/服务器实际配置文件,已经加入 `.gitignore`,不会被提交到 Git;`config.example.yaml` 是可提交的模板。环境变量仍然可用,并且优先级高于 `config.yaml`,适合 systemd、Docker 或临时覆盖。开发环境下 Vite 会把 `/admin-api` 代理到 Node 管理 API;生产部署时也需要把 `/admin-api` 转发到该 Node 服务。 ### 需要修改的配置项 如果你把项目部署到自己的服务器,通常需要复制并修改根目录下的 `config.yaml`: ```bash cp config.example.yaml config.yaml ``` ```yaml adminServer: port: 8787 username: admin password: "你的管理员密码" passwordSha256: "" mysql: host: 127.0.0.1 port: 3306 user: root password: "你的MySQL密码" database: amazon_image_studio apiProxy: enabled: false locked: false prefix: /api-proxy allowAllTargets: false allowedTargets: [] target: "" changeOrigin: true secure: true ``` 这些 YAML 配置项也可以用环境变量覆盖: - `mysql.host` / `AIS_DB_HOST`:MySQL 主机地址,默认 `127.0.0.1` - `mysql.port` / `AIS_DB_PORT`:MySQL 端口,默认 `3306` - `mysql.user` / `AIS_DB_USER`:MySQL 用户名 - `mysql.password` / `AIS_DB_PASSWORD`:MySQL 密码 - `mysql.database` / `AIS_DB_NAME`:数据库名,默认 `amazon_image_studio` - `adminServer.port` / `AIS_ADMIN_PORT`:Node 管理 API 监听端口,默认 `8787` - `adminServer.username` / `AIS_ADMIN_USERNAME`:管理员账号,默认 `admin` - `adminServer.password` / `AIS_ADMIN_PASSWORD`:管理员明文密码,首次启动时会被转成 SHA-256 后写入数据库 - `adminServer.passwordSha256` / `AIS_ADMIN_PASSWORD_SHA256`:如果你已经自己准备好了 SHA-256 密码哈希,可以直接填这个值 - `apiProxy.enabled` / `AIS_API_PROXY_ENABLED`:是否启用 Node 同源 API 代理,用于解决浏览器跨域 - `apiProxy.locked` / `AIS_API_PROXY_LOCKED`:是否强制前端使用代理,开启后用户不能关闭设置里的 API 代理 - `apiProxy.prefix` / `AIS_API_PROXY_PREFIX`:前端访问代理的同源路径,默认 `/api-proxy` - `apiProxy.allowAllTargets` / `AIS_API_PROXY_ALLOW_ALL_TARGETS`:是否允许代理任意 `http/https` API URL,公网部署要谨慎 - `apiProxy.allowedTargets`:允许代理的 API base URL 白名单,适合后续收紧代理范围 - `apiProxy.target` / `AIS_API_PROXY_TARGET`:兼容旧固定目标模式;如果请求没有携带目标地址,会回退到这个地址 - `apiProxy.changeOrigin` / `AIS_API_PROXY_CHANGE_ORIGIN`:转发时是否改写 Host,默认 `true` - `apiProxy.secure` / `AIS_API_PROXY_SECURE`:预留的 HTTPS 校验配置,默认 `true` 管理员在后台里保存的内容会落到数据库表 `admin_settings`,包括: - 游客是否允许修改 API URL - 游客是否允许查看 API URL - 游客是否允许创建新 API 配置 - 游客是否允许修改服务商类型 - 游客是否允许创建自定义服务商 - 统一游客策划 API URL - 统一游客生图 API URL - 模型 ID 可选项列表 - 参考图上传上限 如果你只改前端静态文件,不启动 Node 管理 API,那么这些统一配置不会生效。 ## 服务器环境要求 新增 Node 后端后,服务器除了能跑前端静态站点,还需要具备这些环境: - Node.js 20 或更新版本 - npm - MySQL 8.0 或兼容版本 - 一台能够长期运行 Node 管理 API 的机器或容器 - 反向代理或网关,例如 Nginx、Caddy、Apache,或者云平台自带转发规则 - 如果你要把站点放到 HTTPS 域名下,建议给前端和 Node 管理 API 都配好 HTTPS 推荐的最低部署形态是: - 前端静态资源由 Nginx、CDN、GitHub Pages、Cloudflare Pages、Vercel Static 等托管 - Node 管理 API 单独跑在服务器上,同时提供 `/admin-api` 和可选的 `/api-proxy` - MySQL 只对 Node 管理 API 开放,不要直接暴露给浏览器 ## 服务器部署流程 下面是把这个项目部署到自己服务器的一套常见流程: 1. 在服务器上安装 Node.js 20+ 和 MySQL。 2. 在 MySQL 里准备一个可连接账号,建议单独创建一个只给这个项目用的用户。 3. 把项目代码部署到服务器,执行 `npm ci` 安装依赖。 4. 复制配置模板并修改真实配置: ```bash cp config.example.yaml config.yaml vi config.yaml ``` 5. 启动 Node 管理 API: ```bash npm run admin:server ``` 6. 确认首次启动后数据库里已经自动创建 `amazon_image_studio`、`admin_users`、`admin_settings`。 7. 构建前端静态资源: ```bash npm run build ``` 8. 把 `dist/` 部署到你的静态托管环境。 9. 配置反向代理,把前端站点访问到的 `/admin-api` 和 `/api-proxy` 都转发到 Node 管理 API,例如 `http://127.0.0.1:8787/admin-api`、`http://127.0.0.1:8787/api-proxy`。 10. 打开前端页面,登录管理员,检查统一 URL、游客权限和参考图上限是否已经从数据库读取成功。 如果你使用 Docker、PM2、systemd 或云平台部署,也遵循同样的顺序:先保证 MySQL 可用,再启动 Node 管理 API,最后发布前端静态文件并转发 `/admin-api`。 ### 配置项位置 这些配置项不是在前端页面里改,而是在服务器项目根目录的 `config.yaml` 里改。仓库只提交 `config.example.yaml` 模板,真实的 `config.yaml` 已经加入 `.gitignore`,避免把 MySQL 密码和管理员密码提交出去。 主要配置项: - `mysql.host`、`mysql.port`、`mysql.user`、`mysql.password`、`mysql.database`:MySQL 连接信息 - `adminServer.port`:Node 管理 API 监听端口 - `adminServer.username`、`adminServer.password`、`adminServer.passwordSha256`:首次初始化管理员账号使用 - `apiProxy.enabled`、`apiProxy.locked`、`apiProxy.prefix`、`apiProxy.allowAllTargets`、`apiProxy.allowedTargets`、`apiProxy.target`:同源 API 代理配置,AI 策划或生图接口跨域时建议开启 如果你用 `systemd`、Docker 或临时命令行部署,也可以继续用 `AIS_DB_HOST`、`AIS_DB_PORT`、`AIS_DB_USER`、`AIS_DB_PASSWORD`、`AIS_DB_NAME`、`AIS_ADMIN_PORT`、`AIS_ADMIN_USERNAME`、`AIS_ADMIN_PASSWORD`、`AIS_ADMIN_PASSWORD_SHA256`、`AIS_API_PROXY_ENABLED`、`AIS_API_PROXY_ALLOW_ALL_TARGETS`、`AIS_API_PROXY_TARGET` 等环境变量覆盖 YAML。环境变量优先级高于 `config.yaml`。 小带宽服务器建议保持 `apiProxy.enabled: false`,这样 AI 策划和生图会由浏览器直接请求你在前端填写的 API URL,不经过 Node 后端。只有第三方接口不允许浏览器跨域时,再开启某个 API 配置里的“API 代理”开关;如果使用 `apiProxy.allowAllTargets: true`,Node 会按前端请求携带的目标 API URL 转发,有开放转发器风险,后续建议改成 `allowAllTargets: false` 并把常用 API base URL 写入 `allowedTargets`。 注意:管理员账号会在首次启动时写入数据库 `admin_users`。如果数据库里已经有同名管理员,后续只改 `config.yaml` 里的 `adminServer.password` 不会自动覆盖数据库密码,需要手动更新数据库或删除旧管理员记录后重新初始化。 ### CentOS 8 示例 CentOS 8 上可以按下面的顺序部署: 1. 安装基础组件、Node.js 和 MySQL。 2. 把项目代码放到服务器,例如 `/opt/amazon-image-studio`。 3. 在项目目录执行 `npm ci`。 4. 复制 `config.example.yaml` 为 `config.yaml`,填写 MySQL 和管理员信息。 5. 启动 Node 管理 API,让它读 MySQL 并自动建库建表。 6. 执行 `npm run build`,把 `dist/` 作为静态前端目录。 7. 用 Nginx 把站点根目录指向 `dist/`,同时把 `/admin-api` 和 `/api-proxy` 代理到 `127.0.0.1:8787`。 8. 浏览器打开站点,登录管理员,检查统一 URL、权限开关和模型 ID 列表是否都能读到。 如果你用 `systemd`,可以把 Node 管理 API 做成一个独立服务,前端静态文件继续交给 Nginx 托管。这样重启更稳,也方便开机自启。 ### Nginx 示例 如果前端和 Node 管理 API 部署在同一台服务器上,可以参考下面的 Nginx 思路: ```nginx server { listen 80; server_name example.com; location /admin-api/ { proxy_pass http://127.0.0.1:8787/admin-api/; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } location /api-proxy/ { proxy_pass http://127.0.0.1:8787/api-proxy/; proxy_http_version 1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_read_timeout 300s; } location / { root /var/www/amazon-image-studio/dist; try_files $uri $uri/ /index.html; } } ``` 如果你把前端静态站点放在 CDN、GitHub Pages、Cloudflare Pages 或 Vercel Static,上面的 `/admin-api` 仍然需要由另一台能够运行 Node 的服务器提供。 ## 开源说明 本仓库公开的是前端应用源码、Amazon 图片策划逻辑、Prompt 模板、知识文档、本地启动脚本和部署配置,采用 [MIT License](LICENSE) 发布。 需要注意: - Codex / Claude Code / OpenClaw 只是可选的安装助手,不是项目运行依赖;不用 AI 编程工具也可以按下面的手动方式本地运行。 - 在线体验和本地应用都不会内置 API Key。生成图片和 AI 策划需要使用者填写自己的 OpenAI 或兼容接口 Key,并自行承担调用费用。 - `package.json` 中的 `"private": true` 仅用于防止误发布到 npm,不代表 GitHub 仓库私有,也不影响源码开源。 ## 更新日志 按自然周(周一至周日)整理,最新一周在最上方。每个周块可展开查看本周推送内容,提交号用于回溯具体改动。
2026-06-15 至 2026-06-21 - 自定义策划数量、A+ 模块编排与提示词分辨率 - Listing AI 策划支持自定义图片数量,默认仍为 7 张,可在 `7-12` 张之间选择,数量包含 `MAIN` 主图。 - A+ 策划前可在右侧“模块编排”中逐行添加同尺寸模块、删除模块,并可恢复当前 A+ 类型默认编排;每个 A+ 类型支持 `1-12` 张模块。 - A+ 自定义模块数量会进入 AI 策划请求,schema、系统提示词、用户提示词、Chat JSON guide 和结果校验都会按当前模块清单执行。 - 生图最终提示词会自动追加期望输出分辨率,例如 `2048x2048` 或 `4096x4096`,让模型在提示词层面也知道目标尺寸。 - Agent 批量生图和图片工具调用同步加入输出分辨率约束,减少生成尺寸和当前参数脱节。 - 开发代理会在 API URL 与本地代理目标一致时自动启用,降低本地 HTTP/内网接口配置成本。 - 提交:随本次 `main` 推送发布。
2026-06-08 至 2026-06-14 - 可编辑风格图、A+ 类型扩展、移动端操作窗与 DeepSeek 策划兼容 - 视觉风格新增可编辑预设和“我的风格”库,用户可从内置风格派生色板、字体、光影、材质和信息密度,并作为隐藏参考图参与附图和 A+ 生图。 - 风格编辑窗口保留英文方向作为实际参考内容,同时为字体方向、光影方向和材质方向增加中文说明,便于理解但不写入最终风格参考图。 - A+ 策划类型统一为普通A+、标准A+、高级A+、手机A+;新增手机A+ 5 张 `600x450` 模块,适合移动端短屏阅读。 - 移动端生成操作悬浮窗支持收起到左侧或右侧,收起后可通过贴边小标签展开,减少遮挡图片预览和底部输入区。 - AI 策划检测到 `https://api.deepseek.com` 时自动跳过参考图,仅发送纯文本 Chat Completions 请求,避免 DeepSeek 官方接口因 `image_url` 报错。 - 补充 DeepSeek 策划配置说明,明确官方 Chat Completions 当前不接收参考图。 - DeepSeek Chat Completions 和 Responses 策划统一按纯文本模型处理,增加反脑补约束,并在设置页和 Amazon 面板提示用户补齐产品关键特征。 - 补充 Vercel 体验版调用 HTTP API 的 HTTPS 安全策略提示。 - 提交:`8927ad1`、`8a42d09`、`b2ab475`,以及本次可编辑风格图更新。
2026-06-01 至 2026-06-07 - OpenRouter、参考图压缩与策划体验 - OpenRouter 生图改走 Chat Completions 图片生成,修复普通 Images API 路径下的 404。 - OpenRouter 请求补齐 `image_config.aspect_ratio` 和 `image_config.image_size`,A+ 非 1:1 图片会映射到最接近的支持比例,减少实际输出回落到 1024 级别。 - 视觉风格支持内置预设和可编辑“我的风格”,附图和 A+ 生成时会作为隐藏参考图参与最终生图。 - 参考图请求前会压缩、控尺寸并校验负载,修复大参考图导致的 413。 - 普通生图限制为 Images API,OpenRouter 图片模型保留兼容入口,避免误用不支持生图的配置。 - README 增加在线体验说明,Windows 启动脚本会在启动前自动检查并安装依赖。 - 优化 Amazon Planner 引导、API 默认配置、图片编辑流程、A+ 策划规则、风格控制和合规提示。 - 提交:`dd63338`、`9cdecd0`、`dc5e54d`、`031069d`、`56be7df`、`bff26ca`、`7d13774`、`ed43bf5`、`73c70f4`。
2026-05-25 至 2026-05-31 - Amazon 策划工作流、知识规则与本地化 - 大幅更新 Amazon Planner 工作流,强化 Listing 图片和 A+ 图片的策划、选择和生成流程。 - 调整图片默认参数、历史记录字段、任务展示和分类继承逻辑。 - 更新 dev proxy、mock image API、接口兼容测试和参数兼容逻辑。 - 内置 Amazon 图片规范、附图策划逻辑和 A+ 尺寸知识文档。 - 策划接口会引用内置知识规则,提高 Listing / A+ 策划稳定性。 - 项目名称统一调整为“亚马逊图片工作台”,同步页面标题、PWA manifest、启动脚本和界面文案。 - README 增加更完整的本地安装、启动和交付说明,历史记录搜索栏增加清理能力。 - 优化 Amazon Planner 工作流说明、Listing 图片策划模板、复制逻辑和相关测试。 - 提交:`a85312c`、`7c231bf`、`899532d`、`5cc09c4`、`0c8b9ec`、`d1de756`、`81a3fbd`、`3778620`。
2026-05-18 至 2026-05-24 - 项目初始化、部署配置与 A+ 模板 - 完成项目初始化,包含前端应用、图片生成、图片编辑、历史记录、设置页、PWA、代理和部署基础配置。 - 配置 GitHub Pages 工作流,并支持 main 分支推送后部署。 - 更新部署文档、安装路径说明和项目 GitHub 链接。 - 完善 README 使用说明。 - 优化 A+ Planner 模板、模块文案和任务历史展示。 - 默认关闭流式输出,降低默认配置复杂度。 - 提交:`ab63d9b`、`78ef9ea`、`3826fbc`、`ae118af`、`94c5cca`、`d929bdc`、`5860ddd`、`93f9585`、`f9198cb`。
## 在线体验 - 体验地址:[https://ali-aria.github.io/amazon-image-studio/](https://ali-aria.github.io/amazon-image-studio/) - 打开在线体验不需要 Codex;Codex 只是一种可选的本地安装方式。 - 在线体验不会内置 API Key;生成图片和 AI 策划都需要在右上角设置中填写你自己的 OpenAI 或兼容接口 Key。 - API Key 保存在当前浏览器本地,不会提交到仓库;如果线上页面加载异常,也可以按下面的“启动项目”在本地运行。 - 💡 提示:若需调用非 HTTPS 的内网或本地 HTTP API,请使用 GitHub Pages 版本或自行部署,Vercel 部署的体验版绑定的 .dev 域名因安全策略通常要求接口必须为 HTTPS。 ## 核心功能 - AI 策划 Listing 图片:粘贴标题、五点描述或产品说明后,默认生成 `MAIN + PT01-PT06` 共 7 张图片,也可自定义为 `7-12` 张。 - AI 策划 A+ 图片:支持 `普通A+ / 标准A+ / 高级A+ / 手机A+` 四套 A+ 模块编排,策划前可按行添加或删除同尺寸模块。 - 参考图上传:支持上传产品实拍图、包装图、结构图,生成时会作为参考图一起发送。 - 逐张生成:在右侧选择 `MAIN`、`PT01`、`A+L01`、`A+S01`、`A+P01`、`A+M01` 等图片位后,当前 Prompt Preview 会切换到对应提示词。 - Amazon 合规提示:主图白底、商品占比、禁用 Amazon/Prime/价格/评价/Best Seller 等风险元素。 - 支持 2K / 4K 输出;Listing 图默认方图,A+ 图按模块比例生成高清图,并显示 Seller Central 上传建议尺寸。 - 最终生图提示词会自动写入当前期望输出分辨率,让提示词和尺寸参数保持一致。 - A+ 小方块模块支持单独输出标题/正文文案,和图片内文字分开,避免把长文案画进 220x220 图片里。 - 支持 OpenAI / OpenAI 兼容图片接口,以及独立的 AI 策划 Chat Completions / Responses API 配置。 - 历史记录支持按商品、来源、形状筛选;从历史记录复用或编辑 Listing / A+ 图片时,新任务会继承原商品分类。 - 保留原项目的参考图、遮罩编辑、历史记录、批量下载、本地 IndexedDB 存储等能力。 ## 环境要求 推荐在 Windows 上使用。 需要先安装: - Node.js 20 LTS 或更新版本 - npm 安装完成后,可以在 PowerShell 或命令行中检查: ```powershell node --version npm --version ``` ## 首次安装 首次安装只需要做一次。下面两种方式二选一即可;如果已经让 AI 工具完成安装并启动,就不要再重复执行手动安装。 ### 方式一:Codex / Claude Code / OpenClaw 安装并启动 如果你要把项目发给别人使用,最简单的方式是直接发 GitHub 仓库链接: ```text https://github.com/Ali-Aria/amazon-image-studio ``` 对方可以在 Codex、Claude Code、Claw Code 或其它 AI 编程工具里粘贴下面这段话: ```text 请把这个 GitHub 项目安装到我的本地电脑并启动: https://github.com/Ali-Aria/amazon-image-studio 要求: 1. 先确认本机已经安装 Node.js 20 LTS 或更新版本和 npm。 2. 如果本地还没有项目,就 clone 仓库;如果已经下载 ZIP 或源码文件夹,直接进入现有项目目录,不要重复下载。 3. 在项目目录运行 npm ci 安装依赖。 4. 如果我是 Windows 用户,优先检查仓库里的 start-amazon-image-studio.bat,能用的话帮我用它启动项目;停止时可以用 stop-amazon-image-studio.bat。 5. 如果不使用 bat 脚本,就运行 npm run dev 启动项目。 6. 告诉我浏览器应该打开哪个本地地址。 ``` 如果 AI 工具不会自动执行命令,也可以让它按下面“方式二:手动安装(通用)”和“启动项目”里的命令一步一步带你操作。Windows 用户可以优先双击 `start-amazon-image-studio.bat` 启动;脚本会在首次启动或依赖变更后自动安装依赖,停止时双击 `stop-amazon-image-studio.bat`。项目启动后,每个使用者都需要在页面右上角设置里填写自己的 API Key;不要把你的 API Key 发给别人。 ### 方式二:手动安装(通用) 先把仓库下载到本地: ```powershell git clone https://github.com/Ali-Aria/amazon-image-studio.git cd amazon-image-studio ``` 如果你已经下载了 ZIP 或复制了源码文件夹,直接在终端进入你自己的项目目录即可。 安装依赖: ```powershell npm ci ``` 依赖只需要安装一次。以后日常使用直接看下面的“启动项目”。 ## 启动项目 ### 方式一:手动启动(通用) 在项目目录中执行: ```powershell npm run dev ``` 然后打开终端中显示的本地地址,通常是: ```text http://127.0.0.1:5173/ ``` 停止时,在运行开发服务的终端中按 `Ctrl + C`。 ### 方式二:双击启动(Windows 可选) 仓库根目录包含 Windows 便捷脚本: ```text start-amazon-image-studio.bat ``` 双击后会启动本地开发服务,并自动打开浏览器: ```text http://127.0.0.1:5173/ ``` 如果服务已经在运行,脚本会直接打开浏览器。 首次双击或 `package-lock.json` 发生变化后,脚本会先运行 `npm ci` 安装依赖;依赖安装成功后才会启动项目。如果电脑还没有安装 Node.js 20 LTS 或更新版本,脚本会提示先安装 Node.js。 ## 停止项目 手动启动时,在终端中按 `Ctrl + C` 即可停止。 如果使用 Windows 双击脚本启动,也可以双击: ```text stop-amazon-image-studio.bat ``` 脚本会停止当前项目对应的本地开发服务。如果 5173 端口被其它程序占用,脚本不会强行关闭无关进程。 ## API 配置 打开页面后,点击右上角设置图标,进入 API 配置。 `API URL` 填写的是接口基础地址,不要填写完整 endpoint。例如填写 `https://api.example.com/v1`,应用会根据接口类型自动拼接 `/images/generations`、`/images/edits`、`/responses` 或 `/chat/completions`。如果填写 `https://api.example.com/v1/images/edits`,保存时会被规范化回 `https://api.example.com/v1`。 建议准备两个配置: ### 1. 生图配置 用于真正生成图片。 - 服务商:OpenAI 或 OpenAI 兼容接口 - API 接口:`Images API (/v1/images)` - 模型:`gpt-image-2` - API Key:填写你自己的 Key OpenRouter 生图模型不提供 OpenAI `/images/generations` 路径,应用会自动把 `https://openrouter.ai/api/v1` 的生图请求转到 `/chat/completions` 并发送 `modalities`。OpenRouter 示例:API URL 填 `https://openrouter.ai/api/v1`,模型填支持图片输出的模型,例如 `google/gemini-2.5-flash-image`;API 接口选择 `Images API` 或 `Chat Completions` 都可以。遮罩编辑仍需使用支持 `/images/edits` 的接口。 ### 2. AI 策划配置 用于根据 Listing 生成 `MAIN + PT01...` 或 A+ 模块图片策划。 - 服务商:OpenAI - API 接口:`Chat Completions (/chat/completions)`;OpenAI 官方也可继续使用 `Responses API (/v1/responses)` - 模型:文本/多模态模型,例如 DeepSeek 使用 `deepseek-v4-flash` - API Key:填写你自己的 Key DeepSeek 示例:API URL 填 `https://api.deepseek.com`,API 接口选择 `Chat Completions (/chat/completions)`,模型填 `deepseek-v4-flash`。当前 DeepSeek 官方 Chat Completions 接口只接收文本内容,本项目检测到该地址时会自动跳过参考图,仅用 Listing 文本做 AI 策划。 在设置页中,把“AI 策划配置”选择为这个 Chat Completions 配置。这样生图和策划不需要来回切换接口类型。 AI 策划提示词已内置精炼版亚马逊图片知识库规则,包括 Listing 主图/附图规范、A+ 模块尺寸、移动端可读性和合规禁用项。原始知识库 Markdown 保存在 `docs/knowledge/` 作为规则来源备查,运行时不会把整篇原文发送给模型。 ## 使用流程 1. 启动项目并打开页面。 2. 在设置中配置生图 API 和 AI 策划 API。 3. 在 Amazon 面板顶部选择 `Listing 图` 或 `A+ 图`。 4. 如果选择 `Listing 图`,可在顶部选择本次策划图片数量,默认 7 张,范围为 7-12 张。 5. 如果选择 `A+ 图`,默认使用 `普通A+`,也可以切换为 `标准A+`、`高级A+` 或 `手机A+` 编排,并在右侧模块清单里添加、删除或恢复默认模块。 6. 在策划输入框中粘贴产品标题、五点描述、产品说明或品牌说明。 7. 在“参考图”区域上传产品实拍图、包装图或结构图。 8. 点击 `AI策划` 或 `AI策划A+`,生成逐张方案。 9. 在右侧选择要生成的图片位,例如 `MAIN`、`PT01`、`A+L01`、`A+S01`、`A+P01` 或 `A+M01`。 10. 检查 Prompt Preview,必要时调整左侧商品信息。 11. 点击“填入”把当前提示词填到底部输入栏,或点击“提交生成”直接开始生成。 12. 生成完一张后,继续选择下一张图片位逐张生成。 ## A+ 图片说明 普通A+ 当前默认编排,也是 A+ 图片策划的默认选项: - `A+L01` Header Banner:上传建议 `970x300` - `A+L02-A+L05` Single Image:上传建议 `970x600` 标准A+ 编排: - `A+S01` Header Banner:上传建议 `970x300` - `A+S02-A+S04` Single Image:上传建议 `970x600` - `A+S05-A+S08` Highlight Tile:上传建议 `220x220` 高级A+ 编排: - `A+P01` Hero Banner:上传建议 `1464x600` - `A+P02-A+P04` Feature Image:上传建议 `970x600` - `A+P05-A+P06` Brand Story:上传建议 `463x625` 手机A+ 编排面向移动端短屏阅读,默认 5 张 4:3 图片: - `A+M01` Mobile Hero:上传建议 `600x450` - `A+M02-A+M05` Mobile Feature:上传建议 `600x450` A+ 策划前可以在右侧模块编排中调整数量:点击某一行的加号会在该行后添加同尺寸、同类型模块;点击删除会移除该模块;“恢复默认”会回到当前 A+ 类型的默认编排。每个 A+ 类型最少 1 张,最多 12 张。AI 策划完成后的结果列表保持只读,如需修改数量,请重新调整模块后再次 AI 策划。 A+ 生图会按模块比例请求 2K / 4K 高清画布,页面中会同时显示“生成尺寸”和“上传建议尺寸”。`Highlight Tile` 会额外生成可复制的 A+ 标题/正文文案;这些外部文案不会写入图片生成 Prompt。当前版本不自动裁切、压缩到 2 MB,也不默认生成 Logo 图或对比图。 ## 安全说明 - 不要把你的 API Key 提交到 GitHub。 - 不要把包含 API Key 的配置截图发给别人。 - 本项目的 API Key 保存在你自己浏览器的本地存储中。 - 每个使用者应填写自己的 API Key,并自行承担 API 调用费用。 - 如果你要把项目发给别人,请确认仓库中没有 `.env`、私钥、真实 API Key 或个人数据。 ## 常见问题 ### 启动后打不开页面 确认是否已经安装依赖: ```powershell npm ci ``` 然后重新运行: ```powershell npm run dev ``` Windows 用户也可以重新双击 `start-amazon-image-studio.bat`。 ### 5173 端口被占用 如果是手动启动,先在终端中按 `Ctrl + C`。如果是 Windows 脚本启动,可以双击: ```text stop-amazon-image-studio.bat ``` 如果仍然提示被占用,说明 5173 可能被其它程序使用,需要先关闭对应程序,或改用 Vite 输出的其它端口。 ### AI 策划失败 检查“AI 策划配置”是否使用了文本接口,并确认模型不是图片生成模型。DeepSeek 请使用 `Chat Completions (/chat/completions)`;当前 DeepSeek 官方接口不接收参考图,本项目会自动跳过参考图。部分图片中转接口只开放 `/v1/images`,不支持聊天或 Responses 接口,这种情况下 AI 策划会失败。 ### 生图失败 检查当前生图配置是否填写了正确的 API URL、API Key、模型和接口类型。生成图片建议使用 `Images API (/v1/images)` + `gpt-image-2`。 如果 OpenRouter 报 404,通常是旧版本请求到了 `/images/generations`。请更新后使用 `https://openrouter.ai/api/v1` 和带 `image` 输出能力的模型;OpenRouter 的图片生成实际走 `/chat/completions`。 ## 构建 如果需要生成生产构建: ```powershell npm run build ``` 构建产物在: ```text dist/ ``` ## 静态部署 前端部分仍然是 Vite 单页应用,静态托管平台只需要安装依赖、运行构建命令,并把 `dist/` 作为静态目录发布。 如果你启用了新增的 Node 管理后端,静态部署只覆盖前端页面,Node 服务和 MySQL 仍然需要单独部署。 推荐配置: ```text Install command: npm ci Build command: npm run build Output directory: dist Node.js version: 20 ``` ### GitHub Pages 仓库已包含 GitHub Pages 工作流: ```text .github/workflows/deploy.yml ``` 使用步骤: 1. 进入 GitHub 仓库的 `Settings -> Pages`。 2. `Build and deployment` 的 `Source` 选择 `GitHub Actions`。 3. 推送到 `main` 后会自动构建并部署。也可以在 `Actions` 页面手动运行 `Deploy to GitHub Pages`,或推送 `v*` 格式的 tag,例如 `v0.1.0`。 项目的 Vite `base` 已设置为 `./`,可以部署在 `https://.github.io/amazon-image-studio/` 这类子路径下。 当前仓库的 GitHub Pages 体验地址: ```text https://ali-aria.github.io/amazon-image-studio/ ``` ### Cloudflare Pages 连接 GitHub 仓库后,按以下方式配置: ```text Framework preset: Vite Build command: npm run build Build output directory: dist Node.js version: 20 ``` 如果使用 Cloudflare Workers 静态资源部署,也可以使用仓库中的 `wrangler.jsonc`,先执行: ```powershell npm run build ``` 再按你的 Cloudflare 账号配置运行 Wrangler 部署。 ### Vercel 当前仓库的 `vercel.json` 里关闭了 Git 自动部署: ```json { "git": { "deploymentEnabled": false } } ``` 如果要让 Vercel 在每次 push 后自动部署,请删除这段配置,或把 `deploymentEnabled` 改为 `true`。如果继续保留它,可以使用 `.github/workflows/vercel-tag-deploy.yml` 中的 Deploy Hook 方式,并在 GitHub Secrets 里配置 `VERCEL_DEPLOY_HOOK`。 ## 许可与来源 本项目源码以 [MIT License](LICENSE) 发布。开源范围包括前端源码、Prompt 模板、内置知识文档、本地启动脚本和部署配置;不包含 OpenAI、ChatGPT、Codex 或任何第三方模型服务本身,也不附带 API Key 或免费调用额度。 本项目基于 MIT 许可的 [GPT Image Playground](https://github.com/CookSleep/gpt_image_playground) 修改,原作者为 CookSleep。 请保留应用内“关于”页中的原项目署名与 MIT 许可声明。