{"id":"05bafa38-cce1-40e5-b50b-fdda081aac87","entityType":"agent","slug":"clawhub-dlazyai-wear-everything","name":"鞋包配饰真人穿戴 Wear Everything","canonicalUrl":"https://www.xpersona.co/agent/clawhub-dlazyai-wear-everything","canonicalPath":"/agent/clawhub-dlazyai-wear-everything","generatedAt":"2026-10-10T21:52:27.616Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T18:49:31.281Z","emptyReason":null},"description":"鞋包配饰真人穿戴图。商品图 + 模特参考图 → 真人佩戴图，落位、透视与阴影自然。当用户说「鞋包上脚」「配饰上身」「墨镜戴上」「首饰佩戴图」「包包上身」时使用。 Skill: 鞋包配饰真人穿戴 Wear Everything Owner: dlazyai Summary: 鞋包配饰真人穿戴图。商品图 + 模特参考图 → 真人佩戴图，落位、透视与阴影自然。当用户说「鞋包上脚」「配饰上身」「墨镜戴上」「首饰佩戴图」「包包上身」时使用。 Tags: latest:1.0.19 Version history: v1.0.19 | 2026-10-10T01:58:16.209Z | user 例行版本更新 2026-10-10 v1.0.18 | 2026-10-08T01:48:58.741Z | user 例行版本更新 2026-10-08 v1.0.17 | 2026-10-04T01:48:24.739Z | user 例行版本更新 2026-10-04 v1.0.16 | 2026-10-02T05:19:49.585Z | user 例行版本更新 2026-10-02 v1.0.1","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:wear-everything","sourceUrl":"https://clawhub.ai/dlazyai/wear-everything","homepage":"https://clawhub.ai/dlazyai/skills/wear-everything","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/dlazyai/wear-everything","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/dlazyai/skills/wear-everything","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"鞋包配饰真人穿戴图。商品图 + 模特参考图 → 真人佩戴图，落位、透视与阴影自然。当用户说「鞋包上脚」「配饰上身」「墨镜戴上」「首饰佩戴图」「包包上身」时使用。 Skill: 鞋包配饰真人穿戴 Wear Everything Owner: dlazyai Summary: 鞋包配饰真人穿戴图。商品图 + 模特参考图 →"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T18:49:31.281Z","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-10T18:49:31.281Z","emptyReason":null},"stars":null,"forks":null,"downloads":1290,"packageName":null,"latestVersion":"1.0.19","tractionLabel":"1.3K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T18:49:31.281Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T18:49:31.281Z","lastCrawledAt":"2026-10-10T18:49:31.281Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T18:49:31.281Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.19","createdAt":"2026-10-10T01:58:16.209Z","changelog":"例行版本更新 2026-10-10","fileCount":11,"zipByteSize":25956},{"version":"1.0.18","createdAt":"2026-10-08T01:48:58.741Z","changelog":"例行版本更新 2026-10-08","fileCount":11,"zipByteSize":25912},{"version":"1.0.17","createdAt":"2026-10-04T01:48:24.739Z","changelog":"例行版本更新 2026-10-04","fileCount":11,"zipByteSize":25986},{"version":"1.0.16","createdAt":"2026-10-02T05:19:49.585Z","changelog":"例行版本更新 2026-10-02","fileCount":11,"zipByteSize":25932},{"version":"1.0.15","createdAt":"2026-09-30T01:52:51.384Z","changelog":"例行版本更新 2026-09-30","fileCount":11,"zipByteSize":25918},{"version":"1.0.14","createdAt":"2026-09-28T02:41:10.644Z","changelog":"例行版本更新 2026-09-28","fileCount":11,"zipByteSize":25933},{"version":"1.0.13","createdAt":"2026-09-24T02:42:36.937Z","changelog":"例行版本更新 2026-09-24","fileCount":11,"zipByteSize":26141},{"version":"1.0.12","createdAt":"2026-09-22T01:45:52.815Z","changelog":"例行版本更新 2026-09-22","fileCount":11,"zipByteSize":26091}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s170j1ymymrxasgd00dsk7tckx84cf45:wear-everything","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-wear-everything/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-wear-everything/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-wear-everything/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-wear-everything/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-wear-everything/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-wear-everything/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-10T21:52:27.613Z"}},"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-wear-everything/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-wear-everything/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-wear-everything/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-wear-everything/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-10T18:49:31.281Z","emptyReason":null},"readme":"Skill: 鞋包配饰真人穿戴 Wear Everything\n\nOwner: dlazyai\n\nSummary: 鞋包配饰真人穿戴图。商品图 + 模特参考图 → 真人佩戴图，落位、透视与阴影自然。当用户说「鞋包上脚」「配饰上身」「墨镜戴上」「首饰佩戴图」「包包上身」时使用。\n\nTags: latest:1.0.19\n\nVersion history:\n\nv1.0.19 | 2026-10-10T01:58:16.209Z | user\n\n例行版本更新 2026-10-10\n\nv1.0.18 | 2026-10-08T01:48:58.741Z | user\n\n例行版本更新 2026-10-08\n\nv1.0.17 | 2026-10-04T01:48:24.739Z | user\n\n例行版本更新 2026-10-04\n\nv1.0.16 | 2026-10-02T05:19:49.585Z | user\n\n例行版本更新 2026-10-02\n\nv1.0.15 | 2026-09-30T01:52:51.384Z | user\n\n例行版本更新 2026-09-30\n\nv1.0.14 | 2026-09-28T02:41:10.644Z | user\n\n例行版本更新 2026-09-28\n\nv1.0.13 | 2026-09-24T02:42:36.937Z | user\n\n例行版本更新 2026-09-24\n\nv1.0.12 | 2026-09-22T01:45:52.815Z | user\n\n例行版本更新 2026-09-22\n\nv1.0.11 | 2026-09-20T01:59:06.640Z | user\n\n例行版本更新 2026-09-20\n\nv1.0.10 | 2026-09-18T02:17:12.682Z | user\n\n例行版本更新 2026-09-18\n\nv1.0.9 | 2026-09-14T01:52:56.941Z | user\n\n例行版本更新 2026-09-14\n\nv1.0.8 | 2026-09-10T01:39:26.693Z | user\n\n例行版本更新 2026-09-10\n\nv1.0.7 | 2026-09-08T01:47:02.079Z | user\n\n例行版本更新 2026-09-08\n\nv1.0.6 | 2026-09-07T01:55:52.501Z | user\n\n例行版本更新 2026-09-07\n\nv1.0.5 | 2026-09-04T01:47:17.001Z | user\n\n例行版本更新 2026-09-04\n\nv1.0.4 | 2026-09-02T01:42:50.139Z | user\n\n例行版本更新 2026-09-02\n\nv1.0.3 | 2026-08-31T07:10:01.594Z | user\n\n源码仓库迁移至 github.com/dlazy-ai/ecommerce-skills\n\nv1.0.2 | 2026-08-31T05:28:55.575Z | user\n\n源码仓库迁移至 github.com/dlazy-ai/ecommerce-skills\n\nv1.0.1 | 2026-08-29T04:19:00.484Z | user\n\nSync from GitHub\n\nv1.0.0 | 2026-08-18T04:45:22.879Z | user\n\nSync from GitHub\n\nArchive index:\n\nArchive v1.0.19: 11 files, 25956 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (2144b), 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 (2113b), SKILL.md (12603b), _meta.json (135b)\n\nFile v1.0.19:SKILL.md\n\n---\nname: wear-everything\nversion: 1.0.19\ndescription: 鞋包配饰真人穿戴图。商品图 + 模特参考图 → 真人佩戴图，落位、透视与阴影自然。当用户说「鞋包上脚」「配饰上身」「墨镜戴上」「首饰佩戴图」「包包上身」时使用。\n---\n\n# wear-everything — 鞋包配饰一键真人穿戴\n\n把一张**鞋 / 包 / 手表 / 眼镜 / 帽子 / 围巾 / 项链 / 耳饰**的商品图，变成**真人正确佩戴**的商拍图。\n\n和 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md) 的区别：flat-lay 处理「穿在身上的衣服」，本技能处理「戴在身上的东西」——商品只占画面的一小块区域，因此**选区（商品出现在参考图的哪个位置）**是成败关键。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 | 输入：参考图 |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/product-sunglasses.jpg\" width=\"280\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/model-reference.jpg\" width=\"280\"> |\n| `product-sunglasses.jpg` — 玳瑁色方框墨镜，768×1024 | `model-reference.jpg` — 女青年正脸、夜景街拍，768×1024 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory product photography. Image 1 is the product: a pair of tortoise-brown rectangular sunglasses with dark grey lenses. Image 2 is the model/scene reference. Put the sunglasses from image 1 onto the face of the model in image 2, correctly seated on the nose bridge and ears with natural perspective, realistic lens reflections and a soft shadow on the cheekbones. Keep the product 100% faithful: identical frame shape, tortoise-brown acetate color and grain, hinge and temple design, lens tint. Change nothing else — face, hair, scarf, coat, bag chain, night street background, colour grading and crop must stay pixel-identical to image 2. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality medium --imageFormat jpeg \\\n  --save docs/wear-everything/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536。墨镜按正确的鼻梁/耳挂关系落位，镜框玳瑁纹理与镜片色保留；模特五官、围巾千鸟格、夜景街道与色调保持原样。\n\n---\n\n## 1、能力边界\n\n| 能力 | 说明 |\n| --- | --- |\n| 单视角图 | 上传 1 张商品图（正面或主视角） |\n| 多视角图 | 上传同一商品的多个角度，帮助模型理解立体结构（鞋侧面+鞋底、包正面+内里） |\n| 参考图 | 提供真人模特、姿势、场景与光线 |\n| 选区 | 在参考图上框出商品该出现的位置（眼部 / 手腕 / 颈部 / 脚部 / 肩背 / 头顶） |\n| 支持品类 | 鞋、包、手表、眼镜墨镜、帽子、围巾、项链、耳饰、腰带、手套等 |\n\n**不做**：不改商品外形、颜色、五金、logo 与镜片色；不处理服装（用 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md)）；不用于伪造他人肖像代言。\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| 时尚皮鞋 | 单只或一双完整入画，主视角 |\n| 优雅手表 | 表盘正面清晰，表带完整 |\n| 珍珠项链 | 摊开或悬挂，链身完整 |\n| 渔夫帽 | 帽型完整，纹理清晰 |\n| 防晒墨镜 | 镜框展开，镜片颜色真实 |\n\n**会明显拉低效果的输入（❌）**\n\n| 问题 | 说明 |\n| --- | --- |\n| 商品不完整 | 只拍到一半的鞋、被裁掉链扣的项链 |\n| 挂件过多 | 包上挂满吊饰、丝巾，模型分不清主体 |\n| 商品不清晰 | 模糊、过曝、金属反光糊成一片 |\n\n---\n\n## 3、选区：本技能最重要的参数\n\n原站在参考图上直接框选，本技能改用 **prompt 显式指定解剖位置 + 佩戴姿态**，等价且更可控：\n\n| 品类 | 选区描述（写进 prompt） |\n| --- | --- |\n| 眼镜 / 墨镜 | `seated on the nose bridge and hooked over both ears, temples visible along the cheekbones` |\n| 手表 | `on the left wrist, dial facing the camera, strap closed with the buckle on the underside` |\n| 项链 | `around the neck, clasp at the nape, pendant centred on the collarbone` |\n| 耳饰 | `on the visible earlobe, hanging naturally with correct scale` |\n| 帽子 | `on the head, brim angle matching the head tilt, hair falling naturally around it` |\n| 围巾 | `wrapped twice around the neck, fringe hanging over the chest` |\n| 鞋 | `on both feet, soles contacting the ground with correct perspective and grounded shadows` |\n| 包 | `held in the right hand / on the left shoulder, strap resting on the shoulder line with fabric compression` |\n\n**必须同时写死「其他区域不许动」**，否则模型会顺手重绘人脸和背景：\n\n```text\nChange nothing else — face, hair, clothing, background, colour grading and crop\nmust stay pixel-identical to image 2.\n```\n\n---\n\n## 4、参考图挑选维度\n\n- 类目：`女装 / 男装 / 童装`；地区：`国内 / 海外`；类型：`电商 / 种草`\n- 筛选：性别 `男 / 女`；年龄 `婴儿 / 小童 / 大童 / 青少年 / 青年人 / 中年人 / 老年人`；肤色 `欧美人 / 非洲人 / 亚洲人 / 其他肤色`\n\n挑选建议：\n\n- **必须露出穿戴部位**。戴眼镜要正脸或微侧脸；戴手表要手腕入画且不被袖口遮住；穿鞋要脚部完整不被裙摆挡住。\n- **原图上最好没有同类商品**。参考图模特已经戴了另一副眼镜时，模型容易两副叠加——优先选空手空脸的参考图，或在 prompt 里明确 `replace the existing sunglasses`。\n- 光线方向要和商品图接近，否则金属反光会不自然。\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`gpt-image-2`**（多图参考的图像编辑合成模型，最多 5 张参考图；配饰穿戴属于局部替换，需要强指令跟随与区域保持能力）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task wear-everything \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/wear-everything-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/wear-everything.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[商品图, 参考图]`；多视角时 `[商品图1, 商品图2, 参考图]` | 顺序即 prompt 中的 image 1 / 2 / 3 |\n| `--size` | `1024x1536`（半身/全身佩戴）；`1024x1024`（手腕、耳饰等特写） | 按景别选 |\n| `--quality` | `high`（金属、镜片、皮革反光）；`medium`（布类配饰） | 反光材质需要高档位 |\n| `--imageFormat` | `jpeg` | 电商上架通用格式 |\n| `--batch` | `2` ~ `4` | 佩戴位置有随机性，多出几张挑图 |\n| `--save` | `docs/wear-everything/output-<sku>.jpg` | 直接落盘 |\n\n### Command Examples\n\n```bash\n# basic call: 单视角（商品图 + 参考图）\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product, image 2 is the model/scene reference. Put the product from image 1 onto the model in image 2, seated on the nose bridge and hooked over both ears. Keep the product identical in shape, colour, material and logo. Change nothing else — face, hair, clothing, background and crop stay pixel-identical to image 2.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 多视角商品 + 一次出 4 张挑图 + 直接落盘\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product front view, image 2 is the product side view, image 3 is the model/scene reference. Put the shoes onto both feet of the model in image 3, soles contacting the ground with correct perspective and grounded shadows. Preserve the patent finish, brogue perforation, lacing and lug sole exactly. Change nothing else — the model, clothing, pose, background and colour grading stay identical to image 3. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/shoe-front.jpg docs/wear-everything/shoe-side.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --batch 4 --save docs/wear-everything/output-sku001.jpg\n\n# 先估价不真跑\ndlazy gpt-image-2 --dry-run --prompt '...' --images a.jpg b.jpg --size 1024x1536 --quality high\n```\n\n### 延伸阅读\n\n| 要查什么 | 去哪 |\n| --- | --- |\n| 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) |\n| `gpt-image-2` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) |\n| 统一入口的全部选项 | `node scripts/gen.mjs --help` |\n\n## 6、Prompt 模板\n\n```text\nOn-model accessory product photography.\nImage 1 is the product: [品类 + 颜色 + 材质，例：a pair of tortoise-brown rectangular sunglasses with dark grey lenses].\nImage 2 is the model / scene reference.\n\nPut the product from image 1 onto the model in image 2, [选区描述，见第三节表格],\nwith natural perspective, correct scale, realistic [反光/投影描述] and a soft contact shadow.\n\nKeep the product 100% faithful: identical [外形], [颜色与材质], [五金/镜片/纹理], [logo 位置].\n\nChange nothing else — face, hair, clothing, accessories, background, colour grading\nand crop must stay pixel-identical to image 2.\n\nPhotorealistic, no text, no watermark.\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 佩戴位置偏了 | `The product must be anatomically correctly placed — re-check the [部位] alignment against the model's [参照点].` |\n| 商品比例不对 | `Match real-world scale: the product's width must be about [X] of the [参照部位] width.` |\n| 出现了两个同类商品 | `Remove the existing [同类商品] the model is wearing and replace it with the product from image 1.` |\n| 人脸/背景被改动 | `Change only the [部位] region. Keep every other pixel identical to image 2.` |\n| 金属/镜片反光假 | `Render physically plausible reflections: [环境] reflected on the [材质], consistent with the light direction in image 2.` |\n\n---\n\n## 7、执行流程\n\n1. **校验输入**：尺寸 / 分辨率 / 格式；剔除不完整、挂件过多、模糊的商品图。\n2. **判断视角**：结构简单（眼镜、项链）→ 单视角即可；结构复杂（鞋、包）→ 传 2~3 个角度。\n3. **挑参考图**：确认穿戴部位完整露出、没有同类商品遮挡、光向与商品图接近。\n4. **写选区**：从第三节表格取对应句子，务必同时写「其他区域不许动」。\n5. **`--dry-run` 估价**，确认 credits 后真跑。\n6. **`--batch 2~4` 出多张挑图**，落盘到 `docs/wear-everything/`。\n7. **质检**：佩戴位置、商品比例、反光合理性、是否叠加了两个商品、人脸是否被改。\n\n---\n\n## 8、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 眼镜歪了 / 悬空 | 未写解剖位置 | 补第三节的选区句，明确鼻梁与耳挂关系 |\n| 鞋子没踩在地上 | 缺少接地约束 | 追加 `soles contacting the ground with correct perspective and grounded shadows` |\n| 商品尺寸明显偏大偏小 | 模型没有比例参照 | 追加比例句，给出与参照部位的宽度比 |\n| 画面里出现两副眼镜 | 参考图模特原本就戴着 | 追加 `replace the existing …`，或换空脸参考图 |\n| 人脸被换了 | 模型重绘整图 | 追加 `Change only the [部位] region. Keep every other pixel identical to image 2.` |\n| 金属反光像塑料 | `--quality medium` | 改 `--quality high` |\n| 包的内里结构错乱 | 只给了正面 | 改多视角图，补内里/侧面 |\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\": \"wear-everything\",\n  \"version\": \"1.0.19\",\n  \"publishedAt\": 1791597496209\n}\n\nFile v1.0.19:references/model-flags.md\n\n# `gpt-image-2` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy gpt-image-2` command to get results.\r\n\r\n```bash\r\ndlazy gpt-image-2 -h\r\n\r\nOptions:\r\n  --prompt <prompt>            Prompt\r\n  --images [images...]         Images [image: url or local path] (max 5)\r\n  --size <size>                Size [default: auto] (choices: \"1024x1024\",\r\n                               \"1536x1024\", \"1024x1536\", \"2048x2048\",\r\n                               \"2048x1152\", \"3840x2160\", \"2160x3840\", \"auto\")\r\n  --imageFormat <imageFormat>  Image Format [default: jpeg] (choices: \"jpeg\",\r\n                               \"png\", \"webp\")\r\n  --quality <quality>          Quality [default: medium] (choices: \"low\",\r\n                               \"medium\", \"high\")\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\r\n                               (default: \"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\r\n                               use --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\nHelps create on-model ecommerce images of shoes, bags, and accessories from product photos and model reference images.\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 teams and creators use this skill to place product accessories onto a model reference image while checking fit, product details, lighting, and preservation of the original scene.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Product and model photos, prompts, and brand constraints may be sent to the selected cloud provider.\n\nMitigation: Use dry-run first and select an approved provider before sharing sensitive assets.\n\nRisk: Provider credentials and installed CLI packages can expose access or incur charges if not managed carefully.\n\nMitigation: Keep API keys scoped and revocable, and prefer pinned trusted CLI packages.\n\nRisk: Generated images may misrepresent product details or imply an unauthorized endorsement.\n\nMitigation: Review product fidelity and model likeness before publication; do not use the skill to fabricate endorsements.\n\n## Reference(s):\n\n- [Wear Everything skill listing](https://clawhub.ai/dlazyai/skills/wear-everything)\n- [Provider setup and data flow](artifact/references/provider-cli.md)\n- [Image generation options](artifact/references/model-flags.md)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Images]\n\n**Output Format:** [Markdown guidance and shell commands; generated image files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Generates on-model product images saved locally; cloud providers may also return hosted image URLs.]\n\n## Skill Version(s):\n\n1.0.19 (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.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, 25912 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (2144b), 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 (2104b), SKILL.md (12603b), _meta.json (135b)\n\nFile v1.0.18:SKILL.md\n\n---\nname: wear-everything\nversion: 1.0.18\ndescription: 鞋包配饰真人穿戴图。商品图 + 模特参考图 → 真人佩戴图，落位、透视与阴影自然。当用户说「鞋包上脚」「配饰上身」「墨镜戴上」「首饰佩戴图」「包包上身」时使用。\n---\n\n# wear-everything — 鞋包配饰一键真人穿戴\n\n把一张**鞋 / 包 / 手表 / 眼镜 / 帽子 / 围巾 / 项链 / 耳饰**的商品图，变成**真人正确佩戴**的商拍图。\n\n和 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md) 的区别：flat-lay 处理「穿在身上的衣服」，本技能处理「戴在身上的东西」——商品只占画面的一小块区域，因此**选区（商品出现在参考图的哪个位置）**是成败关键。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 | 输入：参考图 |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/product-sunglasses.jpg\" width=\"280\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/model-reference.jpg\" width=\"280\"> |\n| `product-sunglasses.jpg` — 玳瑁色方框墨镜，768×1024 | `model-reference.jpg` — 女青年正脸、夜景街拍，768×1024 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory product photography. Image 1 is the product: a pair of tortoise-brown rectangular sunglasses with dark grey lenses. Image 2 is the model/scene reference. Put the sunglasses from image 1 onto the face of the model in image 2, correctly seated on the nose bridge and ears with natural perspective, realistic lens reflections and a soft shadow on the cheekbones. Keep the product 100% faithful: identical frame shape, tortoise-brown acetate color and grain, hinge and temple design, lens tint. Change nothing else — face, hair, scarf, coat, bag chain, night street background, colour grading and crop must stay pixel-identical to image 2. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality medium --imageFormat jpeg \\\n  --save docs/wear-everything/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536。墨镜按正确的鼻梁/耳挂关系落位，镜框玳瑁纹理与镜片色保留；模特五官、围巾千鸟格、夜景街道与色调保持原样。\n\n---\n\n## 1、能力边界\n\n| 能力 | 说明 |\n| --- | --- |\n| 单视角图 | 上传 1 张商品图（正面或主视角） |\n| 多视角图 | 上传同一商品的多个角度，帮助模型理解立体结构（鞋侧面+鞋底、包正面+内里） |\n| 参考图 | 提供真人模特、姿势、场景与光线 |\n| 选区 | 在参考图上框出商品该出现的位置（眼部 / 手腕 / 颈部 / 脚部 / 肩背 / 头顶） |\n| 支持品类 | 鞋、包、手表、眼镜墨镜、帽子、围巾、项链、耳饰、腰带、手套等 |\n\n**不做**：不改商品外形、颜色、五金、logo 与镜片色；不处理服装（用 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md)）；不用于伪造他人肖像代言。\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| 时尚皮鞋 | 单只或一双完整入画，主视角 |\n| 优雅手表 | 表盘正面清晰，表带完整 |\n| 珍珠项链 | 摊开或悬挂，链身完整 |\n| 渔夫帽 | 帽型完整，纹理清晰 |\n| 防晒墨镜 | 镜框展开，镜片颜色真实 |\n\n**会明显拉低效果的输入（❌）**\n\n| 问题 | 说明 |\n| --- | --- |\n| 商品不完整 | 只拍到一半的鞋、被裁掉链扣的项链 |\n| 挂件过多 | 包上挂满吊饰、丝巾，模型分不清主体 |\n| 商品不清晰 | 模糊、过曝、金属反光糊成一片 |\n\n---\n\n## 3、选区：本技能最重要的参数\n\n原站在参考图上直接框选，本技能改用 **prompt 显式指定解剖位置 + 佩戴姿态**，等价且更可控：\n\n| 品类 | 选区描述（写进 prompt） |\n| --- | --- |\n| 眼镜 / 墨镜 | `seated on the nose bridge and hooked over both ears, temples visible along the cheekbones` |\n| 手表 | `on the left wrist, dial facing the camera, strap closed with the buckle on the underside` |\n| 项链 | `around the neck, clasp at the nape, pendant centred on the collarbone` |\n| 耳饰 | `on the visible earlobe, hanging naturally with correct scale` |\n| 帽子 | `on the head, brim angle matching the head tilt, hair falling naturally around it` |\n| 围巾 | `wrapped twice around the neck, fringe hanging over the chest` |\n| 鞋 | `on both feet, soles contacting the ground with correct perspective and grounded shadows` |\n| 包 | `held in the right hand / on the left shoulder, strap resting on the shoulder line with fabric compression` |\n\n**必须同时写死「其他区域不许动」**，否则模型会顺手重绘人脸和背景：\n\n```text\nChange nothing else — face, hair, clothing, background, colour grading and crop\nmust stay pixel-identical to image 2.\n```\n\n---\n\n## 4、参考图挑选维度\n\n- 类目：`女装 / 男装 / 童装`；地区：`国内 / 海外`；类型：`电商 / 种草`\n- 筛选：性别 `男 / 女`；年龄 `婴儿 / 小童 / 大童 / 青少年 / 青年人 / 中年人 / 老年人`；肤色 `欧美人 / 非洲人 / 亚洲人 / 其他肤色`\n\n挑选建议：\n\n- **必须露出穿戴部位**。戴眼镜要正脸或微侧脸；戴手表要手腕入画且不被袖口遮住；穿鞋要脚部完整不被裙摆挡住。\n- **原图上最好没有同类商品**。参考图模特已经戴了另一副眼镜时，模型容易两副叠加——优先选空手空脸的参考图，或在 prompt 里明确 `replace the existing sunglasses`。\n- 光线方向要和商品图接近，否则金属反光会不自然。\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`gpt-image-2`**（多图参考的图像编辑合成模型，最多 5 张参考图；配饰穿戴属于局部替换，需要强指令跟随与区域保持能力）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task wear-everything \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/wear-everything-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/wear-everything.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[商品图, 参考图]`；多视角时 `[商品图1, 商品图2, 参考图]` | 顺序即 prompt 中的 image 1 / 2 / 3 |\n| `--size` | `1024x1536`（半身/全身佩戴）；`1024x1024`（手腕、耳饰等特写） | 按景别选 |\n| `--quality` | `high`（金属、镜片、皮革反光）；`medium`（布类配饰） | 反光材质需要高档位 |\n| `--imageFormat` | `jpeg` | 电商上架通用格式 |\n| `--batch` | `2` ~ `4` | 佩戴位置有随机性，多出几张挑图 |\n| `--save` | `docs/wear-everything/output-<sku>.jpg` | 直接落盘 |\n\n### Command Examples\n\n```bash\n# basic call: 单视角（商品图 + 参考图）\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product, image 2 is the model/scene reference. Put the product from image 1 onto the model in image 2, seated on the nose bridge and hooked over both ears. Keep the product identical in shape, colour, material and logo. Change nothing else — face, hair, clothing, background and crop stay pixel-identical to image 2.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 多视角商品 + 一次出 4 张挑图 + 直接落盘\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product front view, image 2 is the product side view, image 3 is the model/scene reference. Put the shoes onto both feet of the model in image 3, soles contacting the ground with correct perspective and grounded shadows. Preserve the patent finish, brogue perforation, lacing and lug sole exactly. Change nothing else — the model, clothing, pose, background and colour grading stay identical to image 3. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/shoe-front.jpg docs/wear-everything/shoe-side.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --batch 4 --save docs/wear-everything/output-sku001.jpg\n\n# 先估价不真跑\ndlazy gpt-image-2 --dry-run --prompt '...' --images a.jpg b.jpg --size 1024x1536 --quality high\n```\n\n### 延伸阅读\n\n| 要查什么 | 去哪 |\n| --- | --- |\n| 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) |\n| `gpt-image-2` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) |\n| 统一入口的全部选项 | `node scripts/gen.mjs --help` |\n\n## 6、Prompt 模板\n\n```text\nOn-model accessory product photography.\nImage 1 is the product: [品类 + 颜色 + 材质，例：a pair of tortoise-brown rectangular sunglasses with dark grey lenses].\nImage 2 is the model / scene reference.\n\nPut the product from image 1 onto the model in image 2, [选区描述，见第三节表格],\nwith natural perspective, correct scale, realistic [反光/投影描述] and a soft contact shadow.\n\nKeep the product 100% faithful: identical [外形], [颜色与材质], [五金/镜片/纹理], [logo 位置].\n\nChange nothing else — face, hair, clothing, accessories, background, colour grading\nand crop must stay pixel-identical to image 2.\n\nPhotorealistic, no text, no watermark.\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 佩戴位置偏了 | `The product must be anatomically correctly placed — re-check the [部位] alignment against the model's [参照点].` |\n| 商品比例不对 | `Match real-world scale: the product's width must be about [X] of the [参照部位] width.` |\n| 出现了两个同类商品 | `Remove the existing [同类商品] the model is wearing and replace it with the product from image 1.` |\n| 人脸/背景被改动 | `Change only the [部位] region. Keep every other pixel identical to image 2.` |\n| 金属/镜片反光假 | `Render physically plausible reflections: [环境] reflected on the [材质], consistent with the light direction in image 2.` |\n\n---\n\n## 7、执行流程\n\n1. **校验输入**：尺寸 / 分辨率 / 格式；剔除不完整、挂件过多、模糊的商品图。\n2. **判断视角**：结构简单（眼镜、项链）→ 单视角即可；结构复杂（鞋、包）→ 传 2~3 个角度。\n3. **挑参考图**：确认穿戴部位完整露出、没有同类商品遮挡、光向与商品图接近。\n4. **写选区**：从第三节表格取对应句子，务必同时写「其他区域不许动」。\n5. **`--dry-run` 估价**，确认 credits 后真跑。\n6. **`--batch 2~4` 出多张挑图**，落盘到 `docs/wear-everything/`。\n7. **质检**：佩戴位置、商品比例、反光合理性、是否叠加了两个商品、人脸是否被改。\n\n---\n\n## 8、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 眼镜歪了 / 悬空 | 未写解剖位置 | 补第三节的选区句，明确鼻梁与耳挂关系 |\n| 鞋子没踩在地上 | 缺少接地约束 | 追加 `soles contacting the ground with correct perspective and grounded shadows` |\n| 商品尺寸明显偏大偏小 | 模型没有比例参照 | 追加比例句，给出与参照部位的宽度比 |\n| 画面里出现两副眼镜 | 参考图模特原本就戴着 | 追加 `replace the existing …`，或换空脸参考图 |\n| 人脸被换了 | 模型重绘整图 | 追加 `Change only the [部位] region. Keep every other pixel identical to image 2.` |\n| 金属反光像塑料 | `--quality medium` | 改 `--quality high` |\n| 包的内里结构错乱 | 只给了正面 | 改多视角图，补内里/侧面 |\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\": \"wear-everything\",\n  \"version\": \"1.0.18\",\n  \"publishedAt\": 1791424138741\n}\n\nFile v1.0.18:references/model-flags.md\n\n# `gpt-image-2` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy gpt-image-2` command to get results.\r\n\r\n```bash\r\ndlazy gpt-image-2 -h\r\n\r\nOptions:\r\n  --prompt <prompt>            Prompt\r\n  --images [images...]         Images [image: url or local path] (max 5)\r\n  --size <size>                Size [default: auto] (choices: \"1024x1024\",\r\n                               \"1536x1024\", \"1024x1536\", \"2048x2048\",\r\n                               \"2048x1152\", \"3840x2160\", \"2160x3840\", \"auto\")\r\n  --imageFormat <imageFormat>  Image Format [default: jpeg] (choices: \"jpeg\",\r\n                               \"png\", \"webp\")\r\n  --quality <quality>          Quality [default: medium] (choices: \"low\",\r\n                               \"medium\", \"high\")\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\r\n                               (default: \"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\r\n                               use --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\nCreates on-model ecommerce images of shoes, bags, and accessories from product and model reference photos.\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 teams and creators use product and model reference images to generate realistic on-model product photos of shoes, bags, and accessories.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Selected product and model images and prompts are sent to the chosen image-generation provider.\n\nMitigation: Use only images approved for sharing, and confirm the selected provider and request with a dry run before generating.\n\nRisk: Edited images could imply a false endorsement or use a person's likeness without consent.\n\nMitigation: Use reference images you have rights to edit; obtain consent and avoid fake endorsements.\n\nRisk: Generated placement, product details, or the model's appearance may differ from the references.\n\nMitigation: Review each output for accurate product details, realistic placement, and unintended changes before publishing.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/dlazyai/skills/wear-everything)\n- [Provider setup and output guide](references/provider-cli.md)\n- [Image model options](references/model-flags.md)\n- [dLazy CLI](https://github.com/dlazy-ai/cli)\n\n## Skill Output:\n\n**Output Type(s):** [Images, Shell commands, Guidance]\n\n**Output Format:** [Saved image files and Markdown guidance with shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Supports multiple product views and batch generation; generated images need visual review.]\n\n## Skill Version(s):\n\n1.0.18 (source: skill frontmatter and ClawHub 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, 25986 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (2144b), 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 (2195b), SKILL.md (12603b), _meta.json (135b)\n\nFile v1.0.17:SKILL.md\n\n---\nname: wear-everything\nversion: 1.0.17\ndescription: 鞋包配饰真人穿戴图。商品图 + 模特参考图 → 真人佩戴图，落位、透视与阴影自然。当用户说「鞋包上脚」「配饰上身」「墨镜戴上」「首饰佩戴图」「包包上身」时使用。\n---\n\n# wear-everything — 鞋包配饰一键真人穿戴\n\n把一张**鞋 / 包 / 手表 / 眼镜 / 帽子 / 围巾 / 项链 / 耳饰**的商品图，变成**真人正确佩戴**的商拍图。\n\n和 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md) 的区别：flat-lay 处理「穿在身上的衣服」，本技能处理「戴在身上的东西」——商品只占画面的一小块区域，因此**选区（商品出现在参考图的哪个位置）**是成败关键。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 | 输入：参考图 |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/product-sunglasses.jpg\" width=\"280\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/model-reference.jpg\" width=\"280\"> |\n| `product-sunglasses.jpg` — 玳瑁色方框墨镜，768×1024 | `model-reference.jpg` — 女青年正脸、夜景街拍，768×1024 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory product photography. Image 1 is the product: a pair of tortoise-brown rectangular sunglasses with dark grey lenses. Image 2 is the model/scene reference. Put the sunglasses from image 1 onto the face of the model in image 2, correctly seated on the nose bridge and ears with natural perspective, realistic lens reflections and a soft shadow on the cheekbones. Keep the product 100% faithful: identical frame shape, tortoise-brown acetate color and grain, hinge and temple design, lens tint. Change nothing else — face, hair, scarf, coat, bag chain, night street background, colour grading and crop must stay pixel-identical to image 2. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality medium --imageFormat jpeg \\\n  --save docs/wear-everything/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536。墨镜按正确的鼻梁/耳挂关系落位，镜框玳瑁纹理与镜片色保留；模特五官、围巾千鸟格、夜景街道与色调保持原样。\n\n---\n\n## 1、能力边界\n\n| 能力 | 说明 |\n| --- | --- |\n| 单视角图 | 上传 1 张商品图（正面或主视角） |\n| 多视角图 | 上传同一商品的多个角度，帮助模型理解立体结构（鞋侧面+鞋底、包正面+内里） |\n| 参考图 | 提供真人模特、姿势、场景与光线 |\n| 选区 | 在参考图上框出商品该出现的位置（眼部 / 手腕 / 颈部 / 脚部 / 肩背 / 头顶） |\n| 支持品类 | 鞋、包、手表、眼镜墨镜、帽子、围巾、项链、耳饰、腰带、手套等 |\n\n**不做**：不改商品外形、颜色、五金、logo 与镜片色；不处理服装（用 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md)）；不用于伪造他人肖像代言。\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| 时尚皮鞋 | 单只或一双完整入画，主视角 |\n| 优雅手表 | 表盘正面清晰，表带完整 |\n| 珍珠项链 | 摊开或悬挂，链身完整 |\n| 渔夫帽 | 帽型完整，纹理清晰 |\n| 防晒墨镜 | 镜框展开，镜片颜色真实 |\n\n**会明显拉低效果的输入（❌）**\n\n| 问题 | 说明 |\n| --- | --- |\n| 商品不完整 | 只拍到一半的鞋、被裁掉链扣的项链 |\n| 挂件过多 | 包上挂满吊饰、丝巾，模型分不清主体 |\n| 商品不清晰 | 模糊、过曝、金属反光糊成一片 |\n\n---\n\n## 3、选区：本技能最重要的参数\n\n原站在参考图上直接框选，本技能改用 **prompt 显式指定解剖位置 + 佩戴姿态**，等价且更可控：\n\n| 品类 | 选区描述（写进 prompt） |\n| --- | --- |\n| 眼镜 / 墨镜 | `seated on the nose bridge and hooked over both ears, temples visible along the cheekbones` |\n| 手表 | `on the left wrist, dial facing the camera, strap closed with the buckle on the underside` |\n| 项链 | `around the neck, clasp at the nape, pendant centred on the collarbone` |\n| 耳饰 | `on the visible earlobe, hanging naturally with correct scale` |\n| 帽子 | `on the head, brim angle matching the head tilt, hair falling naturally around it` |\n| 围巾 | `wrapped twice around the neck, fringe hanging over the chest` |\n| 鞋 | `on both feet, soles contacting the ground with correct perspective and grounded shadows` |\n| 包 | `held in the right hand / on the left shoulder, strap resting on the shoulder line with fabric compression` |\n\n**必须同时写死「其他区域不许动」**，否则模型会顺手重绘人脸和背景：\n\n```text\nChange nothing else — face, hair, clothing, background, colour grading and crop\nmust stay pixel-identical to image 2.\n```\n\n---\n\n## 4、参考图挑选维度\n\n- 类目：`女装 / 男装 / 童装`；地区：`国内 / 海外`；类型：`电商 / 种草`\n- 筛选：性别 `男 / 女`；年龄 `婴儿 / 小童 / 大童 / 青少年 / 青年人 / 中年人 / 老年人`；肤色 `欧美人 / 非洲人 / 亚洲人 / 其他肤色`\n\n挑选建议：\n\n- **必须露出穿戴部位**。戴眼镜要正脸或微侧脸；戴手表要手腕入画且不被袖口遮住；穿鞋要脚部完整不被裙摆挡住。\n- **原图上最好没有同类商品**。参考图模特已经戴了另一副眼镜时，模型容易两副叠加——优先选空手空脸的参考图，或在 prompt 里明确 `replace the existing sunglasses`。\n- 光线方向要和商品图接近，否则金属反光会不自然。\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`gpt-image-2`**（多图参考的图像编辑合成模型，最多 5 张参考图；配饰穿戴属于局部替换，需要强指令跟随与区域保持能力）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task wear-everything \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/wear-everything-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/wear-everything.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[商品图, 参考图]`；多视角时 `[商品图1, 商品图2, 参考图]` | 顺序即 prompt 中的 image 1 / 2 / 3 |\n| `--size` | `1024x1536`（半身/全身佩戴）；`1024x1024`（手腕、耳饰等特写） | 按景别选 |\n| `--quality` | `high`（金属、镜片、皮革反光）；`medium`（布类配饰） | 反光材质需要高档位 |\n| `--imageFormat` | `jpeg` | 电商上架通用格式 |\n| `--batch` | `2` ~ `4` | 佩戴位置有随机性，多出几张挑图 |\n| `--save` | `docs/wear-everything/output-<sku>.jpg` | 直接落盘 |\n\n### Command Examples\n\n```bash\n# basic call: 单视角（商品图 + 参考图）\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product, image 2 is the model/scene reference. Put the product from image 1 onto the model in image 2, seated on the nose bridge and hooked over both ears. Keep the product identical in shape, colour, material and logo. Change nothing else — face, hair, clothing, background and crop stay pixel-identical to image 2.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 多视角商品 + 一次出 4 张挑图 + 直接落盘\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product front view, image 2 is the product side view, image 3 is the model/scene reference. Put the shoes onto both feet of the model in image 3, soles contacting the ground with correct perspective and grounded shadows. Preserve the patent finish, brogue perforation, lacing and lug sole exactly. Change nothing else — the model, clothing, pose, background and colour grading stay identical to image 3. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/shoe-front.jpg docs/wear-everything/shoe-side.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --batch 4 --save docs/wear-everything/output-sku001.jpg\n\n# 先估价不真跑\ndlazy gpt-image-2 --dry-run --prompt '...' --images a.jpg b.jpg --size 1024x1536 --quality high\n```\n\n### 延伸阅读\n\n| 要查什么 | 去哪 |\n| --- | --- |\n| 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) |\n| `gpt-image-2` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) |\n| 统一入口的全部选项 | `node scripts/gen.mjs --help` |\n\n## 6、Prompt 模板\n\n```text\nOn-model accessory product photography.\nImage 1 is the product: [品类 + 颜色 + 材质，例：a pair of tortoise-brown rectangular sunglasses with dark grey lenses].\nImage 2 is the model / scene reference.\n\nPut the product from image 1 onto the model in image 2, [选区描述，见第三节表格],\nwith natural perspective, correct scale, realistic [反光/投影描述] and a soft contact shadow.\n\nKeep the product 100% faithful: identical [外形], [颜色与材质], [五金/镜片/纹理], [logo 位置].\n\nChange nothing else — face, hair, clothing, accessories, background, colour grading\nand crop must stay pixel-identical to image 2.\n\nPhotorealistic, no text, no watermark.\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 佩戴位置偏了 | `The product must be anatomically correctly placed — re-check the [部位] alignment against the model's [参照点].` |\n| 商品比例不对 | `Match real-world scale: the product's width must be about [X] of the [参照部位] width.` |\n| 出现了两个同类商品 | `Remove the existing [同类商品] the model is wearing and replace it with the product from image 1.` |\n| 人脸/背景被改动 | `Change only the [部位] region. Keep every other pixel identical to image 2.` |\n| 金属/镜片反光假 | `Render physically plausible reflections: [环境] reflected on the [材质], consistent with the light direction in image 2.` |\n\n---\n\n## 7、执行流程\n\n1. **校验输入**：尺寸 / 分辨率 / 格式；剔除不完整、挂件过多、模糊的商品图。\n2. **判断视角**：结构简单（眼镜、项链）→ 单视角即可；结构复杂（鞋、包）→ 传 2~3 个角度。\n3. **挑参考图**：确认穿戴部位完整露出、没有同类商品遮挡、光向与商品图接近。\n4. **写选区**：从第三节表格取对应句子，务必同时写「其他区域不许动」。\n5. **`--dry-run` 估价**，确认 credits 后真跑。\n6. **`--batch 2~4` 出多张挑图**，落盘到 `docs/wear-everything/`。\n7. **质检**：佩戴位置、商品比例、反光合理性、是否叠加了两个商品、人脸是否被改。\n\n---\n\n## 8、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 眼镜歪了 / 悬空 | 未写解剖位置 | 补第三节的选区句，明确鼻梁与耳挂关系 |\n| 鞋子没踩在地上 | 缺少接地约束 | 追加 `soles contacting the ground with correct perspective and grounded shadows` |\n| 商品尺寸明显偏大偏小 | 模型没有比例参照 | 追加比例句，给出与参照部位的宽度比 |\n| 画面里出现两副眼镜 | 参考图模特原本就戴着 | 追加 `replace the existing …`，或换空脸参考图 |\n| 人脸被换了 | 模型重绘整图 | 追加 `Change only the [部位] region. Keep every other pixel identical to image 2.` |\n| 金属反光像塑料 | `--quality medium` | 改 `--quality high` |\n| 包的内里结构错乱 | 只给了正面 | 改多视角图，补内里/侧面 |\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\": \"wear-everything\",\n  \"version\": \"1.0.17\",\n  \"publishedAt\": 1791078504739\n}\n\nFile v1.0.17:references/model-flags.md\n\n# `gpt-image-2` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy gpt-image-2` command to get results.\r\n\r\n```bash\r\ndlazy gpt-image-2 -h\r\n\r\nOptions:\r\n  --prompt <prompt>            Prompt\r\n  --images [images...]         Images [image: url or local path] (max 5)\r\n  --size <size>                Size [default: auto] (choices: \"1024x1024\",\r\n                               \"1536x1024\", \"1024x1536\", \"2048x2048\",\r\n                               \"2048x1152\", \"3840x2160\", \"2160x3840\", \"auto\")\r\n  --imageFormat <imageFormat>  Image Format [default: jpeg] (choices: \"jpeg\",\r\n                               \"png\", \"webp\")\r\n  --quality <quality>          Quality [default: medium] (choices: \"low\",\r\n                               \"medium\", \"high\")\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\r\n                               (default: \"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\r\n                               use --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\nGuides creation of on-model ecommerce images from accessory product photos and model references, with attention to placement, perspective, and shadows.\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 teams and creators use this skill to place shoes, bags, and accessories onto model reference photos for product imagery while checking placement and product fidelity.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Product and model images and prompts are sent to the selected cloud image provider.\n\nMitigation: Use only images approved for sharing, omit unrelated private files, and review available provider credentials before generation.\n\nRisk: Generation may incur provider charges or save output to an unintended location.\n\nMitigation: Check the selected provider, estimated cost, and output destination with --dry-run before running.\n\nRisk: Generated images may misplace accessories, alter product details, or change a person's appearance.\n\nMitigation: Inspect placement, product fidelity, and the model's appearance before publishing; do not present fabricated endorsements.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/dlazyai/skills/wear-everything)\n- [Provider CLI and data flow](references/provider-cli.md)\n- [Image model options](references/model-flags.md)\n- [dLazy CLI source](https://github.com/dlazy-ai/cli)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Image files]\n\n**Output Format:** [Markdown instructions and locally saved generated images]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Optional JSON reports output paths and estimated credits; image format and size are configurable.]\n\n## Skill Version(s):\n\n1.0.17 (source: SKILL.md 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, 25932 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (2144b), 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 (2124b), SKILL.md (12603b), _meta.json (135b)\n\nFile v1.0.16:SKILL.md\n\n---\nname: wear-everything\nversion: 1.0.16\ndescription: 鞋包配饰真人穿戴图。商品图 + 模特参考图 → 真人佩戴图，落位、透视与阴影自然。当用户说「鞋包上脚」「配饰上身」「墨镜戴上」「首饰佩戴图」「包包上身」时使用。\n---\n\n# wear-everything — 鞋包配饰一键真人穿戴\n\n把一张**鞋 / 包 / 手表 / 眼镜 / 帽子 / 围巾 / 项链 / 耳饰**的商品图，变成**真人正确佩戴**的商拍图。\n\n和 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md) 的区别：flat-lay 处理「穿在身上的衣服」，本技能处理「戴在身上的东西」——商品只占画面的一小块区域，因此**选区（商品出现在参考图的哪个位置）**是成败关键。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 | 输入：参考图 |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/product-sunglasses.jpg\" width=\"280\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/model-reference.jpg\" width=\"280\"> |\n| `product-sunglasses.jpg` — 玳瑁色方框墨镜，768×1024 | `model-reference.jpg` — 女青年正脸、夜景街拍，768×1024 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory product photography. Image 1 is the product: a pair of tortoise-brown rectangular sunglasses with dark grey lenses. Image 2 is the model/scene reference. Put the sunglasses from image 1 onto the face of the model in image 2, correctly seated on the nose bridge and ears with natural perspective, realistic lens reflections and a soft shadow on the cheekbones. Keep the product 100% faithful: identical frame shape, tortoise-brown acetate color and grain, hinge and temple design, lens tint. Change nothing else — face, hair, scarf, coat, bag chain, night street background, colour grading and crop must stay pixel-identical to image 2. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality medium --imageFormat jpeg \\\n  --save docs/wear-everything/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536。墨镜按正确的鼻梁/耳挂关系落位，镜框玳瑁纹理与镜片色保留；模特五官、围巾千鸟格、夜景街道与色调保持原样。\n\n---\n\n## 1、能力边界\n\n| 能力 | 说明 |\n| --- | --- |\n| 单视角图 | 上传 1 张商品图（正面或主视角） |\n| 多视角图 | 上传同一商品的多个角度，帮助模型理解立体结构（鞋侧面+鞋底、包正面+内里） |\n| 参考图 | 提供真人模特、姿势、场景与光线 |\n| 选区 | 在参考图上框出商品该出现的位置（眼部 / 手腕 / 颈部 / 脚部 / 肩背 / 头顶） |\n| 支持品类 | 鞋、包、手表、眼镜墨镜、帽子、围巾、项链、耳饰、腰带、手套等 |\n\n**不做**：不改商品外形、颜色、五金、logo 与镜片色；不处理服装（用 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md)）；不用于伪造他人肖像代言。\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| 时尚皮鞋 | 单只或一双完整入画，主视角 |\n| 优雅手表 | 表盘正面清晰，表带完整 |\n| 珍珠项链 | 摊开或悬挂，链身完整 |\n| 渔夫帽 | 帽型完整，纹理清晰 |\n| 防晒墨镜 | 镜框展开，镜片颜色真实 |\n\n**会明显拉低效果的输入（❌）**\n\n| 问题 | 说明 |\n| --- | --- |\n| 商品不完整 | 只拍到一半的鞋、被裁掉链扣的项链 |\n| 挂件过多 | 包上挂满吊饰、丝巾，模型分不清主体 |\n| 商品不清晰 | 模糊、过曝、金属反光糊成一片 |\n\n---\n\n## 3、选区：本技能最重要的参数\n\n原站在参考图上直接框选，本技能改用 **prompt 显式指定解剖位置 + 佩戴姿态**，等价且更可控：\n\n| 品类 | 选区描述（写进 prompt） |\n| --- | --- |\n| 眼镜 / 墨镜 | `seated on the nose bridge and hooked over both ears, temples visible along the cheekbones` |\n| 手表 | `on the left wrist, dial facing the camera, strap closed with the buckle on the underside` |\n| 项链 | `around the neck, clasp at the nape, pendant centred on the collarbone` |\n| 耳饰 | `on the visible earlobe, hanging naturally with correct scale` |\n| 帽子 | `on the head, brim angle matching the head tilt, hair falling naturally around it` |\n| 围巾 | `wrapped twice around the neck, fringe hanging over the chest` |\n| 鞋 | `on both feet, soles contacting the ground with correct perspective and grounded shadows` |\n| 包 | `held in the right hand / on the left shoulder, strap resting on the shoulder line with fabric compression` |\n\n**必须同时写死「其他区域不许动」**，否则模型会顺手重绘人脸和背景：\n\n```text\nChange nothing else — face, hair, clothing, background, colour grading and crop\nmust stay pixel-identical to image 2.\n```\n\n---\n\n## 4、参考图挑选维度\n\n- 类目：`女装 / 男装 / 童装`；地区：`国内 / 海外`；类型：`电商 / 种草`\n- 筛选：性别 `男 / 女`；年龄 `婴儿 / 小童 / 大童 / 青少年 / 青年人 / 中年人 / 老年人`；肤色 `欧美人 / 非洲人 / 亚洲人 / 其他肤色`\n\n挑选建议：\n\n- **必须露出穿戴部位**。戴眼镜要正脸或微侧脸；戴手表要手腕入画且不被袖口遮住；穿鞋要脚部完整不被裙摆挡住。\n- **原图上最好没有同类商品**。参考图模特已经戴了另一副眼镜时，模型容易两副叠加——优先选空手空脸的参考图，或在 prompt 里明确 `replace the existing sunglasses`。\n- 光线方向要和商品图接近，否则金属反光会不自然。\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`gpt-image-2`**（多图参考的图像编辑合成模型，最多 5 张参考图；配饰穿戴属于局部替换，需要强指令跟随与区域保持能力）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task wear-everything \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/wear-everything-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/wear-everything.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[商品图, 参考图]`；多视角时 `[商品图1, 商品图2, 参考图]` | 顺序即 prompt 中的 image 1 / 2 / 3 |\n| `--size` | `1024x1536`（半身/全身佩戴）；`1024x1024`（手腕、耳饰等特写） | 按景别选 |\n| `--quality` | `high`（金属、镜片、皮革反光）；`medium`（布类配饰） | 反光材质需要高档位 |\n| `--imageFormat` | `jpeg` | 电商上架通用格式 |\n| `--batch` | `2` ~ `4` | 佩戴位置有随机性，多出几张挑图 |\n| `--save` | `docs/wear-everything/output-<sku>.jpg` | 直接落盘 |\n\n### Command Examples\n\n```bash\n# basic call: 单视角（商品图 + 参考图）\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product, image 2 is the model/scene reference. Put the product from image 1 onto the model in image 2, seated on the nose bridge and hooked over both ears. Keep the product identical in shape, colour, material and logo. Change nothing else — face, hair, clothing, background and crop stay pixel-identical to image 2.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 多视角商品 + 一次出 4 张挑图 + 直接落盘\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product front view, image 2 is the product side view, image 3 is the model/scene reference. Put the shoes onto both feet of the model in image 3, soles contacting the ground with correct perspective and grounded shadows. Preserve the patent finish, brogue perforation, lacing and lug sole exactly. Change nothing else — the model, clothing, pose, background and colour grading stay identical to image 3. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/shoe-front.jpg docs/wear-everything/shoe-side.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --batch 4 --save docs/wear-everything/output-sku001.jpg\n\n# 先估价不真跑\ndlazy gpt-image-2 --dry-run --prompt '...' --images a.jpg b.jpg --size 1024x1536 --quality high\n```\n\n### 延伸阅读\n\n| 要查什么 | 去哪 |\n| --- | --- |\n| 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) |\n| `gpt-image-2` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) |\n| 统一入口的全部选项 | `node scripts/gen.mjs --help` |\n\n## 6、Prompt 模板\n\n```text\nOn-model accessory product photography.\nImage 1 is the product: [品类 + 颜色 + 材质，例：a pair of tortoise-brown rectangular sunglasses with dark grey lenses].\nImage 2 is the model / scene reference.\n\nPut the product from image 1 onto the model in image 2, [选区描述，见第三节表格],\nwith natural perspective, correct scale, realistic [反光/投影描述] and a soft contact shadow.\n\nKeep the product 100% faithful: identical [外形], [颜色与材质], [五金/镜片/纹理], [logo 位置].\n\nChange nothing else — face, hair, clothing, accessories, background, colour grading\nand crop must stay pixel-identical to image 2.\n\nPhotorealistic, no text, no watermark.\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 佩戴位置偏了 | `The product must be anatomically correctly placed — re-check the [部位] alignment against the model's [参照点].` |\n| 商品比例不对 | `Match real-world scale: the product's width must be about [X] of the [参照部位] width.` |\n| 出现了两个同类商品 | `Remove the existing [同类商品] the model is wearing and replace it with the product from image 1.` |\n| 人脸/背景被改动 | `Change only the [部位] region. Keep every other pixel identical to image 2.` |\n| 金属/镜片反光假 | `Render physically plausible reflections: [环境] reflected on the [材质], consistent with the light direction in image 2.` |\n\n---\n\n## 7、执行流程\n\n1. **校验输入**：尺寸 / 分辨率 / 格式；剔除不完整、挂件过多、模糊的商品图。\n2. **判断视角**：结构简单（眼镜、项链）→ 单视角即可；结构复杂（鞋、包）→ 传 2~3 个角度。\n3. **挑参考图**：确认穿戴部位完整露出、没有同类商品遮挡、光向与商品图接近。\n4. **写选区**：从第三节表格取对应句子，务必同时写「其他区域不许动」。\n5. **`--dry-run` 估价**，确认 credits 后真跑。\n6. **`--batch 2~4` 出多张挑图**，落盘到 `docs/wear-everything/`。\n7. **质检**：佩戴位置、商品比例、反光合理性、是否叠加了两个商品、人脸是否被改。\n\n---\n\n## 8、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 眼镜歪了 / 悬空 | 未写解剖位置 | 补第三节的选区句，明确鼻梁与耳挂关系 |\n| 鞋子没踩在地上 | 缺少接地约束 | 追加 `soles contacting the ground with correct perspective and grounded shadows` |\n| 商品尺寸明显偏大偏小 | 模型没有比例参照 | 追加比例句，给出与参照部位的宽度比 |\n| 画面里出现两副眼镜 | 参考图模特原本就戴着 | 追加 `replace the existing …`，或换空脸参考图 |\n| 人脸被换了 | 模型重绘整图 | 追加 `Change only the [部位] region. Keep every other pixel identical to image 2.` |\n| 金属反光像塑料 | `--quality medium` | 改 `--quality high` |\n| 包的内里结构错乱 | 只给了正面 | 改多视角图，补内里/侧面 |\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\": \"wear-everything\",\n  \"version\": \"1.0.16\",\n  \"publishedAt\": 1790918389585\n}\n\nFile v1.0.16:references/model-flags.md\n\n# `gpt-image-2` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy gpt-image-2` command to get results.\r\n\r\n```bash\r\ndlazy gpt-image-2 -h\r\n\r\nOptions:\r\n  --prompt <prompt>            Prompt\r\n  --images [images...]         Images [image: url or local path] (max 5)\r\n  --size <size>                Size [default: auto] (choices: \"1024x1024\",\r\n                               \"1536x1024\", \"1024x1536\", \"2048x2048\",\r\n                               \"2048x1152\", \"3840x2160\", \"2160x3840\", \"auto\")\r\n  --imageFormat <imageFormat>  Image Format [default: jpeg] (choices: \"jpeg\",\r\n                               \"png\", \"webp\")\r\n  --quality <quality>          Quality [default: medium] (choices: \"low\",\r\n                               \"medium\", \"high\")\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\r\n                               (default: \"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\r\n                               use --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\nHelps create realistic on-model product images of shoes, bags, and accessories from product photos and a model reference image.\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 creators and product photographers use this skill to place shoes, bags, and accessories onto a model reference image for product photography, while aiming to preserve the product's details and the rest of the scene.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Selected product and model images and prompts are sent to the configured cloud image provider.\n\nMitigation: Use only images you are authorized to share and confirm the selected provider before submitting sensitive material.\n\nRisk: Image generation may consume paid provider credits.\n\nMitigation: Use the dry run to check the request and estimated cost before generating images.\n\nRisk: Generated images are written to a local output path and may misleadingly imply a real person's endorsement.\n\nMitigation: Choose the output path deliberately, inspect the results, and do not use a person's likeness to fabricate an endorsement.\n\n## Reference(s):\n\n- [Wear Everything ClawHub release](https://clawhub.ai/dlazyai/skills/wear-everything)\n- [Provider setup and output guide](references/provider-cli.md)\n- [Image model options](references/model-flags.md)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Image files]\n\n**Output Format:** [Markdown guidance and locally saved JPEG images]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Supports multiple image variations and a dry run to inspect the request before generation.]\n\n## Skill Version(s):\n\n1.0.16 (source: skill 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.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, 25918 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (2144b), 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 (2056b), SKILL.md (12603b), _meta.json (135b)\n\nFile v1.0.15:SKILL.md\n\n---\nname: wear-everything\nversion: 1.0.15\ndescription: 鞋包配饰真人穿戴图。商品图 + 模特参考图 → 真人佩戴图，落位、透视与阴影自然。当用户说「鞋包上脚」「配饰上身」「墨镜戴上」「首饰佩戴图」「包包上身」时使用。\n---\n\n# wear-everything — 鞋包配饰一键真人穿戴\n\n把一张**鞋 / 包 / 手表 / 眼镜 / 帽子 / 围巾 / 项链 / 耳饰**的商品图，变成**真人正确佩戴**的商拍图。\n\n和 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md) 的区别：flat-lay 处理「穿在身上的衣服」，本技能处理「戴在身上的东西」——商品只占画面的一小块区域，因此**选区（商品出现在参考图的哪个位置）**是成败关键。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 | 输入：参考图 |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/product-sunglasses.jpg\" width=\"280\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/model-reference.jpg\" width=\"280\"> |\n| `product-sunglasses.jpg` — 玳瑁色方框墨镜，768×1024 | `model-reference.jpg` — 女青年正脸、夜景街拍，768×1024 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory product photography. Image 1 is the product: a pair of tortoise-brown rectangular sunglasses with dark grey lenses. Image 2 is the model/scene reference. Put the sunglasses from image 1 onto the face of the model in image 2, correctly seated on the nose bridge and ears with natural perspective, realistic lens reflections and a soft shadow on the cheekbones. Keep the product 100% faithful: identical frame shape, tortoise-brown acetate color and grain, hinge and temple design, lens tint. Change nothing else — face, hair, scarf, coat, bag chain, night street background, colour grading and crop must stay pixel-identical to image 2. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality medium --imageFormat jpeg \\\n  --save docs/wear-everything/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536。墨镜按正确的鼻梁/耳挂关系落位，镜框玳瑁纹理与镜片色保留；模特五官、围巾千鸟格、夜景街道与色调保持原样。\n\n---\n\n## 1、能力边界\n\n| 能力 | 说明 |\n| --- | --- |\n| 单视角图 | 上传 1 张商品图（正面或主视角） |\n| 多视角图 | 上传同一商品的多个角度，帮助模型理解立体结构（鞋侧面+鞋底、包正面+内里） |\n| 参考图 | 提供真人模特、姿势、场景与光线 |\n| 选区 | 在参考图上框出商品该出现的位置（眼部 / 手腕 / 颈部 / 脚部 / 肩背 / 头顶） |\n| 支持品类 | 鞋、包、手表、眼镜墨镜、帽子、围巾、项链、耳饰、腰带、手套等 |\n\n**不做**：不改商品外形、颜色、五金、logo 与镜片色；不处理服装（用 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md)）；不用于伪造他人肖像代言。\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| 时尚皮鞋 | 单只或一双完整入画，主视角 |\n| 优雅手表 | 表盘正面清晰，表带完整 |\n| 珍珠项链 | 摊开或悬挂，链身完整 |\n| 渔夫帽 | 帽型完整，纹理清晰 |\n| 防晒墨镜 | 镜框展开，镜片颜色真实 |\n\n**会明显拉低效果的输入（❌）**\n\n| 问题 | 说明 |\n| --- | --- |\n| 商品不完整 | 只拍到一半的鞋、被裁掉链扣的项链 |\n| 挂件过多 | 包上挂满吊饰、丝巾，模型分不清主体 |\n| 商品不清晰 | 模糊、过曝、金属反光糊成一片 |\n\n---\n\n## 3、选区：本技能最重要的参数\n\n原站在参考图上直接框选，本技能改用 **prompt 显式指定解剖位置 + 佩戴姿态**，等价且更可控：\n\n| 品类 | 选区描述（写进 prompt） |\n| --- | --- |\n| 眼镜 / 墨镜 | `seated on the nose bridge and hooked over both ears, temples visible along the cheekbones` |\n| 手表 | `on the left wrist, dial facing the camera, strap closed with the buckle on the underside` |\n| 项链 | `around the neck, clasp at the nape, pendant centred on the collarbone` |\n| 耳饰 | `on the visible earlobe, hanging naturally with correct scale` |\n| 帽子 | `on the head, brim angle matching the head tilt, hair falling naturally around it` |\n| 围巾 | `wrapped twice around the neck, fringe hanging over the chest` |\n| 鞋 | `on both feet, soles contacting the ground with correct perspective and grounded shadows` |\n| 包 | `held in the right hand / on the left shoulder, strap resting on the shoulder line with fabric compression` |\n\n**必须同时写死「其他区域不许动」**，否则模型会顺手重绘人脸和背景：\n\n```text\nChange nothing else — face, hair, clothing, background, colour grading and crop\nmust stay pixel-identical to image 2.\n```\n\n---\n\n## 4、参考图挑选维度\n\n- 类目：`女装 / 男装 / 童装`；地区：`国内 / 海外`；类型：`电商 / 种草`\n- 筛选：性别 `男 / 女`；年龄 `婴儿 / 小童 / 大童 / 青少年 / 青年人 / 中年人 / 老年人`；肤色 `欧美人 / 非洲人 / 亚洲人 / 其他肤色`\n\n挑选建议：\n\n- **必须露出穿戴部位**。戴眼镜要正脸或微侧脸；戴手表要手腕入画且不被袖口遮住；穿鞋要脚部完整不被裙摆挡住。\n- **原图上最好没有同类商品**。参考图模特已经戴了另一副眼镜时，模型容易两副叠加——优先选空手空脸的参考图，或在 prompt 里明确 `replace the existing sunglasses`。\n- 光线方向要和商品图接近，否则金属反光会不自然。\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`gpt-image-2`**（多图参考的图像编辑合成模型，最多 5 张参考图；配饰穿戴属于局部替换，需要强指令跟随与区域保持能力）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task wear-everything \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/wear-everything-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/wear-everything.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[商品图, 参考图]`；多视角时 `[商品图1, 商品图2, 参考图]` | 顺序即 prompt 中的 image 1 / 2 / 3 |\n| `--size` | `1024x1536`（半身/全身佩戴）；`1024x1024`（手腕、耳饰等特写） | 按景别选 |\n| `--quality` | `high`（金属、镜片、皮革反光）；`medium`（布类配饰） | 反光材质需要高档位 |\n| `--imageFormat` | `jpeg` | 电商上架通用格式 |\n| `--batch` | `2` ~ `4` | 佩戴位置有随机性，多出几张挑图 |\n| `--save` | `docs/wear-everything/output-<sku>.jpg` | 直接落盘 |\n\n### Command Examples\n\n```bash\n# basic call: 单视角（商品图 + 参考图）\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product, image 2 is the model/scene reference. Put the product from image 1 onto the model in image 2, seated on the nose bridge and hooked over both ears. Keep the product identical in shape, colour, material and logo. Change nothing else — face, hair, clothing, background and crop stay pixel-identical to image 2.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 多视角商品 + 一次出 4 张挑图 + 直接落盘\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product front view, image 2 is the product side view, image 3 is the model/scene reference. Put the shoes onto both feet of the model in image 3, soles contacting the ground with correct perspective and grounded shadows. Preserve the patent finish, brogue perforation, lacing and lug sole exactly. Change nothing else — the model, clothing, pose, background and colour grading stay identical to image 3. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/shoe-front.jpg docs/wear-everything/shoe-side.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --batch 4 --save docs/wear-everything/output-sku001.jpg\n\n# 先估价不真跑\ndlazy gpt-image-2 --dry-run --prompt '...' --images a.jpg b.jpg --size 1024x1536 --quality high\n```\n\n### 延伸阅读\n\n| 要查什么 | 去哪 |\n| --- | --- |\n| 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) |\n| `gpt-image-2` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) |\n| 统一入口的全部选项 | `node scripts/gen.mjs --help` |\n\n## 6、Prompt 模板\n\n```text\nOn-model accessory product photography.\nImage 1 is the product: [品类 + 颜色 + 材质，例：a pair of tortoise-brown rectangular sunglasses with dark grey lenses].\nImage 2 is the model / scene reference.\n\nPut the product from image 1 onto the model in image 2, [选区描述，见第三节表格],\nwith natural perspective, correct scale, realistic [反光/投影描述] and a soft contact shadow.\n\nKeep the product 100% faithful: identical [外形], [颜色与材质], [五金/镜片/纹理], [logo 位置].\n\nChange nothing else — face, hair, clothing, accessories, background, colour grading\nand crop must stay pixel-identical to image 2.\n\nPhotorealistic, no text, no watermark.\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 佩戴位置偏了 | `The product must be anatomically correctly placed — re-check the [部位] alignment against the model's [参照点].` |\n| 商品比例不对 | `Match real-world scale: the product's width must be about [X] of the [参照部位] width.` |\n| 出现了两个同类商品 | `Remove the existing [同类商品] the model is wearing and replace it with the product from image 1.` |\n| 人脸/背景被改动 | `Change only the [部位] region. Keep every other pixel identical to image 2.` |\n| 金属/镜片反光假 | `Render physically plausible reflections: [环境] reflected on the [材质], consistent with the light direction in image 2.` |\n\n---\n\n## 7、执行流程\n\n1. **校验输入**：尺寸 / 分辨率 / 格式；剔除不完整、挂件过多、模糊的商品图。\n2. **判断视角**：结构简单（眼镜、项链）→ 单视角即可；结构复杂（鞋、包）→ 传 2~3 个角度。\n3. **挑参考图**：确认穿戴部位完整露出、没有同类商品遮挡、光向与商品图接近。\n4. **写选区**：从第三节表格取对应句子，务必同时写「其他区域不许动」。\n5. **`--dry-run` 估价**，确认 credits 后真跑。\n6. **`--batch 2~4` 出多张挑图**，落盘到 `docs/wear-everything/`。\n7. **质检**：佩戴位置、商品比例、反光合理性、是否叠加了两个商品、人脸是否被改。\n\n---\n\n## 8、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 眼镜歪了 / 悬空 | 未写解剖位置 | 补第三节的选区句，明确鼻梁与耳挂关系 |\n| 鞋子没踩在地上 | 缺少接地约束 | 追加 `soles contacting the ground with correct perspective and grounded shadows` |\n| 商品尺寸明显偏大偏小 | 模型没有比例参照 | 追加比例句，给出与参照部位的宽度比 |\n| 画面里出现两副眼镜 | 参考图模特原本就戴着 | 追加 `replace the existing …`，或换空脸参考图 |\n| 人脸被换了 | 模型重绘整图 | 追加 `Change only the [部位] region. Keep every other pixel identical to image 2.` |\n| 金属反光像塑料 | `--quality medium` | 改 `--quality high` |\n| 包的内里结构错乱 | 只给了正面 | 改多视角图，补内里/侧面 |\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\": \"wear-everything\",\n  \"version\": \"1.0.15\",\n  \"publishedAt\": 1790733171384\n}\n\nFile v1.0.15:references/model-flags.md\n\n# `gpt-image-2` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy gpt-image-2` command to get results.\r\n\r\n```bash\r\ndlazy gpt-image-2 -h\r\n\r\nOptions:\r\n  --prompt <prompt>            Prompt\r\n  --images [images...]         Images [image: url or local path] (max 5)\r\n  --size <size>                Size [default: auto] (choices: \"1024x1024\",\r\n                               \"1536x1024\", \"1024x1536\", \"2048x2048\",\r\n                               \"2048x1152\", \"3840x2160\", \"2160x3840\", \"auto\")\r\n  --imageFormat <imageFormat>  Image Format [default: jpeg] (choices: \"jpeg\",\r\n                               \"png\", \"webp\")\r\n  --quality <quality>          Quality [default: medium] (choices: \"low\",\r\n                               \"medium\", \"high\")\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\r\n                               (default: \"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\r\n                               use --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 on-model product images by placing shoes, bags, and accessories from product photos onto a reference model while aiming to preserve product details and the surrounding scene.\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 teams and product photographers use this skill to create on-model accessory imagery from product and model-reference photos.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Product and model-reference photos and prompts are sent to the configured image provider.\n\nMitigation: Use only approved providers and images for which you have permission; avoid sensitive personal photos without consent.\n\nRisk: Image generation may incur charges and alter model likeness or product details.\n\nMitigation: Run a dry-run to check requests and costs, then review generated images for accuracy before use.\n\nRisk: Untrusted provider settings or executable overrides could redirect image data or execution.\n\nMitigation: Set provider environment variables and DLAZY_BIN only to trusted values.\n\n## Reference(s):\n\n- [Provider CLI and data flow reference](references/provider-cli.md)\n- [Image model options](references/model-flags.md)\n- [ClawHub skill listing](https://clawhub.ai/dlazyai/skills/wear-everything)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands]\n\n**Output Format:** [Markdown with command examples and image-generation prompts]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Commands can save generated product images locally; review results before publication.]\n\n## Skill Version(s):\n\n1.0.15 (source: skill 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.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, 25933 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (2144b), 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 (2099b), SKILL.md (12603b), _meta.json (135b)\n\nFile v1.0.14:SKILL.md\n\n---\nname: wear-everything\nversion: 1.0.14\ndescription: 鞋包配饰真人穿戴图。商品图 + 模特参考图 → 真人佩戴图，落位、透视与阴影自然。当用户说「鞋包上脚」「配饰上身」「墨镜戴上」「首饰佩戴图」「包包上身」时使用。\n---\n\n# wear-everything — 鞋包配饰一键真人穿戴\n\n把一张**鞋 / 包 / 手表 / 眼镜 / 帽子 / 围巾 / 项链 / 耳饰**的商品图，变成**真人正确佩戴**的商拍图。\n\n和 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md) 的区别：flat-lay 处理「穿在身上的衣服」，本技能处理「戴在身上的东西」——商品只占画面的一小块区域，因此**选区（商品出现在参考图的哪个位置）**是成败关键。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 | 输入：参考图 |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/product-sunglasses.jpg\" width=\"280\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/model-reference.jpg\" width=\"280\"> |\n| `product-sunglasses.jpg` — 玳瑁色方框墨镜，768×1024 | `model-reference.jpg` — 女青年正脸、夜景街拍，768×1024 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory product photography. Image 1 is the product: a pair of tortoise-brown rectangular sunglasses with dark grey lenses. Image 2 is the model/scene reference. Put the sunglasses from image 1 onto the face of the model in image 2, correctly seated on the nose bridge and ears with natural perspective, realistic lens reflections and a soft shadow on the cheekbones. Keep the product 100% faithful: identical frame shape, tortoise-brown acetate color and grain, hinge and temple design, lens tint. Change nothing else — face, hair, scarf, coat, bag chain, night street background, colour grading and crop must stay pixel-identical to image 2. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality medium --imageFormat jpeg \\\n  --save docs/wear-everything/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536。墨镜按正确的鼻梁/耳挂关系落位，镜框玳瑁纹理与镜片色保留；模特五官、围巾千鸟格、夜景街道与色调保持原样。\n\n---\n\n## 1、能力边界\n\n| 能力 | 说明 |\n| --- | --- |\n| 单视角图 | 上传 1 张商品图（正面或主视角） |\n| 多视角图 | 上传同一商品的多个角度，帮助模型理解立体结构（鞋侧面+鞋底、包正面+内里） |\n| 参考图 | 提供真人模特、姿势、场景与光线 |\n| 选区 | 在参考图上框出商品该出现的位置（眼部 / 手腕 / 颈部 / 脚部 / 肩背 / 头顶） |\n| 支持品类 | 鞋、包、手表、眼镜墨镜、帽子、围巾、项链、耳饰、腰带、手套等 |\n\n**不做**：不改商品外形、颜色、五金、logo 与镜片色；不处理服装（用 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md)）；不用于伪造他人肖像代言。\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| 时尚皮鞋 | 单只或一双完整入画，主视角 |\n| 优雅手表 | 表盘正面清晰，表带完整 |\n| 珍珠项链 | 摊开或悬挂，链身完整 |\n| 渔夫帽 | 帽型完整，纹理清晰 |\n| 防晒墨镜 | 镜框展开，镜片颜色真实 |\n\n**会明显拉低效果的输入（❌）**\n\n| 问题 | 说明 |\n| --- | --- |\n| 商品不完整 | 只拍到一半的鞋、被裁掉链扣的项链 |\n| 挂件过多 | 包上挂满吊饰、丝巾，模型分不清主体 |\n| 商品不清晰 | 模糊、过曝、金属反光糊成一片 |\n\n---\n\n## 3、选区：本技能最重要的参数\n\n原站在参考图上直接框选，本技能改用 **prompt 显式指定解剖位置 + 佩戴姿态**，等价且更可控：\n\n| 品类 | 选区描述（写进 prompt） |\n| --- | --- |\n| 眼镜 / 墨镜 | `seated on the nose bridge and hooked over both ears, temples visible along the cheekbones` |\n| 手表 | `on the left wrist, dial facing the camera, strap closed with the buckle on the underside` |\n| 项链 | `around the neck, clasp at the nape, pendant centred on the collarbone` |\n| 耳饰 | `on the visible earlobe, hanging naturally with correct scale` |\n| 帽子 | `on the head, brim angle matching the head tilt, hair falling naturally around it` |\n| 围巾 | `wrapped twice around the neck, fringe hanging over the chest` |\n| 鞋 | `on both feet, soles contacting the ground with correct perspective and grounded shadows` |\n| 包 | `held in the right hand / on the left shoulder, strap resting on the shoulder line with fabric compression` |\n\n**必须同时写死「其他区域不许动」**，否则模型会顺手重绘人脸和背景：\n\n```text\nChange nothing else — face, hair, clothing, background, colour grading and crop\nmust stay pixel-identical to image 2.\n```\n\n---\n\n## 4、参考图挑选维度\n\n- 类目：`女装 / 男装 / 童装`；地区：`国内 / 海外`；类型：`电商 / 种草`\n- 筛选：性别 `男 / 女`；年龄 `婴儿 / 小童 / 大童 / 青少年 / 青年人 / 中年人 / 老年人`；肤色 `欧美人 / 非洲人 / 亚洲人 / 其他肤色`\n\n挑选建议：\n\n- **必须露出穿戴部位**。戴眼镜要正脸或微侧脸；戴手表要手腕入画且不被袖口遮住；穿鞋要脚部完整不被裙摆挡住。\n- **原图上最好没有同类商品**。参考图模特已经戴了另一副眼镜时，模型容易两副叠加——优先选空手空脸的参考图，或在 prompt 里明确 `replace the existing sunglasses`。\n- 光线方向要和商品图接近，否则金属反光会不自然。\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`gpt-image-2`**（多图参考的图像编辑合成模型，最多 5 张参考图；配饰穿戴属于局部替换，需要强指令跟随与区域保持能力）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task wear-everything \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/wear-everything-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/wear-everything.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[商品图, 参考图]`；多视角时 `[商品图1, 商品图2, 参考图]` | 顺序即 prompt 中的 image 1 / 2 / 3 |\n| `--size` | `1024x1536`（半身/全身佩戴）；`1024x1024`（手腕、耳饰等特写） | 按景别选 |\n| `--quality` | `high`（金属、镜片、皮革反光）；`medium`（布类配饰） | 反光材质需要高档位 |\n| `--imageFormat` | `jpeg` | 电商上架通用格式 |\n| `--batch` | `2` ~ `4` | 佩戴位置有随机性，多出几张挑图 |\n| `--save` | `docs/wear-everything/output-<sku>.jpg` | 直接落盘 |\n\n### Command Examples\n\n```bash\n# basic call: 单视角（商品图 + 参考图）\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product, image 2 is the model/scene reference. Put the product from image 1 onto the model in image 2, seated on the nose bridge and hooked over both ears. Keep the product identical in shape, colour, material and logo. Change nothing else — face, hair, clothing, background and crop stay pixel-identical to image 2.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 多视角商品 + 一次出 4 张挑图 + 直接落盘\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product front view, image 2 is the product side view, image 3 is the model/scene reference. Put the shoes onto both feet of the model in image 3, soles contacting the ground with correct perspective and grounded shadows. Preserve the patent finish, brogue perforation, lacing and lug sole exactly. Change nothing else — the model, clothing, pose, background and colour grading stay identical to image 3. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/shoe-front.jpg docs/wear-everything/shoe-side.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --batch 4 --save docs/wear-everything/output-sku001.jpg\n\n# 先估价不真跑\ndlazy gpt-image-2 --dry-run --prompt '...' --images a.jpg b.jpg --size 1024x1536 --quality high\n```\n\n### 延伸阅读\n\n| 要查什么 | 去哪 |\n| --- | --- |\n| 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) |\n| `gpt-image-2` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) |\n| 统一入口的全部选项 | `node scripts/gen.mjs --help` |\n\n## 6、Prompt 模板\n\n```text\nOn-model accessory product photography.\nImage 1 is the product: [品类 + 颜色 + 材质，例：a pair of tortoise-brown rectangular sunglasses with dark grey lenses].\nImage 2 is the model / scene reference.\n\nPut the product from image 1 onto the model in image 2, [选区描述，见第三节表格],\nwith natural perspective, correct scale, realistic [反光/投影描述] and a soft contact shadow.\n\nKeep the product 100% faithful: identical [外形], [颜色与材质], [五金/镜片/纹理], [logo 位置].\n\nChange nothing else — face, hair, clothing, accessories, background, colour grading\nand crop must stay pixel-identical to image 2.\n\nPhotorealistic, no text, no watermark.\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 佩戴位置偏了 | `The product must be anatomically correctly placed — re-check the [部位] alignment against the model's [参照点].` |\n| 商品比例不对 | `Match real-world scale: the product's width must be about [X] of the [参照部位] width.` |\n| 出现了两个同类商品 | `Remove the existing [同类商品] the model is wearing and replace it with the product from image 1.` |\n| 人脸/背景被改动 | `Change only the [部位] region. Keep every other pixel identical to image 2.` |\n| 金属/镜片反光假 | `Render physically plausible reflections: [环境] reflected on the [材质], consistent with the light direction in image 2.` |\n\n---\n\n## 7、执行流程\n\n1. **校验输入**：尺寸 / 分辨率 / 格式；剔除不完整、挂件过多、模糊的商品图。\n2. **判断视角**：结构简单（眼镜、项链）→ 单视角即可；结构复杂（鞋、包）→ 传 2~3 个角度。\n3. **挑参考图**：确认穿戴部位完整露出、没有同类商品遮挡、光向与商品图接近。\n4. **写选区**：从第三节表格取对应句子，务必同时写「其他区域不许动」。\n5. **`--dry-run` 估价**，确认 credits 后真跑。\n6. **`--batch 2~4` 出多张挑图**，落盘到 `docs/wear-everything/`。\n7. **质检**：佩戴位置、商品比例、反光合理性、是否叠加了两个商品、人脸是否被改。\n\n---\n\n## 8、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 眼镜歪了 / 悬空 | 未写解剖位置 | 补第三节的选区句，明确鼻梁与耳挂关系 |\n| 鞋子没踩在地上 | 缺少接地约束 | 追加 `soles contacting the ground with correct perspective and grounded shadows` |\n| 商品尺寸明显偏大偏小 | 模型没有比例参照 | 追加比例句，给出与参照部位的宽度比 |\n| 画面里出现两副眼镜 | 参考图模特原本就戴着 | 追加 `replace the existing …`，或换空脸参考图 |\n| 人脸被换了 | 模型重绘整图 | 追加 `Change only the [部位] region. Keep every other pixel identical to image 2.` |\n| 金属反光像塑料 | `--quality medium` | 改 `--quality high` |\n| 包的内里结构错乱 | 只给了正面 | 改多视角图，补内里/侧面 |\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\": \"wear-everything\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1790563270644\n}\n\nFile v1.0.14:references/model-flags.md\n\n# `gpt-image-2` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy gpt-image-2` command to get results.\r\n\r\n```bash\r\ndlazy gpt-image-2 -h\r\n\r\nOptions:\r\n  --prompt <prompt>            Prompt\r\n  --images [images...]         Images [image: url or local path] (max 5)\r\n  --size <size>                Size [default: auto] (choices: \"1024x1024\",\r\n                               \"1536x1024\", \"1024x1536\", \"2048x2048\",\r\n                               \"2048x1152\", \"3840x2160\", \"2160x3840\", \"auto\")\r\n  --imageFormat <imageFormat>  Image Format [default: jpeg] (choices: \"jpeg\",\r\n                               \"png\", \"webp\")\r\n  --quality <quality>          Quality [default: medium] (choices: \"low\",\r\n                               \"medium\", \"high\")\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\r\n                               (default: \"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\r\n                               use --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\nGuides agents in placing shoes, bags, and accessories from product photos onto model reference photos with natural fit, perspective, and shadows.\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 creators and marketers use the skill to prepare realistic on-model accessory images from product and model reference photos, with guidance on placement and visual checks.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Product images, model references, and prompts are sent to the selected cloud image provider.\n\nMitigation: Confirm the provider before running; avoid sensitive or unlicensed images and obtain permission for model likenesses.\n\nRisk: Generated placements can alter the product, model, or scene and mislead shoppers.\n\nMitigation: Review fit, scale, product details, and unchanged areas of the reference photo before publishing.\n\nRisk: Image generation and batch runs can incur charges or apply an unsuitable brand profile broadly.\n\nMitigation: Use --dry-run to inspect the provider and estimated cost, and review optional brand profiles before applying them.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/dlazyai/skills/wear-everything)\n- [Provider setup and outputs](artifact/references/provider-cli.md)\n- [Image model options](artifact/references/model-flags.md)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands]\n\n**Output Format:** [Markdown and shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Running the commands can produce saved image files; inspect results before publishing.]\n\n## Skill Version(s):\n\n1.0.14 (source: skill 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.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, 26141 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (2144b), 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 (2624b), SKILL.md (12603b), _meta.json (135b)\n\nFile v1.0.13:SKILL.md\n\n---\nname: wear-everything\nversion: 1.0.13\ndescription: 鞋包配饰真人穿戴图。商品图 + 模特参考图 → 真人佩戴图，落位、透视与阴影自然。当用户说「鞋包上脚」「配饰上身」「墨镜戴上」「首饰佩戴图」「包包上身」时使用。\n---\n\n# wear-everything — 鞋包配饰一键真人穿戴\n\n把一张**鞋 / 包 / 手表 / 眼镜 / 帽子 / 围巾 / 项链 / 耳饰**的商品图，变成**真人正确佩戴**的商拍图。\n\n和 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md) 的区别：flat-lay 处理「穿在身上的衣服」，本技能处理「戴在身上的东西」——商品只占画面的一小块区域，因此**选区（商品出现在参考图的哪个位置）**是成败关键。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 | 输入：参考图 |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/product-sunglasses.jpg\" width=\"280\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/model-reference.jpg\" width=\"280\"> |\n| `product-sunglasses.jpg` — 玳瑁色方框墨镜，768×1024 | `model-reference.jpg` — 女青年正脸、夜景街拍，768×1024 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory product photography. Image 1 is the product: a pair of tortoise-brown rectangular sunglasses with dark grey lenses. Image 2 is the model/scene reference. Put the sunglasses from image 1 onto the face of the model in image 2, correctly seated on the nose bridge and ears with natural perspective, realistic lens reflections and a soft shadow on the cheekbones. Keep the product 100% faithful: identical frame shape, tortoise-brown acetate color and grain, hinge and temple design, lens tint. Change nothing else — face, hair, scarf, coat, bag chain, night street background, colour grading and crop must stay pixel-identical to image 2. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality medium --imageFormat jpeg \\\n  --save docs/wear-everything/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536。墨镜按正确的鼻梁/耳挂关系落位，镜框玳瑁纹理与镜片色保留；模特五官、围巾千鸟格、夜景街道与色调保持原样。\n\n---\n\n## 1、能力边界\n\n| 能力 | 说明 |\n| --- | --- |\n| 单视角图 | 上传 1 张商品图（正面或主视角） |\n| 多视角图 | 上传同一商品的多个角度，帮助模型理解立体结构（鞋侧面+鞋底、包正面+内里） |\n| 参考图 | 提供真人模特、姿势、场景与光线 |\n| 选区 | 在参考图上框出商品该出现的位置（眼部 / 手腕 / 颈部 / 脚部 / 肩背 / 头顶） |\n| 支持品类 | 鞋、包、手表、眼镜墨镜、帽子、围巾、项链、耳饰、腰带、手套等 |\n\n**不做**：不改商品外形、颜色、五金、logo 与镜片色；不处理服装（用 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md)）；不用于伪造他人肖像代言。\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| 时尚皮鞋 | 单只或一双完整入画，主视角 |\n| 优雅手表 | 表盘正面清晰，表带完整 |\n| 珍珠项链 | 摊开或悬挂，链身完整 |\n| 渔夫帽 | 帽型完整，纹理清晰 |\n| 防晒墨镜 | 镜框展开，镜片颜色真实 |\n\n**会明显拉低效果的输入（❌）**\n\n| 问题 | 说明 |\n| --- | --- |\n| 商品不完整 | 只拍到一半的鞋、被裁掉链扣的项链 |\n| 挂件过多 | 包上挂满吊饰、丝巾，模型分不清主体 |\n| 商品不清晰 | 模糊、过曝、金属反光糊成一片 |\n\n---\n\n## 3、选区：本技能最重要的参数\n\n原站在参考图上直接框选，本技能改用 **prompt 显式指定解剖位置 + 佩戴姿态**，等价且更可控：\n\n| 品类 | 选区描述（写进 prompt） |\n| --- | --- |\n| 眼镜 / 墨镜 | `seated on the nose bridge and hooked over both ears, temples visible along the cheekbones` |\n| 手表 | `on the left wrist, dial facing the camera, strap closed with the buckle on the underside` |\n| 项链 | `around the neck, clasp at the nape, pendant centred on the collarbone` |\n| 耳饰 | `on the visible earlobe, hanging naturally with correct scale` |\n| 帽子 | `on the head, brim angle matching the head tilt, hair falling naturally around it` |\n| 围巾 | `wrapped twice around the neck, fringe hanging over the chest` |\n| 鞋 | `on both feet, soles contacting the ground with correct perspective and grounded shadows` |\n| 包 | `held in the right hand / on the left shoulder, strap resting on the shoulder line with fabric compression` |\n\n**必须同时写死「其他区域不许动」**，否则模型会顺手重绘人脸和背景：\n\n```text\nChange nothing else — face, hair, clothing, background, colour grading and crop\nmust stay pixel-identical to image 2.\n```\n\n---\n\n## 4、参考图挑选维度\n\n- 类目：`女装 / 男装 / 童装`；地区：`国内 / 海外`；类型：`电商 / 种草`\n- 筛选：性别 `男 / 女`；年龄 `婴儿 / 小童 / 大童 / 青少年 / 青年人 / 中年人 / 老年人`；肤色 `欧美人 / 非洲人 / 亚洲人 / 其他肤色`\n\n挑选建议：\n\n- **必须露出穿戴部位**。戴眼镜要正脸或微侧脸；戴手表要手腕入画且不被袖口遮住；穿鞋要脚部完整不被裙摆挡住。\n- **原图上最好没有同类商品**。参考图模特已经戴了另一副眼镜时，模型容易两副叠加——优先选空手空脸的参考图，或在 prompt 里明确 `replace the existing sunglasses`。\n- 光线方向要和商品图接近，否则金属反光会不自然。\n\n---\n\n## 5、工具调用\n\n本技能使用 dLazy 的 **`gpt-image-2`**（多图参考的图像编辑合成模型，最多 5 张参考图；配饰穿戴属于局部替换，需要强指令跟随与区域保持能力）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task wear-everything \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/wear-everything-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/wear-everything.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[商品图, 参考图]`；多视角时 `[商品图1, 商品图2, 参考图]` | 顺序即 prompt 中的 image 1 / 2 / 3 |\n| `--size` | `1024x1536`（半身/全身佩戴）；`1024x1024`（手腕、耳饰等特写） | 按景别选 |\n| `--quality` | `high`（金属、镜片、皮革反光）；`medium`（布类配饰） | 反光材质需要高档位 |\n| `--imageFormat` | `jpeg` | 电商上架通用格式 |\n| `--batch` | `2` ~ `4` | 佩戴位置有随机性，多出几张挑图 |\n| `--save` | `docs/wear-everything/output-<sku>.jpg` | 直接落盘 |\n\n### Command Examples\n\n```bash\n# basic call: 单视角（商品图 + 参考图）\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product, image 2 is the model/scene reference. Put the product from image 1 onto the model in image 2, seated on the nose bridge and hooked over both ears. Keep the product identical in shape, colour, material and logo. Change nothing else — face, hair, clothing, background and crop stay pixel-identical to image 2.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 多视角商品 + 一次出 4 张挑图 + 直接落盘\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product front view, image 2 is the product side view, image 3 is the model/scene reference. Put the shoes onto both feet of the model in image 3, soles contacting the ground with correct perspective and grounded shadows. Preserve the patent finish, brogue perforation, lacing and lug sole exactly. Change nothing else — the model, clothing, pose, background and colour grading stay identical to image 3. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/shoe-front.jpg docs/wear-everything/shoe-side.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --batch 4 --save docs/wear-everything/output-sku001.jpg\n\n# 先估价不真跑\ndlazy gpt-image-2 --dry-run --prompt '...' --images a.jpg b.jpg --size 1024x1536 --quality high\n```\n\n### 延伸阅读\n\n| 要查什么 | 去哪 |\n| --- | --- |\n| 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) |\n| `gpt-image-2` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) |\n| 统一入口的全部选项 | `node scripts/gen.mjs --help` |\n\n## 6、Prompt 模板\n\n```text\nOn-model accessory product photography.\nImage 1 is the product: [品类 + 颜色 + 材质，例：a pair of tortoise-brown rectangular sunglasses with dark grey lenses].\nImage 2 is the model / scene reference.\n\nPut the product from image 1 onto the model in image 2, [选区描述，见第三节表格],\nwith natural perspective, correct scale, realistic [反光/投影描述] and a soft contact shadow.\n\nKeep the product 100% faithful: identical [外形], [颜色与材质], [五金/镜片/纹理], [logo 位置].\n\nChange nothing else — face, hair, clothing, accessories, background, colour grading\nand crop must stay pixel-identical to image 2.\n\nPhotorealistic, no text, no watermark.\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 佩戴位置偏了 | `The product must be anatomically correctly placed — re-check the [部位] alignment against the model's [参照点].` |\n| 商品比例不对 | `Match real-world scale: the product's width must be about [X] of the [参照部位] width.` |\n| 出现了两个同类商品 | `Remove the existing [同类商品] the model is wearing and replace it with the product from image 1.` |\n| 人脸/背景被改动 | `Change only the [部位] region. Keep every other pixel identical to image 2.` |\n| 金属/镜片反光假 | `Render physically plausible reflections: [环境] reflected on the [材质], consistent with the light direction in image 2.` |\n\n---\n\n## 7、执行流程\n\n1. **校验输入**：尺寸 / 分辨率 / 格式；剔除不完整、挂件过多、模糊的商品图。\n2. **判断视角**：结构简单（眼镜、项链）→ 单视角即可；结构复杂（鞋、包）→ 传 2~3 个角度。\n3. **挑参考图**：确认穿戴部位完整露出、没有同类商品遮挡、光向与商品图接近。\n4. **写选区**：从第三节表格取对应句子，务必同时写「其他区域不许动」。\n5. **`--dry-run` 估价**，确认 credits 后真跑。\n6. **`--batch 2~4` 出多张挑图**，落盘到 `docs/wear-everything/`。\n7. **质检**：佩戴位置、商品比例、反光合理性、是否叠加了两个商品、人脸是否被改。\n\n---\n\n## 8、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 眼镜歪了 / 悬空 | 未写解剖位置 | 补第三节的选区句，明确鼻梁与耳挂关系 |\n| 鞋子没踩在地上 | 缺少接地约束 | 追加 `soles contacting the ground with correct perspective and grounded shadows` |\n| 商品尺寸明显偏大偏小 | 模型没有比例参照 | 追加比例句，给出与参照部位的宽度比 |\n| 画面里出现两副眼镜 | 参考图模特原本就戴着 | 追加 `replace the existing …`，或换空脸参考图 |\n| 人脸被换了 | 模型重绘整图 | 追加 `Change only the [部位] region. Keep every other pixel identical to image 2.` |\n| 金属反光像塑料 | `--quality medium` | 改 `--quality high` |\n| 包的内里结构错乱 | 只给了正面 | 改多视角图，补内里/侧面 |\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\": \"wear-everything\",\n  \"version\": \"1.0.13\",\n  \"publishedAt\": 1790217756937\n}\n\nFile v1.0.13:references/model-flags.md\n\n# `gpt-image-2` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy gpt-image-2` command to get results.\r\n\r\n```bash\r\ndlazy gpt-image-2 -h\r\n\r\nOptions:\r\n  --prompt <prompt>            Prompt\r\n  --images [images...]         Images [image: url or local path] (max 5)\r\n  --size <size>                Size [default: auto] (choices: \"1024x1024\",\r\n                               \"1536x1024\", \"1024x1536\", \"2048x2048\",\r\n                               \"2048x1152\", \"3840x2160\", \"2160x3840\", \"auto\")\r\n  --imageFormat <imageFormat>  Image Format [default: jpeg] (choices: \"jpeg\",\r\n                               \"png\", \"webp\")\r\n  --quality <quality>          Quality [default: medium] (choices: \"low\",\r\n                               \"medium\", \"high\")\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\r\n                               (default: \"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\r\n                               use --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\nArchive v1.0.12: 11 files, 26091 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (2144b), 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 (2114b), SKILL.md (12603b), _meta.json (135b)\n\nArchive v1.0.11: 11 files, 26277 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (2144b), 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 (2575b), SKILL.md (12603b), _meta.json (135b)\n\nArchive v1.0.10: 11 files, 26177 bytes\n\nFiles: examples/brand.yaml (1655b), references/model-flags.md (2144b), 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 (2598b), SKILL.md (12603b), _meta.json (135b)","readmeExcerpt":"Skill: 鞋包配饰真人穿戴 Wear Everything Owner: dlazyai Summary: 鞋包配饰真人穿戴图。商品图 + 模特参考图 → 真人佩戴图，落位、透视与阴影自然。当用户说「鞋包上脚」「配饰上身」「墨镜戴上」「首饰佩戴图」「包包上身」时使用。 Tags: latest:1.0.19 Version history: v1.0.19 | 2026-10-10T01:58:16.209Z | user 例行版本更新 2026-10-10 v1.0.18 | 2026-10-08T01:48:58.741Z | user 例行版本更新 2026-10-08 v1.0.17 | 2026-10-04T01:48:24.739Z | user 例行版本更新 2026-10-04 v1.0.16 | 2026-10-02T05:19:49.585Z | user 例行版本更新 2026-10-02 v1.0.1","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"dlazy gpt-image-2 \\\n  --prompt 'On-model accessory product photography. Image 1 is the product: a pair of tortoise-brown rectangular sunglasses with dark grey lenses. Image 2 is the model/scene reference. Put the sunglasses from image 1 onto the face of the model in image 2, correctly seated on the nose bridge and ears with natural perspective, realistic lens reflections and a soft shadow on the cheekbones. Keep the product 100% faithful: identical frame shape, tortoise-brown acetate color and grain, hinge and temple design, lens tint. Change nothing else — face, hair, scarf, coat, bag chain, night street background, colour grading and crop must stay pixel-identical to image 2. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality medium --imageFormat jpeg \\\n  --save docs/wear-everything/example-output.jpg"},{"language":"text","snippet":"Change nothing else — face, hair, clothing, background, colour grading and crop\nmust stay pixel-identical to image 2."},{"language":"bash","snippet":"# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task wear-everything \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/wear-everything-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/wear-everything.jpg"},{"language":"bash","snippet":"# basic call: 单视角（商品图 + 参考图）\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product, image 2 is the model/scene reference. Put the product from image 1 onto the model in image 2, seated on the nose bridge and hooked over both ears. Keep the product identical in shape, colour, material and logo. Change nothing else — face, hair, clothing, background and crop stay pixel-identical to image 2.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 多视角商品 + 一次出 4 张挑图 + 直接落盘\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory photo. Image 1 is the product front view, image 2 is the product side view, image 3 is the model/scene reference. Put the shoes onto both feet of the model in image 3, soles contacting the ground with correct perspective and grounded shadows. Preserve the patent finish, brogue perforation, lacing and lug sole exactly. Change nothing else — the model, clothing, pose, background and colour grading stay identical to image 3. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/shoe-front.jpg docs/wear-everything/shoe-side.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --batch 4 --save docs/wear-everything/output-sku001.jpg\n\n# 先估价不真跑\ndlazy gpt-image-2 --dry-run --prompt '...' --images a.jpg b.jpg --size 1024x1536 --quality high"},{"language":"text","snippet":"On-model accessory product photography.\nImage 1 is the product: [品类 + 颜色 + 材质，例：a pair of tortoise-brown rectangular sunglasses with dark grey lenses].\nImage 2 is the model / scene reference.\n\nPut the product from image 1 onto the model in image 2, [选区描述，见第三节表格],\nwith natural perspective, correct scale, realistic [反光/投影描述] and a soft contact shadow.\n\nKeep the product 100% faithful: identical [外形], [颜色与材质], [五金/镜片/纹理], [logo 位置].\n\nChange nothing else — face, hair, clothing, accessories, background, colour grading\nand crop must stay pixel-identical to image 2.\n\nPhotorealistic, no text, no watermark."},{"language":"bash","snippet":"dlazy login            # 设备码流程，远程 shell 也能用，自动写入本地配置\ndlazy auth set <KEY>   # 已有 key 时直接写入"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: wear-everything\nversion: 1.0.19\ndescription: 鞋包配饰真人穿戴图。商品图 + 模特参考图 → 真人佩戴图，落位、透视与阴影自然。当用户说「鞋包上脚」「配饰上身」「墨镜戴上」「首饰佩戴图」「包包上身」时使用。\n---\n\n# wear-everything — 鞋包配饰一键真人穿戴\n\n把一张**鞋 / 包 / 手表 / 眼镜 / 帽子 / 围巾 / 项链 / 耳饰**的商品图，变成**真人正确佩戴**的商拍图。\n\n和 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md) 的区别：flat-lay 处理「穿在身上的衣服」，本技能处理「戴在身上的东西」——商品只占画面的一小块区域，因此**选区（商品出现在参考图的哪个位置）**是成败关键。\n\n---\n\n## 生成效果示例\n\n| 输入：商品图 | 输入：参考图 |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/product-sunglasses.jpg\" width=\"280\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/model-reference.jpg\" width=\"280\"> |\n| `product-sunglasses.jpg` — 玳瑁色方框墨镜，768×1024 | `model-reference.jpg` — 女青年正脸、夜景街拍，768×1024 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'On-model accessory product photography. Image 1 is the product: a pair of tortoise-brown rectangular sunglasses with dark grey lenses. Image 2 is the model/scene reference. Put the sunglasses from image 1 onto the face of the model in image 2, correctly seated on the nose bridge and ears with natural perspective, realistic lens reflections and a soft shadow on the cheekbones. Keep the product 100% faithful: identical frame shape, tortoise-brown acetate color and grain, hinge and temple design, lens tint. Change nothing else — face, hair, scarf, coat, bag chain, night street background, colour grading and crop must stay pixel-identical to image 2. Photorealistic, no text, no watermark.' \\\n  --images docs/wear-everything/product-sunglasses.jpg docs/wear-everything/model-reference.jpg \\\n  --size 1024x1536 --quality medium --imageFormat jpeg \\\n  --save docs/wear-everything/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/wear-everything/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536。墨镜按正确的鼻梁/耳挂关系落位，镜框玳瑁纹理与镜片色保留；模特五官、围巾千鸟格、夜景街道与色调保持原样。\n\n---\n\n## 1、能力边界\n\n| 能力 | 说明 |\n| --- | --- |\n| 单视角图 | 上传 1 张商品图（正面或主视角） |\n| 多视角图 | 上传同一商品的多个角度，帮助模型理解立体结构（鞋侧面+鞋底、包正面+内里） |\n| 参考图 | 提供真人模特、姿势、场景与光线 |\n| 选区 | 在参考图上框出商品该出现的位置（眼部 / 手腕 / 颈部 / 脚部 / 肩背 / 头顶） |\n| 支持品类 | 鞋、包、手表、眼镜墨镜、帽子、围巾、项链、耳饰、腰带、手套等 |\n\n**不做**：不改商品外形、颜色、五金、logo 与镜片色；不处理服装（用 [flat-lay](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/flat-lay/skill.md)）；不用于伪造他人肖像代言。\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| 时尚皮鞋 | 单只或一双完整入画，主视角 |\n| 优雅手表 | 表盘正面清晰，表带完整 |\n| 珍珠项链 | 摊开或悬挂，链身完整 |\n| 渔夫帽 | 帽型完整，纹理清晰 |\n| 防晒墨镜 | 镜框展开，镜片颜色真实 |\n\n**会明显拉低效果的输入（❌）**\n\n| 问题 | 说明 |\n| --- | --- |\n| 商品不完整 | 只拍到一半的鞋、被裁掉链扣的项链 |\n| 挂件过多 | 包上挂满吊饰、丝巾，模型分不清主体 |\n| 商品不清晰 | 模糊、过曝、金属反光糊成一片 |\n\n---\n\n## 3、选区：本技能最重要的参数\n\n原站在参考图上直接框选，本技能改用 **prompt 显式指定解剖位置 + 佩戴姿态**，等价且更可控：\n\n| 品类 | 选区描述（写进 prompt） |\n| --- | --- |\n| 眼镜 / 墨镜 | `seated on the nose bridge and hooked over both ears, temples visible alo"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7c5wgeajfcfvdfb5ceemvdb984cjpd\",\n  \"slug\": \"wear-everything\",\n  \"version\": \"1.0.19\",\n  \"publishedAt\": 1791597496209\n}"},{"path":"references/model-flags.md","content":"# `gpt-image-2` 参数清单\r\n\r\n本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个，\r\n这份清单在需要用到非常规参数时再看。\r\n\r\n**CRITICAL INSTRUCTION FOR AGENT**:\r\nRun the `dlazy gpt-image-2` command to get results.\r\n\r\n```bash\r\ndlazy gpt-image-2 -h\r\n\r\nOptions:\r\n  --prompt <prompt>            Prompt\r\n  --images [images...]         Images [image: url or local path] (max 5)\r\n  --size <size>                Size [default: auto] (choices: \"1024x1024\",\r\n                               \"1536x1024\", \"1024x1536\", \"2048x2048\",\r\n                               \"2048x1152\", \"3840x2160\", \"2160x3840\", \"auto\")\r\n  --imageFormat <imageFormat>  Image Format [default: jpeg] (choices: \"jpeg\",\r\n                               \"png\", \"webp\")\r\n  --quality <quality>          Quality [default: medium] (choices: \"low\",\r\n                               \"medium\", \"high\")\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\r\n                               (default: \"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\r\n                               use --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: 鞋包配饰真人穿戴 Wear Everything Owner: dlazyai Summary: 鞋包配饰真人穿戴图。商品图 + 模特参考图 → 真人佩戴图，落位、透视与阴影自然。当用户说「鞋包上脚」「配饰上身」「墨镜戴上」「首饰佩戴图」「包包上身」时使用。 Tags: latest:1.0.19 Version history: v1.0.19 | 2026-10-10T01:58:16.209Z | user 例行版本更新 2026-10-10 v1.0.18 | 2026-10-08T01:48:58.741Z | user 例行版本更新 2026-10-08 v1.0.17 | 2026-10-04T01:48:24.739Z | user 例行版本更新 2026-10-04 v1.0.16 | 2026-10-02T05:19:49.585Z | user 例行版本更新 2026-10-02 v1.0.1","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":998,"uniquenessScore":50,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T18:49:31.281Z","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-10T18:49:31.281Z","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-10T21:52:27.616Z","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"}]}}}