三剪客 · 电商主图工厂

SKILL商业运营
商业运营 未标注权限 许可证不明确
安装这个技能

给商品信息与商品实物图,批量产出**电商平台规格**的主图与详情图——白底图 / 场景图 / 卖点图 / 细节图 / 资质图,按淘宝 800x800、1688、拼多多、抖音商城 3:4 等规格出图,卖点文案按**主图位**分配(第 1 张利益点 / 第 2 张规格 / 第 3 张细节 / 第 4 张场景 / 第 5 张资质),含电商合规自检。走 api.a7w.cn 的 nano_banana,零依赖、成本前置,六道硬闸门:广告法违禁词与不伪造销量/评价/资质/检测报告、占位符残留、照抄示例、出图比例真伪(读回真实像素)、主图位完整性、成本上限。包内含完整操作文档与零依赖客户端(`SKILL.md` + `references/`)。需要自备 api.a7w.cn 的 API Key,注册领 Key 见 https://api.a7w.cn/ 。遇到问题可加技术微信 9872659。

累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install indiv-9872659/sanjianke-ecom-image

技能档案

商业运营
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方indiv-9872659仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791624723
正文体量31.9 KBSKILL.md 原文大小,越大说明说明书写得越细

SKILL.md 全文

31.9 KB
模型实际读到的说明书原文,来自技能仓库

三剪客 · 电商主图工厂

> ## ⚠️ 先申请你自己的 API Key
>
> 本 Skill 不内嵌任何密钥,也不代付费用。 请到
> 算力集市 api.a7w.cn 注册并创建你自己的 API Key
> (新用户有赠送点数,可以先免费试跑)。
>
> 拿到后填进环境变量 A7W_API_KEY,或直接传给 --key 参数。
> 请勿使用他人提供的 Key —— 用量与费用都记在 Key 所属账号上。

能做什么

给商品信息(标题 / 类目 / 规格 / 卖点 / 实测实物图 URL),批量产出符合电商平台规格的主图与详情图。

它替代的是运营每天最琐碎的那一步:不是「没有图」,而是「五张主图每张该说什么——
第 1 张放什么、第 2 张放什么,资质位拿什么填」。

你最关心 答案
多少钱 实测 24 点/张(1K)= 0.24 元/张,1 元 = 100 点;images 跑之前会先把总价打出来
要多久 单张实测 5~30 秒完成;轮询有超时上限,不会无限等
要装什么 什么都不用装,只用 Python 标准库
支持哪些平台 淘宝/天猫 800x800(正方白底)、淘宝 3:4 竖版、1688、拼多多、抖音商城 3:4、详情页长图
主图怎么分 五张位:第 1 张利益点 / 第 2 张规格与适用 / 第 3 张细节工艺 / 第 4 张场景人群 / 第 5 张资质售后
中断了怎么办 断点续跑:已出完的直接跳过、已提交未完成的用 task_id 续查,不重复扣费
会瞎编吗 提示词里写死「不编造商品信息里没有的数字、材质、认证、检测、销量、评价」;文案与提示词都过合规闸门
资质位怎么处理 本包不生成资质。第 5 位走 action=edit,把你真实持有的资质图拿来改版式;没有就如实缺位并标红

这个包与同族包的区别(不是「换个比例 + 换个提示词」)

维度 新媒体配图工厂 小红书带货作战包 本包(电商主图工厂)
输入 一篇文稿 / 一个主题 商品名与价格 商品信息 + 商品实物图 URL
输出的语义单位 文章里的插图角色(封面/内文/步骤/对比/数据/金句/结尾) 文案(笔记/脚本) 平台固定的主图位(主图/规格/卖点/场景/资质)
比例表 内容平台封面比例(小红书 3:4、公众号 2.35:1) 笔记封面 3:4 电商平台规格(淘宝 800x800 正方白底、1688、拼多多、抖音商城 3:4)
出图能力 只用 action=generate 只给出手工调用的提示 generate + edit(实物图/资质图改版式)
合规重点 广告法违禁词 广告法 + 平台规则(只扫文案) 广告法违禁词 + 不伪造销量/评价/资质/检测报告,且扫文案与出图提示词
特有闸门 比例真伪、成本、违禁词、照抄示例 违禁词四级结论 上列之外再加 主图位完整性(五张位缺位标红)

怎么用(命令行)

第 0 步:获取 API Key

