Install
openclaw skills install @dlazyai/platform-compliance上架前平台合规校验与自动修复。待上架图 → Amazon / TikTok Shop / Temu / Shopee / 淘宝 各平台的通过或驳回风险报告,可一键修成合规图。当用户说「会不会被驳回」「合规检查」「白底不达标」「主图规格」「传上去被拒」时使用。
openclaw skills install @dlazyai/platform-compliance图片好不好看是一回事,平台收不收是另一回事。
这个技能只回答后者:这张图传上去会不会被驳回,卡在哪一条,怎么改。
和 detect-task 的分工: detect-task 用视觉模型判断「像不像真的」,主观、要花算力; 本技能读像素做客观判定,不花算力、毫秒级、结论可复现。两个都过才叫能投。
拿本仓库 flat-lay 的实际产出图,按 Amazon 主图规则检:
python3 scripts/check_listing.py docs/flat-lay/example-output.jpg --platform amazon
真实输出
docs/flat-lay/example-output.jpg · Amazon 主图 · 有驳回风险
1024×1536 JPEG 0.25MB · 背景 RGB(208, 208, 208) · 主体占比 100.0%
! 分辨率 最长边 1536px,达标但不足以触发放大镜
✓ 画面比例 1024:1536
✗ 纯白背景 边缘仅 0.0% 为纯白,背景基色约 RGB(208, 208, 208)
✓ 主体占比 包围盒占画面 100.0%
✓ 透明通道 无 alpha
✓ 边框 无描边
✓ 文件格式 JPEG
✓ 文件体积 0.25 MB
✓ 色彩模式 RGB
? 文字 / 水印 / 拼图 像素层判不了,交给 detect-task 或人工过一眼
这张图肉眼看是「浅灰棚拍背景」,很干净,但 Amazon 主图要求精确 RGB(255,255,255), 208 的灰会被判不合格。这类问题人眼几乎发现不了,机检一秒钟出结论。
一键修:
python3 scripts/check_listing.py docs/to-3d/example-output.jpg --platform amazon --fix out/
out/example-output-fixed.jpg · Amazon 主图 · 通过
1600×1402 JPEG 0.50MB · 背景 RGB(255, 255, 255) · 主体占比 85.1%
压白底 → 按 85% 目标重构画布 → 补到 1600px → 存合规 JPEG,一步到位。
| 能做 | 说明 |
|---|---|
| 客观规格判定 | 背景纯度、主体占比、分辨率、比例、透明通道、描边、格式、体积、色彩模式 |
| 多平台规则 | Amazon / TikTok Shop / Temu / Shopee / Shopify / 淘宝,可自定义 |
| 自动修复 | 压白底、按目标占比重构画布、补分辨率、压到体积上限 |
| 批量 | 一次传多张,或配合 batch-image 整批过 |
| 退出码 | 0 = 可投;1 = 有驳回风险,便于接进 CI 或流水线 |
| 不能做 | 去哪 |
|---|---|
| 判断有没有文字 / 水印 / 拼图 | detect-task 的视觉模型 |
| 判断商品有没有崩 | detect-task |
| 去水印 | remove-watermark |
| 修图、去褶皱 | item-repair |
自动修复的边界:--fix 只做几何与色彩层面的合规化,它不会替你修图。
如果原图本身是糊的、崩的、带水印的,修完还是糊的崩的带水印的。
| 平台 | 纯白底 | 最长边(下限 / 建议) | 主体占比 | 比例 | 体积上限 |
|---|---|---|---|---|---|
amazon | 是 | 1000 / 1600 | ≥ 85% | 不限 | 10 MB |
tiktok-shop | 否 | 800 / 1600 | ≥ 60% | 1:1 或 3:4 | 5 MB |
temu | 是 | 800 / 1350 | ≥ 70% | 1:1 | 3 MB |
shopee | 否 | 500 / 1024 | ≥ 55% | 1:1 | 2 MB |
shopify | 否 | 1024 / 2048 | 不限 | 不限 | 20 MB |
taobao | 是 | 800 / 1200 | ≥ 70% | 1:1 | 3 MB |
平台规则会变。 上表是可机检的子集,以各平台最新官方文档为准。
需要改用自己的口径,写一份 JSON 用 --rules 传入,字段说明见
references/platform-specs.md。
# 单张
python3 scripts/check_listing.py main.jpg --platform amazon
# 整批 + 机器可读
python3 scripts/check_listing.py out/*.jpg --platform temu --json
# 校验并自动修复到 fixed/
python3 scripts/check_listing.py raw.png --platform amazon --fix fixed/
# 自定义规则
python3 scripts/check_listing.py main.jpg --platform amazon --rules my-rules.json
只依赖 Pillow:
pip install Pillow
参数约定
| 参数 | 取值 | 理由 |
|---|---|---|
--platform | 目标平台 | 决定用哪套阈值,默认 amazon |
--json | 接流水线时加 | 输出结构化结果,含每项的实测值与阈值 |
--fix <dir> | 想自动改时加 | 产物另存,不覆盖原图 |
| 退出码 | 0 / 1 | 有驳回风险时非零,方便 && 串联 |
amazon,国内 → taobao)。--fix 的校验,把问题念给用户听——
有些问题(比如主体占比不够)修复会裁掉画面,得让用户先知道。--fix 能解决。--fix 后脚本会自动对产物再检一遍,确认真的过了。事后修不如一次生对。这几句追加到生成 prompt 末尾,能显著降低不合格率:
| 目标 | 追加句 |
|---|---|
| 纯白背景 | Pure seamless white background, RGB 255,255,255, no gradient, no vignette, no shadow cast on the backdrop. |
| 主体占比 | The product fills at least 88% of the frame, tight crop, minimal empty margin on all sides. |
| 无文字水印 | No text, no logo, no watermark, no inset images, no borders anywhere in the frame. |
| 方图 | Square 1:1 composition, product centered. |
run_loop 会自动做这件事:合规校验失败时, 它把上面对应的句子追加进 prompt 再跑一轮,不用人管。
| 现象 | 原因 | 怎么办 |
|---|---|---|
| 肉眼纯白,机检说不是 | 棚拍浅灰墙(RGB 200–245)或轻微渐变 | --fix 压白,或生成时按上表加约束句 |
| 主体占比总不够 | 生成时留白太多 | prompt 里写 tight crop;或 --fix 重构画布 |
| PNG 传上去变黑底 | 透明通道被平台转成黑色 | 永远压平为白底 JPEG,--fix 会自动做 |
| 修完占比还是差一点 | 方图平台下,长条商品的占比有物理上限 | 脚本已取可达上限;接受它,或改用非方图平台的坑位 |
文字水印项永远是 ? | 像素层测不了 | 交给 detect-task,或人工过一眼 |
check_listing.py out/*.jpg --platform amazon 退出码非零就拦下,
比人工抽检可靠。