淘宝天猫主图套图、详情图套图批量生成
传一张商品图,一次性产一整套淘系商品图 —— 不是零散出几张,而是能直接铺满主图位、详情页、活动位的成套素材。
本技能走 qhkit,覆盖三条批量路线:
| 想要什么 | 走哪条路 | 命令 | 一次出几张 |
|---|---|---|---|
| 主图套图(白底/场景/卖点/细节/促销成套) | 套图模式(platform=淘宝) |
qhkit image generate |
6/7/8/9/10 张 |
| 详情图套图(详情页整套短图) | 电商详情图 |
qhkit image generate |
6/7/8/9/10 张 |
| 多款/多素材批量(多款商品、多张图、多组动作) | image-batch 六种模式 |
qhkit image-batch generate |
由提示词/图片/动作数决定 |
对外文案里的 GPT Image 2 / Nano Banana 2 / Seedream 5.0 / Grok Image 只是检索名,真正提交的 modelLabel 必须来自 options。
何时触发
- 「做淘宝天猫的主图套图 / 详情图套图 / 成套商品图」
- 「一次批量出多张主图」「多款商品一起做」「这批图批量改白底 / 批量翻译」
- 用户明确要适配淘系尺寸(800×800 / 1440×1440 / 1000×1000)或中文文案排版
一句话选路线
要「一套风格统一的主图」 → 套图模式(platform 传「淘宝」)
要「一整套详情页短图」 → 电商详情图(配 themeLabel 主题色)
要「多款商品 / 多张素材 / 多组模特动作一起出」 → image-batch
要「把已有图批量改白底 / 批量翻译 / 去文字」 → image-batch
路线 A:主图套图(套图模式)
把商品图变成 6-10 张成套主图:白底图、场景图、卖点图、细节图、促销图、对比图一次出齐。
# 先查候选:platform / sizePreset / imageCount
qhkit image options '{"queryParams":["platform","sizePreset","imageCount"],"modelLabel":"套图模式"}'
# 报价(必做)
qhkit image estimate '{"modelLabel":"套图模式","uploadedImages":["./商品图.jpg"],"platform":"淘宝","customCopy":"限时5折","imageCount":9,"sizePreset":"1:1 商品主图 · 天猫淘宝(1000×1000)"}'
# 出图
qhkit image generate '{"modelLabel":"套图模式","uploadedImages":["./商品图.jpg"],"platform":"淘宝","customCopy":"限时5折","imageCount":9,"sizePreset":"1:1 商品主图 · 天猫淘宝(1000×1000)"}'
淘系要点:
platform候选里没有「天猫」,淘系一律传淘宝(options 返回的候选逐字为准)。imageCount可选 1 / 6 / 7 / 8 / 9 / 10 —— 传 2、3、4、5 会被服务端驳回(不支持的出图数量)。1 张等于单图,不叫套图;要成套至少 6 张。- 淘系推荐尺寸档:
1:1 商品主图 · 淘宝主图(800×800)(老版主图)、1:1 商品主图 · 淘宝主图(1440×1440)(高清主图)、1:1 商品主图 · 天猫淘宝(1000×1000)(通用)。 - 参考图与
customCopy(≤500 字)至少填一个。customCopy写卖点/活动文案,模型会渲染成中文排版。 - 淘系点击率构图:主图信息层级清晰、中文卖点可读、避免过度堆字。
路线 B:详情图套图(电商详情图)
一次产出整套详情页短图。
qhkit image options '{"queryParams":["themeLabel","languageLabel","imageCount"],"modelLabel":"电商详情图"}'
qhkit image estimate '{"modelLabel":"电商详情图","uploadedImages":["./商品图.jpg"],"themeLabel":"海洋蓝","imageCount":9}'
qhkit image generate '{"modelLabel":"电商详情图","uploadedImages":["./商品图.jpg"],"themeLabel":"海洋蓝","imageCount":9}'
themeLabel主题色 9 档:默认 / 经典黑白 / 海洋蓝 / 夕阳橙 / 森林绿 / 薰衣草紫 / 玫瑰粉 / 奢华金 / 午夜蓝。imageCount同样只能 1 / 6 / 7 / 8 / 9 / 10。- 参考图必填;
prompt不是主入口,风格由themeLabel控制。 - 该模型不可编辑、产出多张短图、图像质量高 —— 适合详情页首屏到结尾的整段铺图。
路线 C:多款/多素材批量(image-batch)
六种模式,覆盖"不是一张图出成套、而是很多活一起干"的场景。
# 先看全部模式与参数说明
qhkit image-batch options '{}'
| mode | 用途 | 张数由什么决定 | 关键必填 |
|---|---|---|---|
| 批量生图 | 单产品 × 多提示词,每条提示词出一张 | prompts 条数(1-10) |
prompts + uploadedImages + modelLabel |
| 批量改图 | 多张图共用一条改图指令(批量白底、批量换背景) | uploadedImages 张数(1-10) |
prompt + uploadedImages + modelLabel |
| 批量替换 | 把产品图替换到每张参考图上 | referenceImages 张数(1-10) |
referenceImages + productImage + productName + modelLabel |
| 主图复刻 | 复刻参考图风格排版,用产品图生成新主图(仅 1:1) | referenceImages 张数(1-10) |
referenceImages + productImages |
| 姿势套图 | 服装专用:1 张商品图 × 多组动作 | poseActions 组数(1-10) |
uploadedImages(必须且仅 1 张)+ poseActions |
| 批量译图 | 图片翻译,精准翻译图上文案 | uploadedImages 张数(1-10) |
prompt(必须写明目标语言)+ uploadedImages |
两条硬约束(实测踩过):
image-batch的modelLabel只吃自定义生图模型 ——智慧模型/智慧模型2.5/专图模型/图片 5.0 Pro/图片 5.0 Flash。传套图模式或电商详情图会被直接驳回:
>批量玩法的 modelLabel 仅支持自定义生图模型:智慧模型 / 智慧模型2.5 / 专图模型 / 图片 5.0 Pro / 图片 5.0 Flash
所以要"成套主图"用路线 A,要"批量出多张"用路线 C —— 别混。主图复刻不吃modelLabel,批量译图也不吃;批量替换/主图复刻都用referenceImages而非uploadedImages,字段名别写错。
常用配方:
# 多款商品各出一条卖点主图(批量生图)
qhkit image-batch generate '{"mode":"批量生图","modelLabel":"图片 5.0 Pro","uploadedImages":["./商品图.jpg"],"prompts":["淘宝白底主图,主体居中,中文卖点「轻薄透气」","生活场景图,家居环境,暖光","细节特写图,突出面料纹理"],"sizePreset":"1:1 商品主图 · 天猫淘宝(1000×1000)"}'
# 一批图统一改纯白底(批量改图)
qhkit image-batch generate '{"mode":"批量改图","modelLabel":"图片 5.0 Flash","uploadedImages":["./a.jpg","./b.jpg","./c.jpg"],"prompt":"将商品背景替换为纯白底色,保留商品本体与阴影,符合淘宝主图规范"}'
# 服装多姿势(姿势套图)
qhkit image-batch generate '{"mode":"姿势套图","modelLabel":"图片 5.0 Pro","uploadedImages":["./服装.jpg"],"poseActions":["正面站姿,双手自然下垂","侧面走姿,回头","坐姿,翘腿"]}'
# 旧图批量出中文版(批量译图)
qhkit image-batch generate '{"mode":"批量译图","uploadedImages":["./详情1.jpg","./详情2.jpg"],"prompt":"将图上所有文字翻译成简体中文,保持原有版式与字体风格"}'
尺寸与画质(实测规律)
sizePreset逐模型独立,不要把一个模型的尺寸标签套到另一个模型上 —— 先options查。- 带「1K」字样的档位锁死 1K:选
默认 1:1 1K(1024×1024)、1:1 商品主图 · 抖音(1024×1024)这类档位后,再传quality:"2K"会被服务端驳回 ——
>尺寸「默认 1:1 1K(1024×1024)」固定为 1K,不能使用 2K。 - 要 2K 有两种写法:① 直接选带 2K 的档位(如
默认 1:1 2K(2048×2048));② 选平台档(如1:1 商品主图 · 天猫淘宝(1000×1000))再传"quality":"2K"。两条都实测可用。 - 淘系主图实际尺寸要求不高(800×800 起),多数场景 1K 够用;只有需要放大看细节或做 1440 主图时才上 2K。
languageLabel控制渲染文案的语言,简体中文/繁体中文/英语等;套图模式与电商详情图也都支持。
环境自举(缺什么装什么,不要因环境缺失放弃任务)
本技能依赖 qhkit 命令(npm 包 @iqinghu/qhkit),可完全独立安装。按顺序检测,缺失就地补齐:
- 有 qhkit 吗?
qhkit config show能跑通即就绪,跳到第 4 步。 - 没有 qhkit 但有 node/npm(OpenClaw/Hermes 机器部署流程保证自带 Node 22+)→ 全局安装(推荐):
bash
npm i -g @iqinghu/qhkit
默认走 npm 官方源;官方源访问慢或超时(国内网络常见)时,再加镜像参数 --registry=https://registry.npmmirror.com(阿里维护的 npm 官方镜像,仅作网络兜底)。仅当全局安装因权限失败且无法提权时,才退而用 npx @iqinghu/qhkit <命令> ...(npx 必须写包全名)。
3. 连 node 都没有(要求 Node ≥ 18):先装 Node 再回到第 2 步。
bash
# Linux 二进制安装(装到用户目录,无需 root;先校验官方 SHA256 再解包):
cd /tmp && curl -fsSLO https://nodejs.org/dist/v22.22.3/node-v22.22.3-linux-x64.tar.xz
cd /tmp && curl -fsSL https://nodejs.org/dist/v22.22.3/SHASUMS256.txt | grep ' node-v22.22.3-linux-x64.tar.xz$' | sha256sum -c -
mkdir -p "$HOME/.local/lib" && tar -xJf /tmp/node-v22.22.3-linux-x64.tar.xz -C "$HOME/.local/lib"
export PATH="$HOME/.local/lib/node-v22.22.3-linux-x64/bin:$PATH"
校验行输出 OK 才继续;校验失败就删掉重下,绝不解包未通过校验的文件。nodejs.org 访问不通时,把两个下载 URL 的前缀 https://nodejs.org/dist 整体换成镜像 https://registry.npmmirror.com/-/binary/node(目录结构相同,SHASUMS256.txt 也有镜像,校验步骤不变)。export PATH 只对当前 shell 生效,跨命令调用时每个新 shell 都要先执行这行(或追加进 ~/.bashrc)。macOS 用 brew install node;Windows 用 winget/官网安装包。arm64 机器把 x64 换成 arm64。
4. 密钥:无密钥时(命令返回 stage:"config"),把下面的引导文案发给用户,拿到密钥后执行 qhkit config set --token <密钥> --env prod(或设环境变量 QHKIT_TOKEN):
> 1. 打开 https://www.iqinghu.com/workbench/login?type=1&urlCode=1791941828223 注册/登录
> 2. 进入控制台 → 工作台的 APIKeys 页面:https://www.iqinghu.com/workbench/dashboard/api-keys?urlCode=1791941828223
> 3. 点「创建/复制」生成密钥,生成后将 API 密钥发我
>
> 图文获取密钥教程:https://xcnzsfe4uxrw.feishu.cn/wiki/KJ0Ywsyw8iAXmRkz5l4cddDbn6g
5. 自检:qhkit config show 输出脱敏配置即全部就绪。
升级:出现以下任一信号,先升级再重试原命令——命令返回 {"ok":false,"stage":"version",...}(版本门禁,message 里就是升级命令,照做即可);命令返回 {"ok":false,"stage":"runtime","message":"未知命令:…"}(本机 qhkit 太老、还没有这个命令——注意它 stage 是 runtime 不是 version,走不到版本门禁,别当成用法错误);stderr 提示有新版本;报「模式在线上已下架或配置变更,请升级 qhkit」。(image/image-batch/video 的模型清单 0.12.0 起实时读取,线上新增模型不需要升级 CLI。)
npm i -g @iqinghu/qhkit@latest
官方源慢或超时时同样加 --registry=https://registry.npmmirror.com。
安装/配置失败时把具体报错告诉用户(常见:无写权限 → 提示用户提权或改用 npx;无网络 → 让用户处理网络)。
调用契约
- 形式:
qhkit <命令> <action> '<json>',或qhkit <命令> <action> @params.json(参数写进文件,避免 shell 转义问题,推荐 ——image-batch的数组参数尤其建议走文件)。 - stdout 恒为一行 JSON;失败为
{"ok":false,"stage":"...","message":"..."}且退出码 1,把 message 原样转告用户。stderr 可能出现提示行,不是错误。 - 图片/视频参数直接填本地文件路径(CLI 自动上传换取 URL),素材已在公网时填 http(s) URL 也可。
- 图片体积上限 10MB:3–10MB 的本地图 CLI 上传后自动追加 COS 缩略参数(2048px 内等比缩小、只缩不放),stderr 那行提示不是错误;外站大图 URL 建议先下载到本地再以路径传入,好让 CLI 走这条防线。
- 超过 10MB 被拦下时不要把问题抛回用户,你(智能体)就地压缩后重试(2048px 内等比缩小、只缩不放、输出 jpg,压完把新文件路径传回原命令重试一次):优先 Python ——
python -c "from PIL import Image, ImageOps; im=ImageOps.exif_transpose(Image.open('原图')); im.thumbnail((2048,2048)); im.convert('RGB').save('压缩后.jpg', quality=85)"(缺 Pillow 先pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple);没有 Python 就用 Node ——npx --yes sharp-cli -i 原图 -o 压缩后.jpg resize 2048(官方源慢时加--registry=https://registry.npmmirror.com)。两条都失败才请用户换 10MB 以内的图,不要反复重试。 - 标签类参数(
modelLabel、sizePreset、themeLabel、platform等)必须与options返回的候选值逐字一致,不要自造或翻译;拿不准先调options。 image/image-batch/video的模型清单是实时的(0.12.0 起直接读线上目录,新增/下架/调价自动跟随,无需升级 CLI),且均无默认模型——modelLabel必填,缺失会报错并列出当前可选项。当次会话第一次选模型前先跑options查modelLabel/models拿当前清单,不要凭记忆或本文档的快照直接报模型名。拉不到目录(断网/密钥问题)时命令会明确报错,按提示引导用户检查配置。image-batch用batchTaskId查状态:generate同样自带轮询;需要补查时用qhkit image-batch status '{"batchTaskId":"..."}'。
报价、轮询与交付
- 提交前确认(硬规则):
generate会创建任务、消耗积分,发起前必须把本次提交的关键参数一次性列给用户——模型/模板、出图张数、尺寸与画质、语言、用到哪几张参考图、以及estimate报出的预计扣除积分——等用户明确同意后才能执行提交。参数全部来自用户原话时也要复述确认一遍(口头描述与实际枚举值可能有出入,任务提交后不可取消)。只读 action(options/estimate/status)无需确认。 - 批量任务尤其要先确认张数:
image-batch的张数由参数长度隐式决定(10 条提示词 = 10 张 = 20 积分),用户常说"随便来几张",必须回问清楚或明确按条数列出后再报estimate的credits。 - 报价:要把积分数字报给用户时,先跑
qhkit image estimate(或qhkit image-batch estimate)'<与 generate 完全相同的参数>',报它返回的credits(实扣值,秒回、无副作用);enough:false时提前告知余额不足。不要引用文档快照报价。 - 轮询:
image generate/image-batch generate自带轮询,阻塞到出图(最长约 14 分钟),返回里直接有图片 URL,不需要再查 status。 - 交付:产物 URL 在返回的
images字段里,按当前环境的媒体交付约定发给用户;产物必须和「生成完成」写在同一轮回复,并附返回里的实扣credits(「本次实际消耗 X 积分」)。套图是多张,要逐张给出,不要只说"已完成"。 - 失败:转述 CLI 的 message(已是面向用户的中文,常见:积分不足、内容审核未通过、张数不支持),不要重试轰炸。
能力边界
- 不绑平台、只要通用套图走「AI生成电商主图轮播图、主图套图 | LinkPix」;只要详情走「电商商品详情图生成器 | LinkPix」;只要 Seedream 全场景生图或套图走「Seedream 5.0 Pro 电商套图生成」。
- 跨境平台(Amazon / Shopee / TikTok Shop / Lazada / Temu / Ozon / SHEIN / 1688 / 拼多多 / 京东 / 抖音)改
platform与sizePreset即可,本技能聚焦淘系。 - 视频走对应平台的爆款视频技能或「AI生成电商视频 | LinkPix」。
- 批量 ≠ 无限:单次上限 10(提示词/图片/动作),超过要拆多次提交,别把 30 款商品塞进一次调用。