到 api.a7w.cn 注册,创建一个 API Key(形如 sk-...)。

第 1 步:装依赖

零依赖。 不需要 pip install 任何东西,只要机器上有 Python 3.7+:

python3 --version

scripts/a7w.py 是零依赖客户端(只用 urllib / json / mimetypes),
scripts/imgprobe.py 是图片头探针(只用 struct / zlib),scripts/run.py 同样只用标准库。
PIL 不是必需的——它的存在只会让 --snap 支持更多图片格式。

> 约定:scripts/a7w.py 是所有 Skill 包共用的零依赖客户端,我们靠
> 「包内副本 SHA256 == 规范版」(16797 B)批量校验各包的客户端有没有被意外改坏。
> 所以本包没有为了自己的业务去改它——需要读图片像素就独立出 imgprobe.py,
> 需要应用专属接口就写在 run.py 里。

第 2 步:填 Key

# Linux / macOS
export A7W_API_KEY=sk-你的key

# Windows PowerShell
$env:A7W_API_KEY="sk-你的key"

也可以存进配置文件反复用(推荐):

python3 scripts/a7w.py login --key sk-你的key

第 3 步:先认规格(免费,不花点数、不联网)

python3 scripts/run.py specs

specs 会列出每个平台的主图像素与设计比例、五张主图位的语义、以及上游 1K 档实测像素表
(含每种比例的真实偏差)。这一步零网络、零成本,先看清楚再花钱。

出图模型的可选值可以现查:

python3 scripts/a7w.py schema nano_banana

第 4 步:提炼卖点并按主图位分配(只花文本钱)

python3 scripts/run.py sellpoints \
    --product "便携榨汁杯 600ml" --platform taobao \
    --specs "容量600ml,杯身Tritan,刀头304不锈钢可拆洗,USB-C充电" \
    --usp "一杯一袋、单手开盖、可整杯冲洗" \
    --audience "通勤上班族、健身人群" \
    --evidence "自有实拍图与拆解视频" \
    --out plan.json

想先看不花钱的提示词:

python3 scripts/run.py sellpoints --product "便携榨汁杯 600ml" --dry-run

第 5 步:先算钱(不出图)

python3 scripts/run.py cost --count 5
# 预估成本:5 张 × 24 点 = 120 点 = 1.20 元

python3 scripts/run.py cost --count 5 --budget 100
# 超预算 → 打印结论并返回退出码 3

第 6 步:出图(真花钱)

# 先不带 --yes 跑一次:只报价,不提交任何任务
python3 scripts/run.py images --plan plan.json --outdir ./out

# 确认了再加 --yes
python3 scripts/run.py images --plan plan.json --outdir ./out --yes --snap --report evidence.json

图片一定要输出到包外(比如 ./out、%TEMP%\...)。Skill 包的上传白名单只收
.md .py .txt .json .sh .js .yaml .yml .csv,图片会让上传 400;脚本也会拒绝把 --outdir
指到包内(退出码 2)。

中断了就原样重跑,提示词与分辨率没变就不会重复扣费:

python3 scripts/run.py images --plan plan.json --outdir ./out --yes
# [1/2] #1 已完成,跳过(上次扣费 24.0 点,不再重复扣)
# [2/2] #4 发现未完成的 task_id=task_xxx,续查而不重新提交

第 7 步:发布前做合规自检(零成本、纯本地)

python3 scripts/run.py compliance --text "全网最低价,销量第一,好评率100%"
python3 scripts/run.py compliance --file plan.json --strict

完整工作流

# 0) 认规格(零成本)
python3 scripts/run.py specs

# 1) 出方案(只花文本钱)
python3 scripts/run.py sellpoints --product "便携榨汁杯 600ml" --platform taobao \
    --specs "容量600ml,刀头可拆洗" --evidence "自有实拍图" --out plan.json --json

# 2) 算钱 + 设预算
python3 scripts/run.py cost --count 5
python3 scripts/run.py cost --count 5 --budget 200

# 3) 真出图(报价 → 确认)
python3 scripts/run.py images --plan plan.json --outdir ./out
python3 scripts/run.py images --plan plan.json --outdir ./out --yes --snap \
    --budget 200 --report evidence.json

# 4) 合规自检
python3 scripts/run.py compliance --file plan.json --strict

直接用 curl 调(不依赖本包脚本)

