{"id":"58eab816-33bf-479d-b8a9-a3518bb35493","entityType":"agent","slug":"clawhub-dlazyai-item-detail","name":"商品详情图生成 Item Detail","canonicalUrl":"https://www.xpersona.co/agent/clawhub-dlazyai-item-detail","canonicalPath":"/agent/clawhub-dlazyai-item-detail","generatedAt":"2026-10-10T22:49:13.759Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T20:37:07.135Z","emptyReason":null},"description":"生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。 Skill: 商品详情图生成 Item Detail Owner: dlazyai Summary: 生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。 Tags: latest:1.0.19 Version history: v1.0.19 | 2026-10-10T01:51:40.654Z | user 例行版本更新 2026-10-10 v1.0.18 | 2026-10-08T01:44:15.698Z | user 例行版本更新 2026-10-08 v1.0.17 | 2026-10-04T01:44:14.832Z | user 例行版本更新 2026-10-04 v1.0.16 | 2026-10-02T05:16:47.405Z | user 例行版本更新 2026-10-02 v1.0.15 | 2026-09-3","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.3K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s170j1ymymrxasgd00dsk7tckx84cf45:item-detail","sourceUrl":"https://clawhub.ai/dlazyai/item-detail","homepage":"https://clawhub.ai/dlazyai/skills/item-detail","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/dlazyai/item-detail","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/dlazyai/skills/item-detail","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。 Skill: 商品详情图生成 Item Detail Owner: dlazyai Summary: 生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T20:37:07.135Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T20:37:07.135Z","emptyReason":null},"stars":null,"forks":null,"downloads":1264,"packageName":null,"latestVersion":"1.0.19","tractionLabel":"1.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T20:37:07.128Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T20:37:07.135Z","lastCrawledAt":"2026-10-10T20:37:07.128Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T20:37:07.128Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.19","createdAt":"2026-10-10T01:51:40.654Z","changelog":"例行版本更新 2026-10-10","fileCount":11,"zipByteSize":25526},{"version":"1.0.18","createdAt":"2026-10-08T01:44:15.698Z","changelog":"例行版本更新 2026-10-08","fileCount":11,"zipByteSize":25566},{"version":"1.0.17","createdAt":"2026-10-04T01:44:14.832Z","changelog":"例行版本更新 2026-10-04","fileCount":11,"zipByteSize":25585},{"version":"1.0.16","createdAt":"2026-10-02T05:16:47.405Z","changelog":"例行版本更新 2026-10-02","fileCount":11,"zipByteSize":25678},{"version":"1.0.15","createdAt":"2026-09-30T01:48:06.010Z","changelog":"例行版本更新 2026-09-30","fileCount":11,"zipByteSize":25530},{"version":"1.0.14","createdAt":"2026-09-28T02:37:18.717Z","changelog":"例行版本更新 2026-09-28","fileCount":11,"zipByteSize":25599},{"version":"1.0.13","createdAt":"2026-09-24T02:38:49.187Z","changelog":"例行版本更新 2026-09-24","fileCount":11,"zipByteSize":25974},{"version":"1.0.12","createdAt":"2026-09-22T01:41:57.759Z","changelog":"例行版本更新 2026-09-22","fileCount":11,"zipByteSize":25875}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s170j1ymymrxasgd00dsk7tckx84cf45:item-detail","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-item-detail/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-item-detail/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-item-detail/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-item-detail/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-item-detail/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-item-detail/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-10T22:49:13.756Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-item-detail/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-item-detail/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-item-detail/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-item-detail/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-10T20:37:07.135Z","emptyReason":null},"readme":"Skill: 商品详情图生成 Item Detail\n\nOwner: dlazyai\n\nSummary: 生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。\n\nTags: latest:1.0.19\n\nVersion history:\n\nv1.0.19 | 2026-10-10T01:51:40.654Z | user\n\n例行版本更新 2026-10-10\n\nv1.0.18 | 2026-10-08T01:44:15.698Z | user\n\n例行版本更新 2026-10-08\n\nv1.0.17 | 2026-10-04T01:44:14.832Z | user\n\n例行版本更新 2026-10-04\n\nv1.0.16 | 2026-10-02T05:16:47.405Z | user\n\n例行版本更新 2026-10-02\n\nv1.0.15 | 2026-09-30T01:48:06.010Z | user\n\n例行版本更新 2026-09-30\n\nv1.0.14 | 2026-09-28T02:37:18.717Z | user\n\n例行版本更新 2026-09-28\n\nv1.0.13 | 2026-09-24T02:38:49.187Z | user\n\n例行版本更新 2026-09-24\n\nv1.0.12 | 2026-09-22T01:41:57.759Z | user\n\n例行版本更新 2026-09-22\n\nv1.0.11 | 2026-09-20T01:51:16.664Z | user\n\n例行版本更新 2026-09-20\n\nv1.0.10 | 2026-09-18T02:12:10.019Z | user\n\n例行版本更新 2026-09-18\n\nv1.0.9 | 2026-09-14T01:42:24.729Z | user\n\n例行版本更新 2026-09-14\n\nv1.0.8 | 2026-09-10T01:35:48.585Z | user\n\n例行版本更新 2026-09-10\n\nv1.0.7 | 2026-09-08T01:42:42.501Z | user\n\n例行版本更新 2026-09-08\n\nv1.0.6 | 2026-09-07T01:50:21.569Z | user\n\n例行版本更新 2026-09-07\n\nv1.0.5 | 2026-09-04T01:43:24.919Z | user\n\n例行版本更新 2026-09-04\n\nv1.0.4 | 2026-09-02T01:39:07.637Z | user\n\n例行版本更新 2026-09-02\n\nv1.0.3 | 2026-08-31T07:05:49.740Z | user\n\n源码仓库迁移至 github.com/dlazy-ai/ecommerce-skills\n\nv1.0.2 | 2026-08-31T05:26:44.268Z | user\n\n源码仓库迁移至 github.com/dlazy-ai/ecommerce-skills\n\nv1.0.1 | 2026-08-29T04:07:08.637Z | user\n\nSync from GitHub\n\nv1.0.0 | 2026-08-18T04:42:00.643Z | user\n\nSync from GitHub\n\nArchive index:\n\nArchive v1.0.19: 11 files, 25526 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (1874b), references/provider-cli.md (4802b), scripts/brand.mjs (4516b), scripts/gen.mjs (9733b), scripts/lib/miniyaml.mjs (2901b), scripts/lib/providers.mjs (12510b), scripts/lib/tasks.json (3234b), skill-card.md (1988b), SKILL.md (12681b), _meta.json (131b)\n\nFile v1.0.19:SKILL.md\n\n---\nname: item-detail\nversion: 1.0.19\ndescription: 生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。\n---\n\n# item-detail — 一键生成全套商品详情图\n\n一张商品图 + 卖点文案 → **带中文排版的详情页视觉**。\n\n和其他技能的区别：本技能的产出**带文字**。所以模型选型的第一标准是**中文字形渲染能力**——大多数图像模型会把中文画成乱码。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 |\n| --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/product-flatlay.jpg\" width=\"280\"> |\n| `product-flatlay.jpg` — 军绿麻花针织毛衣平铺图，800×800 |\n\n实际执行的命令（首屏 banner 模块）：\n\n```bash\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 中的军绿色麻花针织圆领毛衣的模特上身图（青年男模特，半身，落肩宽松版型），毛衣颜色、麻花织法与菱形提花必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。底部一行三个圆形图标配文字「亲肤不扎」「不易变形」「机洗不缩」。整体米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4 \\\n  --save docs/item-detail/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 3:4 / 2K，5 credits。模特上身图占左侧，毛衣的军绿色、麻花与菱形提花保留；右上标题「粗棒麻花 复古落肩」与副标题「羊毛混纺 · 加厚保暖 · 男女同款」字形正确、层级分明；底部三个线描图标配「亲肤不扎」「不易变形」「机洗不缩」，米灰底暖调，排版对齐。\n\n---\n\n## 1、能力边界\n\n| 产出模块 | 说明 |\n| --- | --- |\n| 首屏 banner | 模特上身图 / 商品图 + 大标题 + 副标题 |\n| 卖点图标行 | 3~4 个圆形图标 + 短文案 |\n| 材质说明块 | 面料/材质特写 + 说明文字 |\n| 细节展示块 | 局部特写 + 工艺说明 |\n| 参数块 | 尺码表 / 规格参数 |\n\n| 输入 | 说明 |\n| --- | --- |\n| 商品图 | 1 张 |\n| 商品类目 | `服饰` `箱包` `鞋品` `婴童用品` `宠物` `家居用品` `美妆` `3C数码` `电器` `家具灯饰` `食品厨具` `珠宝饰品` `工业和农业` `其他` |\n| 商品信息 | 100 字内的卖点，例：`商品卖点：舒适透气、柔软亲肤，适合入群：1个月-2岁宝宝` |\n\n**不做**：不编造商品没有的功能与认证；不生成虚假促销信息与虚假对比数据；不改商品的款式与颜色。\n\n---\n\n## 2、输入素材规则\n\n生成前先自检这几条硬性约束：\n\n- 大小：**20KB ~ 15MB**\n- 分辨率：**大于 400×400**\n- 格式：**jpg / jpeg / png / webp**\n\n**输入建议**\n\n| 做法 | 说明 |\n| --- | --- |\n| ✅ 商品图干净 | 带文字的图会让新排版和旧文字打架，先走 [remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md) |\n| ✅ 卖点写成短句 | `亲肤不扎` 比 `采用优质柔软亲肤面料不刺激皮肤` 好排版 |\n| ✅ 文案字数控制 | 主标题 ≤ 8 字，副标题 ≤ 16 字，图标文案 ≤ 5 字 |\n| ❌ 一个模块塞十条卖点 | 排不下，会挤成乱码 |\n| ❌ 未经核实的功效宣称 | 合规风险 |\n\n---\n\n## 3、中文排版能出对的四个条件\n\n中文详情页最大的失败模式是**乱码**。这四条同时满足才稳定：\n\n| 条件 | 写法 |\n| --- | --- |\n| 1 · 把每一段文案原文写进 prompt | 用「」括起来：`大字「粗棒麻花 复古落肩」`、`小字「羊毛混纺 · 加厚保暖 · 男女同款」` |\n| 2 · 指定字体族与字重 | `字体为无衬线黑体，字号层级分明` |\n| 3 · 指定版式关系 | `右上方留白区排版中文标题`、`底部一行三个圆形图标配文字` |\n| 4 · 显式要求不乱码 | `中文字必须清晰正确无乱码` |\n\n**文案越短越不容易崩**。四字、六字标题的成功率远高于长句。\n\n**分块生成比一次生成整页更稳**：首屏 banner 一条 prompt，卖点块一条，材质块一条，最后用设计工具拼成长图。一次生成整页时，越往下的模块文字越容易崩。\n\n---\n\n## 4、类目 → 版式基调\n\n| 类目 | 背景与色调 | 文案侧重 |\n| --- | --- | --- |\n| 服饰 | 米灰 / 燕麦色，暖调，大留白 | 版型、面料、场合 |\n| 箱包 / 鞋品 | 深灰渐变，硬光，质感优先 | 材质、容量、耐用 |\n| 婴童 / 宠物 | 浅粉 / 奶油色，柔光 | 安全、亲肤、适用月龄 |\n| 美妆 | 大理石 / 丝绒，高对比 | 成分、质地、效果 |\n| 3C / 电器 | 深色科技风，冷光 | 参数、性能、接口 |\n| 家居 / 家具灯饰 | 实景房间，自然光 | 尺寸、材质、搭配 |\n| 食品厨具 | 木质餐桌，暖光 | 原料、工艺、口感 |\n| 珠宝饰品 | 深色绒布，聚光 | 材质、克重、工艺 |\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`seedream-5.0-pro`**（专业档图像模型，在**中文字形与复杂排版**上明显强于同类；本技能的产出带大量中文文案，字形正确率是首要指标）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task item-detail \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/item-detail-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy seedream-5.0-pro --prompt '...' --images ... --save output/item-detail.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[商品图]`（最多 10 张，可加细节图、面料图） | 多图能让各模块用上不同素材 |\n| `--size` | `3:4`（首屏 banner）/ `1:1`（卖点方块）/ `9:16`（长条模块） | 分模块生成，各用合适比例 |\n| `--resolution` | `2k` | 详情页宽度通常 750~1200px，2K 足够 |\n| `--batch` | `2` ~ `3` | 中文排版有随机性，挑字形正确的 |\n| `--save` | `docs/item-detail/output-<sku>-<模块>.jpg` | 按模块归档便于拼长图 |\n\n> **成本提示**：`seedream-5.0-pro` 单张约 5 credits，分模块跑 5 条也只有 25 credits，比反复重跑整页便宜。\n\n### Command Examples\n\n```bash\n# basic call: 首屏 banner\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图，颜色与织法必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。米灰色背景，暖色调，无衬线黑体，排版整齐对齐，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4\n\n# complex call: 分模块跑完一整套详情页\nSRC=docs/item-detail/product-flatlay.jpg\nBASE='米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。'\nKEEP='商品的颜色、麻花织法与菱形提花必须与图1完全一致。'\n\ndlazy seedream-5.0-pro --size 3:4 --images \"$SRC\" --save docs/item-detail/output-sku001-1-banner.jpg \\\n  --prompt \"电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图（青年男模特，半身，落肩宽松版型）。${KEEP} 右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-2-icons.jpg \\\n  --prompt \"电商详情页卖点图标块，正方形。上方一行三个线性圆形图标，图标下方各配四字中文：「亲肤不扎」「不易变形」「机洗不缩」。下方居中一张商品局部特写。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-3-fabric.jpg \\\n  --prompt \"电商详情页面料说明块，正方形。左侧是面料微距特写，右侧竖排中文说明：标题「粗棒羊毛混纺」，正文两行小字「蓬松保暖不压身」「细腻纱线不刺挠」。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 9:16 --images \"$SRC\" --save docs/item-detail/output-sku001-4-size.jpg \\\n  --prompt \"电商详情页尺码块，长条竖版。顶部中文标题「尺码参考」，下方一张三行四列的简洁尺码表格，表头为「尺码」「衣长」「胸围」「袖长」，内容为 S/M/L 三行数字。${BASE}\"\n\n# 先估价不真跑\ndlazy seedream-5.0-pro --dry-run --prompt '...' --images a.jpg --size 3:4\n```\n\n### 延伸阅读\n\n| 要查什么 | 去哪 |\n| --- | --- |\n| 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) |\n| `seedream-5.0-pro` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) |\n| 统一入口的全部选项 | `node scripts/gen.mjs --help` |\n\n## 6、Prompt 模板\n\n```text\n电商[类目]详情页[模块名]，[比例描述]。\n\n[图片区版式]：[位置] 是图1 商品的[形态：模特上身图 / 平铺图 / 微距特写]。\n[保真句]：商品的颜色、[织法/材质]与[图案/结构]必须与图1完全一致。\n\n[文案区版式]：[位置] 排版中文，\n  大字「[主标题 ≤8 字]」，\n  副标题小字「[副标题 ≤16 字]」，\n  [图标行：三个圆形图标配文字「[4字]」「[4字]」「[4字]」]。\n\n[基调]：[类目对应的背景与色调，见第四节]，留白克制，\n字体为无衬线黑体，字号层级分明，排版整齐对齐，\n商业电商详情页设计感，中文字必须清晰正确无乱码。\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 中文乱码 | 缩短文案；把每段原文再重复一次；追加 `所有中文必须是清晰可读的简体汉字，不得出现变形、缺笔或臆造字。` |\n| 文字压在商品上 | `文字区与商品区不得重叠，商品占画面左侧 [X]%，文字区占右侧 [Y]%。` |\n| 排版歪 | `所有文字左对齐到同一条基准线，行距均匀。` |\n| 商品被改 | `商品区域必须与图1一致，不得重绘款式、颜色或图案。` |\n| 图标太花 | `图标为单色细线描风格，线宽一致，不得加渐变或阴影。` |\n| 一次出整页文字崩 | 拆成分模块生成（第三节） |\n\n---\n\n## 7、执行流程\n\n1. **洗干净商品图**（[remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md)），避免新旧文字打架。\n2. **定类目 → 取版式基调**（第四节表格）。\n3. **把卖点压成短句**：主标题 ≤8 字，副标题 ≤16 字，图标文案 ≤5 字。\n4. **拆模块**：banner / 卖点图标 / 材质说明 / 细节 / 尺码——**一个模块一条 prompt**。\n5. **每条 prompt 必须包含四个条件**（原文 + 字体 + 版式 + 不乱码，见第三节）。\n6. **`--batch 2~3`** 挑字形正确的一张，落盘到 `docs/item-detail/`。\n7. **逐字校对中文**（这是最容易出错的地方）→ 用设计工具拼成详情页长图。\n8. **合规检查**：卖点是否有依据、有没有虚假促销与绝对化用语。\n\n---\n\n## 8、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 中文变乱码 | 文案太长 / 未写不乱码约束 | 缩短文案 + 重复原文 + 追加字形约束句 |\n| 越往下的模块文字越崩 | 一次生成整页 | 拆成分模块生成 |\n| 文字压在商品上 | 未划分区域 | 追加区域占比句 |\n| 图标风格花哨不统一 | 未约束风格 | 追加单色细线描、线宽一致句 |\n| 商品被重绘 | 未写保真句 | 追加商品区域保真句 |\n| 卖点被模型加油添醋 | 未限制 | prompt 里只给要出现的原文，并追加 `不得添加未提供的文案` |\n\n---\n\n## Tips\n\nVisit https://dlazy.com for more information.\n\nFile v1.0.19:_meta.json\n\n{\n  \"ownerId\": \"kn7c5wgeajfcfvdfb5ceemvdb984cjpd\",\n  \"slug\": \"item-detail\",\n  \"version\": \"1.0.19\",\n  \"publishedAt\": 1791597100654\n}\n\nFile v1.0.19:references/model-flags.md\n\n# `seedream-5.0-pro` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy seedream-5.0-pro` command to get results.\r\n\r\n```bash\r\ndlazy seedream-5.0-pro -h\r\n\r\nOptions:\r\n  --prompt <prompt>          Prompt\r\n  --images [images...]       Images [image: url or local path] (max 10)\r\n  --resolution <resolution>  Resolution [default: 2k] (choices: \"2k\")\r\n  --size <size>              Size [default: 16:9] (choices: \"1:1\", \"4:3\",\r\n                             \"3:4\", \"16:9\", \"9:16\", \"3:2\", \"2:3\", \"21:9\")\r\n  --dry-run                  Print payload without executing the tool\r\n  --no-wait                  Return generateId immediately for async tasks\r\n  --timeout <seconds>        Max seconds to wait for async completion (default:\r\n                             \"1800\")\r\n  --input <jsonOrFile>       Inline JSON or @path/to/file.json — merged under\r\n                             flag values (flags win)\r\n  --save <path>              Download the result asset to this local path\r\n                             (mkdir + retry handled for you). A destination\r\n                             path — NOT a response format; for stdout shape use\r\n                             --format\r\n  --batch <n>                Fan-out N parallel runs (cloud tools only)\r\n                             (default: \"1\")\r\n  -h, --help                 display help for command\r\n```\r\n\r\n> Any flag also accepts pipe references — `-` (auto-pick from upstream stdin), `@N` (n-th output), `@N.path` (jsonpath into output), `@*` (all primary values), `@stdin` / `@stdin:path` (whole envelope). See `dlazy --help` for details.\r\n\r\n---\r\n\r\n换其他后端时参数由 `scripts/gen.mjs` 统一翻译，见 [`provider-cli.md`](provider-cli.md)。\n\nFile v1.0.19:references/provider-cli.md\n\n<!-- 由 scripts/build-skills.mjs 从 shared/references/provider-cli.md 同步生成，不要直接改这里。 -->\n# 后端调用参考\n\n技能正文只写「要生成什么」。认证、计费、错误码、输出结构这些每个技能都一样的东西放在这里，\n**用到时再读**，不占技能的常驻上下文。\n\n---\n\n## 一、认证\n\n### 默认后端 dLazy\n\n```bash\ndlazy login            # 设备码流程，远程 shell 也能用，自动写入本地配置\ndlazy auth set <KEY>   # 已有 key 时直接写入\n```\n\nkey 存在用户配置目录（macOS/Linux `~/.dlazy/config.json`，Windows `%USERPROFILE%\\.dlazy\\config.json`），\n权限限本机用户。也可以每次调用用环境变量 `DLAZY_API_KEY` 传入。\n\n手动获取：登录 [dlazy.com](https://dlazy.com) → [API Key 页面](https://dlazy.com/dashboard/organization/api-key)。\nkey 按组织隔离，可随时轮换或吊销。\n\n### 其他后端\n\n本技能库不锁定单一厂商。配好任意一家的 key 即可跑：\n\n| 后端 | 环境变量 | 说明 |\n| --- | --- | --- |\n| `dlazy` | `dlazy login` 或 `DLAZY_API_KEY` | 默认，最省事 |\n| `openai` | `OPENAI_API_KEY` | 走 `/v1/images/edits` 与 `/v1/images/generations` |\n| `gemini` | `GEMINI_API_KEY` | Nano Banana 系列 |\n| `fal` | `FAL_KEY` | |\n| `replicate` | `REPLICATE_API_TOKEN` | |\n| `ark` | `ARK_API_KEY` + `ARK_MODEL` | 火山方舟，模型 ID 需按开通情况填 |\n\n选路优先级：`--provider` 参数 > `PROVIDER` 环境变量 > 第一个配了 key 的 > `dlazy`。\n\n```bash\nnode scripts/gen.mjs --doctor     # 看当前哪个后端可用\n```\n\n各后端的模型 ID 可用 `GEN_MODEL_OPENAI` / `GEN_MODEL_GEMINI` / `GEN_MODEL_FAL` /\n`GEN_MODEL_REPLICATE` / `GEN_MODEL_ARK` 覆盖。**厂商目录会变，以各家最新文档为准。**\n\n---\n\n## 二、两种调用方式\n\n### 方式 A：统一入口（推荐）\n\n```bash\nnode scripts/gen.mjs --task <技能名> --prompt '...' --images a.jpg b.jpg --save out.jpg\n```\n\n它负责：后端选路、默认尺寸档位、失败重试（429/5xx 指数退避）、落盘建目录、成本估算。\n\n```bash\nnode scripts/gen.mjs --task flat-lay --prompt '...' --dry-run   # 不调用不计费，只看要发什么\nnode scripts/gen.mjs --help\n```\n\n### 方式 B：直接用 dLazy CLI\n\n不想引入 Node 依赖时，技能正文里的 `dlazy ...` 命令可以原样执行，效果等价。\n\n```bash\nnpx @dlazy/cli@1.2.3 <command>     # 不装全局二进制\n```\n\n- CLI 源码：[github.com/dlazy-ai/cli](https://github.com/dlazy-ai/cli) · npm 包 `@dlazy/cli`\n\n---\n\n## 三、数据流向\n\n调用 dLazy 时：提示词与参数发往 `api.dlazy.com`；传入的本地图片会上传到 `files.dlazy.com`\n供模型读取；产出 URL 同样托管在 `files.dlazy.com`。这是云端生成 API 的通用形态。\n换成其他后端时，数据流向对应厂商，不经过 dLazy。\n\n---\n\n## 四、输出结构\n\n`gen.mjs`（加 `--json`）：\n\n```json\n{\n  \"ok\": true,\n  \"task\": \"flat-lay\",\n  \"provider\": \"dlazy\",\n  \"model\": \"gpt-image-2\",\n  \"files\": [\"docs/flat-lay/output-sku001.jpg\"],\n  \"texts\": [],\n  \"estimatedCredits\": 60,\n  \"elapsedMs\": 58213\n}\n```\n\ndLazy CLI 原生：\n\n```json\n{\n  \"ok\": true,\n  \"result\": {\n    \"tool\": \"gpt-image-2\",\n    \"data\": { \"urls\": [\"https://files.dlazy.com/data/ai/....jpg\"] },\n    \"savedPath\": \"docs/flat-lay/example-output.jpg\"\n  }\n}\n```\n\n加 `--no-wait` 的异步任务不返回 `data`，返回 `task: { generateId, status }`，\n用 `dlazy status <generateId> --wait` 轮询。\n\n文本类模型（如质检）产出在 `result.data.texts[0]`：\n\n```bash\ndlazy claude-sonnet-5 --prompt '...' --images x.jpg \\\n  | python3 -c 'import sys,json;print(json.load(sys.stdin)[\"result\"][\"data\"][\"texts\"][0])'\n```\n\n---\n\n## 五、错误处理\n\n| Code | 类型 | 示例 |\n| --- | --- | --- |\n| 401 | 未授权 / 无 key | `ok: false, code: \"unauthorized\"` |\n| 501 | 缺必填参数 | `error: required option '--prompt <prompt>' not specified` |\n| 502 | 本地文件读不到 | `Error: Image file not found: ...` |\n| 503 | 余额不足 | `ok: false, code: \"insufficient_balance\"` |\n| 503 | 服务端错误 | `HTTP status code error (500)` |\n| 504 | 异步任务失败 | `=== Generation Failed ===` / `Prompt violates safety policy` |\n\n**给 Agent 的硬性要求**\n\n1. 命中 `insufficient_balance` → 明确告诉用户算力不足，并给出充值入口\n   <https://dlazy.com/dashboard/organization/settings?tab=credits>\n2. 命中 `unauthorized` / 缺 key → 告诉用户去 <https://dlazy.com/dashboard/organization/api-key>\n   取 key，用 `dlazy auth set <key>` 存好再继续。\n3. 用 `gen.mjs` 时，429 与 5xx 已自动重试；仍失败才向用户报错。\n4. **不要**为了「跑通」而偷偷降级参数（尺寸、档位、批量），先问用户。\n\nFile v1.0.19:scripts/lib/tasks.json\n\n{\r\n  \"_note\": \"技能 → 默认模型与参数。dlazy 列为默认后端的模型名；其他后端走 providers.mjs 的通用映射，可用 GEN_MODEL_<PROVIDER> 覆盖。\",\r\n  \"_credits\": { \"gpt-image-2\": 60, \"seedream-5.0\": 30, \"seedream-5.0-pro\": 45, \"banana-pro\": 25, \"claude-sonnet-5\": 3 },\r\n  \"tasks\": {\r\n    \"flat-lay\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"wear-everything\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"image-fusion\":            { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"one-shot\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"fission-pattern\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-detail\":             { \"model\": \"seedream-5.0-pro\", \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"creative-scene\":          { \"model\": \"banana-pro\",       \"size\": \"1024x1536\", \"format\": \"jpeg\" },\r\n    \"batch-image\":             { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"to-3d\":                   { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-extraction\":     { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"fabric-on-body\":          { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-detail\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-grass-planting\": { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-selling-point\":      { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"item-change-background\":  { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"remove-watermark\":        { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"material-enhancement\":    { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"item-repair\":             { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"detect-task\":             { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"listing-optimizer\":       { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"cross-border-localize\":   { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"brand-kit\":               { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"platform-compliance\":     { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"main-image-video\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"product-video-ad\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"ugc-testimonial\":         { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true }\r\n  }\r\n}\n\nFile v1.0.19:skill-card.md\n\n## Description:\n\nGenerates Chinese-language ecommerce product-detail image modules from a product photo and supplied selling points.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[dlazyai](https://clawhub.ai/user/dlazyai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nEcommerce sellers and designers use this skill to turn product photos and approved selling points into Chinese-language banners, feature graphics, and other product-detail modules for review before publication.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Product images, selling-point copy, and prompts are sent to the selected image-generation provider.\n\nMitigation: Confirm the provider with --dry-run or --doctor and use only assets approved for that provider.\n\nRisk: Generated image files are written to local paths.\n\nMitigation: Choose and review output paths before generation.\n\nRisk: Generated Chinese text or product claims may be inaccurate.\n\nMitigation: Proofread every module and verify product details and claims before publication.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/dlazyai/skills/item-detail)\n- [Model flags](references/model-flags.md)\n- [Provider CLI guide](references/provider-cli.md)\n\n## Skill Output:\n\n**Output Type(s):** [Image files, Shell commands, Guidance]\n\n**Output Format:** [Product-detail image modules with Chinese text, supported by CLI commands and Markdown guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Generated modules are saved locally; review Chinese text, product fidelity, and claims before publishing.]\n\n## Skill Version(s):\n\n1.0.19 (source: release evidence and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.19:examples/brand.yaml\n\n# ⚠️ 由 scripts/build-skills.mjs 从 shared/examples/brand.yaml 同步生成，不要直接改这里。\r\n# 店铺品牌视觉规范 —— 所有生图技能读这一份，保证几百个 SKU 看起来像同一家店。\r\n#   node scripts/brand.mjs --brand brand.yaml --for flat-lay\r\n#   node scripts/gen.mjs --task flat-lay --brand brand.yaml --prompt '...'\r\n\r\nbrand:\r\n  name: 示例品牌\r\n  # 一句话概括调性，会原样进 prompt\r\n  tone: quiet minimalist, warm and lived-in, never glossy or commercial\r\n\r\nmodel:\r\n  # 锁模特：给一张脸的参考图，所有技能都会把它作为最后一张参考图传入\r\n  reference: assets/model/face-a.jpg\r\n  description: East Asian woman, late twenties, natural makeup, shoulder-length black hair\r\n  body: slim, height around 168cm\r\n\r\nphotography:\r\n  background: seamless off-white studio backdrop, RGB 248 248 246\r\n  lighting: soft large softbox from camera left, gentle fill, no hard shadows\r\n  camera: 85mm equivalent, eye level, shallow depth of field\r\n  grade: neutral white balance around 5200K, low contrast, slightly lifted blacks\r\n  crop: full body with headroom, product centered\r\n\r\nlayout:\r\n  # 给带排版的技能（主图 / 详情页）用\r\n  margin: at least 8% empty margin on all sides\r\n  typeface: clean sans-serif, no decorative fonts\r\n  text_color: near-black on light background\r\n\r\nforbid:\r\n  - no visible brand logos other than the product's own\r\n  - no text or watermark\r\n  - no exaggerated poses or dramatic wind effects\r\n  - no oversaturated colors\r\n\r\n# 可选：把这些直接写进合规目标，生成时就按平台要求出图\r\ncompliance:\r\n  platform: amazon\n\nArchive v1.0.18: 11 files, 25566 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (1874b), references/provider-cli.md (4802b), scripts/brand.mjs (4516b), scripts/gen.mjs (9733b), scripts/lib/miniyaml.mjs (2901b), scripts/lib/providers.mjs (12510b), scripts/lib/tasks.json (3234b), skill-card.md (1994b), SKILL.md (12681b), _meta.json (131b)\n\nFile v1.0.18:SKILL.md\n\n---\nname: item-detail\nversion: 1.0.18\ndescription: 生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。\n---\n\n# item-detail — 一键生成全套商品详情图\n\n一张商品图 + 卖点文案 → **带中文排版的详情页视觉**。\n\n和其他技能的区别：本技能的产出**带文字**。所以模型选型的第一标准是**中文字形渲染能力**——大多数图像模型会把中文画成乱码。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 |\n| --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/product-flatlay.jpg\" width=\"280\"> |\n| `product-flatlay.jpg` — 军绿麻花针织毛衣平铺图，800×800 |\n\n实际执行的命令（首屏 banner 模块）：\n\n```bash\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 中的军绿色麻花针织圆领毛衣的模特上身图（青年男模特，半身，落肩宽松版型），毛衣颜色、麻花织法与菱形提花必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。底部一行三个圆形图标配文字「亲肤不扎」「不易变形」「机洗不缩」。整体米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4 \\\n  --save docs/item-detail/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 3:4 / 2K，5 credits。模特上身图占左侧，毛衣的军绿色、麻花与菱形提花保留；右上标题「粗棒麻花 复古落肩」与副标题「羊毛混纺 · 加厚保暖 · 男女同款」字形正确、层级分明；底部三个线描图标配「亲肤不扎」「不易变形」「机洗不缩」，米灰底暖调，排版对齐。\n\n---\n\n## 1、能力边界\n\n| 产出模块 | 说明 |\n| --- | --- |\n| 首屏 banner | 模特上身图 / 商品图 + 大标题 + 副标题 |\n| 卖点图标行 | 3~4 个圆形图标 + 短文案 |\n| 材质说明块 | 面料/材质特写 + 说明文字 |\n| 细节展示块 | 局部特写 + 工艺说明 |\n| 参数块 | 尺码表 / 规格参数 |\n\n| 输入 | 说明 |\n| --- | --- |\n| 商品图 | 1 张 |\n| 商品类目 | `服饰` `箱包` `鞋品` `婴童用品` `宠物` `家居用品` `美妆` `3C数码` `电器` `家具灯饰` `食品厨具` `珠宝饰品` `工业和农业` `其他` |\n| 商品信息 | 100 字内的卖点，例：`商品卖点：舒适透气、柔软亲肤，适合入群：1个月-2岁宝宝` |\n\n**不做**：不编造商品没有的功能与认证；不生成虚假促销信息与虚假对比数据；不改商品的款式与颜色。\n\n---\n\n## 2、输入素材规则\n\n生成前先自检这几条硬性约束：\n\n- 大小：**20KB ~ 15MB**\n- 分辨率：**大于 400×400**\n- 格式：**jpg / jpeg / png / webp**\n\n**输入建议**\n\n| 做法 | 说明 |\n| --- | --- |\n| ✅ 商品图干净 | 带文字的图会让新排版和旧文字打架，先走 [remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md) |\n| ✅ 卖点写成短句 | `亲肤不扎` 比 `采用优质柔软亲肤面料不刺激皮肤` 好排版 |\n| ✅ 文案字数控制 | 主标题 ≤ 8 字，副标题 ≤ 16 字，图标文案 ≤ 5 字 |\n| ❌ 一个模块塞十条卖点 | 排不下，会挤成乱码 |\n| ❌ 未经核实的功效宣称 | 合规风险 |\n\n---\n\n## 3、中文排版能出对的四个条件\n\n中文详情页最大的失败模式是**乱码**。这四条同时满足才稳定：\n\n| 条件 | 写法 |\n| --- | --- |\n| 1 · 把每一段文案原文写进 prompt | 用「」括起来：`大字「粗棒麻花 复古落肩」`、`小字「羊毛混纺 · 加厚保暖 · 男女同款」` |\n| 2 · 指定字体族与字重 | `字体为无衬线黑体，字号层级分明` |\n| 3 · 指定版式关系 | `右上方留白区排版中文标题`、`底部一行三个圆形图标配文字` |\n| 4 · 显式要求不乱码 | `中文字必须清晰正确无乱码` |\n\n**文案越短越不容易崩**。四字、六字标题的成功率远高于长句。\n\n**分块生成比一次生成整页更稳**：首屏 banner 一条 prompt，卖点块一条，材质块一条，最后用设计工具拼成长图。一次生成整页时，越往下的模块文字越容易崩。\n\n---\n\n## 4、类目 → 版式基调\n\n| 类目 | 背景与色调 | 文案侧重 |\n| --- | --- | --- |\n| 服饰 | 米灰 / 燕麦色，暖调，大留白 | 版型、面料、场合 |\n| 箱包 / 鞋品 | 深灰渐变，硬光，质感优先 | 材质、容量、耐用 |\n| 婴童 / 宠物 | 浅粉 / 奶油色，柔光 | 安全、亲肤、适用月龄 |\n| 美妆 | 大理石 / 丝绒，高对比 | 成分、质地、效果 |\n| 3C / 电器 | 深色科技风，冷光 | 参数、性能、接口 |\n| 家居 / 家具灯饰 | 实景房间，自然光 | 尺寸、材质、搭配 |\n| 食品厨具 | 木质餐桌，暖光 | 原料、工艺、口感 |\n| 珠宝饰品 | 深色绒布，聚光 | 材质、克重、工艺 |\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`seedream-5.0-pro`**（专业档图像模型，在**中文字形与复杂排版**上明显强于同类；本技能的产出带大量中文文案，字形正确率是首要指标）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task item-detail \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/item-detail-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy seedream-5.0-pro --prompt '...' --images ... --save output/item-detail.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[商品图]`（最多 10 张，可加细节图、面料图） | 多图能让各模块用上不同素材 |\n| `--size` | `3:4`（首屏 banner）/ `1:1`（卖点方块）/ `9:16`（长条模块） | 分模块生成，各用合适比例 |\n| `--resolution` | `2k` | 详情页宽度通常 750~1200px，2K 足够 |\n| `--batch` | `2` ~ `3` | 中文排版有随机性，挑字形正确的 |\n| `--save` | `docs/item-detail/output-<sku>-<模块>.jpg` | 按模块归档便于拼长图 |\n\n> **成本提示**：`seedream-5.0-pro` 单张约 5 credits，分模块跑 5 条也只有 25 credits，比反复重跑整页便宜。\n\n### Command Examples\n\n```bash\n# basic call: 首屏 banner\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图，颜色与织法必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。米灰色背景，暖色调，无衬线黑体，排版整齐对齐，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4\n\n# complex call: 分模块跑完一整套详情页\nSRC=docs/item-detail/product-flatlay.jpg\nBASE='米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。'\nKEEP='商品的颜色、麻花织法与菱形提花必须与图1完全一致。'\n\ndlazy seedream-5.0-pro --size 3:4 --images \"$SRC\" --save docs/item-detail/output-sku001-1-banner.jpg \\\n  --prompt \"电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图（青年男模特，半身，落肩宽松版型）。${KEEP} 右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-2-icons.jpg \\\n  --prompt \"电商详情页卖点图标块，正方形。上方一行三个线性圆形图标，图标下方各配四字中文：「亲肤不扎」「不易变形」「机洗不缩」。下方居中一张商品局部特写。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-3-fabric.jpg \\\n  --prompt \"电商详情页面料说明块，正方形。左侧是面料微距特写，右侧竖排中文说明：标题「粗棒羊毛混纺」，正文两行小字「蓬松保暖不压身」「细腻纱线不刺挠」。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 9:16 --images \"$SRC\" --save docs/item-detail/output-sku001-4-size.jpg \\\n  --prompt \"电商详情页尺码块，长条竖版。顶部中文标题「尺码参考」，下方一张三行四列的简洁尺码表格，表头为「尺码」「衣长」「胸围」「袖长」，内容为 S/M/L 三行数字。${BASE}\"\n\n# 先估价不真跑\ndlazy seedream-5.0-pro --dry-run --prompt '...' --images a.jpg --size 3:4\n```\n\n### 延伸阅读\n\n| 要查什么 | 去哪 |\n| --- | --- |\n| 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) |\n| `seedream-5.0-pro` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) |\n| 统一入口的全部选项 | `node scripts/gen.mjs --help` |\n\n## 6、Prompt 模板\n\n```text\n电商[类目]详情页[模块名]，[比例描述]。\n\n[图片区版式]：[位置] 是图1 商品的[形态：模特上身图 / 平铺图 / 微距特写]。\n[保真句]：商品的颜色、[织法/材质]与[图案/结构]必须与图1完全一致。\n\n[文案区版式]：[位置] 排版中文，\n  大字「[主标题 ≤8 字]」，\n  副标题小字「[副标题 ≤16 字]」，\n  [图标行：三个圆形图标配文字「[4字]」「[4字]」「[4字]」]。\n\n[基调]：[类目对应的背景与色调，见第四节]，留白克制，\n字体为无衬线黑体，字号层级分明，排版整齐对齐，\n商业电商详情页设计感，中文字必须清晰正确无乱码。\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 中文乱码 | 缩短文案；把每段原文再重复一次；追加 `所有中文必须是清晰可读的简体汉字，不得出现变形、缺笔或臆造字。` |\n| 文字压在商品上 | `文字区与商品区不得重叠，商品占画面左侧 [X]%，文字区占右侧 [Y]%。` |\n| 排版歪 | `所有文字左对齐到同一条基准线，行距均匀。` |\n| 商品被改 | `商品区域必须与图1一致，不得重绘款式、颜色或图案。` |\n| 图标太花 | `图标为单色细线描风格，线宽一致，不得加渐变或阴影。` |\n| 一次出整页文字崩 | 拆成分模块生成（第三节） |\n\n---\n\n## 7、执行流程\n\n1. **洗干净商品图**（[remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md)），避免新旧文字打架。\n2. **定类目 → 取版式基调**（第四节表格）。\n3. **把卖点压成短句**：主标题 ≤8 字，副标题 ≤16 字，图标文案 ≤5 字。\n4. **拆模块**：banner / 卖点图标 / 材质说明 / 细节 / 尺码——**一个模块一条 prompt**。\n5. **每条 prompt 必须包含四个条件**（原文 + 字体 + 版式 + 不乱码，见第三节）。\n6. **`--batch 2~3`** 挑字形正确的一张，落盘到 `docs/item-detail/`。\n7. **逐字校对中文**（这是最容易出错的地方）→ 用设计工具拼成详情页长图。\n8. **合规检查**：卖点是否有依据、有没有虚假促销与绝对化用语。\n\n---\n\n## 8、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 中文变乱码 | 文案太长 / 未写不乱码约束 | 缩短文案 + 重复原文 + 追加字形约束句 |\n| 越往下的模块文字越崩 | 一次生成整页 | 拆成分模块生成 |\n| 文字压在商品上 | 未划分区域 | 追加区域占比句 |\n| 图标风格花哨不统一 | 未约束风格 | 追加单色细线描、线宽一致句 |\n| 商品被重绘 | 未写保真句 | 追加商品区域保真句 |\n| 卖点被模型加油添醋 | 未限制 | prompt 里只给要出现的原文，并追加 `不得添加未提供的文案` |\n\n---\n\n## Tips\n\nVisit https://dlazy.com for more information.\n\nFile v1.0.18:_meta.json\n\n{\n  \"ownerId\": \"kn7c5wgeajfcfvdfb5ceemvdb984cjpd\",\n  \"slug\": \"item-detail\",\n  \"version\": \"1.0.18\",\n  \"publishedAt\": 1791423855698\n}\n\nFile v1.0.18:references/model-flags.md\n\n# `seedream-5.0-pro` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy seedream-5.0-pro` command to get results.\r\n\r\n```bash\r\ndlazy seedream-5.0-pro -h\r\n\r\nOptions:\r\n  --prompt <prompt>          Prompt\r\n  --images [images...]       Images [image: url or local path] (max 10)\r\n  --resolution <resolution>  Resolution [default: 2k] (choices: \"2k\")\r\n  --size <size>              Size [default: 16:9] (choices: \"1:1\", \"4:3\",\r\n                             \"3:4\", \"16:9\", \"9:16\", \"3:2\", \"2:3\", \"21:9\")\r\n  --dry-run                  Print payload without executing the tool\r\n  --no-wait                  Return generateId immediately for async tasks\r\n  --timeout <seconds>        Max seconds to wait for async completion (default:\r\n                             \"1800\")\r\n  --input <jsonOrFile>       Inline JSON or @path/to/file.json — merged under\r\n                             flag values (flags win)\r\n  --save <path>              Download the result asset to this local path\r\n                             (mkdir + retry handled for you). A destination\r\n                             path — NOT a response format; for stdout shape use\r\n                             --format\r\n  --batch <n>                Fan-out N parallel runs (cloud tools only)\r\n                             (default: \"1\")\r\n  -h, --help                 display help for command\r\n```\r\n\r\n> Any flag also accepts pipe references — `-` (auto-pick from upstream stdin), `@N` (n-th output), `@N.path` (jsonpath into output), `@*` (all primary values), `@stdin` / `@stdin:path` (whole envelope). See `dlazy --help` for details.\r\n\r\n---\r\n\r\n换其他后端时参数由 `scripts/gen.mjs` 统一翻译，见 [`provider-cli.md`](provider-cli.md)。\n\nFile v1.0.18:references/provider-cli.md\n\n<!-- 由 scripts/build-skills.mjs 从 shared/references/provider-cli.md 同步生成，不要直接改这里。 -->\n# 后端调用参考\n\n技能正文只写「要生成什么」。认证、计费、错误码、输出结构这些每个技能都一样的东西放在这里，\n**用到时再读**，不占技能的常驻上下文。\n\n---\n\n## 一、认证\n\n### 默认后端 dLazy\n\n```bash\ndlazy login            # 设备码流程，远程 shell 也能用，自动写入本地配置\ndlazy auth set <KEY>   # 已有 key 时直接写入\n```\n\nkey 存在用户配置目录（macOS/Linux `~/.dlazy/config.json`，Windows `%USERPROFILE%\\.dlazy\\config.json`），\n权限限本机用户。也可以每次调用用环境变量 `DLAZY_API_KEY` 传入。\n\n手动获取：登录 [dlazy.com](https://dlazy.com) → [API Key 页面](https://dlazy.com/dashboard/organization/api-key)。\nkey 按组织隔离，可随时轮换或吊销。\n\n### 其他后端\n\n本技能库不锁定单一厂商。配好任意一家的 key 即可跑：\n\n| 后端 | 环境变量 | 说明 |\n| --- | --- | --- |\n| `dlazy` | `dlazy login` 或 `DLAZY_API_KEY` | 默认，最省事 |\n| `openai` | `OPENAI_API_KEY` | 走 `/v1/images/edits` 与 `/v1/images/generations` |\n| `gemini` | `GEMINI_API_KEY` | Nano Banana 系列 |\n| `fal` | `FAL_KEY` | |\n| `replicate` | `REPLICATE_API_TOKEN` | |\n| `ark` | `ARK_API_KEY` + `ARK_MODEL` | 火山方舟，模型 ID 需按开通情况填 |\n\n选路优先级：`--provider` 参数 > `PROVIDER` 环境变量 > 第一个配了 key 的 > `dlazy`。\n\n```bash\nnode scripts/gen.mjs --doctor     # 看当前哪个后端可用\n```\n\n各后端的模型 ID 可用 `GEN_MODEL_OPENAI` / `GEN_MODEL_GEMINI` / `GEN_MODEL_FAL` /\n`GEN_MODEL_REPLICATE` / `GEN_MODEL_ARK` 覆盖。**厂商目录会变，以各家最新文档为准。**\n\n---\n\n## 二、两种调用方式\n\n### 方式 A：统一入口（推荐）\n\n```bash\nnode scripts/gen.mjs --task <技能名> --prompt '...' --images a.jpg b.jpg --save out.jpg\n```\n\n它负责：后端选路、默认尺寸档位、失败重试（429/5xx 指数退避）、落盘建目录、成本估算。\n\n```bash\nnode scripts/gen.mjs --task flat-lay --prompt '...' --dry-run   # 不调用不计费，只看要发什么\nnode scripts/gen.mjs --help\n```\n\n### 方式 B：直接用 dLazy CLI\n\n不想引入 Node 依赖时，技能正文里的 `dlazy ...` 命令可以原样执行，效果等价。\n\n```bash\nnpx @dlazy/cli@1.2.3 <command>     # 不装全局二进制\n```\n\n- CLI 源码：[github.com/dlazy-ai/cli](https://github.com/dlazy-ai/cli) · npm 包 `@dlazy/cli`\n\n---\n\n## 三、数据流向\n\n调用 dLazy 时：提示词与参数发往 `api.dlazy.com`；传入的本地图片会上传到 `files.dlazy.com`\n供模型读取；产出 URL 同样托管在 `files.dlazy.com`。这是云端生成 API 的通用形态。\n换成其他后端时，数据流向对应厂商，不经过 dLazy。\n\n---\n\n## 四、输出结构\n\n`gen.mjs`（加 `--json`）：\n\n```json\n{\n  \"ok\": true,\n  \"task\": \"flat-lay\",\n  \"provider\": \"dlazy\",\n  \"model\": \"gpt-image-2\",\n  \"files\": [\"docs/flat-lay/output-sku001.jpg\"],\n  \"texts\": [],\n  \"estimatedCredits\": 60,\n  \"elapsedMs\": 58213\n}\n```\n\ndLazy CLI 原生：\n\n```json\n{\n  \"ok\": true,\n  \"result\": {\n    \"tool\": \"gpt-image-2\",\n    \"data\": { \"urls\": [\"https://files.dlazy.com/data/ai/....jpg\"] },\n    \"savedPath\": \"docs/flat-lay/example-output.jpg\"\n  }\n}\n```\n\n加 `--no-wait` 的异步任务不返回 `data`，返回 `task: { generateId, status }`，\n用 `dlazy status <generateId> --wait` 轮询。\n\n文本类模型（如质检）产出在 `result.data.texts[0]`：\n\n```bash\ndlazy claude-sonnet-5 --prompt '...' --images x.jpg \\\n  | python3 -c 'import sys,json;print(json.load(sys.stdin)[\"result\"][\"data\"][\"texts\"][0])'\n```\n\n---\n\n## 五、错误处理\n\n| Code | 类型 | 示例 |\n| --- | --- | --- |\n| 401 | 未授权 / 无 key | `ok: false, code: \"unauthorized\"` |\n| 501 | 缺必填参数 | `error: required option '--prompt <prompt>' not specified` |\n| 502 | 本地文件读不到 | `Error: Image file not found: ...` |\n| 503 | 余额不足 | `ok: false, code: \"insufficient_balance\"` |\n| 503 | 服务端错误 | `HTTP status code error (500)` |\n| 504 | 异步任务失败 | `=== Generation Failed ===` / `Prompt violates safety policy` |\n\n**给 Agent 的硬性要求**\n\n1. 命中 `insufficient_balance` → 明确告诉用户算力不足，并给出充值入口\n   <https://dlazy.com/dashboard/organization/settings?tab=credits>\n2. 命中 `unauthorized` / 缺 key → 告诉用户去 <https://dlazy.com/dashboard/organization/api-key>\n   取 key，用 `dlazy auth set <key>` 存好再继续。\n3. 用 `gen.mjs` 时，429 与 5xx 已自动重试；仍失败才向用户报错。\n4. **不要**为了「跑通」而偷偷降级参数（尺寸、档位、批量），先问用户。\n\nFile v1.0.18:scripts/lib/tasks.json\n\n{\r\n  \"_note\": \"技能 → 默认模型与参数。dlazy 列为默认后端的模型名；其他后端走 providers.mjs 的通用映射，可用 GEN_MODEL_<PROVIDER> 覆盖。\",\r\n  \"_credits\": { \"gpt-image-2\": 60, \"seedream-5.0\": 30, \"seedream-5.0-pro\": 45, \"banana-pro\": 25, \"claude-sonnet-5\": 3 },\r\n  \"tasks\": {\r\n    \"flat-lay\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"wear-everything\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"image-fusion\":            { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"one-shot\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"fission-pattern\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-detail\":             { \"model\": \"seedream-5.0-pro\", \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"creative-scene\":          { \"model\": \"banana-pro\",       \"size\": \"1024x1536\", \"format\": \"jpeg\" },\r\n    \"batch-image\":             { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"to-3d\":                   { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-extraction\":     { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"fabric-on-body\":          { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-detail\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-grass-planting\": { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-selling-point\":      { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"item-change-background\":  { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"remove-watermark\":        { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"material-enhancement\":    { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"item-repair\":             { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"detect-task\":             { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"listing-optimizer\":       { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"cross-border-localize\":   { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"brand-kit\":               { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"platform-compliance\":     { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"main-image-video\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"product-video-ad\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"ugc-testimonial\":         { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true }\r\n  }\r\n}\n\nFile v1.0.18:skill-card.md\n\n## Description:\n\nGenerates Chinese-language e-commerce product detail image modules from product photos and selling points.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[dlazyai](https://clawhub.ai/user/dlazyai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nE-commerce sellers and designers use this skill to create Chinese-language product detail banners and modules from product images and verified selling points.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Product images, prompts, and referenced image URLs are sent to the selected generation provider.\n\nMitigation: Use only assets and URLs approved for sharing with that provider; avoid private intranet or signed URLs and regulated customer data unless the provider agreement permits them.\n\nRisk: Generated Chinese text or product claims may be inaccurate or misleading.\n\nMitigation: Review rendered characters and verify all product attributes, certifications, and promotional claims before publication.\n\n## Reference(s):\n\n- [Item Detail skill release](https://clawhub.ai/dlazyai/skills/item-detail)\n- [Provider CLI reference](references/provider-cli.md)\n- [Model flags reference](references/model-flags.md)\n\n## Skill Output:\n\n**Output Type(s):** [Images, Shell commands, Guidance]\n\n**Output Format:** [JPEG or PNG product-detail images with Markdown instructions and optional JSON result metadata]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Generates separate banner, selling-point, material, detail, or specification modules; review Chinese lettering and product claims before publishing.]\n\n## Skill Version(s):\n\n1.0.18 (source: frontmatter and server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.18:examples/brand.yaml\n\n# ⚠️ 由 scripts/build-skills.mjs 从 shared/examples/brand.yaml 同步生成，不要直接改这里。\r\n# 店铺品牌视觉规范 —— 所有生图技能读这一份，保证几百个 SKU 看起来像同一家店。\r\n#   node scripts/brand.mjs --brand brand.yaml --for flat-lay\r\n#   node scripts/gen.mjs --task flat-lay --brand brand.yaml --prompt '...'\r\n\r\nbrand:\r\n  name: 示例品牌\r\n  # 一句话概括调性，会原样进 prompt\r\n  tone: quiet minimalist, warm and lived-in, never glossy or commercial\r\n\r\nmodel:\r\n  # 锁模特：给一张脸的参考图，所有技能都会把它作为最后一张参考图传入\r\n  reference: assets/model/face-a.jpg\r\n  description: East Asian woman, late twenties, natural makeup, shoulder-length black hair\r\n  body: slim, height around 168cm\r\n\r\nphotography:\r\n  background: seamless off-white studio backdrop, RGB 248 248 246\r\n  lighting: soft large softbox from camera left, gentle fill, no hard shadows\r\n  camera: 85mm equivalent, eye level, shallow depth of field\r\n  grade: neutral white balance around 5200K, low contrast, slightly lifted blacks\r\n  crop: full body with headroom, product centered\r\n\r\nlayout:\r\n  # 给带排版的技能（主图 / 详情页）用\r\n  margin: at least 8% empty margin on all sides\r\n  typeface: clean sans-serif, no decorative fonts\r\n  text_color: near-black on light background\r\n\r\nforbid:\r\n  - no visible brand logos other than the product's own\r\n  - no text or watermark\r\n  - no exaggerated poses or dramatic wind effects\r\n  - no oversaturated colors\r\n\r\n# 可选：把这些直接写进合规目标，生成时就按平台要求出图\r\ncompliance:\r\n  platform: amazon\n\nArchive v1.0.17: 11 files, 25585 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (1874b), references/provider-cli.md (4802b), scripts/brand.mjs (4516b), scripts/gen.mjs (9733b), scripts/lib/miniyaml.mjs (2901b), scripts/lib/providers.mjs (12510b), scripts/lib/tasks.json (3234b), skill-card.md (2118b), SKILL.md (12681b), _meta.json (131b)\n\nFile v1.0.17:SKILL.md\n\n---\nname: item-detail\nversion: 1.0.17\ndescription: 生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。\n---\n\n# item-detail — 一键生成全套商品详情图\n\n一张商品图 + 卖点文案 → **带中文排版的详情页视觉**。\n\n和其他技能的区别：本技能的产出**带文字**。所以模型选型的第一标准是**中文字形渲染能力**——大多数图像模型会把中文画成乱码。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 |\n| --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/product-flatlay.jpg\" width=\"280\"> |\n| `product-flatlay.jpg` — 军绿麻花针织毛衣平铺图，800×800 |\n\n实际执行的命令（首屏 banner 模块）：\n\n```bash\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 中的军绿色麻花针织圆领毛衣的模特上身图（青年男模特，半身，落肩宽松版型），毛衣颜色、麻花织法与菱形提花必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。底部一行三个圆形图标配文字「亲肤不扎」「不易变形」「机洗不缩」。整体米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4 \\\n  --save docs/item-detail/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 3:4 / 2K，5 credits。模特上身图占左侧，毛衣的军绿色、麻花与菱形提花保留；右上标题「粗棒麻花 复古落肩」与副标题「羊毛混纺 · 加厚保暖 · 男女同款」字形正确、层级分明；底部三个线描图标配「亲肤不扎」「不易变形」「机洗不缩」，米灰底暖调，排版对齐。\n\n---\n\n## 1、能力边界\n\n| 产出模块 | 说明 |\n| --- | --- |\n| 首屏 banner | 模特上身图 / 商品图 + 大标题 + 副标题 |\n| 卖点图标行 | 3~4 个圆形图标 + 短文案 |\n| 材质说明块 | 面料/材质特写 + 说明文字 |\n| 细节展示块 | 局部特写 + 工艺说明 |\n| 参数块 | 尺码表 / 规格参数 |\n\n| 输入 | 说明 |\n| --- | --- |\n| 商品图 | 1 张 |\n| 商品类目 | `服饰` `箱包` `鞋品` `婴童用品` `宠物` `家居用品` `美妆` `3C数码` `电器` `家具灯饰` `食品厨具` `珠宝饰品` `工业和农业` `其他` |\n| 商品信息 | 100 字内的卖点，例：`商品卖点：舒适透气、柔软亲肤，适合入群：1个月-2岁宝宝` |\n\n**不做**：不编造商品没有的功能与认证；不生成虚假促销信息与虚假对比数据；不改商品的款式与颜色。\n\n---\n\n## 2、输入素材规则\n\n生成前先自检这几条硬性约束：\n\n- 大小：**20KB ~ 15MB**\n- 分辨率：**大于 400×400**\n- 格式：**jpg / jpeg / png / webp**\n\n**输入建议**\n\n| 做法 | 说明 |\n| --- | --- |\n| ✅ 商品图干净 | 带文字的图会让新排版和旧文字打架，先走 [remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md) |\n| ✅ 卖点写成短句 | `亲肤不扎` 比 `采用优质柔软亲肤面料不刺激皮肤` 好排版 |\n| ✅ 文案字数控制 | 主标题 ≤ 8 字，副标题 ≤ 16 字，图标文案 ≤ 5 字 |\n| ❌ 一个模块塞十条卖点 | 排不下，会挤成乱码 |\n| ❌ 未经核实的功效宣称 | 合规风险 |\n\n---\n\n## 3、中文排版能出对的四个条件\n\n中文详情页最大的失败模式是**乱码**。这四条同时满足才稳定：\n\n| 条件 | 写法 |\n| --- | --- |\n| 1 · 把每一段文案原文写进 prompt | 用「」括起来：`大字「粗棒麻花 复古落肩」`、`小字「羊毛混纺 · 加厚保暖 · 男女同款」` |\n| 2 · 指定字体族与字重 | `字体为无衬线黑体，字号层级分明` |\n| 3 · 指定版式关系 | `右上方留白区排版中文标题`、`底部一行三个圆形图标配文字` |\n| 4 · 显式要求不乱码 | `中文字必须清晰正确无乱码` |\n\n**文案越短越不容易崩**。四字、六字标题的成功率远高于长句。\n\n**分块生成比一次生成整页更稳**：首屏 banner 一条 prompt，卖点块一条，材质块一条，最后用设计工具拼成长图。一次生成整页时，越往下的模块文字越容易崩。\n\n---\n\n## 4、类目 → 版式基调\n\n| 类目 | 背景与色调 | 文案侧重 |\n| --- | --- | --- |\n| 服饰 | 米灰 / 燕麦色，暖调，大留白 | 版型、面料、场合 |\n| 箱包 / 鞋品 | 深灰渐变，硬光，质感优先 | 材质、容量、耐用 |\n| 婴童 / 宠物 | 浅粉 / 奶油色，柔光 | 安全、亲肤、适用月龄 |\n| 美妆 | 大理石 / 丝绒，高对比 | 成分、质地、效果 |\n| 3C / 电器 | 深色科技风，冷光 | 参数、性能、接口 |\n| 家居 / 家具灯饰 | 实景房间，自然光 | 尺寸、材质、搭配 |\n| 食品厨具 | 木质餐桌，暖光 | 原料、工艺、口感 |\n| 珠宝饰品 | 深色绒布，聚光 | 材质、克重、工艺 |\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`seedream-5.0-pro`**（专业档图像模型，在**中文字形与复杂排版**上明显强于同类；本技能的产出带大量中文文案，字形正确率是首要指标）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task item-detail \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/item-detail-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy seedream-5.0-pro --prompt '...' --images ... --save output/item-detail.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[商品图]`（最多 10 张，可加细节图、面料图） | 多图能让各模块用上不同素材 |\n| `--size` | `3:4`（首屏 banner）/ `1:1`（卖点方块）/ `9:16`（长条模块） | 分模块生成，各用合适比例 |\n| `--resolution` | `2k` | 详情页宽度通常 750~1200px，2K 足够 |\n| `--batch` | `2` ~ `3` | 中文排版有随机性，挑字形正确的 |\n| `--save` | `docs/item-detail/output-<sku>-<模块>.jpg` | 按模块归档便于拼长图 |\n\n> **成本提示**：`seedream-5.0-pro` 单张约 5 credits，分模块跑 5 条也只有 25 credits，比反复重跑整页便宜。\n\n### Command Examples\n\n```bash\n# basic call: 首屏 banner\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图，颜色与织法必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。米灰色背景，暖色调，无衬线黑体，排版整齐对齐，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4\n\n# complex call: 分模块跑完一整套详情页\nSRC=docs/item-detail/product-flatlay.jpg\nBASE='米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。'\nKEEP='商品的颜色、麻花织法与菱形提花必须与图1完全一致。'\n\ndlazy seedream-5.0-pro --size 3:4 --images \"$SRC\" --save docs/item-detail/output-sku001-1-banner.jpg \\\n  --prompt \"电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图（青年男模特，半身，落肩宽松版型）。${KEEP} 右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-2-icons.jpg \\\n  --prompt \"电商详情页卖点图标块，正方形。上方一行三个线性圆形图标，图标下方各配四字中文：「亲肤不扎」「不易变形」「机洗不缩」。下方居中一张商品局部特写。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-3-fabric.jpg \\\n  --prompt \"电商详情页面料说明块，正方形。左侧是面料微距特写，右侧竖排中文说明：标题「粗棒羊毛混纺」，正文两行小字「蓬松保暖不压身」「细腻纱线不刺挠」。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 9:16 --images \"$SRC\" --save docs/item-detail/output-sku001-4-size.jpg \\\n  --prompt \"电商详情页尺码块，长条竖版。顶部中文标题「尺码参考」，下方一张三行四列的简洁尺码表格，表头为「尺码」「衣长」「胸围」「袖长」，内容为 S/M/L 三行数字。${BASE}\"\n\n# 先估价不真跑\ndlazy seedream-5.0-pro --dry-run --prompt '...' --images a.jpg --size 3:4\n```\n\n### 延伸阅读\n\n| 要查什么 | 去哪 |\n| --- | --- |\n| 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) |\n| `seedream-5.0-pro` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) |\n| 统一入口的全部选项 | `node scripts/gen.mjs --help` |\n\n## 6、Prompt 模板\n\n```text\n电商[类目]详情页[模块名]，[比例描述]。\n\n[图片区版式]：[位置] 是图1 商品的[形态：模特上身图 / 平铺图 / 微距特写]。\n[保真句]：商品的颜色、[织法/材质]与[图案/结构]必须与图1完全一致。\n\n[文案区版式]：[位置] 排版中文，\n  大字「[主标题 ≤8 字]」，\n  副标题小字「[副标题 ≤16 字]」，\n  [图标行：三个圆形图标配文字「[4字]」「[4字]」「[4字]」]。\n\n[基调]：[类目对应的背景与色调，见第四节]，留白克制，\n字体为无衬线黑体，字号层级分明，排版整齐对齐，\n商业电商详情页设计感，中文字必须清晰正确无乱码。\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 中文乱码 | 缩短文案；把每段原文再重复一次；追加 `所有中文必须是清晰可读的简体汉字，不得出现变形、缺笔或臆造字。` |\n| 文字压在商品上 | `文字区与商品区不得重叠，商品占画面左侧 [X]%，文字区占右侧 [Y]%。` |\n| 排版歪 | `所有文字左对齐到同一条基准线，行距均匀。` |\n| 商品被改 | `商品区域必须与图1一致，不得重绘款式、颜色或图案。` |\n| 图标太花 | `图标为单色细线描风格，线宽一致，不得加渐变或阴影。` |\n| 一次出整页文字崩 | 拆成分模块生成（第三节） |\n\n---\n\n## 7、执行流程\n\n1. **洗干净商品图**（[remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md)），避免新旧文字打架。\n2. **定类目 → 取版式基调**（第四节表格）。\n3. **把卖点压成短句**：主标题 ≤8 字，副标题 ≤16 字，图标文案 ≤5 字。\n4. **拆模块**：banner / 卖点图标 / 材质说明 / 细节 / 尺码——**一个模块一条 prompt**。\n5. **每条 prompt 必须包含四个条件**（原文 + 字体 + 版式 + 不乱码，见第三节）。\n6. **`--batch 2~3`** 挑字形正确的一张，落盘到 `docs/item-detail/`。\n7. **逐字校对中文**（这是最容易出错的地方）→ 用设计工具拼成详情页长图。\n8. **合规检查**：卖点是否有依据、有没有虚假促销与绝对化用语。\n\n---\n\n## 8、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 中文变乱码 | 文案太长 / 未写不乱码约束 | 缩短文案 + 重复原文 + 追加字形约束句 |\n| 越往下的模块文字越崩 | 一次生成整页 | 拆成分模块生成 |\n| 文字压在商品上 | 未划分区域 | 追加区域占比句 |\n| 图标风格花哨不统一 | 未约束风格 | 追加单色细线描、线宽一致句 |\n| 商品被重绘 | 未写保真句 | 追加商品区域保真句 |\n| 卖点被模型加油添醋 | 未限制 | prompt 里只给要出现的原文，并追加 `不得添加未提供的文案` |\n\n---\n\n## Tips\n\nVisit https://dlazy.com for more information.\n\nFile v1.0.17:_meta.json\n\n{\n  \"ownerId\": \"kn7c5wgeajfcfvdfb5ceemvdb984cjpd\",\n  \"slug\": \"item-detail\",\n  \"version\": \"1.0.17\",\n  \"publishedAt\": 1791078254832\n}\n\nFile v1.0.17:references/model-flags.md\n\n# `seedream-5.0-pro` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy seedream-5.0-pro` command to get results.\r\n\r\n```bash\r\ndlazy seedream-5.0-pro -h\r\n\r\nOptions:\r\n  --prompt <prompt>          Prompt\r\n  --images [images...]       Images [image: url or local path] (max 10)\r\n  --resolution <resolution>  Resolution [default: 2k] (choices: \"2k\")\r\n  --size <size>              Size [default: 16:9] (choices: \"1:1\", \"4:3\",\r\n                             \"3:4\", \"16:9\", \"9:16\", \"3:2\", \"2:3\", \"21:9\")\r\n  --dry-run                  Print payload without executing the tool\r\n  --no-wait                  Return generateId immediately for async tasks\r\n  --timeout <seconds>        Max seconds to wait for async completion (default:\r\n                             \"1800\")\r\n  --input <jsonOrFile>       Inline JSON or @path/to/file.json — merged under\r\n                             flag values (flags win)\r\n  --save <path>              Download the result asset to this local path\r\n                             (mkdir + retry handled for you). A destination\r\n                             path — NOT a response format; for stdout shape use\r\n                             --format\r\n  --batch <n>                Fan-out N parallel runs (cloud tools only)\r\n                             (default: \"1\")\r\n  -h, --help                 display help for command\r\n```\r\n\r\n> Any flag also accepts pipe references — `-` (auto-pick from upstream stdin), `@N` (n-th output), `@N.path` (jsonpath into output), `@*` (all primary values), `@stdin` / `@stdin:path` (whole envelope). See `dlazy --help` for details.\r\n\r\n---\r\n\r\n换其他后端时参数由 `scripts/gen.mjs` 统一翻译，见 [`provider-cli.md`](provider-cli.md)。\n\nFile v1.0.17:references/provider-cli.md\n\n<!-- 由 scripts/build-skills.mjs 从 shared/references/provider-cli.md 同步生成，不要直接改这里。 -->\n# 后端调用参考\n\n技能正文只写「要生成什么」。认证、计费、错误码、输出结构这些每个技能都一样的东西放在这里，\n**用到时再读**，不占技能的常驻上下文。\n\n---\n\n## 一、认证\n\n### 默认后端 dLazy\n\n```bash\ndlazy login            # 设备码流程，远程 shell 也能用，自动写入本地配置\ndlazy auth set <KEY>   # 已有 key 时直接写入\n```\n\nkey 存在用户配置目录（macOS/Linux `~/.dlazy/config.json`，Windows `%USERPROFILE%\\.dlazy\\config.json`），\n权限限本机用户。也可以每次调用用环境变量 `DLAZY_API_KEY` 传入。\n\n手动获取：登录 [dlazy.com](https://dlazy.com) → [API Key 页面](https://dlazy.com/dashboard/organization/api-key)。\nkey 按组织隔离，可随时轮换或吊销。\n\n### 其他后端\n\n本技能库不锁定单一厂商。配好任意一家的 key 即可跑：\n\n| 后端 | 环境变量 | 说明 |\n| --- | --- | --- |\n| `dlazy` | `dlazy login` 或 `DLAZY_API_KEY` | 默认，最省事 |\n| `openai` | `OPENAI_API_KEY` | 走 `/v1/images/edits` 与 `/v1/images/generations` |\n| `gemini` | `GEMINI_API_KEY` | Nano Banana 系列 |\n| `fal` | `FAL_KEY` | |\n| `replicate` | `REPLICATE_API_TOKEN` | |\n| `ark` | `ARK_API_KEY` + `ARK_MODEL` | 火山方舟，模型 ID 需按开通情况填 |\n\n选路优先级：`--provider` 参数 > `PROVIDER` 环境变量 > 第一个配了 key 的 > `dlazy`。\n\n```bash\nnode scripts/gen.mjs --doctor     # 看当前哪个后端可用\n```\n\n各后端的模型 ID 可用 `GEN_MODEL_OPENAI` / `GEN_MODEL_GEMINI` / `GEN_MODEL_FAL` /\n`GEN_MODEL_REPLICATE` / `GEN_MODEL_ARK` 覆盖。**厂商目录会变，以各家最新文档为准。**\n\n---\n\n## 二、两种调用方式\n\n### 方式 A：统一入口（推荐）\n\n```bash\nnode scripts/gen.mjs --task <技能名> --prompt '...' --images a.jpg b.jpg --save out.jpg\n```\n\n它负责：后端选路、默认尺寸档位、失败重试（429/5xx 指数退避）、落盘建目录、成本估算。\n\n```bash\nnode scripts/gen.mjs --task flat-lay --prompt '...' --dry-run   # 不调用不计费，只看要发什么\nnode scripts/gen.mjs --help\n```\n\n### 方式 B：直接用 dLazy CLI\n\n不想引入 Node 依赖时，技能正文里的 `dlazy ...` 命令可以原样执行，效果等价。\n\n```bash\nnpx @dlazy/cli@1.2.3 <command>     # 不装全局二进制\n```\n\n- CLI 源码：[github.com/dlazy-ai/cli](https://github.com/dlazy-ai/cli) · npm 包 `@dlazy/cli`\n\n---\n\n## 三、数据流向\n\n调用 dLazy 时：提示词与参数发往 `api.dlazy.com`；传入的本地图片会上传到 `files.dlazy.com`\n供模型读取；产出 URL 同样托管在 `files.dlazy.com`。这是云端生成 API 的通用形态。\n换成其他后端时，数据流向对应厂商，不经过 dLazy。\n\n---\n\n## 四、输出结构\n\n`gen.mjs`（加 `--json`）：\n\n```json\n{\n  \"ok\": true,\n  \"task\": \"flat-lay\",\n  \"provider\": \"dlazy\",\n  \"model\": \"gpt-image-2\",\n  \"files\": [\"docs/flat-lay/output-sku001.jpg\"],\n  \"texts\": [],\n  \"estimatedCredits\": 60,\n  \"elapsedMs\": 58213\n}\n```\n\ndLazy CLI 原生：\n\n```json\n{\n  \"ok\": true,\n  \"result\": {\n    \"tool\": \"gpt-image-2\",\n    \"data\": { \"urls\": [\"https://files.dlazy.com/data/ai/....jpg\"] },\n    \"savedPath\": \"docs/flat-lay/example-output.jpg\"\n  }\n}\n```\n\n加 `--no-wait` 的异步任务不返回 `data`，返回 `task: { generateId, status }`，\n用 `dlazy status <generateId> --wait` 轮询。\n\n文本类模型（如质检）产出在 `result.data.texts[0]`：\n\n```bash\ndlazy claude-sonnet-5 --prompt '...' --images x.jpg \\\n  | python3 -c 'import sys,json;print(json.load(sys.stdin)[\"result\"][\"data\"][\"texts\"][0])'\n```\n\n---\n\n## 五、错误处理\n\n| Code | 类型 | 示例 |\n| --- | --- | --- |\n| 401 | 未授权 / 无 key | `ok: false, code: \"unauthorized\"` |\n| 501 | 缺必填参数 | `error: required option '--prompt <prompt>' not specified` |\n| 502 | 本地文件读不到 | `Error: Image file not found: ...` |\n| 503 | 余额不足 | `ok: false, code: \"insufficient_balance\"` |\n| 503 | 服务端错误 | `HTTP status code error (500)` |\n| 504 | 异步任务失败 | `=== Generation Failed ===` / `Prompt violates safety policy` |\n\n**给 Agent 的硬性要求**\n\n1. 命中 `insufficient_balance` → 明确告诉用户算力不足，并给出充值入口\n   <https://dlazy.com/dashboard/organization/settings?tab=credits>\n2. 命中 `unauthorized` / 缺 key → 告诉用户去 <https://dlazy.com/dashboard/organization/api-key>\n   取 key，用 `dlazy auth set <key>` 存好再继续。\n3. 用 `gen.mjs` 时，429 与 5xx 已自动重试；仍失败才向用户报错。\n4. **不要**为了「跑通」而偷偷降级参数（尺寸、档位、批量），先问用户。\n\nFile v1.0.17:scripts/lib/tasks.json\n\n{\r\n  \"_note\": \"技能 → 默认模型与参数。dlazy 列为默认后端的模型名；其他后端走 providers.mjs 的通用映射，可用 GEN_MODEL_<PROVIDER> 覆盖。\",\r\n  \"_credits\": { \"gpt-image-2\": 60, \"seedream-5.0\": 30, \"seedream-5.0-pro\": 45, \"banana-pro\": 25, \"claude-sonnet-5\": 3 },\r\n  \"tasks\": {\r\n    \"flat-lay\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"wear-everything\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"image-fusion\":            { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"one-shot\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"fission-pattern\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-detail\":             { \"model\": \"seedream-5.0-pro\", \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"creative-scene\":          { \"model\": \"banana-pro\",       \"size\": \"1024x1536\", \"format\": \"jpeg\" },\r\n    \"batch-image\":             { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"to-3d\":                   { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-extraction\":     { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"fabric-on-body\":          { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-detail\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-grass-planting\": { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-selling-point\":      { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"item-change-background\":  { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"remove-watermark\":        { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"material-enhancement\":    { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"item-repair\":             { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"detect-task\":             { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"listing-optimizer\":       { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"cross-border-localize\":   { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"brand-kit\":               { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"platform-compliance\":     { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"main-image-video\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"product-video-ad\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"ugc-testimonial\":         { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true }\r\n  }\r\n}\n\nFile v1.0.17:skill-card.md\n\n## Description:\n\nGenerates Chinese-language e-commerce product-detail image modules from product photos and selling points.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[dlazyai](https://clawhub.ai/user/dlazyai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nE-commerce sellers and designers use this skill to create Chinese-language product-detail banners, feature blocks, material and detail views, and specification graphics from supplied product images and selling points.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Product images and prompts are sent to the selected image-generation provider.\n\nMitigation: Confirm the configured provider and avoid sending sensitive or private images.\n\nRisk: Generated assets can be written to a user-selected local path.\n\nMitigation: Check the save destination before generating files.\n\nRisk: Generated Chinese text, product details, or selling points may be incorrect or misleading.\n\nMitigation: Proofread image text and verify product claims and visual fidelity before publishing.\n\n## Reference(s):\n\n- [ClawHub item-detail release](https://clawhub.ai/dlazyai/skills/item-detail)\n- [Model flags](artifact/references/model-flags.md)\n- [Provider and CLI guide](artifact/references/provider-cli.md)\n- [dLazy CLI documentation and source](https://github.com/dlazy-ai/cli)\n\n## Skill Output:\n\n**Output Type(s):** [Image files, Shell commands, Guidance]\n\n**Output Format:** [Chinese-text product-detail image modules and Markdown guidance with shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Modules can be generated separately for banners, selling points, material details, and specifications; review text and claims before publishing.]\n\n## Skill Version(s):\n\n1.0.17 (source: frontmatter and server release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.17:examples/brand.yaml\n\n# ⚠️ 由 scripts/build-skills.mjs 从 shared/examples/brand.yaml 同步生成，不要直接改这里。\r\n# 店铺品牌视觉规范 —— 所有生图技能读这一份，保证几百个 SKU 看起来像同一家店。\r\n#   node scripts/brand.mjs --brand brand.yaml --for flat-lay\r\n#   node scripts/gen.mjs --task flat-lay --brand brand.yaml --prompt '...'\r\n\r\nbrand:\r\n  name: 示例品牌\r\n  # 一句话概括调性，会原样进 prompt\r\n  tone: quiet minimalist, warm and lived-in, never glossy or commercial\r\n\r\nmodel:\r\n  # 锁模特：给一张脸的参考图，所有技能都会把它作为最后一张参考图传入\r\n  reference: assets/model/face-a.jpg\r\n  description: East Asian woman, late twenties, natural makeup, shoulder-length black hair\r\n  body: slim, height around 168cm\r\n\r\nphotography:\r\n  background: seamless off-white studio backdrop, RGB 248 248 246\r\n  lighting: soft large softbox from camera left, gentle fill, no hard shadows\r\n  camera: 85mm equivalent, eye level, shallow depth of field\r\n  grade: neutral white balance around 5200K, low contrast, slightly lifted blacks\r\n  crop: full body with headroom, product centered\r\n\r\nlayout:\r\n  # 给带排版的技能（主图 / 详情页）用\r\n  margin: at least 8% empty margin on all sides\r\n  typeface: clean sans-serif, no decorative fonts\r\n  text_color: near-black on light background\r\n\r\nforbid:\r\n  - no visible brand logos other than the product's own\r\n  - no text or watermark\r\n  - no exaggerated poses or dramatic wind effects\r\n  - no oversaturated colors\r\n\r\n# 可选：把这些直接写进合规目标，生成时就按平台要求出图\r\ncompliance:\r\n  platform: amazon\n\nArchive v1.0.16: 11 files, 25678 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (1874b), references/provider-cli.md (4802b), scripts/brand.mjs (4516b), scripts/gen.mjs (9733b), scripts/lib/miniyaml.mjs (2901b), scripts/lib/providers.mjs (12510b), scripts/lib/tasks.json (3234b), skill-card.md (2291b), SKILL.md (12681b), _meta.json (131b)\n\nFile v1.0.16:SKILL.md\n\n---\nname: item-detail\nversion: 1.0.16\ndescription: 生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。\n---\n\n# item-detail — 一键生成全套商品详情图\n\n一张商品图 + 卖点文案 → **带中文排版的详情页视觉**。\n\n和其他技能的区别：本技能的产出**带文字**。所以模型选型的第一标准是**中文字形渲染能力**——大多数图像模型会把中文画成乱码。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 |\n| --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/product-flatlay.jpg\" width=\"280\"> |\n| `product-flatlay.jpg` — 军绿麻花针织毛衣平铺图，800×800 |\n\n实际执行的命令（首屏 banner 模块）：\n\n```bash\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 中的军绿色麻花针织圆领毛衣的模特上身图（青年男模特，半身，落肩宽松版型），毛衣颜色、麻花织法与菱形提花必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。底部一行三个圆形图标配文字「亲肤不扎」「不易变形」「机洗不缩」。整体米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4 \\\n  --save docs/item-detail/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 3:4 / 2K，5 credits。模特上身图占左侧，毛衣的军绿色、麻花与菱形提花保留；右上标题「粗棒麻花 复古落肩」与副标题「羊毛混纺 · 加厚保暖 · 男女同款」字形正确、层级分明；底部三个线描图标配「亲肤不扎」「不易变形」「机洗不缩」，米灰底暖调，排版对齐。\n\n---\n\n## 1、能力边界\n\n| 产出模块 | 说明 |\n| --- | --- |\n| 首屏 banner | 模特上身图 / 商品图 + 大标题 + 副标题 |\n| 卖点图标行 | 3~4 个圆形图标 + 短文案 |\n| 材质说明块 | 面料/材质特写 + 说明文字 |\n| 细节展示块 | 局部特写 + 工艺说明 |\n| 参数块 | 尺码表 / 规格参数 |\n\n| 输入 | 说明 |\n| --- | --- |\n| 商品图 | 1 张 |\n| 商品类目 | `服饰` `箱包` `鞋品` `婴童用品` `宠物` `家居用品` `美妆` `3C数码` `电器` `家具灯饰` `食品厨具` `珠宝饰品` `工业和农业` `其他` |\n| 商品信息 | 100 字内的卖点，例：`商品卖点：舒适透气、柔软亲肤，适合入群：1个月-2岁宝宝` |\n\n**不做**：不编造商品没有的功能与认证；不生成虚假促销信息与虚假对比数据；不改商品的款式与颜色。\n\n---\n\n## 2、输入素材规则\n\n生成前先自检这几条硬性约束：\n\n- 大小：**20KB ~ 15MB**\n- 分辨率：**大于 400×400**\n- 格式：**jpg / jpeg / png / webp**\n\n**输入建议**\n\n| 做法 | 说明 |\n| --- | --- |\n| ✅ 商品图干净 | 带文字的图会让新排版和旧文字打架，先走 [remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md) |\n| ✅ 卖点写成短句 | `亲肤不扎` 比 `采用优质柔软亲肤面料不刺激皮肤` 好排版 |\n| ✅ 文案字数控制 | 主标题 ≤ 8 字，副标题 ≤ 16 字，图标文案 ≤ 5 字 |\n| ❌ 一个模块塞十条卖点 | 排不下，会挤成乱码 |\n| ❌ 未经核实的功效宣称 | 合规风险 |\n\n---\n\n## 3、中文排版能出对的四个条件\n\n中文详情页最大的失败模式是**乱码**。这四条同时满足才稳定：\n\n| 条件 | 写法 |\n| --- | --- |\n| 1 · 把每一段文案原文写进 prompt | 用「」括起来：`大字「粗棒麻花 复古落肩」`、`小字「羊毛混纺 · 加厚保暖 · 男女同款」` |\n| 2 · 指定字体族与字重 | `字体为无衬线黑体，字号层级分明` |\n| 3 · 指定版式关系 | `右上方留白区排版中文标题`、`底部一行三个圆形图标配文字` |\n| 4 · 显式要求不乱码 | `中文字必须清晰正确无乱码` |\n\n**文案越短越不容易崩**。四字、六字标题的成功率远高于长句。\n\n**分块生成比一次生成整页更稳**：首屏 banner 一条 prompt，卖点块一条，材质块一条，最后用设计工具拼成长图。一次生成整页时，越往下的模块文字越容易崩。\n\n---\n\n## 4、类目 → 版式基调\n\n| 类目 | 背景与色调 | 文案侧重 |\n| --- | --- | --- |\n| 服饰 | 米灰 / 燕麦色，暖调，大留白 | 版型、面料、场合 |\n| 箱包 / 鞋品 | 深灰渐变，硬光，质感优先 | 材质、容量、耐用 |\n| 婴童 / 宠物 | 浅粉 / 奶油色，柔光 | 安全、亲肤、适用月龄 |\n| 美妆 | 大理石 / 丝绒，高对比 | 成分、质地、效果 |\n| 3C / 电器 | 深色科技风，冷光 | 参数、性能、接口 |\n| 家居 / 家具灯饰 | 实景房间，自然光 | 尺寸、材质、搭配 |\n| 食品厨具 | 木质餐桌，暖光 | 原料、工艺、口感 |\n| 珠宝饰品 | 深色绒布，聚光 | 材质、克重、工艺 |\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`seedream-5.0-pro`**（专业档图像模型，在**中文字形与复杂排版**上明显强于同类；本技能的产出带大量中文文案，字形正确率是首要指标）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task item-detail \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/item-detail-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy seedream-5.0-pro --prompt '...' --images ... --save output/item-detail.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[商品图]`（最多 10 张，可加细节图、面料图） | 多图能让各模块用上不同素材 |\n| `--size` | `3:4`（首屏 banner）/ `1:1`（卖点方块）/ `9:16`（长条模块） | 分模块生成，各用合适比例 |\n| `--resolution` | `2k` | 详情页宽度通常 750~1200px，2K 足够 |\n| `--batch` | `2` ~ `3` | 中文排版有随机性，挑字形正确的 |\n| `--save` | `docs/item-detail/output-<sku>-<模块>.jpg` | 按模块归档便于拼长图 |\n\n> **成本提示**：`seedream-5.0-pro` 单张约 5 credits，分模块跑 5 条也只有 25 credits，比反复重跑整页便宜。\n\n### Command Examples\n\n```bash\n# basic call: 首屏 banner\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图，颜色与织法必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。米灰色背景，暖色调，无衬线黑体，排版整齐对齐，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4\n\n# complex call: 分模块跑完一整套详情页\nSRC=docs/item-detail/product-flatlay.jpg\nBASE='米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。'\nKEEP='商品的颜色、麻花织法与菱形提花必须与图1完全一致。'\n\ndlazy seedream-5.0-pro --size 3:4 --images \"$SRC\" --save docs/item-detail/output-sku001-1-banner.jpg \\\n  --prompt \"电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图（青年男模特，半身，落肩宽松版型）。${KEEP} 右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-2-icons.jpg \\\n  --prompt \"电商详情页卖点图标块，正方形。上方一行三个线性圆形图标，图标下方各配四字中文：「亲肤不扎」「不易变形」「机洗不缩」。下方居中一张商品局部特写。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-3-fabric.jpg \\\n  --prompt \"电商详情页面料说明块，正方形。左侧是面料微距特写，右侧竖排中文说明：标题「粗棒羊毛混纺」，正文两行小字「蓬松保暖不压身」「细腻纱线不刺挠」。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 9:16 --images \"$SRC\" --save docs/item-detail/output-sku001-4-size.jpg \\\n  --prompt \"电商详情页尺码块，长条竖版。顶部中文标题「尺码参考」，下方一张三行四列的简洁尺码表格，表头为「尺码」「衣长」「胸围」「袖长」，内容为 S/M/L 三行数字。${BASE}\"\n\n# 先估价不真跑\ndlazy seedream-5.0-pro --dry-run --prompt '...' --images a.jpg --size 3:4\n```\n\n### 延伸阅读\n\n| 要查什么 | 去哪 |\n| --- | --- |\n| 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) |\n| `seedream-5.0-pro` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) |\n| 统一入口的全部选项 | `node scripts/gen.mjs --help` |\n\n## 6、Prompt 模板\n\n```text\n电商[类目]详情页[模块名]，[比例描述]。\n\n[图片区版式]：[位置] 是图1 商品的[形态：模特上身图 / 平铺图 / 微距特写]。\n[保真句]：商品的颜色、[织法/材质]与[图案/结构]必须与图1完全一致。\n\n[文案区版式]：[位置] 排版中文，\n  大字「[主标题 ≤8 字]」，\n  副标题小字「[副标题 ≤16 字]」，\n  [图标行：三个圆形图标配文字「[4字]」「[4字]」「[4字]」]。\n\n[基调]：[类目对应的背景与色调，见第四节]，留白克制，\n字体为无衬线黑体，字号层级分明，排版整齐对齐，\n商业电商详情页设计感，中文字必须清晰正确无乱码。\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 中文乱码 | 缩短文案；把每段原文再重复一次；追加 `所有中文必须是清晰可读的简体汉字，不得出现变形、缺笔或臆造字。` |\n| 文字压在商品上 | `文字区与商品区不得重叠，商品占画面左侧 [X]%，文字区占右侧 [Y]%。` |\n| 排版歪 | `所有文字左对齐到同一条基准线，行距均匀。` |\n| 商品被改 | `商品区域必须与图1一致，不得重绘款式、颜色或图案。` |\n| 图标太花 | `图标为单色细线描风格，线宽一致，不得加渐变或阴影。` |\n| 一次出整页文字崩 | 拆成分模块生成（第三节） |\n\n---\n\n## 7、执行流程\n\n1. **洗干净商品图**（[remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md)），避免新旧文字打架。\n2. **定类目 → 取版式基调**（第四节表格）。\n3. **把卖点压成短句**：主标题 ≤8 字，副标题 ≤16 字，图标文案 ≤5 字。\n4. **拆模块**：banner / 卖点图标 / 材质说明 / 细节 / 尺码——**一个模块一条 prompt**。\n5. **每条 prompt 必须包含四个条件**（原文 + 字体 + 版式 + 不乱码，见第三节）。\n6. **`--batch 2~3`** 挑字形正确的一张，落盘到 `docs/item-detail/`。\n7. **逐字校对中文**（这是最容易出错的地方）→ 用设计工具拼成详情页长图。\n8. **合规检查**：卖点是否有依据、有没有虚假促销与绝对化用语。\n\n---\n\n## 8、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 中文变乱码 | 文案太长 / 未写不乱码约束 | 缩短文案 + 重复原文 + 追加字形约束句 |\n| 越往下的模块文字越崩 | 一次生成整页 | 拆成分模块生成 |\n| 文字压在商品上 | 未划分区域 | 追加区域占比句 |\n| 图标风格花哨不统一 | 未约束风格 | 追加单色细线描、线宽一致句 |\n| 商品被重绘 | 未写保真句 | 追加商品区域保真句 |\n| 卖点被模型加油添醋 | 未限制 | prompt 里只给要出现的原文，并追加 `不得添加未提供的文案` |\n\n---\n\n## Tips\n\nVisit https://dlazy.com for more information.\n\nFile v1.0.16:_meta.json\n\n{\n  \"ownerId\": \"kn7c5wgeajfcfvdfb5ceemvdb984cjpd\",\n  \"slug\": \"item-detail\",\n  \"version\": \"1.0.16\",\n  \"publishedAt\": 1790918207405\n}\n\nFile v1.0.16:references/model-flags.md\n\n# `seedream-5.0-pro` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy seedream-5.0-pro` command to get results.\r\n\r\n```bash\r\ndlazy seedream-5.0-pro -h\r\n\r\nOptions:\r\n  --prompt <prompt>          Prompt\r\n  --images [images...]       Images [image: url or local path] (max 10)\r\n  --resolution <resolution>  Resolution [default: 2k] (choices: \"2k\")\r\n  --size <size>              Size [default: 16:9] (choices: \"1:1\", \"4:3\",\r\n                             \"3:4\", \"16:9\", \"9:16\", \"3:2\", \"2:3\", \"21:9\")\r\n  --dry-run                  Print payload without executing the tool\r\n  --no-wait                  Return generateId immediately for async tasks\r\n  --timeout <seconds>        Max seconds to wait for async completion (default:\r\n                             \"1800\")\r\n  --input <jsonOrFile>       Inline JSON or @path/to/file.json — merged under\r\n                             flag values (flags win)\r\n  --save <path>              Download the result asset to this local path\r\n                             (mkdir + retry handled for you). A destination\r\n                             path — NOT a response format; for stdout shape use\r\n                             --format\r\n  --batch <n>                Fan-out N parallel runs (cloud tools only)\r\n                             (default: \"1\")\r\n  -h, --help                 display help for command\r\n```\r\n\r\n> Any flag also accepts pipe references — `-` (auto-pick from upstream stdin), `@N` (n-th output), `@N.path` (jsonpath into output), `@*` (all primary values), `@stdin` / `@stdin:path` (whole envelope). See `dlazy --help` for details.\r\n\r\n---\r\n\r\n换其他后端时参数由 `scripts/gen.mjs` 统一翻译，见 [`provider-cli.md`](provider-cli.md)。\n\nFile v1.0.16:references/provider-cli.md\n\n<!-- 由 scripts/build-skills.mjs 从 shared/references/provider-cli.md 同步生成，不要直接改这里。 -->\n# 后端调用参考\n\n技能正文只写「要生成什么」。认证、计费、错误码、输出结构这些每个技能都一样的东西放在这里，\n**用到时再读**，不占技能的常驻上下文。\n\n---\n\n## 一、认证\n\n### 默认后端 dLazy\n\n```bash\ndlazy login            # 设备码流程，远程 shell 也能用，自动写入本地配置\ndlazy auth set <KEY>   # 已有 key 时直接写入\n```\n\nkey 存在用户配置目录（macOS/Linux `~/.dlazy/config.json`，Windows `%USERPROFILE%\\.dlazy\\config.json`），\n权限限本机用户。也可以每次调用用环境变量 `DLAZY_API_KEY` 传入。\n\n手动获取：登录 [dlazy.com](https://dlazy.com) → [API Key 页面](https://dlazy.com/dashboard/organization/api-key)。\nkey 按组织隔离，可随时轮换或吊销。\n\n### 其他后端\n\n本技能库不锁定单一厂商。配好任意一家的 key 即可跑：\n\n| 后端 | 环境变量 | 说明 |\n| --- | --- | --- |\n| `dlazy` | `dlazy login` 或 `DLAZY_API_KEY` | 默认，最省事 |\n| `openai` | `OPENAI_API_KEY` | 走 `/v1/images/edits` 与 `/v1/images/generations` |\n| `gemini` | `GEMINI_API_KEY` | Nano Banana 系列 |\n| `fal` | `FAL_KEY` | |\n| `replicate` | `REPLICATE_API_TOKEN` | |\n| `ark` | `ARK_API_KEY` + `ARK_MODEL` | 火山方舟，模型 ID 需按开通情况填 |\n\n选路优先级：`--provider` 参数 > `PROVIDER` 环境变量 > 第一个配了 key 的 > `dlazy`。\n\n```bash\nnode scripts/gen.mjs --doctor     # 看当前哪个后端可用\n```\n\n各后端的模型 ID 可用 `GEN_MODEL_OPENAI` / `GEN_MODEL_GEMINI` / `GEN_MODEL_FAL` /\n`GEN_MODEL_REPLICATE` / `GEN_MODEL_ARK` 覆盖。**厂商目录会变，以各家最新文档为准。**\n\n---\n\n## 二、两种调用方式\n\n### 方式 A：统一入口（推荐）\n\n```bash\nnode scripts/gen.mjs --task <技能名> --prompt '...' --images a.jpg b.jpg --save out.jpg\n```\n\n它负责：后端选路、默认尺寸档位、失败重试（429/5xx 指数退避）、落盘建目录、成本估算。\n\n```bash\nnode scripts/gen.mjs --task flat-lay --prompt '...' --dry-run   # 不调用不计费，只看要发什么\nnode scripts/gen.mjs --help\n```\n\n### 方式 B：直接用 dLazy CLI\n\n不想引入 Node 依赖时，技能正文里的 `dlazy ...` 命令可以原样执行，效果等价。\n\n```bash\nnpx @dlazy/cli@1.2.3 <command>     # 不装全局二进制\n```\n\n- CLI 源码：[github.com/dlazy-ai/cli](https://github.com/dlazy-ai/cli) · npm 包 `@dlazy/cli`\n\n---\n\n## 三、数据流向\n\n调用 dLazy 时：提示词与参数发往 `api.dlazy.com`；传入的本地图片会上传到 `files.dlazy.com`\n供模型读取；产出 URL 同样托管在 `files.dlazy.com`。这是云端生成 API 的通用形态。\n换成其他后端时，数据流向对应厂商，不经过 dLazy。\n\n---\n\n## 四、输出结构\n\n`gen.mjs`（加 `--json`）：\n\n```json\n{\n  \"ok\": true,\n  \"task\": \"flat-lay\",\n  \"provider\": \"dlazy\",\n  \"model\": \"gpt-image-2\",\n  \"files\": [\"docs/flat-lay/output-sku001.jpg\"],\n  \"texts\": [],\n  \"estimatedCredits\": 60,\n  \"elapsedMs\": 58213\n}\n```\n\ndLazy CLI 原生：\n\n```json\n{\n  \"ok\": true,\n  \"result\": {\n    \"tool\": \"gpt-image-2\",\n    \"data\": { \"urls\": [\"https://files.dlazy.com/data/ai/....jpg\"] },\n    \"savedPath\": \"docs/flat-lay/example-output.jpg\"\n  }\n}\n```\n\n加 `--no-wait` 的异步任务不返回 `data`，返回 `task: { generateId, status }`，\n用 `dlazy status <generateId> --wait` 轮询。\n\n文本类模型（如质检）产出在 `result.data.texts[0]`：\n\n```bash\ndlazy claude-sonnet-5 --prompt '...' --images x.jpg \\\n  | python3 -c 'import sys,json;print(json.load(sys.stdin)[\"result\"][\"data\"][\"texts\"][0])'\n```\n\n---\n\n## 五、错误处理\n\n| Code | 类型 | 示例 |\n| --- | --- | --- |\n| 401 | 未授权 / 无 key | `ok: false, code: \"unauthorized\"` |\n| 501 | 缺必填参数 | `error: required option '--prompt <prompt>' not specified` |\n| 502 | 本地文件读不到 | `Error: Image file not found: ...` |\n| 503 | 余额不足 | `ok: false, code: \"insufficient_balance\"` |\n| 503 | 服务端错误 | `HTTP status code error (500)` |\n| 504 | 异步任务失败 | `=== Generation Failed ===` / `Prompt violates safety policy` |\n\n**给 Agent 的硬性要求**\n\n1. 命中 `insufficient_balance` → 明确告诉用户算力不足，并给出充值入口\n   <https://dlazy.com/dashboard/organization/settings?tab=credits>\n2. 命中 `unauthorized` / 缺 key → 告诉用户去 <https://dlazy.com/dashboard/organization/api-key>\n   取 key，用 `dlazy auth set <key>` 存好再继续。\n3. 用 `gen.mjs` 时，429 与 5xx 已自动重试；仍失败才向用户报错。\n4. **不要**为了「跑通」而偷偷降级参数（尺寸、档位、批量），先问用户。\n\nFile v1.0.16:scripts/lib/tasks.json\n\n{\r\n  \"_note\": \"技能 → 默认模型与参数。dlazy 列为默认后端的模型名；其他后端走 providers.mjs 的通用映射，可用 GEN_MODEL_<PROVIDER> 覆盖。\",\r\n  \"_credits\": { \"gpt-image-2\": 60, \"seedream-5.0\": 30, \"seedream-5.0-pro\": 45, \"banana-pro\": 25, \"claude-sonnet-5\": 3 },\r\n  \"tasks\": {\r\n    \"flat-lay\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"wear-everything\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"image-fusion\":            { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"one-shot\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"fission-pattern\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-detail\":             { \"model\": \"seedream-5.0-pro\", \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"creative-scene\":          { \"model\": \"banana-pro\",       \"size\": \"1024x1536\", \"format\": \"jpeg\" },\r\n    \"batch-image\":             { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"to-3d\":                   { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-extraction\":     { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"fabric-on-body\":          { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-detail\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-grass-planting\": { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-selling-point\":      { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"item-change-background\":  { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"remove-watermark\":        { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"material-enhancement\":    { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"item-repair\":             { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"detect-task\":             { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"listing-optimizer\":       { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"cross-border-localize\":   { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"brand-kit\":               { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"platform-compliance\":     { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"main-image-video\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"product-video-ad\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"ugc-testimonial\":         { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true }\r\n  }\r\n}\n\nFile v1.0.16:skill-card.md\n\n## Description:\n\nGenerates Chinese-language e-commerce product-detail image modules from product photos and supplied selling points.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[dlazyai](https://clawhub.ai/user/dlazyai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nE-commerce sellers and designers use a product photo and verified selling points to create Chinese-language product-detail banners, feature panels, material and detail panels, and specification blocks.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Product images, prompts, and optional brand constraints are sent to the configured cloud image provider.\n\nMitigation: Use approved images and brand materials only; avoid sensitive or confidential inputs unless cloud processing is authorized.\n\nRisk: Generating multiple image modules or batches can consume provider credits.\n\nMitigation: Use dry-run to inspect the request and estimated cost before generating images.\n\nRisk: Generated Chinese text or product details may be inaccurate.\n\nMitigation: Proofread every image, confirm product appearance, and substantiate claims before publication.\n\nRisk: The optional npx installation command runs externally supplied package code.\n\nMitigation: Review the package and command before running an optional npx install.\n\n## Reference(s):\n\n- [ClawHub item-detail release](https://clawhub.ai/dlazyai/skills/item-detail)\n- [Provider setup and output reference](references/provider-cli.md)\n- [Image model options](references/model-flags.md)\n\n## Skill Output:\n\n**Output Type(s):** [Images, Text, Shell commands]\n\n**Output Format:** [Chinese-language image modules saved as JPG files, with Markdown guidance and generation commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Modules can be generated separately at different aspect ratios; review text and product fidelity before publishing.]\n\n## Skill Version(s):\n\n1.0.16 (source: skill frontmatter and server-resolved release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.16:examples/brand.yaml\n\n# ⚠️ 由 scripts/build-skills.mjs 从 shared/examples/brand.yaml 同步生成，不要直接改这里。\r\n# 店铺品牌视觉规范 —— 所有生图技能读这一份，保证几百个 SKU 看起来像同一家店。\r\n#   node scripts/brand.mjs --brand brand.yaml --for flat-lay\r\n#   node scripts/gen.mjs --task flat-lay --brand brand.yaml --prompt '...'\r\n\r\nbrand:\r\n  name: 示例品牌\r\n  # 一句话概括调性，会原样进 prompt\r\n  tone: quiet minimalist, warm and lived-in, never glossy or commercial\r\n\r\nmodel:\r\n  # 锁模特：给一张脸的参考图，所有技能都会把它作为最后一张参考图传入\r\n  reference: assets/model/face-a.jpg\r\n  description: East Asian woman, late twenties, natural makeup, shoulder-length black hair\r\n  body: slim, height around 168cm\r\n\r\nphotography:\r\n  background: seamless off-white studio backdrop, RGB 248 248 246\r\n  lighting: soft large softbox from camera left, gentle fill, no hard shadows\r\n  camera: 85mm equivalent, eye level, shallow depth of field\r\n  grade: neutral white balance around 5200K, low contrast, slightly lifted blacks\r\n  crop: full body with headroom, product centered\r\n\r\nlayout:\r\n  # 给带排版的技能（主图 / 详情页）用\r\n  margin: at least 8% empty margin on all sides\r\n  typeface: clean sans-serif, no decorative fonts\r\n  text_color: near-black on light background\r\n\r\nforbid:\r\n  - no visible brand logos other than the product's own\r\n  - no text or watermark\r\n  - no exaggerated poses or dramatic wind effects\r\n  - no oversaturated colors\r\n\r\n# 可选：把这些直接写进合规目标，生成时就按平台要求出图\r\ncompliance:\r\n  platform: amazon\n\nArchive v1.0.15: 11 files, 25530 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (1874b), references/provider-cli.md (4802b), scripts/brand.mjs (4516b), scripts/gen.mjs (9733b), scripts/lib/miniyaml.mjs (2901b), scripts/lib/providers.mjs (12510b), scripts/lib/tasks.json (3234b), skill-card.md (1928b), SKILL.md (12681b), _meta.json (131b)\n\nFile v1.0.15:SKILL.md\n\n---\nname: item-detail\nversion: 1.0.15\ndescription: 生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。\n---\n\n# item-detail — 一键生成全套商品详情图\n\n一张商品图 + 卖点文案 → **带中文排版的详情页视觉**。\n\n和其他技能的区别：本技能的产出**带文字**。所以模型选型的第一标准是**中文字形渲染能力**——大多数图像模型会把中文画成乱码。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 |\n| --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/product-flatlay.jpg\" width=\"280\"> |\n| `product-flatlay.jpg` — 军绿麻花针织毛衣平铺图，800×800 |\n\n实际执行的命令（首屏 banner 模块）：\n\n```bash\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 中的军绿色麻花针织圆领毛衣的模特上身图（青年男模特，半身，落肩宽松版型），毛衣颜色、麻花织法与菱形提花必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。底部一行三个圆形图标配文字「亲肤不扎」「不易变形」「机洗不缩」。整体米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4 \\\n  --save docs/item-detail/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 3:4 / 2K，5 credits。模特上身图占左侧，毛衣的军绿色、麻花与菱形提花保留；右上标题「粗棒麻花 复古落肩」与副标题「羊毛混纺 · 加厚保暖 · 男女同款」字形正确、层级分明；底部三个线描图标配「亲肤不扎」「不易变形」「机洗不缩」，米灰底暖调，排版对齐。\n\n---\n\n## 1、能力边界\n\n| 产出模块 | 说明 |\n| --- | --- |\n| 首屏 banner | 模特上身图 / 商品图 + 大标题 + 副标题 |\n| 卖点图标行 | 3~4 个圆形图标 + 短文案 |\n| 材质说明块 | 面料/材质特写 + 说明文字 |\n| 细节展示块 | 局部特写 + 工艺说明 |\n| 参数块 | 尺码表 / 规格参数 |\n\n| 输入 | 说明 |\n| --- | --- |\n| 商品图 | 1 张 |\n| 商品类目 | `服饰` `箱包` `鞋品` `婴童用品` `宠物` `家居用品` `美妆` `3C数码` `电器` `家具灯饰` `食品厨具` `珠宝饰品` `工业和农业` `其他` |\n| 商品信息 | 100 字内的卖点，例：`商品卖点：舒适透气、柔软亲肤，适合入群：1个月-2岁宝宝` |\n\n**不做**：不编造商品没有的功能与认证；不生成虚假促销信息与虚假对比数据；不改商品的款式与颜色。\n\n---\n\n## 2、输入素材规则\n\n生成前先自检这几条硬性约束：\n\n- 大小：**20KB ~ 15MB**\n- 分辨率：**大于 400×400**\n- 格式：**jpg / jpeg / png / webp**\n\n**输入建议**\n\n| 做法 | 说明 |\n| --- | --- |\n| ✅ 商品图干净 | 带文字的图会让新排版和旧文字打架，先走 [remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md) |\n| ✅ 卖点写成短句 | `亲肤不扎` 比 `采用优质柔软亲肤面料不刺激皮肤` 好排版 |\n| ✅ 文案字数控制 | 主标题 ≤ 8 字，副标题 ≤ 16 字，图标文案 ≤ 5 字 |\n| ❌ 一个模块塞十条卖点 | 排不下，会挤成乱码 |\n| ❌ 未经核实的功效宣称 | 合规风险 |\n\n---\n\n## 3、中文排版能出对的四个条件\n\n中文详情页最大的失败模式是**乱码**。这四条同时满足才稳定：\n\n| 条件 | 写法 |\n| --- | --- |\n| 1 · 把每一段文案原文写进 prompt | 用「」括起来：`大字「粗棒麻花 复古落肩」`、`小字「羊毛混纺 · 加厚保暖 · 男女同款」` |\n| 2 · 指定字体族与字重 | `字体为无衬线黑体，字号层级分明` |\n| 3 · 指定版式关系 | `右上方留白区排版中文标题`、`底部一行三个圆形图标配文字` |\n| 4 · 显式要求不乱码 | `中文字必须清晰正确无乱码` |\n\n**文案越短越不容易崩**。四字、六字标题的成功率远高于长句。\n\n**分块生成比一次生成整页更稳**：首屏 banner 一条 prompt，卖点块一条，材质块一条，最后用设计工具拼成长图。一次生成整页时，越往下的模块文字越容易崩。\n\n---\n\n## 4、类目 → 版式基调\n\n| 类目 | 背景与色调 | 文案侧重 |\n| --- | --- | --- |\n| 服饰 | 米灰 / 燕麦色，暖调，大留白 | 版型、面料、场合 |\n| 箱包 / 鞋品 | 深灰渐变，硬光，质感优先 | 材质、容量、耐用 |\n| 婴童 / 宠物 | 浅粉 / 奶油色，柔光 | 安全、亲肤、适用月龄 |\n| 美妆 | 大理石 / 丝绒，高对比 | 成分、质地、效果 |\n| 3C / 电器 | 深色科技风，冷光 | 参数、性能、接口 |\n| 家居 / 家具灯饰 | 实景房间，自然光 | 尺寸、材质、搭配 |\n| 食品厨具 | 木质餐桌，暖光 | 原料、工艺、口感 |\n| 珠宝饰品 | 深色绒布，聚光 | 材质、克重、工艺 |\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`seedream-5.0-pro`**（专业档图像模型，在**中文字形与复杂排版**上明显强于同类；本技能的产出带大量中文文案，字形正确率是首要指标）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task item-detail \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/item-detail-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy seedream-5.0-pro --prompt '...' --images ... --save output/item-detail.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[商品图]`（最多 10 张，可加细节图、面料图） | 多图能让各模块用上不同素材 |\n| `--size` | `3:4`（首屏 banner）/ `1:1`（卖点方块）/ `9:16`（长条模块） | 分模块生成，各用合适比例 |\n| `--resolution` | `2k` | 详情页宽度通常 750~1200px，2K 足够 |\n| `--batch` | `2` ~ `3` | 中文排版有随机性，挑字形正确的 |\n| `--save` | `docs/item-detail/output-<sku>-<模块>.jpg` | 按模块归档便于拼长图 |\n\n> **成本提示**：`seedream-5.0-pro` 单张约 5 credits，分模块跑 5 条也只有 25 credits，比反复重跑整页便宜。\n\n### Command Examples\n\n```bash\n# basic call: 首屏 banner\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图，颜色与织法必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。米灰色背景，暖色调，无衬线黑体，排版整齐对齐，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4\n\n# complex call: 分模块跑完一整套详情页\nSRC=docs/item-detail/product-flatlay.jpg\nBASE='米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。'\nKEEP='商品的颜色、麻花织法与菱形提花必须与图1完全一致。'\n\ndlazy seedream-5.0-pro --size 3:4 --images \"$SRC\" --save docs/item-detail/output-sku001-1-banner.jpg \\\n  --prompt \"电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图（青年男模特，半身，落肩宽松版型）。${KEEP} 右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-2-icons.jpg \\\n  --prompt \"电商详情页卖点图标块，正方形。上方一行三个线性圆形图标，图标下方各配四字中文：「亲肤不扎」「不易变形」「机洗不缩」。下方居中一张商品局部特写。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-3-fabric.jpg \\\n  --prompt \"电商详情页面料说明块，正方形。左侧是面料微距特写，右侧竖排中文说明：标题「粗棒羊毛混纺」，正文两行小字「蓬松保暖不压身」「细腻纱线不刺挠」。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 9:16 --images \"$SRC\" --save docs/item-detail/output-sku001-4-size.jpg \\\n  --prompt \"电商详情页尺码块，长条竖版。顶部中文标题「尺码参考」，下方一张三行四列的简洁尺码表格，表头为「尺码」「衣长」「胸围」「袖长」，内容为 S/M/L 三行数字。${BASE}\"\n\n# 先估价不真跑\ndlazy seedream-5.0-pro --dry-run --prompt '...' --images a.jpg --size 3:4\n```\n\n### 延伸阅读\n\n| 要查什么 | 去哪 |\n| --- | --- |\n| 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) |\n| `seedream-5.0-pro` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) |\n| 统一入口的全部选项 | `node scripts/gen.mjs --help` |\n\n## 6、Prompt 模板\n\n```text\n电商[类目]详情页[模块名]，[比例描述]。\n\n[图片区版式]：[位置] 是图1 商品的[形态：模特上身图 / 平铺图 / 微距特写]。\n[保真句]：商品的颜色、[织法/材质]与[图案/结构]必须与图1完全一致。\n\n[文案区版式]：[位置] 排版中文，\n  大字「[主标题 ≤8 字]」，\n  副标题小字「[副标题 ≤16 字]」，\n  [图标行：三个圆形图标配文字「[4字]」「[4字]」「[4字]」]。\n\n[基调]：[类目对应的背景与色调，见第四节]，留白克制，\n字体为无衬线黑体，字号层级分明，排版整齐对齐，\n商业电商详情页设计感，中文字必须清晰正确无乱码。\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 中文乱码 | 缩短文案；把每段原文再重复一次；追加 `所有中文必须是清晰可读的简体汉字，不得出现变形、缺笔或臆造字。` |\n| 文字压在商品上 | `文字区与商品区不得重叠，商品占画面左侧 [X]%，文字区占右侧 [Y]%。` |\n| 排版歪 | `所有文字左对齐到同一条基准线，行距均匀。` |\n| 商品被改 | `商品区域必须与图1一致，不得重绘款式、颜色或图案。` |\n| 图标太花 | `图标为单色细线描风格，线宽一致，不得加渐变或阴影。` |\n| 一次出整页文字崩 | 拆成分模块生成（第三节） |\n\n---\n\n## 7、执行流程\n\n1. **洗干净商品图**（[remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md)），避免新旧文字打架。\n2. **定类目 → 取版式基调**（第四节表格）。\n3. **把卖点压成短句**：主标题 ≤8 字，副标题 ≤16 字，图标文案 ≤5 字。\n4. **拆模块**：banner / 卖点图标 / 材质说明 / 细节 / 尺码——**一个模块一条 prompt**。\n5. **每条 prompt 必须包含四个条件**（原文 + 字体 + 版式 + 不乱码，见第三节）。\n6. **`--batch 2~3`** 挑字形正确的一张，落盘到 `docs/item-detail/`。\n7. **逐字校对中文**（这是最容易出错的地方）→ 用设计工具拼成详情页长图。\n8. **合规检查**：卖点是否有依据、有没有虚假促销与绝对化用语。\n\n---\n\n## 8、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 中文变乱码 | 文案太长 / 未写不乱码约束 | 缩短文案 + 重复原文 + 追加字形约束句 |\n| 越往下的模块文字越崩 | 一次生成整页 | 拆成分模块生成 |\n| 文字压在商品上 | 未划分区域 | 追加区域占比句 |\n| 图标风格花哨不统一 | 未约束风格 | 追加单色细线描、线宽一致句 |\n| 商品被重绘 | 未写保真句 | 追加商品区域保真句 |\n| 卖点被模型加油添醋 | 未限制 | prompt 里只给要出现的原文，并追加 `不得添加未提供的文案` |\n\n---\n\n## Tips\n\nVisit https://dlazy.com for more information.\n\nFile v1.0.15:_meta.json\n\n{\n  \"ownerId\": \"kn7c5wgeajfcfvdfb5ceemvdb984cjpd\",\n  \"slug\": \"item-detail\",\n  \"version\": \"1.0.15\",\n  \"publishedAt\": 1790732886010\n}\n\nFile v1.0.15:references/model-flags.md\n\n# `seedream-5.0-pro` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy seedream-5.0-pro` command to get results.\r\n\r\n```bash\r\ndlazy seedream-5.0-pro -h\r\n\r\nOptions:\r\n  --prompt <prompt>          Prompt\r\n  --images [images...]       Images [image: url or local path] (max 10)\r\n  --resolution <resolution>  Resolution [default: 2k] (choices: \"2k\")\r\n  --size <size>              Size [default: 16:9] (choices: \"1:1\", \"4:3\",\r\n                             \"3:4\", \"16:9\", \"9:16\", \"3:2\", \"2:3\", \"21:9\")\r\n  --dry-run                  Print payload without executing the tool\r\n  --no-wait                  Return generateId immediately for async tasks\r\n  --timeout <seconds>        Max seconds to wait for async completion (default:\r\n                             \"1800\")\r\n  --input <jsonOrFile>       Inline JSON or @path/to/file.json — merged under\r\n                             flag values (flags win)\r\n  --save <path>              Download the result asset to this local path\r\n                             (mkdir + retry handled for you). A destination\r\n                             path — NOT a response format; for stdout shape use\r\n                             --format\r\n  --batch <n>                Fan-out N parallel runs (cloud tools only)\r\n                             (default: \"1\")\r\n  -h, --help                 display help for command\r\n```\r\n\r\n> Any flag also accepts pipe references — `-` (auto-pick from upstream stdin), `@N` (n-th output), `@N.path` (jsonpath into output), `@*` (all primary values), `@stdin` / `@stdin:path` (whole envelope). See `dlazy --help` for details.\r\n\r\n---\r\n\r\n换其他后端时参数由 `scripts/gen.mjs` 统一翻译，见 [`provider-cli.md`](provider-cli.md)。\n\nFile v1.0.15:references/provider-cli.md\n\n<!-- 由 scripts/build-skills.mjs 从 shared/references/provider-cli.md 同步生成，不要直接改这里。 -->\n# 后端调用参考\n\n技能正文只写「要生成什么」。认证、计费、错误码、输出结构这些每个技能都一样的东西放在这里，\n**用到时再读**，不占技能的常驻上下文。\n\n---\n\n## 一、认证\n\n### 默认后端 dLazy\n\n```bash\ndlazy login            # 设备码流程，远程 shell 也能用，自动写入本地配置\ndlazy auth set <KEY>   # 已有 key 时直接写入\n```\n\nkey 存在用户配置目录（macOS/Linux `~/.dlazy/config.json`，Windows `%USERPROFILE%\\.dlazy\\config.json`），\n权限限本机用户。也可以每次调用用环境变量 `DLAZY_API_KEY` 传入。\n\n手动获取：登录 [dlazy.com](https://dlazy.com) → [API Key 页面](https://dlazy.com/dashboard/organization/api-key)。\nkey 按组织隔离，可随时轮换或吊销。\n\n### 其他后端\n\n本技能库不锁定单一厂商。配好任意一家的 key 即可跑：\n\n| 后端 | 环境变量 | 说明 |\n| --- | --- | --- |\n| `dlazy` | `dlazy login` 或 `DLAZY_API_KEY` | 默认，最省事 |\n| `openai` | `OPENAI_API_KEY` | 走 `/v1/images/edits` 与 `/v1/images/generations` |\n| `gemini` | `GEMINI_API_KEY` | Nano Banana 系列 |\n| `fal` | `FAL_KEY` | |\n| `replicate` | `REPLICATE_API_TOKEN` | |\n| `ark` | `ARK_API_KEY` + `ARK_MODEL` | 火山方舟，模型 ID 需按开通情况填 |\n\n选路优先级：`--provider` 参数 > `PROVIDER` 环境变量 > 第一个配了 key 的 > `dlazy`。\n\n```bash\nnode scripts/gen.mjs --doctor     # 看当前哪个后端可用\n```\n\n各后端的模型 ID 可用 `GEN_MODEL_OPENAI` / `GEN_MODEL_GEMINI` / `GEN_MODEL_FAL` /\n`GEN_MODEL_REPLICATE` / `GEN_MODEL_ARK` 覆盖。**厂商目录会变，以各家最新文档为准。**\n\n---\n\n## 二、两种调用方式\n\n### 方式 A：统一入口（推荐）\n\n```bash\nnode scripts/gen.mjs --task <技能名> --prompt '...' --images a.jpg b.jpg --save out.jpg\n```\n\n它负责：后端选路、默认尺寸档位、失败重试（429/5xx 指数退避）、落盘建目录、成本估算。\n\n```bash\nnode scripts/gen.mjs --task flat-lay --prompt '...' --dry-run   # 不调用不计费，只看要发什么\nnode scripts/gen.mjs --help\n```\n\n### 方式 B：直接用 dLazy CLI\n\n不想引入 Node 依赖时，技能正文里的 `dlazy ...` 命令可以原样执行，效果等价。\n\n```bash\nnpx @dlazy/cli@1.2.3 <command>     # 不装全局二进制\n```\n\n- CLI 源码：[github.com/dlazy-ai/cli](https://github.com/dlazy-ai/cli) · npm 包 `@dlazy/cli`\n\n---\n\n## 三、数据流向\n\n调用 dLazy 时：提示词与参数发往 `api.dlazy.com`；传入的本地图片会上传到 `files.dlazy.com`\n供模型读取；产出 URL 同样托管在 `files.dlazy.com`。这是云端生成 API 的通用形态。\n换成其他后端时，数据流向对应厂商，不经过 dLazy。\n\n---\n\n## 四、输出结构\n\n`gen.mjs`（加 `--json`）：\n\n```json\n{\n  \"ok\": true,\n  \"task\": \"flat-lay\",\n  \"provider\": \"dlazy\",\n  \"model\": \"gpt-image-2\",\n  \"files\": [\"docs/flat-lay/output-sku001.jpg\"],\n  \"texts\": [],\n  \"estimatedCredits\": 60,\n  \"elapsedMs\": 58213\n}\n```\n\ndLazy CLI 原生：\n\n```json\n{\n  \"ok\": true,\n  \"result\": {\n    \"tool\": \"gpt-image-2\",\n    \"data\": { \"urls\": [\"https://files.dlazy.com/data/ai/....jpg\"] },\n    \"savedPath\": \"docs/flat-lay/example-output.jpg\"\n  }\n}\n```\n\n加 `--no-wait` 的异步任务不返回 `data`，返回 `task: { generateId, status }`，\n用 `dlazy status <generateId> --wait` 轮询。\n\n文本类模型（如质检）产出在 `result.data.texts[0]`：\n\n```bash\ndlazy claude-sonnet-5 --prompt '...' --images x.jpg \\\n  | python3 -c 'import sys,json;print(json.load(sys.stdin)[\"result\"][\"data\"][\"texts\"][0])'\n```\n\n---\n\n## 五、错误处理\n\n| Code | 类型 | 示例 |\n| --- | --- | --- |\n| 401 | 未授权 / 无 key | `ok: false, code: \"unauthorized\"` |\n| 501 | 缺必填参数 | `error: required option '--prompt <prompt>' not specified` |\n| 502 | 本地文件读不到 | `Error: Image file not found: ...` |\n| 503 | 余额不足 | `ok: false, code: \"insufficient_balance\"` |\n| 503 | 服务端错误 | `HTTP status code error (500)` |\n| 504 | 异步任务失败 | `=== Generation Failed ===` / `Prompt violates safety policy` |\n\n**给 Agent 的硬性要求**\n\n1. 命中 `insufficient_balance` → 明确告诉用户算力不足，并给出充值入口\n   <https://dlazy.com/dashboard/organization/settings?tab=credits>\n2. 命中 `unauthorized` / 缺 key → 告诉用户去 <https://dlazy.com/dashboard/organization/api-key>\n   取 key，用 `dlazy auth set <key>` 存好再继续。\n3. 用 `gen.mjs` 时，429 与 5xx 已自动重试；仍失败才向用户报错。\n4. **不要**为了「跑通」而偷偷降级参数（尺寸、档位、批量），先问用户。\n\nFile v1.0.15:scripts/lib/tasks.json\n\n{\r\n  \"_note\": \"技能 → 默认模型与参数。dlazy 列为默认后端的模型名；其他后端走 providers.mjs 的通用映射，可用 GEN_MODEL_<PROVIDER> 覆盖。\",\r\n  \"_credits\": { \"gpt-image-2\": 60, \"seedream-5.0\": 30, \"seedream-5.0-pro\": 45, \"banana-pro\": 25, \"claude-sonnet-5\": 3 },\r\n  \"tasks\": {\r\n    \"flat-lay\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"wear-everything\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"image-fusion\":            { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"one-shot\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"fission-pattern\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-detail\":             { \"model\": \"seedream-5.0-pro\", \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"creative-scene\":          { \"model\": \"banana-pro\",       \"size\": \"1024x1536\", \"format\": \"jpeg\" },\r\n    \"batch-image\":             { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"to-3d\":                   { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-extraction\":     { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"fabric-on-body\":          { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-detail\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-grass-planting\": { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-selling-point\":      { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"item-change-background\":  { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"remove-watermark\":        { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"material-enhancement\":    { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"item-repair\":             { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"detect-task\":             { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"listing-optimizer\":       { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"cross-border-localize\":   { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"brand-kit\":               { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"platform-compliance\":     { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"main-image-video\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"product-video-ad\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"ugc-testimonial\":         { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true }\r\n  }\r\n}\n\nFile v1.0.15:skill-card.md\n\n## Description:\n\nGenerates Chinese-language ecommerce product-detail image modules from a product image and supplied selling points.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[dlazyai](https://clawhub.ai/user/dlazyai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nMerchants and ecommerce designers use this skill to create product-detail banners, selling-point panels, material descriptions, and specification images with Chinese copy for listings.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Product images and copy are sent to the selected external generation provider.\n\nMitigation: Use only assets approved for provider transfer, check active credentials and destination, and preview requests with dry-run.\n\nRisk: Generated Chinese text, product appearance, or claims may be inaccurate.\n\nMitigation: Proofread every image, compare the product with the source, and verify selling points and specifications before publishing.\n\n## Reference(s):\n\n- [ClawHub item-detail release](https://clawhub.ai/dlazyai/skills/item-detail)\n- [Provider CLI and data flow](references/provider-cli.md)\n- [Image model options](references/model-flags.md)\n\n## Skill Output:\n\n**Output Type(s):** [Images, Shell commands, Guidance]\n\n**Output Format:** [Product-detail image files with Chinese typography, accompanied by generation prompts and commands]\n\n**Output Parameters:** [2D image modules]\n\n**Other Properties Related to Output:** [Individual modules may be assembled into a longer listing image after visual and copy review.]\n\n## Skill Version(s):\n\n1.0.15 (source: release metadata and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.15:examples/brand.yaml\n\n# ⚠️ 由 scripts/build-skills.mjs 从 shared/examples/brand.yaml 同步生成，不要直接改这里。\r\n# 店铺品牌视觉规范 —— 所有生图技能读这一份，保证几百个 SKU 看起来像同一家店。\r\n#   node scripts/brand.mjs --brand brand.yaml --for flat-lay\r\n#   node scripts/gen.mjs --task flat-lay --brand brand.yaml --prompt '...'\r\n\r\nbrand:\r\n  name: 示例品牌\r\n  # 一句话概括调性，会原样进 prompt\r\n  tone: quiet minimalist, warm and lived-in, never glossy or commercial\r\n\r\nmodel:\r\n  # 锁模特：给一张脸的参考图，所有技能都会把它作为最后一张参考图传入\r\n  reference: assets/model/face-a.jpg\r\n  description: East Asian woman, late twenties, natural makeup, shoulder-length black hair\r\n  body: slim, height around 168cm\r\n\r\nphotography:\r\n  background: seamless off-white studio backdrop, RGB 248 248 246\r\n  lighting: soft large softbox from camera left, gentle fill, no hard shadows\r\n  camera: 85mm equivalent, eye level, shallow depth of field\r\n  grade: neutral white balance around 5200K, low contrast, slightly lifted blacks\r\n  crop: full body with headroom, product centered\r\n\r\nlayout:\r\n  # 给带排版的技能（主图 / 详情页）用\r\n  margin: at least 8% empty margin on all sides\r\n  typeface: clean sans-serif, no decorative fonts\r\n  text_color: near-black on light background\r\n\r\nforbid:\r\n  - no visible brand logos other than the product's own\r\n  - no text or watermark\r\n  - no exaggerated poses or dramatic wind effects\r\n  - no oversaturated colors\r\n\r\n# 可选：把这些直接写进合规目标，生成时就按平台要求出图\r\ncompliance:\r\n  platform: amazon\n\nArchive v1.0.14: 11 files, 25599 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (1874b), references/provider-cli.md (4802b), scripts/brand.mjs (4516b), scripts/gen.mjs (9733b), scripts/lib/miniyaml.mjs (2901b), scripts/lib/providers.mjs (12510b), scripts/lib/tasks.json (3234b), skill-card.md (2089b), SKILL.md (12681b), _meta.json (131b)\n\nFile v1.0.14:SKILL.md\n\n---\nname: item-detail\nversion: 1.0.14\ndescription: 生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。\n---\n\n# item-detail — 一键生成全套商品详情图\n\n一张商品图 + 卖点文案 → **带中文排版的详情页视觉**。\n\n和其他技能的区别：本技能的产出**带文字**。所以模型选型的第一标准是**中文字形渲染能力**——大多数图像模型会把中文画成乱码。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 |\n| --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/product-flatlay.jpg\" width=\"280\"> |\n| `product-flatlay.jpg` — 军绿麻花针织毛衣平铺图，800×800 |\n\n实际执行的命令（首屏 banner 模块）：\n\n```bash\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 中的军绿色麻花针织圆领毛衣的模特上身图（青年男模特，半身，落肩宽松版型），毛衣颜色、麻花织法与菱形提花必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。底部一行三个圆形图标配文字「亲肤不扎」「不易变形」「机洗不缩」。整体米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4 \\\n  --save docs/item-detail/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 3:4 / 2K，5 credits。模特上身图占左侧，毛衣的军绿色、麻花与菱形提花保留；右上标题「粗棒麻花 复古落肩」与副标题「羊毛混纺 · 加厚保暖 · 男女同款」字形正确、层级分明；底部三个线描图标配「亲肤不扎」「不易变形」「机洗不缩」，米灰底暖调，排版对齐。\n\n---\n\n## 1、能力边界\n\n| 产出模块 | 说明 |\n| --- | --- |\n| 首屏 banner | 模特上身图 / 商品图 + 大标题 + 副标题 |\n| 卖点图标行 | 3~4 个圆形图标 + 短文案 |\n| 材质说明块 | 面料/材质特写 + 说明文字 |\n| 细节展示块 | 局部特写 + 工艺说明 |\n| 参数块 | 尺码表 / 规格参数 |\n\n| 输入 | 说明 |\n| --- | --- |\n| 商品图 | 1 张 |\n| 商品类目 | `服饰` `箱包` `鞋品` `婴童用品` `宠物` `家居用品` `美妆` `3C数码` `电器` `家具灯饰` `食品厨具` `珠宝饰品` `工业和农业` `其他` |\n| 商品信息 | 100 字内的卖点，例：`商品卖点：舒适透气、柔软亲肤，适合入群：1个月-2岁宝宝` |\n\n**不做**：不编造商品没有的功能与认证；不生成虚假促销信息与虚假对比数据；不改商品的款式与颜色。\n\n---\n\n## 2、输入素材规则\n\n生成前先自检这几条硬性约束：\n\n- 大小：**20KB ~ 15MB**\n- 分辨率：**大于 400×400**\n- 格式：**jpg / jpeg / png / webp**\n\n**输入建议**\n\n| 做法 | 说明 |\n| --- | --- |\n| ✅ 商品图干净 | 带文字的图会让新排版和旧文字打架，先走 [remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md) |\n| ✅ 卖点写成短句 | `亲肤不扎` 比 `采用优质柔软亲肤面料不刺激皮肤` 好排版 |\n| ✅ 文案字数控制 | 主标题 ≤ 8 字，副标题 ≤ 16 字，图标文案 ≤ 5 字 |\n| ❌ 一个模块塞十条卖点 | 排不下，会挤成乱码 |\n| ❌ 未经核实的功效宣称 | 合规风险 |\n\n---\n\n## 3、中文排版能出对的四个条件\n\n中文详情页最大的失败模式是**乱码**。这四条同时满足才稳定：\n\n| 条件 | 写法 |\n| --- | --- |\n| 1 · 把每一段文案原文写进 prompt | 用「」括起来：`大字「粗棒麻花 复古落肩」`、`小字「羊毛混纺 · 加厚保暖 · 男女同款」` |\n| 2 · 指定字体族与字重 | `字体为无衬线黑体，字号层级分明` |\n| 3 · 指定版式关系 | `右上方留白区排版中文标题`、`底部一行三个圆形图标配文字` |\n| 4 · 显式要求不乱码 | `中文字必须清晰正确无乱码` |\n\n**文案越短越不容易崩**。四字、六字标题的成功率远高于长句。\n\n**分块生成比一次生成整页更稳**：首屏 banner 一条 prompt，卖点块一条，材质块一条，最后用设计工具拼成长图。一次生成整页时，越往下的模块文字越容易崩。\n\n---\n\n## 4、类目 → 版式基调\n\n| 类目 | 背景与色调 | 文案侧重 |\n| --- | --- | --- |\n| 服饰 | 米灰 / 燕麦色，暖调，大留白 | 版型、面料、场合 |\n| 箱包 / 鞋品 | 深灰渐变，硬光，质感优先 | 材质、容量、耐用 |\n| 婴童 / 宠物 | 浅粉 / 奶油色，柔光 | 安全、亲肤、适用月龄 |\n| 美妆 | 大理石 / 丝绒，高对比 | 成分、质地、效果 |\n| 3C / 电器 | 深色科技风，冷光 | 参数、性能、接口 |\n| 家居 / 家具灯饰 | 实景房间，自然光 | 尺寸、材质、搭配 |\n| 食品厨具 | 木质餐桌，暖光 | 原料、工艺、口感 |\n| 珠宝饰品 | 深色绒布，聚光 | 材质、克重、工艺 |\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`seedream-5.0-pro`**（专业档图像模型，在**中文字形与复杂排版**上明显强于同类；本技能的产出带大量中文文案，字形正确率是首要指标）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task item-detail \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/item-detail-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy seedream-5.0-pro --prompt '...' --images ... --save output/item-detail.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[商品图]`（最多 10 张，可加细节图、面料图） | 多图能让各模块用上不同素材 |\n| `--size` | `3:4`（首屏 banner）/ `1:1`（卖点方块）/ `9:16`（长条模块） | 分模块生成，各用合适比例 |\n| `--resolution` | `2k` | 详情页宽度通常 750~1200px，2K 足够 |\n| `--batch` | `2` ~ `3` | 中文排版有随机性，挑字形正确的 |\n| `--save` | `docs/item-detail/output-<sku>-<模块>.jpg` | 按模块归档便于拼长图 |\n\n> **成本提示**：`seedream-5.0-pro` 单张约 5 credits，分模块跑 5 条也只有 25 credits，比反复重跑整页便宜。\n\n### Command Examples\n\n```bash\n# basic call: 首屏 banner\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图，颜色与织法必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。米灰色背景，暖色调，无衬线黑体，排版整齐对齐，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4\n\n# complex call: 分模块跑完一整套详情页\nSRC=docs/item-detail/product-flatlay.jpg\nBASE='米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。'\nKEEP='商品的颜色、麻花织法与菱形提花必须与图1完全一致。'\n\ndlazy seedream-5.0-pro --size 3:4 --images \"$SRC\" --save docs/item-detail/output-sku001-1-banner.jpg \\\n  --prompt \"电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图（青年男模特，半身，落肩宽松版型）。${KEEP} 右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-2-icons.jpg \\\n  --prompt \"电商详情页卖点图标块，正方形。上方一行三个线性圆形图标，图标下方各配四字中文：「亲肤不扎」「不易变形」「机洗不缩」。下方居中一张商品局部特写。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-3-fabric.jpg \\\n  --prompt \"电商详情页面料说明块，正方形。左侧是面料微距特写，右侧竖排中文说明：标题「粗棒羊毛混纺」，正文两行小字「蓬松保暖不压身」「细腻纱线不刺挠」。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 9:16 --images \"$SRC\" --save docs/item-detail/output-sku001-4-size.jpg \\\n  --prompt \"电商详情页尺码块，长条竖版。顶部中文标题「尺码参考」，下方一张三行四列的简洁尺码表格，表头为「尺码」「衣长」「胸围」「袖长」，内容为 S/M/L 三行数字。${BASE}\"\n\n# 先估价不真跑\ndlazy seedream-5.0-pro --dry-run --prompt '...' --images a.jpg --size 3:4\n```\n\n### 延伸阅读\n\n| 要查什么 | 去哪 |\n| --- | --- |\n| 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) |\n| `seedream-5.0-pro` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) |\n| 统一入口的全部选项 | `node scripts/gen.mjs --help` |\n\n## 6、Prompt 模板\n\n```text\n电商[类目]详情页[模块名]，[比例描述]。\n\n[图片区版式]：[位置] 是图1 商品的[形态：模特上身图 / 平铺图 / 微距特写]。\n[保真句]：商品的颜色、[织法/材质]与[图案/结构]必须与图1完全一致。\n\n[文案区版式]：[位置] 排版中文，\n  大字「[主标题 ≤8 字]」，\n  副标题小字「[副标题 ≤16 字]」，\n  [图标行：三个圆形图标配文字「[4字]」「[4字]」「[4字]」]。\n\n[基调]：[类目对应的背景与色调，见第四节]，留白克制，\n字体为无衬线黑体，字号层级分明，排版整齐对齐，\n商业电商详情页设计感，中文字必须清晰正确无乱码。\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 中文乱码 | 缩短文案；把每段原文再重复一次；追加 `所有中文必须是清晰可读的简体汉字，不得出现变形、缺笔或臆造字。` |\n| 文字压在商品上 | `文字区与商品区不得重叠，商品占画面左侧 [X]%，文字区占右侧 [Y]%。` |\n| 排版歪 | `所有文字左对齐到同一条基准线，行距均匀。` |\n| 商品被改 | `商品区域必须与图1一致，不得重绘款式、颜色或图案。` |\n| 图标太花 | `图标为单色细线描风格，线宽一致，不得加渐变或阴影。` |\n| 一次出整页文字崩 | 拆成分模块生成（第三节） |\n\n---\n\n## 7、执行流程\n\n1. **洗干净商品图**（[remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md)），避免新旧文字打架。\n2. **定类目 → 取版式基调**（第四节表格）。\n3. **把卖点压成短句**：主标题 ≤8 字，副标题 ≤16 字，图标文案 ≤5 字。\n4. **拆模块**：banner / 卖点图标 / 材质说明 / 细节 / 尺码——**一个模块一条 prompt**。\n5. **每条 prompt 必须包含四个条件**（原文 + 字体 + 版式 + 不乱码，见第三节）。\n6. **`--batch 2~3`** 挑字形正确的一张，落盘到 `docs/item-detail/`。\n7. **逐字校对中文**（这是最容易出错的地方）→ 用设计工具拼成详情页长图。\n8. **合规检查**：卖点是否有依据、有没有虚假促销与绝对化用语。\n\n---\n\n## 8、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 中文变乱码 | 文案太长 / 未写不乱码约束 | 缩短文案 + 重复原文 + 追加字形约束句 |\n| 越往下的模块文字越崩 | 一次生成整页 | 拆成分模块生成 |\n| 文字压在商品上 | 未划分区域 | 追加区域占比句 |\n| 图标风格花哨不统一 | 未约束风格 | 追加单色细线描、线宽一致句 |\n| 商品被重绘 | 未写保真句 | 追加商品区域保真句 |\n| 卖点被模型加油添醋 | 未限制 | prompt 里只给要出现的原文，并追加 `不得添加未提供的文案` |\n\n---\n\n## Tips\n\nVisit https://dlazy.com for more information.\n\nFile v1.0.14:_meta.json\n\n{\n  \"ownerId\": \"kn7c5wgeajfcfvdfb5ceemvdb984cjpd\",\n  \"slug\": \"item-detail\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1790563038717\n}\n\nFile v1.0.14:references/model-flags.md\n\n# `seedream-5.0-pro` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy seedream-5.0-pro` command to get results.\r\n\r\n```bash\r\ndlazy seedream-5.0-pro -h\r\n\r\nOptions:\r\n  --prompt <prompt>          Prompt\r\n  --images [images...]       Images [image: url or local path] (max 10)\r\n  --resolution <resolution>  Resolution [default: 2k] (choices: \"2k\")\r\n  --size <size>              Size [default: 16:9] (choices: \"1:1\", \"4:3\",\r\n                             \"3:4\", \"16:9\", \"9:16\", \"3:2\", \"2:3\", \"21:9\")\r\n  --dry-run                  Print payload without executing the tool\r\n  --no-wait                  Return generateId immediately for async tasks\r\n  --timeout <seconds>        Max seconds to wait for async completion (default:\r\n                             \"1800\")\r\n  --input <jsonOrFile>       Inline JSON or @path/to/file.json — merged under\r\n                             flag values (flags win)\r\n  --save <path>              Download the result asset to this local path\r\n                             (mkdir + retry handled for you). A destination\r\n                             path — NOT a response format; for stdout shape use\r\n                             --format\r\n  --batch <n>                Fan-out N parallel runs (cloud tools only)\r\n                             (default: \"1\")\r\n  -h, --help                 display help for command\r\n```\r\n\r\n> Any flag also accepts pipe references — `-` (auto-pick from upstream stdin), `@N` (n-th output), `@N.path` (jsonpath into output), `@*` (all primary values), `@stdin` / `@stdin:path` (whole envelope). See `dlazy --help` for details.\r\n\r\n---\r\n\r\n换其他后端时参数由 `scripts/gen.mjs` 统一翻译，见 [`provider-cli.md`](provider-cli.md)。\n\nFile v1.0.14:references/provider-cli.md\n\n<!-- 由 scripts/build-skills.mjs 从 shared/references/provider-cli.md 同步生成，不要直接改这里。 -->\n# 后端调用参考\n\n技能正文只写「要生成什么」。认证、计费、错误码、输出结构这些每个技能都一样的东西放在这里，\n**用到时再读**，不占技能的常驻上下文。\n\n---\n\n## 一、认证\n\n### 默认后端 dLazy\n\n```bash\ndlazy login            # 设备码流程，远程 shell 也能用，自动写入本地配置\ndlazy auth set <KEY>   # 已有 key 时直接写入\n```\n\nkey 存在用户配置目录（macOS/Linux `~/.dlazy/config.json`，Windows `%USERPROFILE%\\.dlazy\\config.json`），\n权限限本机用户。也可以每次调用用环境变量 `DLAZY_API_KEY` 传入。\n\n手动获取：登录 [dlazy.com](https://dlazy.com) → [API Key 页面](https://dlazy.com/dashboard/organization/api-key)。\nkey 按组织隔离，可随时轮换或吊销。\n\n### 其他后端\n\n本技能库不锁定单一厂商。配好任意一家的 key 即可跑：\n\n| 后端 | 环境变量 | 说明 |\n| --- | --- | --- |\n| `dlazy` | `dlazy login` 或 `DLAZY_API_KEY` | 默认，最省事 |\n| `openai` | `OPENAI_API_KEY` | 走 `/v1/images/edits` 与 `/v1/images/generations` |\n| `gemini` | `GEMINI_API_KEY` | Nano Banana 系列 |\n| `fal` | `FAL_KEY` | |\n| `replicate` | `REPLICATE_API_TOKEN` | |\n| `ark` | `ARK_API_KEY` + `ARK_MODEL` | 火山方舟，模型 ID 需按开通情况填 |\n\n选路优先级：`--provider` 参数 > `PROVIDER` 环境变量 > 第一个配了 key 的 > `dlazy`。\n\n```bash\nnode scripts/gen.mjs --doctor     # 看当前哪个后端可用\n```\n\n各后端的模型 ID 可用 `GEN_MODEL_OPENAI` / `GEN_MODEL_GEMINI` / `GEN_MODEL_FAL` /\n`GEN_MODEL_REPLICATE` / `GEN_MODEL_ARK` 覆盖。**厂商目录会变，以各家最新文档为准。**\n\n---\n\n## 二、两种调用方式\n\n### 方式 A：统一入口（推荐）\n\n```bash\nnode scripts/gen.mjs --task <技能名> --prompt '...' --images a.jpg b.jpg --save out.jpg\n```\n\n它负责：后端选路、默认尺寸档位、失败重试（429/5xx 指数退避）、落盘建目录、成本估算。\n\n```bash\nnode scripts/gen.mjs --task flat-lay --prompt '...' --dry-run   # 不调用不计费，只看要发什么\nnode scripts/gen.mjs --help\n```\n\n### 方式 B：直接用 dLazy CLI\n\n不想引入 Node 依赖时，技能正文里的 `dlazy ...` 命令可以原样执行，效果等价。\n\n```bash\nnpx @dlazy/cli@1.2.3 <command>     # 不装全局二进制\n```\n\n- CLI 源码：[github.com/dlazy-ai/cli](https://github.com/dlazy-ai/cli) · npm 包 `@dlazy/cli`\n\n---\n\n## 三、数据流向\n\n调用 dLazy 时：提示词与参数发往 `api.dlazy.com`；传入的本地图片会上传到 `files.dlazy.com`\n供模型读取；产出 URL 同样托管在 `files.dlazy.com`。这是云端生成 API 的通用形态。\n换成其他后端时，数据流向对应厂商，不经过 dLazy。\n\n---\n\n## 四、输出结构\n\n`gen.mjs`（加 `--json`）：\n\n```json\n{\n  \"ok\": true,\n  \"task\": \"flat-lay\",\n  \"provider\": \"dlazy\",\n  \"model\": \"gpt-image-2\",\n  \"files\": [\"docs/flat-lay/output-sku001.jpg\"],\n  \"texts\": [],\n  \"estimatedCredits\": 60,\n  \"elapsedMs\": 58213\n}\n```\n\ndLazy CLI 原生：\n\n```json\n{\n  \"ok\": true,\n  \"result\": {\n    \"tool\": \"gpt-image-2\",\n    \"data\": { \"urls\": [\"https://files.dlazy.com/data/ai/....jpg\"] },\n    \"savedPath\": \"docs/flat-lay/example-output.jpg\"\n  }\n}\n```\n\n加 `--no-wait` 的异步任务不返回 `data`，返回 `task: { generateId, status }`，\n用 `dlazy status <generateId> --wait` 轮询。\n\n文本类模型（如质检）产出在 `result.data.texts[0]`：\n\n```bash\ndlazy claude-sonnet-5 --prompt '...' --images x.jpg \\\n  | python3 -c 'import sys,json;print(json.load(sys.stdin)[\"result\"][\"data\"][\"texts\"][0])'\n```\n\n---\n\n## 五、错误处理\n\n| Code | 类型 | 示例 |\n| --- | --- | --- |\n| 401 | 未授权 / 无 key | `ok: false, code: \"unauthorized\"` |\n| 501 | 缺必填参数 | `error: required option '--prompt <prompt>' not specified` |\n| 502 | 本地文件读不到 | `Error: Image file not found: ...` |\n| 503 | 余额不足 | `ok: false, code: \"insufficient_balance\"` |\n| 503 | 服务端错误 | `HTTP status code error (500)` |\n| 504 | 异步任务失败 | `=== Generation Failed ===` / `Prompt violates safety policy` |\n\n**给 Agent 的硬性要求**\n\n1. 命中 `insufficient_balance` → 明确告诉用户算力不足，并给出充值入口\n   <https://dlazy.com/dashboard/organization/settings?tab=credits>\n2. 命中 `unauthorized` / 缺 key → 告诉用户去 <https://dlazy.com/dashboard/organization/api-key>\n   取 key，用 `dlazy auth set <key>` 存好再继续。\n3. 用 `gen.mjs` 时，429 与 5xx 已自动重试；仍失败才向用户报错。\n4. **不要**为了「跑通」而偷偷降级参数（尺寸、档位、批量），先问用户。\n\nFile v1.0.14:scripts/lib/tasks.json\n\n{\r\n  \"_note\": \"技能 → 默认模型与参数。dlazy 列为默认后端的模型名；其他后端走 providers.mjs 的通用映射，可用 GEN_MODEL_<PROVIDER> 覆盖。\",\r\n  \"_credits\": { \"gpt-image-2\": 60, \"seedream-5.0\": 30, \"seedream-5.0-pro\": 45, \"banana-pro\": 25, \"claude-sonnet-5\": 3 },\r\n  \"tasks\": {\r\n    \"flat-lay\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"wear-everything\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"image-fusion\":            { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"one-shot\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"fission-pattern\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-detail\":             { \"model\": \"seedream-5.0-pro\", \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"creative-scene\":          { \"model\": \"banana-pro\",       \"size\": \"1024x1536\", \"format\": \"jpeg\" },\r\n    \"batch-image\":             { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"to-3d\":                   { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-extraction\":     { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"fabric-on-body\":          { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-detail\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-grass-planting\": { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-selling-point\":      { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"item-change-background\":  { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"remove-watermark\":        { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"material-enhancement\":    { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"item-repair\":             { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"detect-task\":             { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"listing-optimizer\":       { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"cross-border-localize\":   { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"brand-kit\":               { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"platform-compliance\":     { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"main-image-video\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"product-video-ad\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"ugc-testimonial\":         { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true }\r\n  }\r\n}\n\nFile v1.0.14:skill-card.md\n\n## Description:\n\nGenerates Chinese-language e-commerce product-detail image modules from a product photo and supplied selling points.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[dlazyai](https://clawhub.ai/user/dlazyai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nE-commerce sellers and designers use this skill to turn a product photo and verified selling points into Chinese-language product-detail modules for a listing.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Product photos, prompts, and generated outputs may be sent to the configured cloud provider.\n\nMitigation: Use dry-run to review requests and avoid confidential or unreleased images unless the provider's data handling is approved.\n\nRisk: Provider credentials grant access to paid generation services.\n\nMitigation: Use scoped, revocable API keys and keep them out of prompts and shared files.\n\nRisk: Generated Chinese text or product claims may be inaccurate or misleading.\n\nMitigation: Proofread every image and verify product features, specifications, and promotional claims before publication.\n\n## Reference(s):\n\n- [ClawHub item-detail listing](https://clawhub.ai/dlazyai/skills/item-detail)\n- [Provider and CLI reference](references/provider-cli.md)\n- [Model flags reference](references/model-flags.md)\n- [dLazy CLI source](https://github.com/dlazy-ai/cli)\n\n## Skill Output:\n\n**Output Type(s):** [Shell commands, Guidance, Images]\n\n**Output Format:** [Markdown guidance and CLI commands; generated product-detail images saved locally]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Separate image modules may be assembled into a full product-detail page after review.]\n\n## Skill Version(s):\n\n1.0.14 (source: skill frontmatter and server-resolved release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.14:examples/brand.yaml\n\n# ⚠️ 由 scripts/build-skills.mjs 从 shared/examples/brand.yaml 同步生成，不要直接改这里。\r\n# 店铺品牌视觉规范 —— 所有生图技能读这一份，保证几百个 SKU 看起来像同一家店。\r\n#   node scripts/brand.mjs --brand brand.yaml --for flat-lay\r\n#   node scripts/gen.mjs --task flat-lay --brand brand.yaml --prompt '...'\r\n\r\nbrand:\r\n  name: 示例品牌\r\n  # 一句话概括调性，会原样进 prompt\r\n  tone: quiet minimalist, warm and lived-in, never glossy or commercial\r\n\r\nmodel:\r\n  # 锁模特：给一张脸的参考图，所有技能都会把它作为最后一张参考图传入\r\n  reference: assets/model/face-a.jpg\r\n  description: East Asian woman, late twenties, natural makeup, shoulder-length black hair\r\n  body: slim, height around 168cm\r\n\r\nphotography:\r\n  background: seamless off-white studio backdrop, RGB 248 248 246\r\n  lighting: soft large softbox from camera left, gentle fill, no hard shadows\r\n  camera: 85mm equivalent, eye level, shallow depth of field\r\n  grade: neutral white balance around 5200K, low contrast, slightly lifted blacks\r\n  crop: full body with headroom, product centered\r\n\r\nlayout:\r\n  # 给带排版的技能（主图 / 详情页）用\r\n  margin: at least 8% empty margin on all sides\r\n  typeface: clean sans-serif, no decorative fonts\r\n  text_color: near-black on light background\r\n\r\nforbid:\r\n  - no visible brand logos other than the product's own\r\n  - no text or watermark\r\n  - no exaggerated poses or dramatic wind effects\r\n  - no oversaturated colors\r\n\r\n# 可选：把这些直接写进合规目标，生成时就按平台要求出图\r\ncompliance:\r\n  platform: amazon\n\nArchive v1.0.13: 11 files, 25974 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (1874b), references/provider-cli.md (4802b), scripts/brand.mjs (4516b), scripts/gen.mjs (9733b), scripts/lib/miniyaml.mjs (2901b), scripts/lib/providers.mjs (12510b), scripts/lib/tasks.json (3234b), skill-card.md (2698b), SKILL.md (12681b), _meta.json (131b)\n\nFile v1.0.13:SKILL.md\n\n---\nname: item-detail\nversion: 1.0.13\ndescription: 生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。\n---\n\n# item-detail — 一键生成全套商品详情图\n\n一张商品图 + 卖点文案 → **带中文排版的详情页视觉**。\n\n和其他技能的区别：本技能的产出**带文字**。所以模型选型的第一标准是**中文字形渲染能力**——大多数图像模型会把中文画成乱码。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 |\n| --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/product-flatlay.jpg\" width=\"280\"> |\n| `product-flatlay.jpg` — 军绿麻花针织毛衣平铺图，800×800 |\n\n实际执行的命令（首屏 banner 模块）：\n\n```bash\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 中的军绿色麻花针织圆领毛衣的模特上身图（青年男模特，半身，落肩宽松版型），毛衣颜色、麻花织法与菱形提花必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。底部一行三个圆形图标配文字「亲肤不扎」「不易变形」「机洗不缩」。整体米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4 \\\n  --save docs/item-detail/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 3:4 / 2K，5 credits。模特上身图占左侧，毛衣的军绿色、麻花与菱形提花保留；右上标题「粗棒麻花 复古落肩」与副标题「羊毛混纺 · 加厚保暖 · 男女同款」字形正确、层级分明；底部三个线描图标配「亲肤不扎」「不易变形」「机洗不缩」，米灰底暖调，排版对齐。\n\n---\n\n## 1、能力边界\n\n| 产出模块 | 说明 |\n| --- | --- |\n| 首屏 banner | 模特上身图 / 商品图 + 大标题 + 副标题 |\n| 卖点图标行 | 3~4 个圆形图标 + 短文案 |\n| 材质说明块 | 面料/材质特写 + 说明文字 |\n| 细节展示块 | 局部特写 + 工艺说明 |\n| 参数块 | 尺码表 / 规格参数 |\n\n| 输入 | 说明 |\n| --- | --- |\n| 商品图 | 1 张 |\n| 商品类目 | `服饰` `箱包` `鞋品` `婴童用品` `宠物` `家居用品` `美妆` `3C数码` `电器` `家具灯饰` `食品厨具` `珠宝饰品` `工业和农业` `其他` |\n| 商品信息 | 100 字内的卖点，例：`商品卖点：舒适透气、柔软亲肤，适合入群：1个月-2岁宝宝` |\n\n**不做**：不编造商品没有的功能与认证；不生成虚假促销信息与虚假对比数据；不改商品的款式与颜色。\n\n---\n\n## 2、输入素材规则\n\n生成前先自检这几条硬性约束：\n\n- 大小：**20KB ~ 15MB**\n- 分辨率：**大于 400×400**\n- 格式：**jpg / jpeg / png / webp**\n\n**输入建议**\n\n| 做法 | 说明 |\n| --- | --- |\n| ✅ 商品图干净 | 带文字的图会让新排版和旧文字打架，先走 [remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md) |\n| ✅ 卖点写成短句 | `亲肤不扎` 比 `采用优质柔软亲肤面料不刺激皮肤` 好排版 |\n| ✅ 文案字数控制 | 主标题 ≤ 8 字，副标题 ≤ 16 字，图标文案 ≤ 5 字 |\n| ❌ 一个模块塞十条卖点 | 排不下，会挤成乱码 |\n| ❌ 未经核实的功效宣称 | 合规风险 |\n\n---\n\n## 3、中文排版能出对的四个条件\n\n中文详情页最大的失败模式是**乱码**。这四条同时满足才稳定：\n\n| 条件 | 写法 |\n| --- | --- |\n| 1 · 把每一段文案原文写进 prompt | 用「」括起来：`大字「粗棒麻花 复古落肩」`、`小字「羊毛混纺 · 加厚保暖 · 男女同款」` |\n| 2 · 指定字体族与字重 | `字体为无衬线黑体，字号层级分明` |\n| 3 · 指定版式关系 | `右上方留白区排版中文标题`、`底部一行三个圆形图标配文字` |\n| 4 · 显式要求不乱码 | `中文字必须清晰正确无乱码` |\n\n**文案越短越不容易崩**。四字、六字标题的成功率远高于长句。\n\n**分块生成比一次生成整页更稳**：首屏 banner 一条 prompt，卖点块一条，材质块一条，最后用设计工具拼成长图。一次生成整页时，越往下的模块文字越容易崩。\n\n---\n\n## 4、类目 → 版式基调\n\n| 类目 | 背景与色调 | 文案侧重 |\n| --- | --- | --- |\n| 服饰 | 米灰 / 燕麦色，暖调，大留白 | 版型、面料、场合 |\n| 箱包 / 鞋品 | 深灰渐变，硬光，质感优先 | 材质、容量、耐用 |\n| 婴童 / 宠物 | 浅粉 / 奶油色，柔光 | 安全、亲肤、适用月龄 |\n| 美妆 | 大理石 / 丝绒，高对比 | 成分、质地、效果 |\n| 3C / 电器 | 深色科技风，冷光 | 参数、性能、接口 |\n| 家居 / 家具灯饰 | 实景房间，自然光 | 尺寸、材质、搭配 |\n| 食品厨具 | 木质餐桌，暖光 | 原料、工艺、口感 |\n| 珠宝饰品 | 深色绒布，聚光 | 材质、克重、工艺 |\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`seedream-5.0-pro`**（专业档图像模型，在**中文字形与复杂排版**上明显强于同类；本技能的产出带大量中文文案，字形正确率是首要指标）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task item-detail \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/item-detail-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy seedream-5.0-pro --prompt '...' --images ... --save output/item-detail.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[商品图]`（最多 10 张，可加细节图、面料图） | 多图能让各模块用上不同素材 |\n| `--size` | `3:4`（首屏 banner）/ `1:1`（卖点方块）/ `9:16`（长条模块） | 分模块生成，各用合适比例 |\n| `--resolution` | `2k` | 详情页宽度通常 750~1200px，2K 足够 |\n| `--batch` | `2` ~ `3` | 中文排版有随机性，挑字形正确的 |\n| `--save` | `docs/item-detail/output-<sku>-<模块>.jpg` | 按模块归档便于拼长图 |\n\n> **成本提示**：`seedream-5.0-pro` 单张约 5 credits，分模块跑 5 条也只有 25 credits，比反复重跑整页便宜。\n\n### Command Examples\n\n```bash\n# basic call: 首屏 banner\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图，颜色与织法必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。米灰色背景，暖色调，无衬线黑体，排版整齐对齐，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4\n\n# complex call: 分模块跑完一整套详情页\nSRC=docs/item-detail/product-flatlay.jpg\nBASE='米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。'\nKEEP='商品的颜色、麻花织法与菱形提花必须与图1完全一致。'\n\ndlazy seedream-5.0-pro --size 3:4 --images \"$SRC\" --save docs/item-detail/output-sku001-1-banner.jpg \\\n  --prompt \"电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图（青年男模特，半身，落肩宽松版型）。${KEEP} 右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-2-icons.jpg \\\n  --prompt \"电商详情页卖点图标块，正方形。上方一行三个线性圆形图标，图标下方各配四字中文：「亲肤不扎」「不易变形」「机洗不缩」。下方居中一张商品局部特写。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-3-fabric.jpg \\\n  --prompt \"电商详情页面料说明块，正方形。左侧是面料微距特写，右侧竖排中文说明：标题「粗棒羊毛混纺」，正文两行小字「蓬松保暖不压身」「细腻纱线不刺挠」。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 9:16 --images \"$SRC\" --save docs/item-detail/output-sku001-4-size.jpg \\\n  --prompt \"电商详情页尺码块，长条竖版。顶部中文标题「尺码参考」，下方一张三行四列的简洁尺码表格，表头为「尺码」「衣长」「胸围」「袖长」，内容为 S/M/L 三行数字。${BASE}\"\n\n# 先估价不真跑\ndlazy seedream-5.0-pro --dry-run --prompt '...' --images a.jpg --size 3:4\n```\n\n### 延伸阅读\n\n| 要查什么 | 去哪 |\n| --- | --- |\n| 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) |\n| `seedream-5.0-pro` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) |\n| 统一入口的全部选项 | `node scripts/gen.mjs --help` |\n\n## 6、Prompt 模板\n\n```text\n电商[类目]详情页[模块名]，[比例描述]。\n\n[图片区版式]：[位置] 是图1 商品的[形态：模特上身图 / 平铺图 / 微距特写]。\n[保真句]：商品的颜色、[织法/材质]与[图案/结构]必须与图1完全一致。\n\n[文案区版式]：[位置] 排版中文，\n  大字「[主标题 ≤8 字]」，\n  副标题小字「[副标题 ≤16 字]」，\n  [图标行：三个圆形图标配文字「[4字]」「[4字]」「[4字]」]。\n\n[基调]：[类目对应的背景与色调，见第四节]，留白克制，\n字体为无衬线黑体，字号层级分明，排版整齐对齐，\n商业电商详情页设计感，中文字必须清晰正确无乱码。\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 中文乱码 | 缩短文案；把每段原文再重复一次；追加 `所有中文必须是清晰可读的简体汉字，不得出现变形、缺笔或臆造字。` |\n| 文字压在商品上 | `文字区与商品区不得重叠，商品占画面左侧 [X]%，文字区占右侧 [Y]%。` |\n| 排版歪 | `所有文字左对齐到同一条基准线，行距均匀。` |\n| 商品被改 | `商品区域必须与图1一致，不得重绘款式、颜色或图案。` |\n| 图标太花 | `图标为单色细线描风格，线宽一致，不得加渐变或阴影。` |\n| 一次出整页文字崩 | 拆成分模块生成（第三节） |\n\n---\n\n## 7、执行流程\n\n1. **洗干净商品图**（[remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md)），避免新旧文字打架。\n2. **定类目 → 取版式基调**（第四节表格）。\n3. **把卖点压成短句**：主标题 ≤8 字，副标题 ≤16 字，图标文案 ≤5 字。\n4. **拆模块**：banner / 卖点图标 / 材质说明 / 细节 / 尺码——**一个模块一条 prompt**。\n5. **每条 prompt 必须包含四个条件**（原文 + 字体 + 版式 + 不乱码，见第三节）。\n6. **`--batch 2~3`** 挑字形正确的一张，落盘到 `docs/item-detail/`。\n7. **逐字校对中文**（这是最容易出错的地方）→ 用设计工具拼成详情页长图。\n8. **合规检查**：卖点是否有依据、有没有虚假促销与绝对化用语。\n\n---\n\n## 8、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 中文变乱码 | 文案太长 / 未写不乱码约束 | 缩短文案 + 重复原文 + 追加字形约束句 |\n| 越往下的模块文字越崩 | 一次生成整页 | 拆成分模块生成 |\n| 文字压在商品上 | 未划分区域 | 追加区域占比句 |\n| 图标风格花哨不统一 | 未约束风格 | 追加单色细线描、线宽一致句 |\n| 商品被重绘 | 未写保真句 | 追加商品区域保真句 |\n| 卖点被模型加油添醋 | 未限制 | prompt 里只给要出现的原文，并追加 `不得添加未提供的文案` |\n\n---\n\n## Tips\n\nVisit https://dlazy.com for more information.\n\nFile v1.0.13:_meta.json\n\n{\n  \"ownerId\": \"kn7c5wgeajfcfvdfb5ceemvdb984cjpd\",\n  \"slug\": \"item-detail\",\n  \"version\": \"1.0.13\",\n  \"publishedAt\": 1790217529187\n}\n\nFile v1.0.13:references/model-flags.md\n\n# `seedream-5.0-pro` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy seedream-5.0-pro` command to get results.\r\n\r\n```bash\r\ndlazy seedream-5.0-pro -h\r\n\r\nOptions:\r\n  --prompt <prompt>          Prompt\r\n  --images [images...]       Images [image: url or local path] (max 10)\r\n  --resolution <resolution>  Resolution [default: 2k] (choices: \"2k\")\r\n  --size <size>              Size [default: 16:9] (choices: \"1:1\", \"4:3\",\r\n                             \"3:4\", \"16:9\", \"9:16\", \"3:2\", \"2:3\", \"21:9\")\r\n  --dry-run                  Print payload without executing the tool\r\n  --no-wait                  Return generateId immediately for async tasks\r\n  --timeout <seconds>        Max seconds to wait for async completion (default:\r\n                             \"1800\")\r\n  --input <jsonOrFile>       Inline JSON or @path/to/file.json — merged under\r\n                             flag values (flags win)\r\n  --save <path>              Download the result asset to this local path\r\n                             (mkdir + retry handled for you). A destination\r\n                             path — NOT a response format; for stdout shape use\r\n                             --format\r\n  --batch <n>                Fan-out N parallel runs (cloud tools only)\r\n                             (default: \"1\")\r\n  -h, --help                 display help for command\r\n```\r\n\r\n> Any flag also accepts pipe references — `-` (auto-pick from upstream stdin), `@N` (n-th output), `@N.path` (jsonpath into output), `@*` (all primary values), `@stdin` / `@stdin:path` (whole envelope). See `dlazy --help` for details.\r\n\r\n---\r\n\r\n换其他后端时参数由 `scripts/gen.mjs` 统一翻译，见 [`provider-cli.md`](provider-cli.md)。\n\nFile v1.0.13:references/provider-cli.md\n\n<!-- 由 scripts/build-skills.mjs 从 shared/references/provider-cli.md 同步生成，不要直接改这里。 -->\n# 后端调用参考\n\n技能正文只写「要生成什么」。认证、计费、错误码、输出结构这些每个技能都一样的东西放在这里，\n**用到时再读**，不占技能的常驻上下文。\n\n---\n\n## 一、认证\n\n### 默认后端 dLazy\n\n```bash\ndlazy login            # 设备码流程，远程 shell 也能用，自动写入本地配置\ndlazy auth set <KEY>   # 已有 key 时直接写入\n```\n\nkey 存在用户配置目录（macOS/Linux `~/.dlazy/config.json`，Windows `%USERPROFILE%\\.dlazy\\config.json`），\n权限限本机用户。也可以每次调用用环境变量 `DLAZY_API_KEY` 传入。\n\n手动获取：登录 [dlazy.com](https://dlazy.com) → [API Key 页面](https://dlazy.com/dashboard/organization/api-key)。\nkey 按组织隔离，可随时轮换或吊销。\n\n### 其他后端\n\n本技能库不锁定单一厂商。配好任意一家的 key 即可跑：\n\n| 后端 | 环境变量 | 说明 |\n| --- | --- | --- |\n| `dlazy` | `dlazy login` 或 `DLAZY_API_KEY` | 默认，最省事 |\n| `openai` | `OPENAI_API_KEY` | 走 `/v1/images/edits` 与 `/v1/images/generations` |\n| `gemini` | `GEMINI_API_KEY` | Nano Banana 系列 |\n| `fal` | `FAL_KEY` | |\n| `replicate` | `REPLICATE_API_TOKEN` | |\n| `ark` | `ARK_API_KEY` + `ARK_MODEL` | 火山方舟，模型 ID 需按开通情况填 |\n\n选路优先级：`--provider` 参数 > `PROVIDER` 环境变量 > 第一个配了 key 的 > `dlazy`。\n\n```bash\nnode scripts/gen.mjs --doctor     # 看当前哪个后端可用\n```\n\n各后端的模型 ID 可用 `GEN_MODEL_OPENAI` / `GEN_MODEL_GEMINI` / `GEN_MODEL_FAL` /\n`GEN_MODEL_REPLICATE` / `GEN_MODEL_ARK` 覆盖。**厂商目录会变，以各家最新文档为准。**\n\n---\n\n## 二、两种调用方式\n\n### 方式 A：统一入口（推荐）\n\n```bash\nnode scripts/gen.mjs --task <技能名> --prompt '...' --images a.jpg b.jpg --save out.jpg\n```\n\n它负责：后端选路、默认尺寸档位、失败重试（429/5xx 指数退避）、落盘建目录、成本估算。\n\n```bash\nnode scripts/gen.mjs --task flat-lay --prompt '...' --dry-run   # 不调用不计费，只看要发什么\nnode scripts/gen.mjs --help\n```\n\n### 方式 B：直接用 dLazy CLI\n\n不想引入 Node 依赖时，技能正文里的 `dlazy ...` 命令可以原样执行，效果等价。\n\n```bash\nnpx @dlazy/cli@1.2.3 <command>     # 不装全局二进制\n```\n\n- CLI 源码：[github.com/dlazy-ai/cli](https://github.com/dlazy-ai/cli) · npm 包 `@dlazy/cli`\n\n---\n\n## 三、数据流向\n\n调用 dLazy 时：提示词与参数发往 `api.dlazy.com`；传入的本地图片会上传到 `files.dlazy.com`\n供模型读取；产出 URL 同样托管在 `files.dlazy.com`。这是云端生成 API 的通用形态。\n换成其他后端时，数据流向对应厂商，不经过 dLazy。\n\n---\n\n## 四、输出结构\n\n`gen.mjs`（加 `--json`）：\n\n```json\n{\n  \"ok\": true,\n  \"task\": \"flat-lay\",\n  \"provider\": \"dlazy\",\n  \"model\": \"gpt-image-2\",\n  \"files\": [\"docs/flat-lay/output-sku001.jpg\"],\n  \"texts\": [],\n  \"estimatedCredits\": 60,\n  \"elapsedMs\": 58213\n}\n```\n\ndLazy CLI 原生：\n\n```json\n{\n  \"ok\": true,\n  \"result\": {\n    \"tool\": \"gpt-image-2\",\n    \"data\": { \"urls\": [\"https://files.dlazy.com/data/ai/....jpg\"] },\n    \"savedPath\": \"docs/flat-lay/example-output.jpg\"\n  }\n}\n```\n\n加 `--no-wait` 的异步任务不返回 `data`，返回 `task: { generateId, status }`，\n用 `dlazy status <generateId> --wait` 轮询。\n\n文本类模型（如质检）产出在 `result.data.texts[0]`：\n\n```bash\ndlazy claude-sonnet-5 --prompt '...' --images x.jpg \\\n  | python3 -c 'import sys,json;print(json.load(sys.stdin)[\"result\"][\"data\"][\"texts\"][0])'\n```\n\n---\n\n## 五、错误处理\n\n| Code | 类型 | 示例 |\n| --- | --- | --- |\n| 401 | 未授权 / 无 key | `ok: false, code: \"unauthorized\"` |\n| 501 | 缺必填参数 | `error: required option '--prompt <prompt>' not specified` |\n| 502 | 本地文件读不到 | `Error: Image file not found: ...` |\n| 503 | 余额不足 | `ok: false, code: \"insufficient_balance\"` |\n| 503 | 服务端错误 | `HTTP status code error (500)` |\n| 504 | 异步任务失败 | `=== Generation Failed ===` / `Prompt violates safety policy` |\n\n**给 Agent 的硬性要求**\n\n1. 命中 `insufficient_balance` → 明确告诉用户算力不足，并给出充值入口\n   <https://dlazy.com/dashboard/organization/settings?tab=credits>\n2. 命中 `unauthorized` / 缺 key → 告诉用户去 <https://dlazy.com/dashboard/organization/api-key>\n   取 key，用 `dlazy auth set <key>` 存好再继续。\n3. 用 `gen.mjs` 时，429 与 5xx 已自动重试；仍失败才向用户报错。\n4. **不要**为了「跑通」而偷偷降级参数（尺寸、档位、批量），先问用户。\n\nFile v1.0.13:scripts/lib/tasks.json\n\n{\r\n  \"_note\": \"技能 → 默认模型与参数。dlazy 列为默认后端的模型名；其他后端走 providers.mjs 的通用映射，可用 GEN_MODEL_<PROVIDER> 覆盖。\",\r\n  \"_credits\": { \"gpt-image-2\": 60, \"seedream-5.0\": 30, \"seedream-5.0-pro\": 45, \"banana-pro\": 25, \"claude-sonnet-5\": 3 },\r\n  \"tasks\": {\r\n    \"flat-lay\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"wear-everything\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"image-fusion\":            { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"one-shot\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"fission-pattern\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-detail\":             { \"model\": \"seedream-5.0-pro\", \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"creative-scene\":          { \"model\": \"banana-pro\",       \"size\": \"1024x1536\", \"format\": \"jpeg\" },\r\n    \"batch-image\":             { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"to-3d\":                   { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-extraction\":     { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"fabric-on-body\":          { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-detail\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-grass-planting\": { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-selling-point\":      { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"item-change-background\":  { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"remove-watermark\":        { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"material-enhancement\":    { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"item-repair\":             { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"detect-task\":             { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"listing-optimizer\":       { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"cross-border-localize\":   { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"brand-kit\":               { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"platform-compliance\":     { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"main-image-video\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"product-video-ad\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"ugc-testimonial\":         { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true }\r\n  }\r\n}\n\nFile v1.0.13:skill-card.md\n\n## Description:\n\n生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[dlazyai](https://clawhub.ai/user/dlazyai)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal ecommerce sellers, designers, and agent operators use this skill to turn a product image and short selling points into Chinese item-detail page modules with readable typography, layout guidance, and generation commands.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Product photos, prompts, and ecommerce copy may be sent to the selected cloud image-generation provider.\n\nMitigation: Use the documented dry-run mode for visibility first, select the intended provider deliberately, and avoid sending sensitive or unapproved product material.\n\nRisk: Generated detail-page copy or imagery may introduce unsupported claims, false promotions, or product changes.\n\nMitigation: Keep selling points grounded in verified product information, use the skill's prompt constraints against unsupported claims, and review each generated image before publishing.\n\nRisk: API keys are required for cloud providers and could expose generation access if mishandled.\n\nMitigation: Use scoped, revocable keys, store them through the documented provider authentication flow or environment variables, and rotate them when access changes.\n\nRisk: Generated images are written to local paths selected by the operator.\n\nMitigation: Use explicit save paths, review dry-run output before execution, and avoid overwriting important files.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/dlazyai/skills/item-detail)\n- [Provider CLI reference](references/provider-cli.md)\n- [seedream-5.0-pro parameter reference](references/model-flags.md)\n- [dLazy](https://dlazy.com)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Configuration, Files]\n\n**Output Format:** [Markdown guidance with inline bash commands and local image file outputs]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Supports dry-run previews, provider selection, reference images, batch generation, and local save paths.]\n\n## Skill Version(s):\n\n1.0.13 (source: server release evidence and SKILL.md frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.13:examples/brand.yaml\n\n# ⚠️ 由 scripts/build-skills.mjs 从 shared/examples/brand.yaml 同步生成，不要直接改这里。\r\n# 店铺品牌视觉规范 —— 所有生图技能读这一份，保证几百个 SKU 看起来像同一家店。\r\n#   node scripts/brand.mjs --brand brand.yaml --for flat-lay\r\n#   node scripts/gen.mjs --task flat-lay --brand brand.yaml --prompt '...'\r\n\r\nbrand:\r\n  name: 示例品牌\r\n  # 一句话概括调性，会原样进 prompt\r\n  tone: quiet minimalist, warm and lived-in, never glossy or commercial\r\n\r\nmodel:\r\n  # 锁模特：给一张脸的参考图，所有技能都会把它作为最后一张参考图传入\r\n  reference: assets/model/face-a.jpg\r\n  description: East Asian woman, late twenties, natural makeup, shoulder-length black hair\r\n  body: slim, height around 168cm\r\n\r\nphotography:\r\n  background: seamless off-white studio backdrop, RGB 248 248 246\r\n  lighting: soft large softbox from camera left, gentle fill, no hard shadows\r\n  camera: 85mm equivalent, eye level, shallow depth of field\r\n  grade: neutral white balance around 5200K, low contrast, slightly lifted blacks\r\n  crop: full body with headroom, product centered\r\n\r\nlayout:\r\n  # 给带排版的技能（主图 / 详情页）用\r\n  margin: at least 8% empty margin on all sides\r\n  typeface: clean sans-serif, no decorative fonts\r\n  text_color: near-black on light background\r\n\r\nforbid:\r\n  - no visible brand logos other than the product's own\r\n  - no text or watermark\r\n  - no exaggerated poses or dramatic wind effects\r\n  - no oversaturated colors\r\n\r\n# 可选：把这些直接写进合规目标，生成时就按平台要求出图\r\ncompliance:\r\n  platform: amazon\n\nArchive v1.0.12: 11 files, 25875 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (1874b), references/provider-cli.md (4802b), scripts/brand.mjs (4516b), scripts/gen.mjs (9733b), scripts/lib/miniyaml.mjs (2901b), scripts/lib/providers.mjs (12510b), scripts/lib/tasks.json (3234b), skill-card.md (2519b), SKILL.md (12681b), _meta.json (131b)\n\nFile v1.0.12:SKILL.md\n\n---\nname: item-detail\nversion: 1.0.12\ndescription: 生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。\n---\n\n# item-detail — 一键生成全套商品详情图\n\n一张商品图 + 卖点文案 → **带中文排版的详情页视觉**。\n\n和其他技能的区别：本技能的产出**带文字**。所以模型选型的第一标准是**中文字形渲染能力**——大多数图像模型会把中文画成乱码。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 |\n| --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/product-flatlay.jpg\" width=\"280\"> |\n| `product-flatlay.jpg` — 军绿麻花针织毛衣平铺图，800×800 |\n\n实际执行的命令（首屏 banner 模块）：\n\n```bash\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 中的军绿色麻花针织圆领毛衣的模特上身图（青年男模特，半身，落肩宽松版型），毛衣颜色、麻花织法与菱形提花必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。底部一行三个圆形图标配文字「亲肤不扎」「不易变形」「机洗不缩」。整体米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4 \\\n  --save docs/item-detail/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 3:4 / 2K，5 credits。模特上身图占左侧，毛衣的军绿色、麻花与菱形提花保留；右上标题「粗棒麻花 复古落肩」与副标题「羊毛混纺 · 加厚保暖 · 男女同款」字形正确、层级分明；底部三个线描图标配「亲肤不扎」「不易变形」「机洗不缩」，米灰底暖调，排版对齐。\n\n---\n\n## 1、能力边界\n\n| 产出模块 | 说明 |\n| --- | --- |\n| 首屏 banner | 模特上身图 / 商品图 + 大标题 + 副标题 |\n| 卖点图标行 | 3~4 个圆形图标 + 短文案 |\n| 材质说明块 | 面料/材质特写 + 说明文字 |\n| 细节展示块 | 局部特写 + 工艺说明 |\n| 参数块 | 尺码表 / 规格参数 |\n\n| 输入 | 说明 |\n| --- | --- |\n| 商品图 | 1 张 |\n| 商品类目 | `服饰` `箱包` `鞋品` `婴童用品` `宠物` `家居用品` `美妆` `3C数码` `电器` `家具灯饰` `食品厨具` `珠宝饰品` `工业和农业` `其他` |\n| 商品信息 | 100 字内的卖点，例：`商品卖点：舒适透气、柔软亲肤，适合入群：1个月-2岁宝宝` |\n\n**不做**：不编造商品没有的功能与认证；不生成虚假促销信息与虚假对比数据；不改商品的款式与颜色。\n\n---\n\n## 2、输入素材规则\n\n生成前先自检这几条硬性约束：\n\n- 大小：**20KB ~ 15MB**\n- 分辨率：**大于 400×400**\n- 格式：**jpg / jpeg / png / webp**\n\n**输入建议**\n\n| 做法 | 说明 |\n| --- | --- |\n| ✅ 商品图干净 | 带文字的图会让新排版和旧文字打架，先走 [remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md) |\n| ✅ 卖点写成短句 | `亲肤不扎` 比 `采用优质柔软亲肤面料不刺激皮肤` 好排版 |\n| ✅ 文案字数控制 | 主标题 ≤ 8 字，副标题 ≤ 16 字，图标文案 ≤ 5 字 |\n| ❌ 一个模块塞十条卖点 | 排不下，会挤成乱码 |\n| ❌ 未经核实的功效宣称 | 合规风险 |\n\n---\n\n## 3、中文排版能出对的四个条件\n\n中文详情页最大的失败模式是**乱码**。这四条同时满足才稳定：\n\n| 条件 | 写法 |\n| --- | --- |\n| 1 · 把每一段文案原文写进 prompt | 用「」括起来：`大字「粗棒麻花 复古落肩」`、`小字「羊毛混纺 · 加厚保暖 · 男女同款」` |\n| 2 · 指定字体族与字重 | `字体为无衬线黑体，字号层级分明` |\n| 3 · 指定版式关系 | `右上方留白区排版中文标题`、`底部一行三个圆形图标配文字` |\n| 4 · 显式要求不乱码 | `中文字必须清晰正确无乱码` |\n\n**文案越短越不容易崩**。四字、六字标题的成功率远高于长句。\n\n**分块生成比一次生成整页更稳**：首屏 banner 一条 prompt，卖点块一条，材质块一条，最后用设计工具拼成长图。一次生成整页时，越往下的模块文字越容易崩。\n\n---\n\n## 4、类目 → 版式基调\n\n| 类目 | 背景与色调 | 文案侧重 |\n| --- | --- | --- |\n| 服饰 | 米灰 / 燕麦色，暖调，大留白 | 版型、面料、场合 |\n| 箱包 / 鞋品 | 深灰渐变，硬光，质感优先 | 材质、容量、耐用 |\n| 婴童 / 宠物 | 浅粉 / 奶油色，柔光 | 安全、亲肤、适用月龄 |\n| 美妆 | 大理石 / 丝绒，高对比 | 成分、质地、效果 |\n| 3C / 电器 | 深色科技风，冷光 | 参数、性能、接口 |\n| 家居 / 家具灯饰 | 实景房间，自然光 | 尺寸、材质、搭配 |\n| 食品厨具 | 木质餐桌，暖光 | 原料、工艺、口感 |\n| 珠宝饰品 | 深色绒布，聚光 | 材质、克重、工艺 |\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`seedream-5.0-pro`**（专业档图像模型，在**中文字形与复杂排版**上明显强于同类；本技能的产出带大量中文文案，字形正确率是首要指标）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task item-detail \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/item-detail-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy seedream-5.0-pro --prompt '...' --images ... --save output/item-detail.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[商品图]`（最多 10 张，可加细节图、面料图） | 多图能让各模块用上不同素材 |\n| `--size` | `3:4`（首屏 banner）/ `1:1`（卖点方块）/ `9:16`（长条模块） | 分模块生成，各用合适比例 |\n| `--resolution` | `2k` | 详情页宽度通常 750~1200px，2K 足够 |\n| `--batch` | `2` ~ `3` | 中文排版有随机性，挑字形正确的 |\n| `--save` | `docs/item-detail/output-<sku>-<模块>.jpg` | 按模块归档便于拼长图 |\n\n> **成本提示**：`seedream-5.0-pro` 单张约 5 credits，分模块跑 5 条也只有 25 credits，比反复重跑整页便宜。\n\n### Command Examples\n\n```bash\n# basic call: 首屏 banner\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图，颜色与织法必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。米灰色背景，暖色调，无衬线黑体，排版整齐对齐，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4\n\n# complex call: 分模块跑完一整套详情页\nSRC=docs/item-detail/product-flatlay.jpg\nBASE='米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。'\nKEEP='商品的颜色、麻花织法与菱形提花必须与图1完全一致。'\n\ndlazy seedream-5.0-pro --size 3:4 --images \"$SRC\" --save docs/item-detail/output-sku001-1-banner.jpg \\\n  --prompt \"电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图（青年男模特，半身，落肩宽松版型）。${KEEP} 右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-2-icons.jpg \\\n  --prompt \"电商详情页卖点图标块，正方形。上方一行三个线性圆形图标，图标下方各配四字中文：「亲肤不扎」「不易变形」「机洗不缩」。下方居中一张商品局部特写。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-3-fabric.jpg \\\n  --prompt \"电商详情页面料说明块，正方形。左侧是面料微距特写，右侧竖排中文说明：标题「粗棒羊毛混纺」，正文两行小字「蓬松保暖不压身」「细腻纱线不刺挠」。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 9:16 --images \"$SRC\" --save docs/item-detail/output-sku001-4-size.jpg \\\n  --prompt \"电商详情页尺码块，长条竖版。顶部中文标题「尺码参考」，下方一张三行四列的简洁尺码表格，表头为「尺码」「衣长」「胸围」「袖长」，内容为 S/M/L 三行数字。${BASE}\"\n\n# 先估价不真跑\ndlazy seedream-5.0-pro --dry-run --prompt '...' --images a.jpg --size 3:4\n```\n\n### 延伸阅读\n\n| 要查什么 | 去哪 |\n| --- | --- |\n| 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) |\n| `seedream-5.0-pro` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) |\n| 统一入口的全部选项 | `node scripts/gen.mjs --help` |\n\n## 6、Prompt 模板\n\n```text\n电商[类目]详情页[模块名]，[比例描述]。\n\n[图片区版式]：[位置] 是图1 商品的[形态：模特上身图 / 平铺图 / 微距特写]。\n[保真句]：商品的颜色、[织法/材质]与[图案/结构]必须与图1完全一致。\n\n[文案区版式]：[位置] 排版中文，\n  大字「[主标题 ≤8 字]」，\n  副标题小字「[副标题 ≤16 字]」，\n  [图标行：三个圆形图标配文字「[4字]」「[4字]」「[4字]」]。\n\n[基调]：[类目对应的背景与色调，见第四节]，留白克制，\n字体为无衬线黑体，字号层级分明，排版整齐对齐，\n商业电商详情页设计感，中文字必须清晰正确无乱码。\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 中文乱码 | 缩短文案；把每段原文再重复一次；追加 `所有中文必须是清晰可读的简体汉字，不得出现变形、缺笔或臆造字。` |\n| 文字压在商品上 | `文字区与商品区不得重叠，商品占画面左侧 [X]%，文字区占右侧 [Y]%。` |\n| 排版歪 | `所有文字左对齐到同一条基准线，行距均匀。` |\n| 商品被改 | `商品区域必须与图1一致，不得重绘款式、颜色或图案。` |\n| 图标太花 | `图标为单色细线描风格，线宽一致，不得加渐变或阴影。` |\n| 一次出整页文字崩 | 拆成分模块生成（第三节） |\n\n---\n\n## 7、执行流程\n\n1. **洗干净商品图**（[remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md)），避免新旧文字打架。\n2. **定类目 → 取版式基调**（第四节表格）。\n3. **把卖点压成短句**：主标题 ≤8 字，副标题 ≤16 字，图标文案 ≤5 字。\n4. **拆模块**：banner / 卖点图标 / 材质说明 / 细节 / 尺码——**一个模块一条 prompt**。\n5. **每条 prompt 必须包含四个条件**（原文 + 字体 + 版式 + 不乱码，见第三节）。\n6. **`--batch 2~3`** 挑字形正确的一张，落盘到 `docs/item-detail/`。\n7. **逐字校对中文**（这是最容易出错的地方）→ 用设计工具拼成详情页长图。\n8. **合规检查**：卖点是否有依据、有没有虚假促销与绝对化用语。\n\n---\n\n## 8、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 中文变乱码 | 文案太长 / 未写不乱码约束 | 缩短文案 + 重复原文 + 追加字形约束句 |\n| 越往下的模块文字越崩 | 一次生成整页 | 拆成分模块生成 |\n| 文字压在商品上 | 未划分区域 | 追加区域占比句 |\n| 图标风格花哨不统一 | 未约束风格 | 追加单色细线描、线宽一致句 |\n| 商品被重绘 | 未写保真句 | 追加商品区域保真句 |\n| 卖点被模型加油添醋 | 未限制 | prompt 里只给要出现的原文，并追加 `不得添加未提供的文案` |\n\n---\n\n## Tips\n\nVisit https://dlazy.com for more information.\n\nFile v1.0.12:_meta.json\n\n{\n  \"ownerId\": \"kn7c5wgeajfcfvdfb5ceemvdb984cjpd\",\n  \"slug\": \"item-detail\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1790041317759\n}\n\nFile v1.0.12:references/model-flags.md\n\n# `seedream-5.0-pro` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy seedream-5.0-pro` command to get results.\r\n\r\n```bash\r\ndlazy seedream-5.0-pro -h\r\n\r\nOptions:\r\n  --prompt <prompt>          Prompt\r\n  --images [images...]       Images [image: url or local path] (max 10)\r\n  --resolution <resolution>  Resolution [default: 2k] (choices: \"2k\")\r\n  --size <size>              Size [default: 16:9] (choices: \"1:1\", \"4:3\",\r\n                             \"3:4\", \"16:9\", \"9:16\", \"3:2\", \"2:3\", \"21:9\")\r\n  --dry-run                  Print payload without executing the tool\r\n  --no-wait                  Return generateId immediately for async tasks\r\n  --timeout <seconds>        Max seconds to wait for async completion (default:\r\n                             \"1800\")\r\n  --input <jsonOrFile>       Inline JSON or @path/to/file.json — merged under\r\n                             flag values (flags win)\r\n  --save <path>              Download the result asset to this local path\r\n                             (mkdir + retry handled for you). A destination\r\n                             path — NOT a response format; for stdout shape use\r\n                             --format\r\n  --batch <n>                Fan-out N parallel runs (cloud tools only)\r\n                             (default: \"1\")\r\n  -h, --help                 display help for command\r\n```\r\n\r\n> Any flag also accepts pipe references — `-` (auto-pick from upstream stdin), `@N` (n-th output), `@N.path` (jsonpath into output), `@*` (all primary values), `@stdin` / `@stdin:path` (whole envelope). See `dlazy --help` for details.\r\n\r\n---\r\n\r\n换其他后端时参数由 `scripts/gen.mjs` 统一翻译，见 [`provider-cli.md`](provider-cli.md)。\n\nFile v1.0.12:references/provider-cli.md\n\n<!-- 由 scripts/build-skills.mjs 从 shared/references/provider-cli.md 同步生成，不要直接改这里。 -->\n# 后端调用参考\n\n技能正文只写「要生成什么」。认证、计费、错误码、输出结构这些每个技能都一样的东西放在这里，\n**用到时再读**，不占技能\n\nArchive v1.0.11: 11 files, 25789 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (1874b), references/provider-cli.md (4802b), scripts/brand.mjs (4516b), scripts/gen.mjs (9733b), scripts/lib/miniyaml.mjs (2901b), scripts/lib/providers.mjs (12510b), scripts/lib/tasks.json (3234b), skill-card.md (2187b), SKILL.md (12681b), _meta.json (131b)\n\nArchive v1.0.10: 11 files, 25792 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (1874b), references/provider-cli.md (4802b), scripts/brand.mjs (4516b), scripts/gen.mjs (9733b), scripts/lib/miniyaml.mjs (2901b), scripts/lib/providers.mjs (12510b), scripts/lib/tasks.json (3234b), skill-card.md (2520b), SKILL.md (12681b), _meta.json (131b)","readmeExcerpt":"Skill: 商品详情图生成 Item Detail Owner: dlazyai Summary: 生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。 Tags: latest:1.0.19 Version history: v1.0.19 | 2026-10-10T01:51:40.654Z | user 例行版本更新 2026-10-10 v1.0.18 | 2026-10-08T01:44:15.698Z | user 例行版本更新 2026-10-08 v1.0.17 | 2026-10-04T01:44:14.832Z | user 例行版本更新 2026-10-04 v1.0.16 | 2026-10-02T05:16:47.405Z | user 例行版本更新 2026-10-02 v1.0.15 | 2026-09-3","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"dlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 中的军绿色麻花针织圆领毛衣的模特上身图（青年男模特，半身，落肩宽松版型），毛衣颜色、麻花织法与菱形提花必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。底部一行三个圆形图标配文字「亲肤不扎」「不易变形」「机洗不缩」。整体米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4 \\\n  --save docs/item-detail/example-output.jpg"},{"language":"bash","snippet":"# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task item-detail \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/item-detail-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy seedream-5.0-pro --prompt '...' --images ... --save output/item-detail.jpg"},{"language":"bash","snippet":"# basic call: 首屏 banner\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图，颜色与织法必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。米灰色背景，暖色调，无衬线黑体，排版整齐对齐，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4\n\n# complex call: 分模块跑完一整套详情页\nSRC=docs/item-detail/product-flatlay.jpg\nBASE='米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。'\nKEEP='商品的颜色、麻花织法与菱形提花必须与图1完全一致。'\n\ndlazy seedream-5.0-pro --size 3:4 --images \"$SRC\" --save docs/item-detail/output-sku001-1-banner.jpg \\\n  --prompt \"电商服饰详情页首屏 banner，竖版。左侧是图1 商品的模特上身图（青年男模特，半身，落肩宽松版型）。${KEEP} 右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-2-icons.jpg \\\n  --prompt \"电商详情页卖点图标块，正方形。上方一行三个线性圆形图标，图标下方各配四字中文：「亲肤不扎」「不易变形」「机洗不缩」。下方居中一张商品局部特写。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 1:1 --images \"$SRC\" --save docs/item-detail/output-sku001-3-fabric.jpg \\\n  --prompt \"电商详情页面料说明块，正方形。左侧是面料微距特写，右侧竖排中文说明：标题「粗棒羊毛混纺」，正文两行小字「蓬松保暖不压身」「细腻纱线不刺挠」。${KEEP} ${BASE}\"\n\ndlazy seedream-5.0-pro --size 9:16 --images \"$SRC\" --save docs/item-detail/output-sku001-4-size.jpg \\\n  --prompt \"电商详情页尺码块，长条竖版。顶部中文标题「尺码参考」，下方一张三行四列的简洁尺码表格，表头为「尺码」「衣长」「胸围」「袖长」，内容为 S/M/L 三行数字。${BASE}\"\n\n# 先估价不真跑\ndlazy seedream-5.0-pro --dry-run --prompt '...' --images a.jpg --size 3:4"},{"language":"text","snippet":"电商[类目]详情页[模块名]，[比例描述]。\n\n[图片区版式]：[位置] 是图1 商品的[形态：模特上身图 / 平铺图 / 微距特写]。\n[保真句]：商品的颜色、[织法/材质]与[图案/结构]必须与图1完全一致。\n\n[文案区版式]：[位置] 排版中文，\n  大字「[主标题 ≤8 字]」，\n  副标题小字「[副标题 ≤16 字]」，\n  [图标行：三个圆形图标配文字「[4字]」「[4字]」「[4字]」]。\n\n[基调]：[类目对应的背景与色调，见第四节]，留白克制，\n字体为无衬线黑体，字号层级分明，排版整齐对齐，\n商业电商详情页设计感，中文字必须清晰正确无乱码。"},{"language":"bash","snippet":"dlazy login            # 设备码流程，远程 shell 也能用，自动写入本地配置\ndlazy auth set <KEY>   # 已有 key 时直接写入"},{"language":"bash","snippet":"node scripts/gen.mjs --doctor     # 看当前哪个后端可用"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: item-detail\nversion: 1.0.19\ndescription: 生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。\n---\n\n# item-detail — 一键生成全套商品详情图\n\n一张商品图 + 卖点文案 → **带中文排版的详情页视觉**。\n\n和其他技能的区别：本技能的产出**带文字**。所以模型选型的第一标准是**中文字形渲染能力**——大多数图像模型会把中文画成乱码。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 |\n| --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/product-flatlay.jpg\" width=\"280\"> |\n| `product-flatlay.jpg` — 军绿麻花针织毛衣平铺图，800×800 |\n\n实际执行的命令（首屏 banner 模块）：\n\n```bash\ndlazy seedream-5.0-pro \\\n  --prompt '电商服饰详情页首屏 banner，竖版。左侧是图1 中的军绿色麻花针织圆领毛衣的模特上身图（青年男模特，半身，落肩宽松版型），毛衣颜色、麻花织法与菱形提花必须与图1一致。右上方留白区排版中文标题，大字「粗棒麻花 复古落肩」，副标题小字「羊毛混纺 · 加厚保暖 · 男女同款」。底部一行三个圆形图标配文字「亲肤不扎」「不易变形」「机洗不缩」。整体米灰色背景，暖色调，留白克制，字体为无衬线黑体，排版整齐对齐，商业电商详情页设计感，中文字必须清晰正确无乱码。' \\\n  --images docs/item-detail/product-flatlay.jpg --size 3:4 \\\n  --save docs/item-detail/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/item-detail/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 3:4 / 2K，5 credits。模特上身图占左侧，毛衣的军绿色、麻花与菱形提花保留；右上标题「粗棒麻花 复古落肩」与副标题「羊毛混纺 · 加厚保暖 · 男女同款」字形正确、层级分明；底部三个线描图标配「亲肤不扎」「不易变形」「机洗不缩」，米灰底暖调，排版对齐。\n\n---\n\n## 1、能力边界\n\n| 产出模块 | 说明 |\n| --- | --- |\n| 首屏 banner | 模特上身图 / 商品图 + 大标题 + 副标题 |\n| 卖点图标行 | 3~4 个圆形图标 + 短文案 |\n| 材质说明块 | 面料/材质特写 + 说明文字 |\n| 细节展示块 | 局部特写 + 工艺说明 |\n| 参数块 | 尺码表 / 规格参数 |\n\n| 输入 | 说明 |\n| --- | --- |\n| 商品图 | 1 张 |\n| 商品类目 | `服饰` `箱包` `鞋品` `婴童用品` `宠物` `家居用品` `美妆` `3C数码` `电器` `家具灯饰` `食品厨具` `珠宝饰品` `工业和农业` `其他` |\n| 商品信息 | 100 字内的卖点，例：`商品卖点：舒适透气、柔软亲肤，适合入群：1个月-2岁宝宝` |\n\n**不做**：不编造商品没有的功能与认证；不生成虚假促销信息与虚假对比数据；不改商品的款式与颜色。\n\n---\n\n## 2、输入素材规则\n\n生成前先自检这几条硬性约束：\n\n- 大小：**20KB ~ 15MB**\n- 分辨率：**大于 400×400**\n- 格式：**jpg / jpeg / png / webp**\n\n**输入建议**\n\n| 做法 | 说明 |\n| --- | --- |\n| ✅ 商品图干净 | 带文字的图会让新排版和旧文字打架，先走 [remove-watermark](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/remove-watermark/skill.md) |\n| ✅ 卖点写成短句 | `亲肤不扎` 比 `采用优质柔软亲肤面料不刺激皮肤` 好排版 |\n| ✅ 文案字数控制 | 主标题 ≤ 8 字，副标题 ≤ 16 字，图标文案 ≤ 5 字 |\n| ❌ 一个模块塞十条卖点 | 排不下，会挤成乱码 |\n| ❌ 未经核实的功效宣称 | 合规风险 |\n\n---\n\n## 3、中文排版能出对的四个条件\n\n中文详情页最大的失败模式是**乱码**。这四条同时满足才稳定：\n\n| 条件 | 写法 |\n| --- | --- |\n| 1 · 把每一段文案原文写进 prompt | 用「」括起来：`大字「粗棒麻花 复古落肩」`、`小字「羊毛混纺 · 加厚保暖 · 男女同款」` |\n| 2 · 指定字体族与字重 | `字体为无衬线黑体，字号层级分明` |\n| 3 · 指定版式关系 | `右上方留白区排版中文标题`、`底部一行三个圆形图标配文字` |\n| 4 · 显式要求不乱码 | `中文字必须清晰正确无乱码` |\n\n**文案越短越不容易崩**。四字、六字标题的成功率远高于长句。\n\n**分块生成比一次生成整页更稳**：首屏 banner 一条 prompt，卖点块一条，材质块一条，最后用设计工具拼成长图。一次生成整页时，越往下的模块文字越容易崩。\n\n---\n\n## 4、类目 → 版式基调\n\n| 类目 | 背景与色调 | 文案侧重 |\n| --- | --- | --- |\n| 服饰 | 米灰 / 燕麦色，暖调，大留白 | 版型、面料、场合 |\n| 箱包 / 鞋品 | 深灰渐变，硬光，质感优先 | 材质、容量、耐用 |\n| 婴童 / 宠物 | 浅粉 / 奶油色，柔光 | 安全、亲肤、适用月龄 |\n| 美妆 | 大理石 / 丝绒，高对比 | 成分、质地、效果 |\n| 3C / 电器 | 深色科技风，冷光 | 参数、性能、接口 |\n| 家居 / 家具灯饰 | 实景房间，自然光 | 尺寸、材质、搭配 |\n| 食品厨具 | 木质餐桌，暖光 | 原料、工艺、口感 |\n| 珠宝饰品 | 深色绒布，聚光 | 材质、克重、工艺 |\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`seedream-5.0-pro`**（专业档图像模型，在**中文字形与复杂排版**上明显强于同类；本技能的产出带大量中文文案，字形正确率是首要指标）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs "},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7c5wgeajfcfvdfb5ceemvdb984cjpd\",\n  \"slug\": \"item-detail\",\n  \"version\": \"1.0.19\",\n  \"publishedAt\": 1791597100654\n}"},{"path":"references/model-flags.md","content":"# `seedream-5.0-pro` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy seedream-5.0-pro` command to get results.\r\n\r\n```bash\r\ndlazy seedream-5.0-pro -h\r\n\r\nOptions:\r\n  --prompt <prompt>          Prompt\r\n  --images [images...]       Images [image: url or local path] (max 10)\r\n  --resolution <resolution>  Resolution [default: 2k] (choices: \"2k\")\r\n  --size <size>              Size [default: 16:9] (choices: \"1:1\", \"4:3\",\r\n                             \"3:4\", \"16:9\", \"9:16\", \"3:2\", \"2:3\", \"21:9\")\r\n  --dry-run                  Print payload without executing the tool\r\n  --no-wait                  Return generateId immediately for async tasks\r\n  --timeout <seconds>        Max seconds to wait for async completion (default:\r\n                             \"1800\")\r\n  --input <jsonOrFile>       Inline JSON or @path/to/file.json — merged under\r\n                             flag values (flags win)\r\n  --save <path>              Download the result asset to this local path\r\n                             (mkdir + retry handled for you). A destination\r\n                             path — NOT a response format; for stdout shape use\r\n                             --format\r\n  --batch <n>                Fan-out N parallel runs (cloud tools only)\r\n                             (default: \"1\")\r\n  -h, --help                 display help for command\r\n```\r\n\r\n> Any flag also accepts pipe references — `-` (auto-pick from upstream stdin), `@N` (n-th output), `@N.path` (jsonpath into output), `@*` (all primary values), `@stdin` / `@stdin:path` (whole envelope). See `dlazy --help` for details.\r\n\r\n---\r\n\r\n换其他后端时参数由 `scripts/gen.mjs` 统一翻译，见 [`provider-cli.md`](provider-cli.md)。"},{"path":"references/provider-cli.md","content":"<!-- 由 scripts/build-skills.mjs 从 shared/references/provider-cli.md 同步生成，不要直接改这里。 -->\n# 后端调用参考\n\n技能正文只写「要生成什么」。认证、计费、错误码、输出结构这些每个技能都一样的东西放在这里，\n**用到时再读**，不占技能的常驻上下文。\n\n---\n\n## 一、认证\n\n### 默认后端 dLazy\n\n```bash\ndlazy login            # 设备码流程，远程 shell 也能用，自动写入本地配置\ndlazy auth set <KEY>   # 已有 key 时直接写入\n```\n\nkey 存在用户配置目录（macOS/Linux `~/.dlazy/config.json`，Windows `%USERPROFILE%\\.dlazy\\config.json`），\n权限限本机用户。也可以每次调用用环境变量 `DLAZY_API_KEY` 传入。\n\n手动获取：登录 [dlazy.com](https://dlazy.com) → [API Key 页面](https://dlazy.com/dashboard/organization/api-key)。\nkey 按组织隔离，可随时轮换或吊销。\n\n### 其他后端\n\n本技能库不锁定单一厂商。配好任意一家的 key 即可跑：\n\n| 后端 | 环境变量 | 说明 |\n| --- | --- | --- |\n| `dlazy` | `dlazy login` 或 `DLAZY_API_KEY` | 默认，最省事 |\n| `openai` | `OPENAI_API_KEY` | 走 `/v1/images/edits` 与 `/v1/images/generations` |\n| `gemini` | `GEMINI_API_KEY` | Nano Banana 系列 |\n| `fal` | `FAL_KEY` | |\n| `replicate` | `REPLICATE_API_TOKEN` | |\n| `ark` | `ARK_API_KEY` + `ARK_MODEL` | 火山方舟，模型 ID 需按开通情况填 |\n\n选路优先级：`--provider` 参数 > `PROVIDER` 环境变量 > 第一个配了 key 的 > `dlazy`。\n\n```bash\nnode scripts/gen.mjs --doctor     # 看当前哪个后端可用\n```\n\n各后端的模型 ID 可用 `GEN_MODEL_OPENAI` / `GEN_MODEL_GEMINI` / `GEN_MODEL_FAL` /\n`GEN_MODEL_REPLICATE` / `GEN_MODEL_ARK` 覆盖。**厂商目录会变，以各家最新文档为准。**\n\n---\n\n## 二、两种调用方式\n\n### 方式 A：统一入口（推荐）\n\n```bash\nnode scripts/gen.mjs --task <技能名> --prompt '...' --images a.jpg b.jpg --save out.jpg\n```\n\n它负责：后端选路、默认尺寸档位、失败重试（429/5xx 指数退避）、落盘建目录、成本估算。\n\n```bash\nnode scripts/gen.mjs --task flat-lay --prompt '...' --dry-run   # 不调用不计费，只看要发什么\nnode scripts/gen.mjs --help\n```\n\n### 方式 B：直接用 dLazy CLI\n\n不想引入 Node 依赖时，技能正文里的 `dlazy ...` 命令可以原样执行，效果等价。\n\n```bash\nnpx @dlazy/cli@1.2.3 <command>     # 不装全局二进制\n```\n\n- CLI 源码：[github.com/dlazy-ai/cli](https://github.com/dlazy-ai/cli) · npm 包 `@dlazy/cli`\n\n---\n\n## 三、数据流向\n\n调用 dLazy 时：提示词与参数发往 `api.dlazy.com`；传入的本地图片会上传到 `files.dlazy.com`\n供模型读取；产出 URL 同样托管在 `files.dlazy.com`。这是云端生成 API 的通用形态。\n换成其他后端时，数据流向对应厂商，不经过 dLazy。\n\n---\n\n## 四、输出结构\n\n`gen.mjs`（加 `--json`）：\n\n```json\n{\n  \"ok\": true,\n  \"task\": \"flat-lay\",\n  \"provider\": \"dlazy\",\n  \"model\": \"gpt-image-2\",\n  \"files\": [\"docs/flat-lay/output-sku001.jpg\"],\n  \"texts\": [],\n  \"estimatedCredits\": 60,\n  \"elapsedMs\": 58213\n}\n```\n\ndLazy CLI 原生：\n\n```json\n{\n  \"ok\": true,\n  \"result\": {\n    \"tool\": \"gpt-image-2\",\n    \"data\": { \"urls\": [\"https://files.dlazy.com/data/ai/....jpg\"] },\n    \"savedPath\": \"docs/flat-lay/example-output.jpg\"\n  }\n}\n```\n\n加 `--no-wait` 的异步任务不返回 `data`，返回 `task: { generateId, status }`，\n用 `dlazy status <generateId> --wait` 轮询。\n\n文本类模型（如质检）产出在 `result.data.texts[0]`：\n\n```bash\ndlazy claude-sonnet-5 --prompt '...' --images x.jpg \\\n  | python3 -c 'import sys,json;print(json.load(sys.stdin)[\"result\"][\"data\"][\"texts\"][0])'\n```\n\n---\n\n## 五、错误处理\n\n| Code | 类型 | 示例 |\n| --- | --- | --- |\n| 401 | 未授权 / 无 key | `ok: false, code: \"unauthorized\"` |\n| 501 | 缺必填参数 | `error: required option '--prompt <prompt>' not specified` |\n| 502 | 本地文件读不到 | `Error: Image file not found: ...` |\n| 503 | 余额不足 | `ok: false, code: \"insufficient_balance\"` |\n| 503 | 服务端错误 | `HTT"},{"path":"scripts/lib/tasks.json","content":"{\r\n  \"_note\": \"技能 → 默认模型与参数。dlazy 列为默认后端的模型名；其他后端走 providers.mjs 的通用映射，可用 GEN_MODEL_<PROVIDER> 覆盖。\",\r\n  \"_credits\": { \"gpt-image-2\": 60, \"seedream-5.0\": 30, \"seedream-5.0-pro\": 45, \"banana-pro\": 25, \"claude-sonnet-5\": 3 },\r\n  \"tasks\": {\r\n    \"flat-lay\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"wear-everything\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"image-fusion\":            { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"one-shot\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"fission-pattern\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-detail\":             { \"model\": \"seedream-5.0-pro\", \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"creative-scene\":          { \"model\": \"banana-pro\",       \"size\": \"1024x1536\", \"format\": \"jpeg\" },\r\n    \"batch-image\":             { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"to-3d\":                   { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-extraction\":     { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"fabric-on-body\":          { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-detail\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-grass-planting\": { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-selling-point\":      { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"item-change-background\":  { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"remove-watermark\":        { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"material-enhancement\":    { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"item-repair\":             { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"detect-task\":             { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"listing-optimizer\":       { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"cross-border-localize\":   { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"brand-kit\":               { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"platform-compliance\":     { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"main-image-video\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"product-"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。 Skill: 商品详情图生成 Item Detail Owner: dlazyai Summary: 生成带中文排版的详情页模块。商品图 + 卖点 → 可直接上架的详情页图文模块。当用户说「详情页」「做详情图」「商品描述图」「详情页模块」时使用。 Tags: latest:1.0.19 Version history: v1.0.19 | 2026-10-10T01:51:40.654Z | user 例行版本更新 2026-10-10 v1.0.18 | 2026-10-08T01:44:15.698Z | user 例行版本更新 2026-10-08 v1.0.17 | 2026-10-04T01:44:14.832Z | user 例行版本更新 2026-10-04 v1.0.16 | 2026-10-02T05:16:47.405Z | user 例行版本更新 2026-10-02 v1.0.15 | 2026-09-3","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1006,"uniquenessScore":49,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T20:37:07.135Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-10T20:37:07.135Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-10T22:49:13.759Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}