{"id":"0c1070d9-8594-4d10-b48f-37e31935bc79","entityType":"agent","slug":"clawhub-dlazyai-material-enhancement","name":"材质质感增强 Material Enhancement","canonicalUrl":"https://www.xpersona.co/agent/clawhub-dlazyai-material-enhancement","canonicalPath":"/agent/clawhub-dlazyai-material-enhancement","generatedAt":"2026-10-11T01:47:34.363Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-10T22:51:11.692Z","emptyReason":null},"description":"材质质感增强与纹理重建。糊掉的图 + 高清商品图 → 纹理清晰可信的图。当用户说「增强质感」「图糊了」「补纹理」「提清晰度」时使用。 Skill: 材质质感增强 Material Enhancement Owner: dlazyai Summary: 材质质感增强与纹理重建。糊掉的图 + 高清商品图 → 纹理清晰可信的图。当用户说「增强质感」「图糊了」「补纹理」「提清晰度」时使用。 Tags: latest:1.0.18 Version history: v1.0.18 | 2026-10-10T01:54:06.539Z | user 例行版本更新 2026-10-10 v1.0.17 | 2026-10-08T01:45:51.381Z | user 例行版本更新 2026-10-08 v1.0.16 | 2026-10-04T01:45:52.009Z | user 例行版本更新 2026-10-04 v1.0.15 | 2026-10-02T05:18:03.469Z | user 例行版本更新 2026-10-02 v1.0.14 | 2026-09","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/10/2026.","installCommand":"clawhub skill install s170j1ymymrxasgd00dsk7tckx84cf45:material-enhancement","sourceUrl":"https://clawhub.ai/dlazyai/material-enhancement","homepage":"https://clawhub.ai/dlazyai/skills/material-enhancement","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/dlazyai/material-enhancement","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/dlazyai/skills/material-enhancement","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"材质质感增强与纹理重建。糊掉的图 + 高清商品图 → 纹理清晰可信的图。当用户说「增强质感」「图糊了」「补纹理」「提清晰度」时使用。 Skill: 材质质感增强 Material Enhancement Owner: dlazyai Summary: 材质质感增强与纹理重建。糊掉的图 + 高清商品图 → 纹理清晰可信的"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-10T22:51:11.692Z","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-10T22:51:11.692Z","emptyReason":null},"stars":null,"forks":null,"downloads":1237,"packageName":null,"latestVersion":"1.0.18","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-10T22:51:11.621Z","emptyReason":null},"lastUpdatedAt":"2026-10-10T22:51:11.692Z","lastCrawledAt":"2026-10-10T22:51:11.621Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-11T22:51:11.621Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.18","createdAt":"2026-10-10T01:54:06.539Z","changelog":"例行版本更新 2026-10-10","fileCount":11,"zipByteSize":25215},{"version":"1.0.17","createdAt":"2026-10-08T01:45:51.381Z","changelog":"例行版本更新 2026-10-08","fileCount":11,"zipByteSize":25108},{"version":"1.0.16","createdAt":"2026-10-04T01:45:52.009Z","changelog":"例行版本更新 2026-10-04","fileCount":11,"zipByteSize":25277},{"version":"1.0.15","createdAt":"2026-10-02T05:18:03.469Z","changelog":"例行版本更新 2026-10-02","fileCount":11,"zipByteSize":25131},{"version":"1.0.14","createdAt":"2026-09-30T01:50:26.439Z","changelog":"例行版本更新 2026-09-30","fileCount":11,"zipByteSize":25186},{"version":"1.0.13","createdAt":"2026-09-28T02:38:51.426Z","changelog":"例行版本更新 2026-09-28","fileCount":11,"zipByteSize":25123},{"version":"1.0.12","createdAt":"2026-09-24T02:40:38.550Z","changelog":"例行版本更新 2026-09-24","fileCount":11,"zipByteSize":25529},{"version":"1.0.11","createdAt":"2026-09-22T01:43:28.376Z","changelog":"例行版本更新 2026-09-22","fileCount":11,"zipByteSize":25335}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s170j1ymymrxasgd00dsk7tckx84cf45:material-enhancement","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-material-enhancement/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-material-enhancement/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-material-enhancement/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-material-enhancement/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-material-enhancement/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-material-enhancement/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-11T01:47:34.360Z"}},"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-material-enhancement/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-material-enhancement/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-material-enhancement/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dlazyai-material-enhancement/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-10T22:51:11.692Z","emptyReason":null},"readme":"Skill: 材质质感增强 Material Enhancement\n\nOwner: dlazyai\n\nSummary: 材质质感增强与纹理重建。糊掉的图 + 高清商品图 → 纹理清晰可信的图。当用户说「增强质感」「图糊了」「补纹理」「提清晰度」时使用。\n\nTags: latest:1.0.18\n\nVersion history:\n\nv1.0.18 | 2026-10-10T01:54:06.539Z | user\n\n例行版本更新 2026-10-10\n\nv1.0.17 | 2026-10-08T01:45:51.381Z | user\n\n例行版本更新 2026-10-08\n\nv1.0.16 | 2026-10-04T01:45:52.009Z | user\n\n例行版本更新 2026-10-04\n\nv1.0.15 | 2026-10-02T05:18:03.469Z | user\n\n例行版本更新 2026-10-02\n\nv1.0.14 | 2026-09-30T01:50:26.439Z | user\n\n例行版本更新 2026-09-30\n\nv1.0.13 | 2026-09-28T02:38:51.426Z | user\n\n例行版本更新 2026-09-28\n\nv1.0.12 | 2026-09-24T02:40:38.550Z | user\n\n例行版本更新 2026-09-24\n\nv1.0.11 | 2026-09-22T01:43:28.376Z | user\n\n例行版本更新 2026-09-22\n\nv1.0.10 | 2026-09-20T01:55:44.770Z | user\n\n例行版本更新 2026-09-20\n\nv1.0.9 | 2026-09-18T02:14:21.461Z | user\n\n例行版本更新 2026-09-18\n\nv1.0.8 | 2026-09-10T01:37:20.207Z | user\n\n例行版本更新 2026-09-10\n\nv1.0.7 | 2026-09-08T01:44:22.498Z | user\n\n例行版本更新 2026-09-08\n\nv1.0.6 | 2026-09-07T01:53:37.572Z | user\n\n例行版本更新 2026-09-07\n\nv1.0.5 | 2026-09-04T01:44:51.787Z | user\n\n例行版本更新 2026-09-04\n\nv1.0.4 | 2026-09-02T01:40:43.741Z | user\n\n例行版本更新 2026-09-02\n\nv1.0.3 | 2026-08-31T07:07:33.676Z | user\n\n源码仓库迁移至 github.com/dlazy-ai/ecommerce-skills\n\nv1.0.2 | 2026-08-31T05:27:48.329Z | user\n\n源码仓库迁移至 github.com/dlazy-ai/ecommerce-skills\n\nv1.0.1 | 2026-08-29T04:12:18.666Z | user\n\nSync from GitHub\n\nv1.0.0 | 2026-08-18T04:43:29.776Z | user\n\nSync from GitHub\n\nArchive index:\n\nArchive v1.0.18: 11 files, 25215 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 (2110b), SKILL.md (11512b), _meta.json (140b)\n\nFile v1.0.18:SKILL.md\n\n---\nname: material-enhancement\nversion: 1.0.18\ndescription: 材质质感增强与纹理重建。糊掉的图 + 高清商品图 → 纹理清晰可信的图。当用户说「增强质感」「图糊了」「补纹理」「提清晰度」时使用。\n---\n\n# material-enhancement — 优化服装材质和细节质感\n\n把一张**面料糊掉的商拍图**修成**面料清晰真实**的图，构图和人一动不动。\n\n这是一个**后处理技能**：AI 生成的服装图最容易崩的就是面料——远看还行，放大一看针织变成一片糊。给它一张真实的高清商品图当参照，把表面重建回来。\n\n---\n\n## 生成效果示例\n\n| 输入：原图（待增强） | 输入：高清商品图（真实面料） |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/source-image.jpg\" width=\"240\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/hires-product.jpg\" width=\"240\"> |\n| `source-image.jpg` — 军绿麻花毛衣上身图，1024×1536 | `hires-product.jpg` — 同款毛衣高清平铺图，800×800 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the sweater surface in image 1 using the real texture from image 2: crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, correct fold shadows and a matte fibre sheen. Do not change anything else — the model face, hair, hands, pose, brown trousers, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only the material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --save docs/material-enhancement/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536，60 credits。麻花辫的立体起伏、菱形提花的凹凸、羊毛的绒毛感与褶皱处的暗部层次被重建；模特五官、发型、手部、姿势、棕色长裤、灰墙背景与整体色调保持不变，毛衣轮廓与军绿色未偏移。\n\n---\n\n## 1、能力边界\n\n| 输入 | 作用 |\n| --- | --- |\n| 原图 | 要改善的商拍图，决定构图、模特、姿势、背景与色调 |\n| 高清商品图 | 提供真实面料信息（织法、纹理、绒感、光泽） |\n| 服装类型 | 帮助判断哪些表面特征该被强化 |\n\n| 只改 | 不改 |\n| --- | --- |\n| 面料表面纹理、微观细节、褶皱阴影层次、纤维光泽 | 构图、模特（脸/发/手/姿势）、其他服饰、背景、色调、服装轮廓与颜色 |\n\n**不做**：不改服装轮廓与颜色；不改模特与背景；不把一种面料换成另一种（换面料请用 [fabric-on-body](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/fabric-on-body/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## 3、材质增强的两条铁律\n\n**铁律一：只改表面，别的一个像素都别动。**\n\n```text\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n```\n\n**铁律二：把「好质感」翻译成具体的表面特征**，否则模型只会整体加锐化。\n\n| 面料 | 要重建的具体特征 |\n| --- | --- |\n| 粗针织 | `crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, matte fibre sheen` |\n| 精纺羊毛 | `fine even weave, subtle fibre halo, soft directional sheen` |\n| 缎面 | `smooth continuous specular gradients along the folds, no texture noise` |\n| 灯芯绒 | `parallel wale ridges with correct pitch, matte pile catching light on the ridge tops` |\n| 牛仔 | `diagonal twill lines, slub irregularity, whiskering at stress folds` |\n| 皮革 | `grain pores, broad soft creases, low-frequency specular sheen` |\n| 摇粒绒/绒毛 | `dense short pile, fuzzy silhouette edge, light scattering rather than specular` |\n\n再加一条**褶皱层次**：`correct fold shadows with proper ambient occlusion in the creases`——这是「看起来有厚度」的来源。\n\n---\n\n## 4、工具调用\n\n本技能使用 dLazy 的 **`gpt-image-2`**（图像编辑模型 + `--quality high`；材质增强要求「几何与色彩零变化、表面高频信息重建」，是典型的双图参考定向修复）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task material-enhancement \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/material-enhancement-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/material-enhancement.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[原图, 高清商品图]` | 顺序即 prompt 中的 image 1 / 2 |\n| `--size` | 与原图比例一致 | 增强不该改构图 |\n| `--quality` | `high`（**必须**） | 本技能的产出就是高频细节 |\n| `--imageFormat` | `jpeg` | 通用格式 |\n| `--batch` | `2` | 纹理重建有随机性 |\n| `--save` | `docs/material-enhancement/output-<sku>-enhanced.jpg` | 与原图分开归档便于对比 |\n\n### Command Examples\n\n```bash\n# basic call\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo defining the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: crisp knit relief, visible loops and yarn twist, natural loft, correct fold shadows. Do not change anything else — model, pose, background, framing and colour grading stay identical to image 1. Only material fidelity improves.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 批量给一组生成图做材质后处理\nHIRES=docs/material-enhancement/hires-product.jpg\nLOCK='Do not change anything else — the model face, hair, hands, pose, other garments, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.'\nFEAT='crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, matte fibre sheen, correct fold shadows with proper ambient occlusion in the creases'\nfor f in docs/material-enhancement/raw/*.jpg; do\n  dlazy gpt-image-2 \\\n    --prompt \"Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: $FEAT. $LOCK\" \\\n    --images \"$f\" \"$HIRES\" \\\n    --size 1024x1536 --quality high --imageFormat jpeg \\\n    --save \"docs/material-enhancement/enhanced/$(basename $f)\"\ndone\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## 5、Prompt 模板\n\n```text\nTexture enhancement pass.\nImage 1 is the on-model photo to improve.\nImage 2 is the high-resolution product photo that defines the true fabric.\n\nRebuild the [服装部位] surface in image 1 using the real texture from image 2:\n[第三节表格里对应面料的具体特征],\ncorrect fold shadows with proper ambient occlusion in the creases.\n\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n\nPhotorealistic, sharp, no text, no watermark.\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 只是整体变锐利了 | `This is not sharpening: reconstruct the actual [织法单位] structure, loop by loop, matching image 2.` |\n| 人脸/背景也变了 | `Only pixels inside the garment region may change. Everything outside it must be identical to image 1.` |\n| 颜色被改了 | `Preserve the exact garment colour from image 1; do not shift hue, saturation or brightness.` |\n| 纹理密度不对 | `Match the texture scale to the garment size in image 1: about [N] knit loops per [尺寸].` |\n| 褶皱变平 | `Deepen the crease shadows with ambient occlusion; the garment must read as [厚度描述] fabric.` |\n\n---\n\n## 6、执行流程\n\n1. **确认两张图是同一件商品**——这是最容易犯的错。\n2. **判断原图值不值得救**：结构崩坏的重跑生成，只有面料糊的才用本技能。\n3. **写面料特征**：查第三节表格，用具体特征替代「质感更好」。\n4. **写两条铁律**：只改表面 + 别的不许动。\n5. **`--quality high`（必须）** → `--batch 2` 挑图，落盘到 `docs/material-enhancement/`。\n6. **并排对比原图与输出**：面料是否真的重建了（不是加锐化）、脸和背景是否没动、颜色是否没偏。\n\n---\n\n## 7、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 只是变锐利了 | 未要求重建结构 | 追加「这不是锐化」句，要求逐个线圈重建 |\n| 人脸/背景也被改 | 未锁定区域 | 追加只允许服装区域变化句 |\n| 颜色偏了 | 模型顺手调色 | 追加保色句 |\n| 纹理密度不对（线圈太大/太小） | 未给尺度参照 | 追加纹理尺度句 |\n| 褶皱变平、没厚度 | 缺 AO 描述 | 追加加深褶皱暗部句 |\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\": \"material-enhancement\",\n  \"version\": \"1.0.18\",\n  \"publishedAt\": 1791597246539\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\nEnhances fabric texture in apparel product photos using a high-resolution image of the same item as reference while aiming to preserve the model, garment shape, color, and background.\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-image editors use this skill to reconstruct unclear garment texture in an otherwise usable photo, guided by a sharp reference photo of the same product.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Product photos may be sent to external image-generation providers.\n\nMitigation: Use only images authorized for the selected provider, especially when working with proprietary photos.\n\nRisk: The bundled generation helper can run tasks beyond material enhancement.\n\nMitigation: Review the requested task and provider with --dry-run before execution; limit credentials to the intended service.\n\nRisk: Untrusted remote image URLs may introduce unintended content or data exposure.\n\nMitigation: Avoid untrusted remote image URLs and confirm reference images depict the same product.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/dlazyai/skills/material-enhancement)\n- [Model flags](references/model-flags.md)\n- [Provider CLI reference](references/provider-cli.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 guidance and commands; generated image files]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Optional batch outputs; compare results with the source image before use.]\n\n## Skill Version(s):\n\n1.0.18 (source: skill frontmatter and ClawHub 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.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, 25108 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 (1855b), SKILL.md (11512b), _meta.json (140b)\n\nFile v1.0.17:SKILL.md\n\n---\nname: material-enhancement\nversion: 1.0.17\ndescription: 材质质感增强与纹理重建。糊掉的图 + 高清商品图 → 纹理清晰可信的图。当用户说「增强质感」「图糊了」「补纹理」「提清晰度」时使用。\n---\n\n# material-enhancement — 优化服装材质和细节质感\n\n把一张**面料糊掉的商拍图**修成**面料清晰真实**的图，构图和人一动不动。\n\n这是一个**后处理技能**：AI 生成的服装图最容易崩的就是面料——远看还行，放大一看针织变成一片糊。给它一张真实的高清商品图当参照，把表面重建回来。\n\n---\n\n## 生成效果示例\n\n| 输入：原图（待增强） | 输入：高清商品图（真实面料） |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/source-image.jpg\" width=\"240\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/hires-product.jpg\" width=\"240\"> |\n| `source-image.jpg` — 军绿麻花毛衣上身图，1024×1536 | `hires-product.jpg` — 同款毛衣高清平铺图，800×800 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the sweater surface in image 1 using the real texture from image 2: crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, correct fold shadows and a matte fibre sheen. Do not change anything else — the model face, hair, hands, pose, brown trousers, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only the material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --save docs/material-enhancement/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536，60 credits。麻花辫的立体起伏、菱形提花的凹凸、羊毛的绒毛感与褶皱处的暗部层次被重建；模特五官、发型、手部、姿势、棕色长裤、灰墙背景与整体色调保持不变，毛衣轮廓与军绿色未偏移。\n\n---\n\n## 1、能力边界\n\n| 输入 | 作用 |\n| --- | --- |\n| 原图 | 要改善的商拍图，决定构图、模特、姿势、背景与色调 |\n| 高清商品图 | 提供真实面料信息（织法、纹理、绒感、光泽） |\n| 服装类型 | 帮助判断哪些表面特征该被强化 |\n\n| 只改 | 不改 |\n| --- | --- |\n| 面料表面纹理、微观细节、褶皱阴影层次、纤维光泽 | 构图、模特（脸/发/手/姿势）、其他服饰、背景、色调、服装轮廓与颜色 |\n\n**不做**：不改服装轮廓与颜色；不改模特与背景；不把一种面料换成另一种（换面料请用 [fabric-on-body](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/fabric-on-body/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## 3、材质增强的两条铁律\n\n**铁律一：只改表面，别的一个像素都别动。**\n\n```text\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n```\n\n**铁律二：把「好质感」翻译成具体的表面特征**，否则模型只会整体加锐化。\n\n| 面料 | 要重建的具体特征 |\n| --- | --- |\n| 粗针织 | `crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, matte fibre sheen` |\n| 精纺羊毛 | `fine even weave, subtle fibre halo, soft directional sheen` |\n| 缎面 | `smooth continuous specular gradients along the folds, no texture noise` |\n| 灯芯绒 | `parallel wale ridges with correct pitch, matte pile catching light on the ridge tops` |\n| 牛仔 | `diagonal twill lines, slub irregularity, whiskering at stress folds` |\n| 皮革 | `grain pores, broad soft creases, low-frequency specular sheen` |\n| 摇粒绒/绒毛 | `dense short pile, fuzzy silhouette edge, light scattering rather than specular` |\n\n再加一条**褶皱层次**：`correct fold shadows with proper ambient occlusion in the creases`——这是「看起来有厚度」的来源。\n\n---\n\n## 4、工具调用\n\n本技能使用 dLazy 的 **`gpt-image-2`**（图像编辑模型 + `--quality high`；材质增强要求「几何与色彩零变化、表面高频信息重建」，是典型的双图参考定向修复）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task material-enhancement \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/material-enhancement-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/material-enhancement.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[原图, 高清商品图]` | 顺序即 prompt 中的 image 1 / 2 |\n| `--size` | 与原图比例一致 | 增强不该改构图 |\n| `--quality` | `high`（**必须**） | 本技能的产出就是高频细节 |\n| `--imageFormat` | `jpeg` | 通用格式 |\n| `--batch` | `2` | 纹理重建有随机性 |\n| `--save` | `docs/material-enhancement/output-<sku>-enhanced.jpg` | 与原图分开归档便于对比 |\n\n### Command Examples\n\n```bash\n# basic call\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo defining the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: crisp knit relief, visible loops and yarn twist, natural loft, correct fold shadows. Do not change anything else — model, pose, background, framing and colour grading stay identical to image 1. Only material fidelity improves.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 批量给一组生成图做材质后处理\nHIRES=docs/material-enhancement/hires-product.jpg\nLOCK='Do not change anything else — the model face, hair, hands, pose, other garments, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.'\nFEAT='crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, matte fibre sheen, correct fold shadows with proper ambient occlusion in the creases'\nfor f in docs/material-enhancement/raw/*.jpg; do\n  dlazy gpt-image-2 \\\n    --prompt \"Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: $FEAT. $LOCK\" \\\n    --images \"$f\" \"$HIRES\" \\\n    --size 1024x1536 --quality high --imageFormat jpeg \\\n    --save \"docs/material-enhancement/enhanced/$(basename $f)\"\ndone\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## 5、Prompt 模板\n\n```text\nTexture enhancement pass.\nImage 1 is the on-model photo to improve.\nImage 2 is the high-resolution product photo that defines the true fabric.\n\nRebuild the [服装部位] surface in image 1 using the real texture from image 2:\n[第三节表格里对应面料的具体特征],\ncorrect fold shadows with proper ambient occlusion in the creases.\n\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n\nPhotorealistic, sharp, no text, no watermark.\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 只是整体变锐利了 | `This is not sharpening: reconstruct the actual [织法单位] structure, loop by loop, matching image 2.` |\n| 人脸/背景也变了 | `Only pixels inside the garment region may change. Everything outside it must be identical to image 1.` |\n| 颜色被改了 | `Preserve the exact garment colour from image 1; do not shift hue, saturation or brightness.` |\n| 纹理密度不对 | `Match the texture scale to the garment size in image 1: about [N] knit loops per [尺寸].` |\n| 褶皱变平 | `Deepen the crease shadows with ambient occlusion; the garment must read as [厚度描述] fabric.` |\n\n---\n\n## 6、执行流程\n\n1. **确认两张图是同一件商品**——这是最容易犯的错。\n2. **判断原图值不值得救**：结构崩坏的重跑生成，只有面料糊的才用本技能。\n3. **写面料特征**：查第三节表格，用具体特征替代「质感更好」。\n4. **写两条铁律**：只改表面 + 别的不许动。\n5. **`--quality high`（必须）** → `--batch 2` 挑图，落盘到 `docs/material-enhancement/`。\n6. **并排对比原图与输出**：面料是否真的重建了（不是加锐化）、脸和背景是否没动、颜色是否没偏。\n\n---\n\n## 7、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 只是变锐利了 | 未要求重建结构 | 追加「这不是锐化」句，要求逐个线圈重建 |\n| 人脸/背景也被改 | 未锁定区域 | 追加只允许服装区域变化句 |\n| 颜色偏了 | 模型顺手调色 | 追加保色句 |\n| 纹理密度不对（线圈太大/太小） | 未给尺度参照 | 追加纹理尺度句 |\n| 褶皱变平、没厚度 | 缺 AO 描述 | 追加加深褶皱暗部句 |\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\": \"material-enhancement\",\n  \"version\": \"1.0.17\",\n  \"publishedAt\": 1791423951381\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\nEnhances fabric texture and fine detail in apparel photos using a high-resolution image of the same product as a reference.\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 photographers and creative teams use this skill to restore realistic fabric detail in product photos while aiming to preserve the model, garment shape, color, and background.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Product images and prompts are sent to the selected image provider.\n\nMitigation: Avoid sensitive local images and private image URLs; confirm the selected provider before running.\n\nRisk: Image-generation requests may incur costs or use unintended provider credentials.\n\nMitigation: Run a dry-run to inspect requests and estimated costs, and review active provider credentials.\n\n## Reference(s):\n\n- [ClawHub skill listing](https://clawhub.ai/dlazyai/skills/material-enhancement)\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):** [Images, Shell commands, Guidance]\n\n**Output Format:** [Enhanced image files with Markdown instructions and shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Review the result against the original for texture accuracy, color fidelity, and unintended edits.]\n\n## Skill Version(s):\n\n1.0.17 (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.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, 25277 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 (2224b), SKILL.md (11512b), _meta.json (140b)\n\nFile v1.0.16:SKILL.md\n\n---\nname: material-enhancement\nversion: 1.0.16\ndescription: 材质质感增强与纹理重建。糊掉的图 + 高清商品图 → 纹理清晰可信的图。当用户说「增强质感」「图糊了」「补纹理」「提清晰度」时使用。\n---\n\n# material-enhancement — 优化服装材质和细节质感\n\n把一张**面料糊掉的商拍图**修成**面料清晰真实**的图，构图和人一动不动。\n\n这是一个**后处理技能**：AI 生成的服装图最容易崩的就是面料——远看还行，放大一看针织变成一片糊。给它一张真实的高清商品图当参照，把表面重建回来。\n\n---\n\n## 生成效果示例\n\n| 输入：原图（待增强） | 输入：高清商品图（真实面料） |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/source-image.jpg\" width=\"240\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/hires-product.jpg\" width=\"240\"> |\n| `source-image.jpg` — 军绿麻花毛衣上身图，1024×1536 | `hires-product.jpg` — 同款毛衣高清平铺图，800×800 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the sweater surface in image 1 using the real texture from image 2: crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, correct fold shadows and a matte fibre sheen. Do not change anything else — the model face, hair, hands, pose, brown trousers, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only the material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --save docs/material-enhancement/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536，60 credits。麻花辫的立体起伏、菱形提花的凹凸、羊毛的绒毛感与褶皱处的暗部层次被重建；模特五官、发型、手部、姿势、棕色长裤、灰墙背景与整体色调保持不变，毛衣轮廓与军绿色未偏移。\n\n---\n\n## 1、能力边界\n\n| 输入 | 作用 |\n| --- | --- |\n| 原图 | 要改善的商拍图，决定构图、模特、姿势、背景与色调 |\n| 高清商品图 | 提供真实面料信息（织法、纹理、绒感、光泽） |\n| 服装类型 | 帮助判断哪些表面特征该被强化 |\n\n| 只改 | 不改 |\n| --- | --- |\n| 面料表面纹理、微观细节、褶皱阴影层次、纤维光泽 | 构图、模特（脸/发/手/姿势）、其他服饰、背景、色调、服装轮廓与颜色 |\n\n**不做**：不改服装轮廓与颜色；不改模特与背景；不把一种面料换成另一种（换面料请用 [fabric-on-body](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/fabric-on-body/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## 3、材质增强的两条铁律\n\n**铁律一：只改表面，别的一个像素都别动。**\n\n```text\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n```\n\n**铁律二：把「好质感」翻译成具体的表面特征**，否则模型只会整体加锐化。\n\n| 面料 | 要重建的具体特征 |\n| --- | --- |\n| 粗针织 | `crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, matte fibre sheen` |\n| 精纺羊毛 | `fine even weave, subtle fibre halo, soft directional sheen` |\n| 缎面 | `smooth continuous specular gradients along the folds, no texture noise` |\n| 灯芯绒 | `parallel wale ridges with correct pitch, matte pile catching light on the ridge tops` |\n| 牛仔 | `diagonal twill lines, slub irregularity, whiskering at stress folds` |\n| 皮革 | `grain pores, broad soft creases, low-frequency specular sheen` |\n| 摇粒绒/绒毛 | `dense short pile, fuzzy silhouette edge, light scattering rather than specular` |\n\n再加一条**褶皱层次**：`correct fold shadows with proper ambient occlusion in the creases`——这是「看起来有厚度」的来源。\n\n---\n\n## 4、工具调用\n\n本技能使用 dLazy 的 **`gpt-image-2`**（图像编辑模型 + `--quality high`；材质增强要求「几何与色彩零变化、表面高频信息重建」，是典型的双图参考定向修复）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task material-enhancement \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/material-enhancement-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/material-enhancement.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[原图, 高清商品图]` | 顺序即 prompt 中的 image 1 / 2 |\n| `--size` | 与原图比例一致 | 增强不该改构图 |\n| `--quality` | `high`（**必须**） | 本技能的产出就是高频细节 |\n| `--imageFormat` | `jpeg` | 通用格式 |\n| `--batch` | `2` | 纹理重建有随机性 |\n| `--save` | `docs/material-enhancement/output-<sku>-enhanced.jpg` | 与原图分开归档便于对比 |\n\n### Command Examples\n\n```bash\n# basic call\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo defining the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: crisp knit relief, visible loops and yarn twist, natural loft, correct fold shadows. Do not change anything else — model, pose, background, framing and colour grading stay identical to image 1. Only material fidelity improves.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 批量给一组生成图做材质后处理\nHIRES=docs/material-enhancement/hires-product.jpg\nLOCK='Do not change anything else — the model face, hair, hands, pose, other garments, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.'\nFEAT='crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, matte fibre sheen, correct fold shadows with proper ambient occlusion in the creases'\nfor f in docs/material-enhancement/raw/*.jpg; do\n  dlazy gpt-image-2 \\\n    --prompt \"Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: $FEAT. $LOCK\" \\\n    --images \"$f\" \"$HIRES\" \\\n    --size 1024x1536 --quality high --imageFormat jpeg \\\n    --save \"docs/material-enhancement/enhanced/$(basename $f)\"\ndone\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## 5、Prompt 模板\n\n```text\nTexture enhancement pass.\nImage 1 is the on-model photo to improve.\nImage 2 is the high-resolution product photo that defines the true fabric.\n\nRebuild the [服装部位] surface in image 1 using the real texture from image 2:\n[第三节表格里对应面料的具体特征],\ncorrect fold shadows with proper ambient occlusion in the creases.\n\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n\nPhotorealistic, sharp, no text, no watermark.\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 只是整体变锐利了 | `This is not sharpening: reconstruct the actual [织法单位] structure, loop by loop, matching image 2.` |\n| 人脸/背景也变了 | `Only pixels inside the garment region may change. Everything outside it must be identical to image 1.` |\n| 颜色被改了 | `Preserve the exact garment colour from image 1; do not shift hue, saturation or brightness.` |\n| 纹理密度不对 | `Match the texture scale to the garment size in image 1: about [N] knit loops per [尺寸].` |\n| 褶皱变平 | `Deepen the crease shadows with ambient occlusion; the garment must read as [厚度描述] fabric.` |\n\n---\n\n## 6、执行流程\n\n1. **确认两张图是同一件商品**——这是最容易犯的错。\n2. **判断原图值不值得救**：结构崩坏的重跑生成，只有面料糊的才用本技能。\n3. **写面料特征**：查第三节表格，用具体特征替代「质感更好」。\n4. **写两条铁律**：只改表面 + 别的不许动。\n5. **`--quality high`（必须）** → `--batch 2` 挑图，落盘到 `docs/material-enhancement/`。\n6. **并排对比原图与输出**：面料是否真的重建了（不是加锐化）、脸和背景是否没动、颜色是否没偏。\n\n---\n\n## 7、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 只是变锐利了 | 未要求重建结构 | 追加「这不是锐化」句，要求逐个线圈重建 |\n| 人脸/背景也被改 | 未锁定区域 | 追加只允许服装区域变化句 |\n| 颜色偏了 | 模型顺手调色 | 追加保色句 |\n| 纹理密度不对（线圈太大/太小） | 未给尺度参照 | 追加纹理尺度句 |\n| 褶皱变平、没厚度 | 缺 AO 描述 | 追加加深褶皱暗部句 |\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\": \"material-enhancement\",\n  \"version\": \"1.0.16\",\n  \"publishedAt\": 1791078352009\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\nEnhances fabric texture in apparel photos using a high-resolution image of the same product while aiming to preserve the model, composition, silhouette, and color.\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 their agents use this skill to restore realistic clothing textures in product photos against a matching high-resolution reference, without intentionally changing the model or scene.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Selected product images, prompts, and related metadata are sent to the configured cloud provider.\n\nMitigation: Send only images and details you are comfortable sharing with that provider.\n\nRisk: Image-generation requests can incur charges.\n\nMitigation: Run a dry-run first to inspect requests and estimated cost.\n\nRisk: Provider credentials may be exposed or misused if poorly managed.\n\nMitigation: Use scoped, revocable API keys and keep them out of shared outputs.\n\nRisk: An optional unpinned skill installation may retrieve a changed upstream version.\n\nMitigation: Verify the referenced repository and version before running that installation command.\n\n## Reference(s):\n\n- [ClawHub material-enhancement release](https://clawhub.ai/dlazyai/skills/material-enhancement)\n- [Model flags](references/model-flags.md)\n- [Provider CLI guide](references/provider-cli.md)\n\n## Skill Output:\n\n**Output Type(s):** [Images, Shell commands, Guidance]\n\n**Output Format:** [JPEG image files and Markdown guidance with shell commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Requires an on-model photo and a matching high-resolution product image; outputs should be checked for texture fidelity and unintended changes.]\n\n## Skill Version(s):\n\n1.0.16 (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.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, 25131 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 (1974b), SKILL.md (11512b), _meta.json (140b)\n\nFile v1.0.15:SKILL.md\n\n---\nname: material-enhancement\nversion: 1.0.15\ndescription: 材质质感增强与纹理重建。糊掉的图 + 高清商品图 → 纹理清晰可信的图。当用户说「增强质感」「图糊了」「补纹理」「提清晰度」时使用。\n---\n\n# material-enhancement — 优化服装材质和细节质感\n\n把一张**面料糊掉的商拍图**修成**面料清晰真实**的图，构图和人一动不动。\n\n这是一个**后处理技能**：AI 生成的服装图最容易崩的就是面料——远看还行，放大一看针织变成一片糊。给它一张真实的高清商品图当参照，把表面重建回来。\n\n---\n\n## 生成效果示例\n\n| 输入：原图（待增强） | 输入：高清商品图（真实面料） |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/source-image.jpg\" width=\"240\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/hires-product.jpg\" width=\"240\"> |\n| `source-image.jpg` — 军绿麻花毛衣上身图，1024×1536 | `hires-product.jpg` — 同款毛衣高清平铺图，800×800 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the sweater surface in image 1 using the real texture from image 2: crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, correct fold shadows and a matte fibre sheen. Do not change anything else — the model face, hair, hands, pose, brown trousers, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only the material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --save docs/material-enhancement/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536，60 credits。麻花辫的立体起伏、菱形提花的凹凸、羊毛的绒毛感与褶皱处的暗部层次被重建；模特五官、发型、手部、姿势、棕色长裤、灰墙背景与整体色调保持不变，毛衣轮廓与军绿色未偏移。\n\n---\n\n## 1、能力边界\n\n| 输入 | 作用 |\n| --- | --- |\n| 原图 | 要改善的商拍图，决定构图、模特、姿势、背景与色调 |\n| 高清商品图 | 提供真实面料信息（织法、纹理、绒感、光泽） |\n| 服装类型 | 帮助判断哪些表面特征该被强化 |\n\n| 只改 | 不改 |\n| --- | --- |\n| 面料表面纹理、微观细节、褶皱阴影层次、纤维光泽 | 构图、模特（脸/发/手/姿势）、其他服饰、背景、色调、服装轮廓与颜色 |\n\n**不做**：不改服装轮廓与颜色；不改模特与背景；不把一种面料换成另一种（换面料请用 [fabric-on-body](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/fabric-on-body/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## 3、材质增强的两条铁律\n\n**铁律一：只改表面，别的一个像素都别动。**\n\n```text\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n```\n\n**铁律二：把「好质感」翻译成具体的表面特征**，否则模型只会整体加锐化。\n\n| 面料 | 要重建的具体特征 |\n| --- | --- |\n| 粗针织 | `crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, matte fibre sheen` |\n| 精纺羊毛 | `fine even weave, subtle fibre halo, soft directional sheen` |\n| 缎面 | `smooth continuous specular gradients along the folds, no texture noise` |\n| 灯芯绒 | `parallel wale ridges with correct pitch, matte pile catching light on the ridge tops` |\n| 牛仔 | `diagonal twill lines, slub irregularity, whiskering at stress folds` |\n| 皮革 | `grain pores, broad soft creases, low-frequency specular sheen` |\n| 摇粒绒/绒毛 | `dense short pile, fuzzy silhouette edge, light scattering rather than specular` |\n\n再加一条**褶皱层次**：`correct fold shadows with proper ambient occlusion in the creases`——这是「看起来有厚度」的来源。\n\n---\n\n## 4、工具调用\n\n本技能使用 dLazy 的 **`gpt-image-2`**（图像编辑模型 + `--quality high`；材质增强要求「几何与色彩零变化、表面高频信息重建」，是典型的双图参考定向修复）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task material-enhancement \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/material-enhancement-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/material-enhancement.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[原图, 高清商品图]` | 顺序即 prompt 中的 image 1 / 2 |\n| `--size` | 与原图比例一致 | 增强不该改构图 |\n| `--quality` | `high`（**必须**） | 本技能的产出就是高频细节 |\n| `--imageFormat` | `jpeg` | 通用格式 |\n| `--batch` | `2` | 纹理重建有随机性 |\n| `--save` | `docs/material-enhancement/output-<sku>-enhanced.jpg` | 与原图分开归档便于对比 |\n\n### Command Examples\n\n```bash\n# basic call\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo defining the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: crisp knit relief, visible loops and yarn twist, natural loft, correct fold shadows. Do not change anything else — model, pose, background, framing and colour grading stay identical to image 1. Only material fidelity improves.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 批量给一组生成图做材质后处理\nHIRES=docs/material-enhancement/hires-product.jpg\nLOCK='Do not change anything else — the model face, hair, hands, pose, other garments, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.'\nFEAT='crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, matte fibre sheen, correct fold shadows with proper ambient occlusion in the creases'\nfor f in docs/material-enhancement/raw/*.jpg; do\n  dlazy gpt-image-2 \\\n    --prompt \"Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: $FEAT. $LOCK\" \\\n    --images \"$f\" \"$HIRES\" \\\n    --size 1024x1536 --quality high --imageFormat jpeg \\\n    --save \"docs/material-enhancement/enhanced/$(basename $f)\"\ndone\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## 5、Prompt 模板\n\n```text\nTexture enhancement pass.\nImage 1 is the on-model photo to improve.\nImage 2 is the high-resolution product photo that defines the true fabric.\n\nRebuild the [服装部位] surface in image 1 using the real texture from image 2:\n[第三节表格里对应面料的具体特征],\ncorrect fold shadows with proper ambient occlusion in the creases.\n\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n\nPhotorealistic, sharp, no text, no watermark.\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 只是整体变锐利了 | `This is not sharpening: reconstruct the actual [织法单位] structure, loop by loop, matching image 2.` |\n| 人脸/背景也变了 | `Only pixels inside the garment region may change. Everything outside it must be identical to image 1.` |\n| 颜色被改了 | `Preserve the exact garment colour from image 1; do not shift hue, saturation or brightness.` |\n| 纹理密度不对 | `Match the texture scale to the garment size in image 1: about [N] knit loops per [尺寸].` |\n| 褶皱变平 | `Deepen the crease shadows with ambient occlusion; the garment must read as [厚度描述] fabric.` |\n\n---\n\n## 6、执行流程\n\n1. **确认两张图是同一件商品**——这是最容易犯的错。\n2. **判断原图值不值得救**：结构崩坏的重跑生成，只有面料糊的才用本技能。\n3. **写面料特征**：查第三节表格，用具体特征替代「质感更好」。\n4. **写两条铁律**：只改表面 + 别的不许动。\n5. **`--quality high`（必须）** → `--batch 2` 挑图，落盘到 `docs/material-enhancement/`。\n6. **并排对比原图与输出**：面料是否真的重建了（不是加锐化）、脸和背景是否没动、颜色是否没偏。\n\n---\n\n## 7、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 只是变锐利了 | 未要求重建结构 | 追加「这不是锐化」句，要求逐个线圈重建 |\n| 人脸/背景也被改 | 未锁定区域 | 追加只允许服装区域变化句 |\n| 颜色偏了 | 模型顺手调色 | 追加保色句 |\n| 纹理密度不对（线圈太大/太小） | 未给尺度参照 | 追加纹理尺度句 |\n| 褶皱变平、没厚度 | 缺 AO 描述 | 追加加深褶皱暗部句 |\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\": \"material-enhancement\",\n  \"version\": \"1.0.15\",\n  \"publishedAt\": 1790918283469\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\nEnhances garment texture in an existing product photo using a high-resolution image of the same item as a material reference.\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 the skill to restore realistic fabric detail in clothing photos without intentionally changing the model, garment shape, color, or background.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Product images and prompts are sent to dLazy or the selected cloud image provider.\n\nMitigation: Use trusted provider credentials, inspect terms and retention settings, and avoid confidential imagery unless sharing is acceptable.\n\nRisk: Generated texture may differ from the reference or unintentionally alter the model, garment color, or background.\n\nMitigation: Use two images of the same product and compare the generated image side by side with the original before use.\n\n## Reference(s):\n\n- [ClawHub skill release](https://clawhub.ai/dlazyai/skills/material-enhancement)\n- [Model flags](references/model-flags.md)\n- [Provider CLI and image-data flow](references/provider-cli.md)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Image files]\n\n**Output Format:** [Markdown guidance and shell commands; generated image file when executed]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Uses an original image and a high-resolution photo of the same garment; output requires visual comparison with the original.]\n\n## Skill Version(s):\n\n1.0.15 (source: frontmatter and server release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.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, 25186 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 (2046b), SKILL.md (11512b), _meta.json (140b)\n\nFile v1.0.14:SKILL.md\n\n---\nname: material-enhancement\nversion: 1.0.14\ndescription: 材质质感增强与纹理重建。糊掉的图 + 高清商品图 → 纹理清晰可信的图。当用户说「增强质感」「图糊了」「补纹理」「提清晰度」时使用。\n---\n\n# material-enhancement — 优化服装材质和细节质感\n\n把一张**面料糊掉的商拍图**修成**面料清晰真实**的图，构图和人一动不动。\n\n这是一个**后处理技能**：AI 生成的服装图最容易崩的就是面料——远看还行，放大一看针织变成一片糊。给它一张真实的高清商品图当参照，把表面重建回来。\n\n---\n\n## 生成效果示例\n\n| 输入：原图（待增强） | 输入：高清商品图（真实面料） |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/source-image.jpg\" width=\"240\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/hires-product.jpg\" width=\"240\"> |\n| `source-image.jpg` — 军绿麻花毛衣上身图，1024×1536 | `hires-product.jpg` — 同款毛衣高清平铺图，800×800 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the sweater surface in image 1 using the real texture from image 2: crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, correct fold shadows and a matte fibre sheen. Do not change anything else — the model face, hair, hands, pose, brown trousers, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only the material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --save docs/material-enhancement/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536，60 credits。麻花辫的立体起伏、菱形提花的凹凸、羊毛的绒毛感与褶皱处的暗部层次被重建；模特五官、发型、手部、姿势、棕色长裤、灰墙背景与整体色调保持不变，毛衣轮廓与军绿色未偏移。\n\n---\n\n## 1、能力边界\n\n| 输入 | 作用 |\n| --- | --- |\n| 原图 | 要改善的商拍图，决定构图、模特、姿势、背景与色调 |\n| 高清商品图 | 提供真实面料信息（织法、纹理、绒感、光泽） |\n| 服装类型 | 帮助判断哪些表面特征该被强化 |\n\n| 只改 | 不改 |\n| --- | --- |\n| 面料表面纹理、微观细节、褶皱阴影层次、纤维光泽 | 构图、模特（脸/发/手/姿势）、其他服饰、背景、色调、服装轮廓与颜色 |\n\n**不做**：不改服装轮廓与颜色；不改模特与背景；不把一种面料换成另一种（换面料请用 [fabric-on-body](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/fabric-on-body/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## 3、材质增强的两条铁律\n\n**铁律一：只改表面，别的一个像素都别动。**\n\n```text\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n```\n\n**铁律二：把「好质感」翻译成具体的表面特征**，否则模型只会整体加锐化。\n\n| 面料 | 要重建的具体特征 |\n| --- | --- |\n| 粗针织 | `crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, matte fibre sheen` |\n| 精纺羊毛 | `fine even weave, subtle fibre halo, soft directional sheen` |\n| 缎面 | `smooth continuous specular gradients along the folds, no texture noise` |\n| 灯芯绒 | `parallel wale ridges with correct pitch, matte pile catching light on the ridge tops` |\n| 牛仔 | `diagonal twill lines, slub irregularity, whiskering at stress folds` |\n| 皮革 | `grain pores, broad soft creases, low-frequency specular sheen` |\n| 摇粒绒/绒毛 | `dense short pile, fuzzy silhouette edge, light scattering rather than specular` |\n\n再加一条**褶皱层次**：`correct fold shadows with proper ambient occlusion in the creases`——这是「看起来有厚度」的来源。\n\n---\n\n## 4、工具调用\n\n本技能使用 dLazy 的 **`gpt-image-2`**（图像编辑模型 + `--quality high`；材质增强要求「几何与色彩零变化、表面高频信息重建」，是典型的双图参考定向修复）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task material-enhancement \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/material-enhancement-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/material-enhancement.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[原图, 高清商品图]` | 顺序即 prompt 中的 image 1 / 2 |\n| `--size` | 与原图比例一致 | 增强不该改构图 |\n| `--quality` | `high`（**必须**） | 本技能的产出就是高频细节 |\n| `--imageFormat` | `jpeg` | 通用格式 |\n| `--batch` | `2` | 纹理重建有随机性 |\n| `--save` | `docs/material-enhancement/output-<sku>-enhanced.jpg` | 与原图分开归档便于对比 |\n\n### Command Examples\n\n```bash\n# basic call\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo defining the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: crisp knit relief, visible loops and yarn twist, natural loft, correct fold shadows. Do not change anything else — model, pose, background, framing and colour grading stay identical to image 1. Only material fidelity improves.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 批量给一组生成图做材质后处理\nHIRES=docs/material-enhancement/hires-product.jpg\nLOCK='Do not change anything else — the model face, hair, hands, pose, other garments, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.'\nFEAT='crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, matte fibre sheen, correct fold shadows with proper ambient occlusion in the creases'\nfor f in docs/material-enhancement/raw/*.jpg; do\n  dlazy gpt-image-2 \\\n    --prompt \"Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: $FEAT. $LOCK\" \\\n    --images \"$f\" \"$HIRES\" \\\n    --size 1024x1536 --quality high --imageFormat jpeg \\\n    --save \"docs/material-enhancement/enhanced/$(basename $f)\"\ndone\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## 5、Prompt 模板\n\n```text\nTexture enhancement pass.\nImage 1 is the on-model photo to improve.\nImage 2 is the high-resolution product photo that defines the true fabric.\n\nRebuild the [服装部位] surface in image 1 using the real texture from image 2:\n[第三节表格里对应面料的具体特征],\ncorrect fold shadows with proper ambient occlusion in the creases.\n\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n\nPhotorealistic, sharp, no text, no watermark.\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 只是整体变锐利了 | `This is not sharpening: reconstruct the actual [织法单位] structure, loop by loop, matching image 2.` |\n| 人脸/背景也变了 | `Only pixels inside the garment region may change. Everything outside it must be identical to image 1.` |\n| 颜色被改了 | `Preserve the exact garment colour from image 1; do not shift hue, saturation or brightness.` |\n| 纹理密度不对 | `Match the texture scale to the garment size in image 1: about [N] knit loops per [尺寸].` |\n| 褶皱变平 | `Deepen the crease shadows with ambient occlusion; the garment must read as [厚度描述] fabric.` |\n\n---\n\n## 6、执行流程\n\n1. **确认两张图是同一件商品**——这是最容易犯的错。\n2. **判断原图值不值得救**：结构崩坏的重跑生成，只有面料糊的才用本技能。\n3. **写面料特征**：查第三节表格，用具体特征替代「质感更好」。\n4. **写两条铁律**：只改表面 + 别的不许动。\n5. **`--quality high`（必须）** → `--batch 2` 挑图，落盘到 `docs/material-enhancement/`。\n6. **并排对比原图与输出**：面料是否真的重建了（不是加锐化）、脸和背景是否没动、颜色是否没偏。\n\n---\n\n## 7、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 只是变锐利了 | 未要求重建结构 | 追加「这不是锐化」句，要求逐个线圈重建 |\n| 人脸/背景也被改 | 未锁定区域 | 追加只允许服装区域变化句 |\n| 颜色偏了 | 模型顺手调色 | 追加保色句 |\n| 纹理密度不对（线圈太大/太小） | 未给尺度参照 | 追加纹理尺度句 |\n| 褶皱变平、没厚度 | 缺 AO 描述 | 追加加深褶皱暗部句 |\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\": \"material-enhancement\",\n  \"version\": \"1.0.14\",\n  \"publishedAt\": 1790733026439\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 restoring realistic garment texture in product photos using a high-resolution photo of the same item while preserving the original composition.\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-image editors use this skill to guide cloud image editing that rebuilds clothing fabric detail from a matching product reference without intentionally changing the model, color, or background.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Selected product images and prompts are sent to dlazy or another configured cloud image provider.\n\nMitigation: Use explicit image paths, avoid private URLs and sensitive files, and preview the request with --dry-run before sending.\n\nRisk: Image editing may unintentionally alter garment color, the model, or the background, or reconstruct the wrong fabric if reference photos do not match.\n\nMitigation: Use a reference photo of the same product and compare the edited result against the original before publishing.\n\n## Reference(s):\n\n- [Material Enhancement on ClawHub](https://clawhub.ai/dlazyai/skills/material-enhancement)\n- [Provider CLI reference](references/provider-cli.md)\n- [Image model options](references/model-flags.md)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands]\n\n**Output Format:** [Markdown with image-editing prompts and bash commands]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Executing the suggested commands can save edited image files; inspect the result before use.]\n\n## Skill Version(s):\n\n1.0.14 (source: SKILL.md 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.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, 25123 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 (1897b), SKILL.md (11512b), _meta.json (140b)\n\nFile v1.0.13:SKILL.md\n\n---\nname: material-enhancement\nversion: 1.0.13\ndescription: 材质质感增强与纹理重建。糊掉的图 + 高清商品图 → 纹理清晰可信的图。当用户说「增强质感」「图糊了」「补纹理」「提清晰度」时使用。\n---\n\n# material-enhancement — 优化服装材质和细节质感\n\n把一张**面料糊掉的商拍图**修成**面料清晰真实**的图，构图和人一动不动。\n\n这是一个**后处理技能**：AI 生成的服装图最容易崩的就是面料——远看还行，放大一看针织变成一片糊。给它一张真实的高清商品图当参照，把表面重建回来。\n\n---\n\n## 生成效果示例\n\n| 输入：原图（待增强） | 输入：高清商品图（真实面料） |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/source-image.jpg\" width=\"240\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/hires-product.jpg\" width=\"240\"> |\n| `source-image.jpg` — 军绿麻花毛衣上身图，1024×1536 | `hires-product.jpg` — 同款毛衣高清平铺图，800×800 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the sweater surface in image 1 using the real texture from image 2: crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, correct fold shadows and a matte fibre sheen. Do not change anything else — the model face, hair, hands, pose, brown trousers, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only the material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --save docs/material-enhancement/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536，60 credits。麻花辫的立体起伏、菱形提花的凹凸、羊毛的绒毛感与褶皱处的暗部层次被重建；模特五官、发型、手部、姿势、棕色长裤、灰墙背景与整体色调保持不变，毛衣轮廓与军绿色未偏移。\n\n---\n\n## 1、能力边界\n\n| 输入 | 作用 |\n| --- | --- |\n| 原图 | 要改善的商拍图，决定构图、模特、姿势、背景与色调 |\n| 高清商品图 | 提供真实面料信息（织法、纹理、绒感、光泽） |\n| 服装类型 | 帮助判断哪些表面特征该被强化 |\n\n| 只改 | 不改 |\n| --- | --- |\n| 面料表面纹理、微观细节、褶皱阴影层次、纤维光泽 | 构图、模特（脸/发/手/姿势）、其他服饰、背景、色调、服装轮廓与颜色 |\n\n**不做**：不改服装轮廓与颜色；不改模特与背景；不把一种面料换成另一种（换面料请用 [fabric-on-body](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/fabric-on-body/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## 3、材质增强的两条铁律\n\n**铁律一：只改表面，别的一个像素都别动。**\n\n```text\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n```\n\n**铁律二：把「好质感」翻译成具体的表面特征**，否则模型只会整体加锐化。\n\n| 面料 | 要重建的具体特征 |\n| --- | --- |\n| 粗针织 | `crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, matte fibre sheen` |\n| 精纺羊毛 | `fine even weave, subtle fibre halo, soft directional sheen` |\n| 缎面 | `smooth continuous specular gradients along the folds, no texture noise` |\n| 灯芯绒 | `parallel wale ridges with correct pitch, matte pile catching light on the ridge tops` |\n| 牛仔 | `diagonal twill lines, slub irregularity, whiskering at stress folds` |\n| 皮革 | `grain pores, broad soft creases, low-frequency specular sheen` |\n| 摇粒绒/绒毛 | `dense short pile, fuzzy silhouette edge, light scattering rather than specular` |\n\n再加一条**褶皱层次**：`correct fold shadows with proper ambient occlusion in the creases`——这是「看起来有厚度」的来源。\n\n---\n\n## 4、工具调用\n\n本技能使用 dLazy 的 **`gpt-image-2`**（图像编辑模型 + `--quality high`；材质增强要求「几何与色彩零变化、表面高频信息重建」，是典型的双图参考定向修复）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task material-enhancement \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/material-enhancement-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/material-enhancement.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[原图, 高清商品图]` | 顺序即 prompt 中的 image 1 / 2 |\n| `--size` | 与原图比例一致 | 增强不该改构图 |\n| `--quality` | `high`（**必须**） | 本技能的产出就是高频细节 |\n| `--imageFormat` | `jpeg` | 通用格式 |\n| `--batch` | `2` | 纹理重建有随机性 |\n| `--save` | `docs/material-enhancement/output-<sku>-enhanced.jpg` | 与原图分开归档便于对比 |\n\n### Command Examples\n\n```bash\n# basic call\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo defining the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: crisp knit relief, visible loops and yarn twist, natural loft, correct fold shadows. Do not change anything else — model, pose, background, framing and colour grading stay identical to image 1. Only material fidelity improves.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 批量给一组生成图做材质后处理\nHIRES=docs/material-enhancement/hires-product.jpg\nLOCK='Do not change anything else — the model face, hair, hands, pose, other garments, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.'\nFEAT='crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, matte fibre sheen, correct fold shadows with proper ambient occlusion in the creases'\nfor f in docs/material-enhancement/raw/*.jpg; do\n  dlazy gpt-image-2 \\\n    --prompt \"Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: $FEAT. $LOCK\" \\\n    --images \"$f\" \"$HIRES\" \\\n    --size 1024x1536 --quality high --imageFormat jpeg \\\n    --save \"docs/material-enhancement/enhanced/$(basename $f)\"\ndone\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## 5、Prompt 模板\n\n```text\nTexture enhancement pass.\nImage 1 is the on-model photo to improve.\nImage 2 is the high-resolution product photo that defines the true fabric.\n\nRebuild the [服装部位] surface in image 1 using the real texture from image 2:\n[第三节表格里对应面料的具体特征],\ncorrect fold shadows with proper ambient occlusion in the creases.\n\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n\nPhotorealistic, sharp, no text, no watermark.\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 只是整体变锐利了 | `This is not sharpening: reconstruct the actual [织法单位] structure, loop by loop, matching image 2.` |\n| 人脸/背景也变了 | `Only pixels inside the garment region may change. Everything outside it must be identical to image 1.` |\n| 颜色被改了 | `Preserve the exact garment colour from image 1; do not shift hue, saturation or brightness.` |\n| 纹理密度不对 | `Match the texture scale to the garment size in image 1: about [N] knit loops per [尺寸].` |\n| 褶皱变平 | `Deepen the crease shadows with ambient occlusion; the garment must read as [厚度描述] fabric.` |\n\n---\n\n## 6、执行流程\n\n1. **确认两张图是同一件商品**——这是最容易犯的错。\n2. **判断原图值不值得救**：结构崩坏的重跑生成，只有面料糊的才用本技能。\n3. **写面料特征**：查第三节表格，用具体特征替代「质感更好」。\n4. **写两条铁律**：只改表面 + 别的不许动。\n5. **`--quality high`（必须）** → `--batch 2` 挑图，落盘到 `docs/material-enhancement/`。\n6. **并排对比原图与输出**：面料是否真的重建了（不是加锐化）、脸和背景是否没动、颜色是否没偏。\n\n---\n\n## 7、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 只是变锐利了 | 未要求重建结构 | 追加「这不是锐化」句，要求逐个线圈重建 |\n| 人脸/背景也被改 | 未锁定区域 | 追加只允许服装区域变化句 |\n| 颜色偏了 | 模型顺手调色 | 追加保色句 |\n| 纹理密度不对（线圈太大/太小） | 未给尺度参照 | 追加纹理尺度句 |\n| 褶皱变平、没厚度 | 缺 AO 描述 | 追加加深褶皱暗部句 |\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\": \"material-enhancement\",\n  \"version\": \"1.0.13\",\n  \"publishedAt\": 1790563131426\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\n`gen.mjs`（加 `--json`）：\n\n```json\n{\n  \"ok\": true,\n  \"task\": \"flat-lay\",\n  \"provider\": \"dlazy\",\n  \"model\": \"gpt-image-2\",\n  \"files\": [\"docs/flat-lay/output-sku001.jpg\"],\n  \"texts\": [],\n  \"estimatedCredits\": 60,\n  \"elapsedMs\": 58213\n}\n```\n\ndLazy CLI 原生：\n\n```json\n{\n  \"ok\": true,\n  \"result\": {\n    \"tool\": \"gpt-image-2\",\n    \"data\": { \"urls\": [\"https://files.dlazy.com/data/ai/....jpg\"] },\n    \"savedPath\": \"docs/flat-lay/example-output.jpg\"\n  }\n}\n```\n\n加 `--no-wait` 的异步任务不返回 `data`，返回 `task: { generateId, status }`，\n用 `dlazy status <generateId> --wait` 轮询。\n\n文本类模型（如质检）产出在 `result.data.texts[0]`：\n\n```bash\ndlazy claude-sonnet-5 --prompt '...' --images x.jpg \\\n  | python3 -c 'import sys,json;print(json.load(sys.stdin)[\"result\"][\"data\"][\"texts\"][0])'\n```\n\n---\n\n## 五、错误处理\n\n| Code | 类型 | 示例 |\n| --- | --- | --- |\n| 401 | 未授权 / 无 key | `ok: false, code: \"unauthorized\"` |\n| 501 | 缺必填参数 | `error: required option '--prompt <prompt>' not specified` |\n| 502 | 本地文件读不到 | `Error: Image file not found: ...` |\n| 503 | 余额不足 | `ok: false, code: \"insufficient_balance\"` |\n| 503 | 服务端错误 | `HTTP status code error (500)` |\n| 504 | 异步任务失败 | `=== Generation Failed ===` / `Prompt violates safety policy` |\n\n**给 Agent 的硬性要求**\n\n1. 命中 `insufficient_balance` → 明确告诉用户算力不足，并给出充值入口\n   <https://dlazy.com/dashboard/organization/settings?tab=credits>\n2. 命中 `unauthorized` / 缺 key → 告诉用户去 <https://dlazy.com/dashboard/organization/api-key>\n   取 key，用 `dlazy auth set <key>` 存好再继续。\n3. 用 `gen.mjs` 时，429 与 5xx 已自动重试；仍失败才向用户报错。\n4. **不要**为了「跑通」而偷偷降级参数（尺寸、档位、批量），先问用户。\n\nFile v1.0.13:scripts/lib/tasks.json\n\n{\r\n  \"_note\": \"技能 → 默认模型与参数。dlazy 列为默认后端的模型名；其他后端走 providers.mjs 的通用映射，可用 GEN_MODEL_<PROVIDER> 覆盖。\",\r\n  \"_credits\": { \"gpt-image-2\": 60, \"seedream-5.0\": 30, \"seedream-5.0-pro\": 45, \"banana-pro\": 25, \"claude-sonnet-5\": 3 },\r\n  \"tasks\": {\r\n    \"flat-lay\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"wear-everything\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"image-fusion\":            { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"one-shot\":                { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"fission-pattern\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-detail\":             { \"model\": \"seedream-5.0-pro\", \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"creative-scene\":          { \"model\": \"banana-pro\",       \"size\": \"1024x1536\", \"format\": \"jpeg\" },\r\n    \"batch-image\":             { \"model\": \"seedream-5.0\",     \"size\": \"3:4\",       \"resolution\": \"2k\" },\r\n    \"to-3d\":                   { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-extraction\":     { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"fabric-on-body\":          { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-detail\":         { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"clothing-grass-planting\": { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"medium\", \"format\": \"jpeg\" },\r\n    \"item-selling-point\":      { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"item-change-background\":  { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"remove-watermark\":        { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"material-enhancement\":    { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"item-repair\":             { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"detect-task\":             { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"listing-optimizer\":       { \"model\": \"gpt-image-2\",      \"size\": \"1024x1024\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"cross-border-localize\":   { \"model\": \"seedream-5.0-pro\", \"size\": \"1:1\",       \"resolution\": \"2k\" },\r\n    \"brand-kit\":               { \"model\": \"gpt-image-2\",      \"size\": \"1024x1536\", \"quality\": \"high\",   \"format\": \"jpeg\" },\r\n    \"platform-compliance\":     { \"model\": \"claude-sonnet-5\",  \"text\": true },\r\n    \"main-image-video\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"product-video-ad\":        { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true },\r\n    \"ugc-testimonial\":         { \"model\": \"$DLAZY_VIDEO_MODEL\", \"video\": true }\r\n  }\r\n}\n\nFile v1.0.13:skill-card.md\n\n## Description:\n\nEnhances clothing fabric texture in an existing product image using a high-resolution image of the same garment as reference.\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 image editors use a high-resolution product photo to restore fabric texture in an on-model image while aiming to preserve its pose, composition, and color.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Selected product or model images and prompts may be sent to dLazy or another configured cloud provider.\n\nMitigation: Use --dry-run or --doctor to confirm the provider first; avoid private or regulated images unless that provider is approved.\n\nRisk: Generated edits can alter color, garment shape, or details outside the intended fabric area.\n\nMitigation: Compare each result with the source image and reject outputs that change the model, background, garment silhouette, or color.\n\n## Reference(s):\n\n- [Provider and authentication reference](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 commands with saved JPEG images]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Uses an original image and a high-resolution image of the same garment; outputs should be checked against the original for unwanted changes.]\n\n## Skill Version(s):\n\n1.0.13 (source: frontmatter and server release)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.13:examples/brand.yaml\n\n# ⚠️ 由 scripts/build-skills.mjs 从 shared/examples/brand.yaml 同步生成，不要直接改这里。\r\n# 店铺品牌视觉规范 —— 所有生图技能读这一份，保证几百个 SKU 看起来像同一家店。\r\n#   node scripts/brand.mjs --brand brand.yaml --for flat-lay\r\n#   node scripts/gen.mjs --task flat-lay --brand brand.yaml --prompt '...'\r\n\r\nbrand:\r\n  name: 示例品牌\r\n  # 一句话概括调性，会原样进 prompt\r\n  tone: quiet minimalist, warm and lived-in, never glossy or commercial\r\n\r\nmodel:\r\n  # 锁模特：给一张脸的参考图，所有技能都会把它作为最后一张参考图传入\r\n  reference: assets/model/face-a.jpg\r\n  description: East Asian woman, late twenties, natural makeup, shoulder-length black hair\r\n  body: slim, height around 168cm\r\n\r\nphotography:\r\n  background: seamless off-white studio backdrop, RGB 248 248 246\r\n  lighting: soft large softbox from camera left, gentle fill, no hard shadows\r\n  camera: 85mm equivalent, eye level, shallow depth of field\r\n  grade: neutral white balance around 5200K, low contrast, slightly lifted blacks\r\n  crop: full body with headroom, product centered\r\n\r\nlayout:\r\n  # 给带排版的技能（主图 / 详情页）用\r\n  margin: at least 8% empty margin on all sides\r\n  typeface: clean sans-serif, no decorative fonts\r\n  text_color: near-black on light background\r\n\r\nforbid:\r\n  - no visible brand logos other than the product's own\r\n  - no text or watermark\r\n  - no exaggerated poses or dramatic wind effects\r\n  - no oversaturated colors\r\n\r\n# 可选：把这些直接写进合规目标，生成时就按平台要求出图\r\ncompliance:\r\n  platform: amazon\n\nArchive v1.0.12: 11 files, 25529 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 (2658b), SKILL.md (11512b), _meta.json (140b)\n\nFile v1.0.12:SKILL.md\n\n---\nname: material-enhancement\nversion: 1.0.12\ndescription: 材质质感增强与纹理重建。糊掉的图 + 高清商品图 → 纹理清晰可信的图。当用户说「增强质感」「图糊了」「补纹理」「提清晰度」时使用。\n---\n\n# material-enhancement — 优化服装材质和细节质感\n\n把一张**面料糊掉的商拍图**修成**面料清晰真实**的图，构图和人一动不动。\n\n这是一个**后处理技能**：AI 生成的服装图最容易崩的就是面料——远看还行，放大一看针织变成一片糊。给它一张真实的高清商品图当参照，把表面重建回来。\n\n---\n\n## 生成效果示例\n\n| 输入：原图（待增强） | 输入：高清商品图（真实面料） |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/source-image.jpg\" width=\"240\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/hires-product.jpg\" width=\"240\"> |\n| `source-image.jpg` — 军绿麻花毛衣上身图，1024×1536 | `hires-product.jpg` — 同款毛衣高清平铺图，800×800 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the sweater surface in image 1 using the real texture from image 2: crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, correct fold shadows and a matte fibre sheen. Do not change anything else — the model face, hair, hands, pose, brown trousers, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only the material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --save docs/material-enhancement/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536，60 credits。麻花辫的立体起伏、菱形提花的凹凸、羊毛的绒毛感与褶皱处的暗部层次被重建；模特五官、发型、手部、姿势、棕色长裤、灰墙背景与整体色调保持不变，毛衣轮廓与军绿色未偏移。\n\n---\n\n## 1、能力边界\n\n| 输入 | 作用 |\n| --- | --- |\n| 原图 | 要改善的商拍图，决定构图、模特、姿势、背景与色调 |\n| 高清商品图 | 提供真实面料信息（织法、纹理、绒感、光泽） |\n| 服装类型 | 帮助判断哪些表面特征该被强化 |\n\n| 只改 | 不改 |\n| --- | --- |\n| 面料表面纹理、微观细节、褶皱阴影层次、纤维光泽 | 构图、模特（脸/发/手/姿势）、其他服饰、背景、色调、服装轮廓与颜色 |\n\n**不做**：不改服装轮廓与颜色；不改模特与背景；不把一种面料换成另一种（换面料请用 [fabric-on-body](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/fabric-on-body/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## 3、材质增强的两条铁律\n\n**铁律一：只改表面，别的一个像素都别动。**\n\n```text\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n```\n\n**铁律二：把「好质感」翻译成具体的表面特征**，否则模型只会整体加锐化。\n\n| 面料 | 要重建的具体特征 |\n| --- | --- |\n| 粗针织 | `crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, matte fibre sheen` |\n| 精纺羊毛 | `fine even weave, subtle fibre halo, soft directional sheen` |\n| 缎面 | `smooth continuous specular gradients along the folds, no texture noise` |\n| 灯芯绒 | `parallel wale ridges with correct pitch, matte pile catching light on the ridge tops` |\n| 牛仔 | `diagonal twill lines, slub irregularity, whiskering at stress folds` |\n| 皮革 | `grain pores, broad soft creases, low-frequency specular sheen` |\n| 摇粒绒/绒毛 | `dense short pile, fuzzy silhouette edge, light scattering rather than specular` |\n\n再加一条**褶皱层次**：`correct fold shadows with proper ambient occlusion in the creases`——这是「看起来有厚度」的来源。\n\n---\n\n## 4、工具调用\n\n本技能使用 dLazy 的 **`gpt-image-2`**（图像编辑模型 + `--quality high`；材质增强要求「几何与色彩零变化、表面高频信息重建」，是典型的双图参考定向修复）。\n\n### 调用方式\n\n两种等价写法，选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本：\n\n```bash\n# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task material-enhancement \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/material-enhancement-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/material-enhancement.jpg\n```\n\n**参数约定（本技能固定用法）**\n\n| 参数 | 取值 | 理由 |\n| --- | --- | --- |\n| `--images` | `[原图, 高清商品图]` | 顺序即 prompt 中的 image 1 / 2 |\n| `--size` | 与原图比例一致 | 增强不该改构图 |\n| `--quality` | `high`（**必须**） | 本技能的产出就是高频细节 |\n| `--imageFormat` | `jpeg` | 通用格式 |\n| `--batch` | `2` | 纹理重建有随机性 |\n| `--save` | `docs/material-enhancement/output-<sku>-enhanced.jpg` | 与原图分开归档便于对比 |\n\n### Command Examples\n\n```bash\n# basic call\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo defining the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: crisp knit relief, visible loops and yarn twist, natural loft, correct fold shadows. Do not change anything else — model, pose, background, framing and colour grading stay identical to image 1. Only material fidelity improves.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 批量给一组生成图做材质后处理\nHIRES=docs/material-enhancement/hires-product.jpg\nLOCK='Do not change anything else — the model face, hair, hands, pose, other garments, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.'\nFEAT='crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, matte fibre sheen, correct fold shadows with proper ambient occlusion in the creases'\nfor f in docs/material-enhancement/raw/*.jpg; do\n  dlazy gpt-image-2 \\\n    --prompt \"Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: $FEAT. $LOCK\" \\\n    --images \"$f\" \"$HIRES\" \\\n    --size 1024x1536 --quality high --imageFormat jpeg \\\n    --save \"docs/material-enhancement/enhanced/$(basename $f)\"\ndone\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## 5、Prompt 模板\n\n```text\nTexture enhancement pass.\nImage 1 is the on-model photo to improve.\nImage 2 is the high-resolution product photo that defines the true fabric.\n\nRebuild the [服装部位] surface in image 1 using the real texture from image 2:\n[第三节表格里对应面料的具体特征],\ncorrect fold shadows with proper ambient occlusion in the creases.\n\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n\nPhotorealistic, sharp, no text, no watermark.\n```\n\n**按问题追加的修正句**\n\n| 问题 | 追加到 prompt 末尾 |\n| --- | --- |\n| 只是整体变锐利了 | `This is not sharpening: reconstruct the actual [织法单位] structure, loop by loop, matching image 2.` |\n| 人脸/背景也变了 | `Only pixels inside the garment region may change. Everything outside it must be identical to image 1.` |\n| 颜色被改了 | `Preserve the exact garment colour from image 1; do not shift hue, saturation or brightness.` |\n| 纹理密度不对 | `Match the texture scale to the garment size in image 1: about [N] knit loops per [尺寸].` |\n| 褶皱变平 | `Deepen the crease shadows with ambient occlusion; the garment must read as [厚度描述] fabric.` |\n\n---\n\n## 6、执行流程\n\n1. **确认两张图是同一件商品**——这是最容易犯的错。\n2. **判断原图值不值得救**：结构崩坏的重跑生成，只有面料糊的才用本技能。\n3. **写面料特征**：查第三节表格，用具体特征替代「质感更好」。\n4. **写两条铁律**：只改表面 + 别的不许动。\n5. **`--quality high`（必须）** → `--batch 2` 挑图，落盘到 `docs/material-enhancement/`。\n6. **并排对比原图与输出**：面料是否真的重建了（不是加锐化）、脸和背景是否没动、颜色是否没偏。\n\n---\n\n## 7、常见问题\n\n| 现象 | 原因 | 处理 |\n| --- | --- | --- |\n| 只是变锐利了 | 未要求重建结构 | 追加「这不是锐化」句，要求逐个线圈重建 |\n| 人脸/背景也被改 | 未锁定区域 | 追加只允许服装区域变化句 |\n| 颜色偏了 | 模型顺手调色 | 追加保色句 |\n| 纹理密度不对（线圈太大/太小） | 未给尺度参照 | 追加纹理尺度句 |\n| 褶皱变平、没厚度 | 缺 AO 描述 | 追加加深褶皱暗部句 |\n| 结构崩坏没被修好 | 超出能力 | 本技能只管表面，结构问题回到生成环节重跑 |\n\n---\n\n## Tips\n\nVisit https://dlazy.com for more information.\n\nFile v1.0.12:_meta.json\n\n{\n  \"ownerId\": \"kn7c5wgeajfcfvdfb5ceemvdb984cjpd\",\n  \"slug\": \"material-enhancement\",\n  \"version\": \"1.0.12\",\n  \"publishedAt\": 1790217638550\n}\n\nFile v1.0.12: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.12: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.12: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\", \"qua\n\nArchive v1.0.11: 11 files, 25335 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 (2466b), SKILL.md (11512b), _meta.json (140b)\n\nArchive v1.0.10: 11 files, 25552 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 (2650b), SKILL.md (11512b), _meta.json (140b)\n\nArchive v1.0.9: 11 files, 25499 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 (2510b), SKILL.md (11511b), _meta.json (139b)","readmeExcerpt":"Skill: 材质质感增强 Material Enhancement Owner: dlazyai Summary: 材质质感增强与纹理重建。糊掉的图 + 高清商品图 → 纹理清晰可信的图。当用户说「增强质感」「图糊了」「补纹理」「提清晰度」时使用。 Tags: latest:1.0.18 Version history: v1.0.18 | 2026-10-10T01:54:06.539Z | user 例行版本更新 2026-10-10 v1.0.17 | 2026-10-08T01:45:51.381Z | user 例行版本更新 2026-10-08 v1.0.16 | 2026-10-04T01:45:52.009Z | user 例行版本更新 2026-10-04 v1.0.15 | 2026-10-02T05:18:03.469Z | user 例行版本更新 2026-10-02 v1.0.14 | 2026-09","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"dlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the sweater surface in image 1 using the real texture from image 2: crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, correct fold shadows and a matte fibre sheen. Do not change anything else — the model face, hair, hands, pose, brown trousers, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only the material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --save docs/material-enhancement/example-output.jpg"},{"language":"text","snippet":"Do not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve."},{"language":"bash","snippet":"# A. 统一入口（推荐）：可切任意后端，加 --dry-run 不计费空跑\nnode scripts/gen.mjs --task material-enhancement \\\n  --prompt '<见下方 Prompt 模板>' \\\n  --images <按下表顺序> \\\n  --save output/material-enhancement-<sku>.jpg\n\n# B. 直接用 dLazy CLI（不想引入 Node 依赖时，效果等价）\ndlazy gpt-image-2 --prompt '...' --images ... --save output/material-enhancement.jpg"},{"language":"bash","snippet":"# basic call\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo defining the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: crisp knit relief, visible loops and yarn twist, natural loft, correct fold shadows. Do not change anything else — model, pose, background, framing and colour grading stay identical to image 1. Only material fidelity improves.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high\n\n# complex call: 批量给一组生成图做材质后处理\nHIRES=docs/material-enhancement/hires-product.jpg\nLOCK='Do not change anything else — the model face, hair, hands, pose, other garments, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.'\nFEAT='crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, matte fibre sheen, correct fold shadows with proper ambient occlusion in the creases'\nfor f in docs/material-enhancement/raw/*.jpg; do\n  dlazy gpt-image-2 \\\n    --prompt \"Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the garment surface in image 1 using the real texture from image 2: $FEAT. $LOCK\" \\\n    --images \"$f\" \"$HIRES\" \\\n    --size 1024x1536 --quality high --imageFormat jpeg \\\n    --save \"docs/material-enhancement/enhanced/$(basename $f)\"\ndone\n\n# 先估价不真跑\ndlazy gpt-image-2 --dry-run --prompt '...' --images a.jpg b.jpg --size 1024x1536 --quality high"},{"language":"text","snippet":"Texture enhancement pass.\nImage 1 is the on-model photo to improve.\nImage 2 is the high-resolution product photo that defines the true fabric.\n\nRebuild the [服装部位] surface in image 1 using the real texture from image 2:\n[第三节表格里对应面料的具体特征],\ncorrect fold shadows with proper ambient occlusion in the creases.\n\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n\nPhotorealistic, sharp, 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: material-enhancement\nversion: 1.0.18\ndescription: 材质质感增强与纹理重建。糊掉的图 + 高清商品图 → 纹理清晰可信的图。当用户说「增强质感」「图糊了」「补纹理」「提清晰度」时使用。\n---\n\n# material-enhancement — 优化服装材质和细节质感\n\n把一张**面料糊掉的商拍图**修成**面料清晰真实**的图，构图和人一动不动。\n\n这是一个**后处理技能**：AI 生成的服装图最容易崩的就是面料——远看还行，放大一看针织变成一片糊。给它一张真实的高清商品图当参照，把表面重建回来。\n\n---\n\n## 生成效果示例\n\n| 输入：原图（待增强） | 输入：高清商品图（真实面料） |\n| --- | --- |\n| <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/source-image.jpg\" width=\"240\"> | <img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/hires-product.jpg\" width=\"240\"> |\n| `source-image.jpg` — 军绿麻花毛衣上身图，1024×1536 | `hires-product.jpg` — 同款毛衣高清平铺图，800×800 |\n\n实际执行的命令：\n\n```bash\ndlazy gpt-image-2 \\\n  --prompt 'Texture enhancement pass. Image 1 is the on-model photo to improve. Image 2 is the high-resolution product photo that defines the true fabric. Rebuild the sweater surface in image 1 using the real texture from image 2: crisp cable-braid relief, visible knit loops and yarn twist, natural wool loft, correct fold shadows and a matte fibre sheen. Do not change anything else — the model face, hair, hands, pose, brown trousers, background, framing and colour grading must stay identical to image 1. The garment silhouette and colour must not shift; only the material fidelity and micro-detail improve. Photorealistic, sharp, no text, no watermark.' \\\n  --images docs/material-enhancement/source-image.jpg docs/material-enhancement/hires-product.jpg \\\n  --size 1024x1536 --quality high --imageFormat jpeg \\\n  --save docs/material-enhancement/example-output.jpg\n```\n\n**输出**\n\n<img src=\"https://raw.githubusercontent.com/dlazy-ai/ecommerce-skills/main/docs/material-enhancement/example-output.jpg\" width=\"320\">\n\n`example-output.jpg` — 1024×1536，60 credits。麻花辫的立体起伏、菱形提花的凹凸、羊毛的绒毛感与褶皱处的暗部层次被重建；模特五官、发型、手部、姿势、棕色长裤、灰墙背景与整体色调保持不变，毛衣轮廓与军绿色未偏移。\n\n---\n\n## 1、能力边界\n\n| 输入 | 作用 |\n| --- | --- |\n| 原图 | 要改善的商拍图，决定构图、模特、姿势、背景与色调 |\n| 高清商品图 | 提供真实面料信息（织法、纹理、绒感、光泽） |\n| 服装类型 | 帮助判断哪些表面特征该被强化 |\n\n| 只改 | 不改 |\n| --- | --- |\n| 面料表面纹理、微观细节、褶皱阴影层次、纤维光泽 | 构图、模特（脸/发/手/姿势）、其他服饰、背景、色调、服装轮廓与颜色 |\n\n**不做**：不改服装轮廓与颜色；不改模特与背景；不把一种面料换成另一种（换面料请用 [fabric-on-body](https://github.com/dlazy-ai/ecommerce-skills/blob/main/skills/fabric-on-body/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## 3、材质增强的两条铁律\n\n**铁律一：只改表面，别的一个像素都别动。**\n\n```text\nDo not change anything else — the model face, hair, hands, pose, other garments,\nbackground, framing and colour grading must stay identical to image 1.\nThe garment silhouette and colour must not shift; only material fidelity\nand micro-detail improve.\n```\n\n**铁律二：把「好质感」翻译成具体的表面特征**，否则模型只会整体加锐化。\n\n| 面料 | 要重建的具体"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7c5wgeajfcfvdfb5ceemvdb984cjpd\",\n  \"slug\": \"material-enhancement\",\n  \"version\": \"1.0.18\",\n  \"publishedAt\": 1791597246539\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: 材质质感增强 Material Enhancement Owner: dlazyai Summary: 材质质感增强与纹理重建。糊掉的图 + 高清商品图 → 纹理清晰可信的图。当用户说「增强质感」「图糊了」「补纹理」「提清晰度」时使用。 Tags: latest:1.0.18 Version history: v1.0.18 | 2026-10-10T01:54:06.539Z | user 例行版本更新 2026-10-10 v1.0.17 | 2026-10-08T01:45:51.381Z | user 例行版本更新 2026-10-08 v1.0.16 | 2026-10-04T01:45:52.009Z | user 例行版本更新 2026-10-04 v1.0.15 | 2026-10-02T05:18:03.469Z | user 例行版本更新 2026-10-02 v1.0.14 | 2026-09","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":985,"uniquenessScore":49,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-10T22:51:11.692Z","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-10T22:51:11.692Z","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-11T01:47:34.363Z","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"}]}}}