本包底层就是算力集市 api.a7w.cn 的标准两步异步任务。提交(注意没有 /generate
这个端点
,「文生图」是 submit 的 action=generate 参数):

# 算力集市 api.a7w.cn · nano_banana 提交出图(真花钱,1K 约 24 点/张)
curl -sS -X POST "https://api.a7w.cn/api/v1/apps/nano_banana/submit" \
  -H "Authorization: Bearer $A7W_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "纯白背景,一只透明便携榨汁杯放正中央,柔光棚拍,正面平视,浅景深,无文字",
    "action": "generate",
    "model": "nano-banana",
    "resolution": "1K",
    "aspect_ratio": "1:1"
  }'

拿 data.task_id 去轮询:

curl -sS "https://api.a7w.cn/api/v1/tasks/task_xxxxxxxxxxxx" \
  -H "Authorization: Bearer $A7W_API_KEY"

出方案那一步走的是 OpenAI 兼容的 POST /api/v1/chat/completions。

参数说明

全局

参数 说明
--key 临时指定 Key;优先级最高。别把它写进脚本或文档
--json 以 JSON 输出,写在子命令前面或后面都可以;JSON 模式下 stdout 只有一个完整 JSON,报价与进度走 stderr

specs —— 列平台规格与主图位(零网络、零成本)

参数 说明
--platform 只看某平台,可重复:taobao / taobao34 / 1688 / pinduoduo / douyin / detail

sellpoints —— 提炼卖点并按主图位分配

参数 说明
--product 必填。商品标题
--platform 目标平台,可重复,默认 taobao
--specs 规格参数(尺寸/容量/材质/型号)
--usp 运营提供的已知卖点
--audience 目标人群
--evidence 可出示的证据(检测报告/资质/专利)。不填就按「无证据」处理,卖点只能写看得见的外观与规格
--price 售价(写进方案上下文,不上图)
--product-image 商品实物图 URL;资质位走 action=edit 时用
--no-edit 禁止 action=edit,全部用 generate
--resolution 出图分辨率,默认 1K
--out 把方案写成 JSON,images 要用它
--dry-run 只打印将发送的提示词,不调模型、不花钱

images —— 批量出图

参数 说明
--plan sellpoints 产出的方案 JSON;不给就用 --product 现出方案
--slot 只出某几个图位,可重复:main / spec / selling / scene / qualification
--platform 只出指定平台,可重复
--count 最多出几张
--resolution 覆盖分辨率;写进断点 key(1K/2K/4K 是三个不同的断点)
--image-model 出图模型,默认 nano-banana(也写进断点 key)
--outdir 图片输出目录,默认 %TEMP%\ecom-image-out;不可是包内目录
--budget 成本上限(点)。预估超了直接停;跑的过程中每次提交前还会再核一次
--yes 确认真的花钱。不加就只报价、一个任务都不提交
--snap 出图后按比例精确裁剪(上游按 32 对齐,3:4 实得 864x1184,偏差 2.70%)
--snap-on-design 按平台设计比例裁(--snap 时默认就按设计比例)
--ratio-tolerance 比例容差,默认 0.03(实测最大偏差 2.70%);有 0.0025 的量化地板
--poll-timeout 单张轮询超时秒数,默认 600(上限,不是期望时长;实测 5~30 秒完成)
--max-seconds 整批最长耗时,到点中断(退出码 5),已完成的都在断点文件里,重跑可续
--state 断点文件路径,默认 <outdir>/ecom-image-state.json
--force 忽略断点全部重出(会重复扣费,只在确实要重画时用)
--allow-prompt-hits 即使文案命中闸门也出图(默认拦截)
--allow-missing-slots 主图位不齐也照出(默认拦截)
--stop-on-error 一张失败就整体停
--report 把本次证据(请求参数 / 任务原文 / 真实像素)写成 JSON,便于对账

compliance —— 合规自检(零成本)

参数 说明
--text 待检文案,可重复
--file 待检文案文件
--strict 非 pass 结论一律退出码 1(CI 卡门禁)

cost —— 只算钱不出图

参数 说明
--count 必填。要出几张
--resolution 1K(默认)/ 2K / 4K
--points-per-image 覆盖单张单价(点)。2K/4K 必须给,见下
--budget 预算上限(点),超了退出码 3

平台 preset(--platform)

preset 平台 主图像素 设计比例 生成用的 aspect_ratio 第 1 张白底
taobao 淘宝 / 天猫 800x800 1:1 1:1 是
taobao34 淘宝 3:4 竖版 750x1000 3:4 3:4 否
1688 1688 800x800 1:1 1:1 是
pinduoduo 拼多多 800x800 1:1 1:1 是
douyin 抖音商城 1200x1600 3:4 3:4 否
detail 详情页长图 750x不限 1:3(单屏口径) 3:4 否

详情页是长图:上游单张出不了长图,所以本包按屏出图(单屏 3:4),拼接在本地做。

六道本地硬闸门

闸门都是拦截 + 标红 + stderr 汇总 + 非 0 退出码,不是「提示一下」。
因为出图是按次扣费的,事后发现问题的代价是真金白银。

1. 电商合规(本包的重点)

三道判据,命中即拦:

  • 广告法绝对化用语:国家级|世界级|最高级|最佳|最优|最强|最好|第一品牌|全国第一|排名第一|销量第一、
    最X、100%、根治|治愈|包治|特效、稳赚|保本|零风险 等。
  • 不伪造销量:销量第一|月销\s*\d+|已售\s*\d+|\d+万\+?\s*(人|用户|买家)\s*(已购|在用|选择)——
    销量必须来自平台后台真实数据。
  • 不伪造评价:好评率100%|零差评|好评如潮|全部五星|真实评价\s*\d+条。
  • 不伪造资质与检测报告:权威检测报告|质检合格|SGS|CMA|CNAS|专利技术|独家配方|特供|专供——
    必须真实存在且能出示证书编号与颁发机构。本包不生成资质,也不替你编结论。

「最X」有可枚举的上下文豁免 + 句首不豁免(照同族口径,这是为什么):

电商文案里「最好」「最强」是绝对化用语,照拦没错;但中文里「最大」也大量出现在
普通比较句里:「和同类产品最大的区别是……」「这个价位里最省事的做法是……」。
一刀切拦下来,运营会成天在改根本不违规的句子,闸门变成噪音——闸门一旦变成噪音,
人就会加 --allow-prompt-hits 把它关掉,那时真正该拦的也拦不住了
。

所以两条条件都满足才豁免:

条件 说明
后文落在可枚举的豁免表里 不同/区别/差异/共同/相同/相似/常见/容易/重要/关键/主要/先/后/基本/简单/难/麻烦/省事/常用/合适/适合/…,以及纯程度词
不在句首 句首的「最大区别是…」经常正是标题式的最高级宣称,照拦

⚠️ 豁免只允许一个「的」/「了」,逗号顿号不开豁免。所以
「找出占比最高、且最容易改的那一个环节」会被拦下——属已知的保守行为,
靠改文案解决(把「最高」换成「比较高」),不靠放松规则解决。

2. 占位符残留

{} / {{标题}}、[待填] / [待补充]、XXX、待补充 / TODO / TBD。
这些字符串会进提示词,然后被画到图上(AI 出图的文字基本是错的,画出来就是乱码)。
[1](引用序号)、[图 2](配图位)是正常写法,不会误判。

3. prompt_echo —— 照抄提示词示例

这条是从标题工坊的事故来的:提示词里写过的示例,哪怕明确标着「这是错的写法」,
模型照样照抄——公众号那一轮最高分 89.0 的标题一字不差就是提示词里的示例,
最高分变成「抄标准答案」,排序就废了。

出图场景更隐蔽:你不会一眼看出这张主图和示例长得一样,而是「看起来挺正常」,
直到发现五张主图是同一个模子。

判定:去标点后相等 → 拦;字符二元组 Jaccard ≥ 0.75 → 拦;示例的二元组
覆盖度 ≥ 0.60 → 拦。

第三条是补漏:出图提示词动辄 60~120 字而示例只有 25 字,Jaccard 的分母是两份二元组的
并集,示例那一侧被长提示词摊薄得极狠——示例原样嵌进去也照样放行。实测:

输入 Jaccard 覆盖度 结果
示例原样嵌入 + 补 9 个字(34 字) 0.727 1.000 旧口径放行 ❌ → 新口径拦 ✓
示例原样嵌进 102 字的六段结构提示词 0.245 1.000 旧口径放行 ❌ → 新口径拦 ✓

覆盖度只看「示例被抄了多少」,不看提示词有多长,所以摊薄对它无效。

长度守卫(本包与同族的口径差异,是刻意的):同族的守卫是 max(6, len(示例)//2)
(示例 25 字 → 门槛 12),因为内容平台的出图提示词本来就是 60~120 字。
但电商主图的出图提示词惯常只有 30~50 字,沿用门槛 12 会漏掉「示例原样当作整条提示词」
这一最直接的照抄。所以本包的守卫收紧成 min(20, max(6, len(示例)//4))(示例 25 字 → 门槛 6)。
⚠️ 只改门槛,三条判据的阈值一个都没动(去标点相等 / 0.75 / 0.60),
且「去标点后完全相同」这条不受长度门槛约束。

4. 出图比例真伪 —— 读回真实像素,不信自报字段

不信接口返回里的任何比例字段,把图下载回来读文件头,用真实宽高算比例。

为什么必须这样:标题工坊上一版只信模型自报的 formula 字段做模板污染判定,
结果那个真该被判命的标题恰好漏判——闸门是假绿的。同一个错误在出图场景的形态是:
自报 aspect_ratio=1:1,真实像素却是 864x1184。

实测到的上游特性:上游不是按比例给像素,而是先定总像素、再把每边向下对齐到 32 的倍数。
所以 10 种比例里有 5 种拿不到像素级精确比例:

请求 实测像素 实际比例 偏差
1:1 1024x1024 1.0000 0.00%
3:4 864x1184 0.7297(27:37) 2.70%
16:9 1344x768 1.7500 1.56%
9:16 768x1344 0.5714 1.59%
4:5 896x1152 0.7778 2.78%
5:4 1152x896 1.2857 2.86%
4:3 / 21:9 / 2:3 / 3:2 见 specs 精确 0%

所以默认容差是 3%(容差内不算「假」,但真实像素与偏差照样打印出来,不藏)。

要拿到像素级精确比例就加 --snap:按请求比例居中裁剪,裁完再读一次文件头复核,
只会把真正裁准的记成合格。优先用 PIL;没有 PIL 时回落到内置的 8 位 PNG 裁剪器
(只用 zlib + struct),两条路都走不通时如实报告「没能裁」,不假装成功。

读像素这件事由独立模块 scripts/imgprobe.py 负责(PNG / JPEG / GIF / WebP 四种文件头解析,
只读、纯标准库)。

5. 主图位完整性

五张主图位(主图/规格/卖点/场景/资质)缺位 → 标红,images 默认拦截(退出码 3),
只想出已有图位才加 --allow-missing-slots。

为什么缺位要拦而不是「提示一下」:电商主图位是平台语义槽。买家划到第 2 张想看规格、
第 5 张找资质与售后;缺第 5 位意味着买家在决策最后一刻找不到资质依据,直接影响转化;
缺第 1 位则连入池机会都没有。

⚠️ 第 5 位资质图本包不生成。没有真实资质图时,images 会改走 generate 并明确警告
这一次产出的是示意版式、不是资质本身,不许当作资质材料上架——
真机实测踩到过:模型会给第 5 位写一条「自有实拍图与拆解视频」当依据,
然后照样画一张看起来像资质的图出来。

6. 成本上限

  • 提交任何任务之前先算总价;超 --budget 直接停,一个任务都不提交
  • 每张提交前再核一次:前面真实扣费可能比预估高,超了就就地停
  • 2K / 4K 没有实测单价 → 拒绝估算,退出码 3。宁可拒绝也不编一个数
    (想估就给 --points-per-image)
  • 产出图不许进包:--outdir 在包内 → 退出码 2

排错

现象 / 报错 原因 怎么办
鉴权失败(401) Key 无效、过期或写错 到 https://api.a7w.cn/ 重新领取;确认没把 Bearer 重复写进环境变量
点数不足(HTTP 402) 账号点数用完 到 https://api.a7w.cn/ 充值后重试
code: 0 但 HTTP 是 200 网关信封里 code == 1 才是成功,不是 0 看 body 里的 msg;脚本已按这个口径判断,别改成 code == 0
读状态一直读不到、轮询到超时 平台文档写的是 data.result.status,实测 status 在 data 顶层 本包已按实测结构取;照文档写会永远读不到状态
当前请求未命中可用计费规格 model 与 resolution 组合不支持(如普通模型传 2K) 普通 nano-banana 只支持 1K;要高清档换 nano-banana-2:official 之类
上游 502 / upstream timeout / Remote end closed 网关到上游的瞬时抖动,实测很频繁(真机 2 张里遇到 1 次) 脚本已内置退避重试(4 次)。连续失败就换模型或降低批次
轮询一直 processing 任务卡住了 已设 --poll-timeout(默认 600 秒)上限;超时会报出来并保留 task_id,可 python3 scripts/a7w.py task <task_id> 续查
图片真实像素和请求比例对不上(差 1%~3%) 上游按 32 对齐,不是 bug 加 --snap 精确裁;或把 --ratio-tolerance 放宽
读不出真实像素 下载被截断,或不是图片 删掉那条断点记录重出(--force),或检查网络
预估 N 点超过预算上限 超了 --budget 提高预算、减少张数,或先 cost 试算
2K 档没有实测单价,拒绝凭猜估算 我们没有 2K/4K 的实测价 给 --points-per-image 指定单价,或先用 1K 出
输出目录 ... 在 Skill 包内 --outdir 指到了包里的目录 换到包外(./out、%TEMP%\...)。包内放图片会让上传 400
主图位缺位 ... 方案少了必填图位 补位后重跑;只想出已有图位就加 --allow-missing-slots
文案命中闸门 ... 已拦截,未提交任何任务 违禁词 / 占位符 / 照抄示例 改文案后重跑;确实要带违禁词才加 --allow-prompt-hits
重跑又扣了一次钱 提示词/分辨率/模型/比例/参考图改了 → 断点 key 变了 这是设计如此(改了就该重画,否则会静默复用旧图)。想省钱就别改,直接重跑即可跳过
改了 --resolution 却像没生效 历史版本的坑:参数被解析了却写死 1K 本包建 item 时就用传入的分辨率,且 resolution 进了断点 key,两处同一个数
没有找到 API Key 三种方式都没配 --key / A7W_API_KEY / python3 scripts/a7w.py login --key sk-xxx
Windows 下中文乱码 控制台代码页不是 UTF-8 先 chcp 65001,或设 PYTHONIOENCODING=utf-8

收集排错信息时请附上:完整命令、--report 产出的证据 JSON、原始报错文本。
不要在报错信息或截图里带上你的 API Key。

退出码(可直接用于流水线)

退出码 含义
0 全部成功且闸门全绿
1 合规自检未通过(compliance 的 blocked,或 --strict 下非 pass)
2 调用失败(网络 / 鉴权 / 点数 / 模型名 / 输出目录不合法 / 方案文件读不动)
3 闸门拦下:比例不符、超预算、违禁词、占位符、照抄示例、主图位缺位、无实测单价
4 需要 --yes 确认(还没花钱,也没提交)
5 达到 --max-seconds 上限中断(可续跑)
130 用户中断(Ctrl+C)

--json 输出契约(给流水线与 agent 消费,只在 --json 下生效):

  • 成功:结果对象里多一个 "ok": true;顶层是数组时包成 {"ok": true, "data": [...]}
  • 失败:stdout 输出一个 JSON 信封,形如
    {"ok": false, "exit": 3, "error": {"kind": "gate", "message": "…"}}(exit 就是本次真实退出码),
    kind 取 gate / usage / budget / call / interrupt / internal。
  • internal 是没预料到的异常(代码 bug)的兜底:此时 stdout 给信封、
    完整 traceback 原样打到 stderr、退出码固定 1 —— 报 bug,不藏 bug。
  • 只有在本次还没吐过任何 JSON 结果时才补信封;已经吐过结果时
    (例如 compliance 判出 blocked、cost 估不出价),ok 就写在那个结果里
  • 人读文案照旧走 stderr;退出码语义一个都不变;非 --json 模式输出与同族一致
  • --json 写在子命令前面或后面都可以

成本口径

项 实测
nano_banana 1K 出图 24 点/张 = 0.24 元
充值比例 1 元 = 100 点
提交时冻结 实测 frozen_points = 31.2(预冻结,不是最终扣费)
完成后结算 usage.points_cost = 24
失败 全额退回
sellpoints 出方案 纯文本钱,实测一次 1824 tokens(可忽略)

只信 usage.points_cost。 平台的 pricing_matrix / tenant_* 字段我们验证过半数不可信:
image_human 字段写 1.5/2/4/8 点/秒、实测 2/3/6/12;voice_tts/stt 字段写 30、实扣 40。
那些字段只能当参考,不能当结算价写进文档。

frozen_points 也不是最终扣费:实测冻结 31.2、实扣 24,差 30%。

文件结构

sanjianke-ecom-image/
├── SKILL.md                          本文件
├── README.md                         给人看的说明
├── LICENSE.md                        MIT,署名三剪客
├── references/
│   ├── ecom-image-method.md          电商主图方法论:白底图、五张位分配、详情页分屏
│   ├── platform-specs.md             各平台主图规格、安全区与详情页拼接
│   └── compliance-and-gates.md       电商合规红线与六道闸门口径
└── scripts/
    ├── a7w.py                        api.a7w.cn 零依赖客户端(**逐字节等于规范版,本包不改它**)
    ├── imgprobe.py                   图片头探针:读真实像素 PNG/JPEG/GIF/WebP(只读,纯标准库)
    └── run.py                        specs / sellpoints / images / compliance / all / cost / models

端点速查

算力集市(api.a7w.cn)的出图是两步异步任务(下面每一行的域名都来自算力集市 api.a7w.cn):

用途 方法与路径
提交出图任务(算力集市 api.a7w.cn) POST https://api.a7w.cn/api/v1/apps/nano_banana/submit
查任务结果(本包用它) GET https://api.a7w.cn/api/v1/tasks/<task_id>
查任务结果(应用级,备用;同属算力集市 nano_banana) POST https://api.a7w.cn/api/v1/apps/nano_banana/query
看某应用的接口与参数 GET https://api.a7w.cn/api/v1/apps/nano_banana
在架应用清单 GET https://api.a7w.cn/api/v1/apps
在架模型清单 GET https://api.a7w.cn/api/v1/models
出方案用的大模型 POST https://api.a7w.cn/api/v1/chat/completions

没有 /generate 这个端点。 「文生图」是 submit 的 action=generate 参数,
不是独立的 api 路径——同族曾经凭记忆写错过,被实测纠正,这里留个记号。

submit 的参数名(用 python3 scripts/a7w.py schema nano_banana 实查,别猜):
prompt / action(generate|edit) / resolution(1K|2K|4K) / aspect_ratio / image_urls / model / callback_url

已知边界(不藏)

  • 白底图的「纯白」是设计要求,不是自动判定。本包会把「纯白背景」写进提示词、
    并在白底位缺这句时自动补上,但不会去检测产出图的背景像素是否真的纯白。
    背景干净度仍需人工看一眼——这一条写在 references/ecom-image-method.md 里。
  • 详情页长图不直接生成。上游单张出不了长图,本包按屏出图,拼接在本地做,
    拼接命令见 references/platform-specs.md。
  • 不生成资质。第 5 位只改你真实持有材料的版式。
  • AI 出图的文字基本都是错的,所以本包一律要求「不要在图上生成文字」,
    压图文字后期自己加。
  • 合规闸门是启发式自检工具,按子串/正则匹配,不理解语义、不看图片、不做谐音识别。

免责声明

内置违禁词表与判定口径是启发式自检工具,来自公开经验整理,不构成法律意见,
也不代表任何平台的官方审核标准。商品图片与文案的合规责任由使用者承担;
食品、保健品、医疗器械、母婴、化妆品、3C 认证等高风险类目必须人工复核。

图片版权的额外提示:AI 生成图可能涉及第三方商标、真人肖像、知名角色形象等权利。
提示词里不要要求生成具体品牌 logo、真实人物姓名或受保护的角色形象;
生成后如用于商业投放,请自行完成商标与肖像权排查。

费用提示:出图按次扣费,--report 产出的证据文件里逐张记了真实扣费
(usage.points_cost),请以它为准对账。本包不做代付,也不内嵌任何密钥。

联系我们

  • 技术微信:9872659 —— 加好友时说一下是从哪个 Skill 找过来的,直接给你配套的 API Key 与能跑的示例。
  • 要算力 / 要 API Key:算力集市 · 注册领 API Key —— 一个 Key 调用全部 AI 算力,注册、充值、创建 Key 都在这里。
  • 更多 AI 插件与接口:AI 插件市场。

相关链接

  • 算力集市 api.a7w.cn(注册领 Key):https://api.a7w.cn/
  • 电商主图方法论:references/ecom-image-method.md
  • 各平台主图规格与安全区:references/platform-specs.md
  • 电商合规红线与闸门口径:references/compliance-and-gates.md

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。