fabric-on-body
一键替换服装面料。版式图 + 面料图 → 换上新面料的样衣图,垂坠与光泽随材质变。当用户说「换面料」「换材质」「试布料」「面料上身」「同款不同料」时使用。
Install
npx skills add https://github.com/dlazy-ai/ecommerce-skills/tree/main/skills/fabric-on-body
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install dlazy-ai-ecommerce-skills@llmmart
git clone https://github.com/dlazy-ai/ecommerce-skills.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole dlazy-ai/ecommerce-skills collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
fabric-on-body — 一键替换服装面料
版型不动,面料换掉。给一张服装版式图 + 一张面料小样,输出这个版型用新面料做出来的样衣效果图。
价值在打样前:一个版型试 8 种面料,传统做法是打 8 件样衣(每件几天、几百块);这里是 8 次生成。
生成效果示例
| 输入:服装版式图 | 输入:面料图 |
|---|---|
![]() |
![]() |
style-sheet.jpg — 落肩宽松圆领毛衣版型,800×800 |
fabric-swatch.jpg — 象牙白真丝缎面小样,640×640 |
实际执行的命令:
dlazy gpt-image-2 \
--prompt 'Fabric replacement for a garment style sheet. Image 1 is the garment pattern/style reference: an oversized drop-shoulder crewneck sweater with ribbed collar, cuffs and hem. Image 2 is the target fabric: ivory silk satin with a soft lustrous sheen and fine weave. Re-render the exact same garment silhouette from image 1 in the fabric from image 2. Keep the pattern identical: same oversized drop-shoulder cut, same body length, same sleeve length, same collar/cuff/hem construction, same flat-lay layout and camera angle. Replace only the material — the sweater must now read as ivory silk satin with specular highlights on the folds and soft drape instead of chunky knit. Clean white background, even studio light, no text.' \
--images docs/fabric-on-body/style-sheet.jpg docs/fabric-on-body/fabric-swatch.jpg \
--size 1024x1024 --quality medium --imageFormat jpeg \
--save docs/fabric-on-body/example-output.jpg
输出
example-output.jpg — 1024×1024。落肩剪裁、身长袖长、罗纹领口袖口下摆的结构与平铺角度都与版式图一致;材质从粗针织变成象牙白真丝缎面,褶皱上出现高光、垂坠变得柔顺,罗纹部位仍以缎面质感保留。
1、能力边界
| 输入 | 说明 |
|---|---|
| 服装版式图 | 决定版型、剪裁、结构与拍摄角度 |
| 面料图 | 决定材质、纹理、光泽与垂坠感(面料小样特写最佳) |
| 服装类型 | 帮助模型理解结构(上装 / 下装 / 连衣裙 / 外套 / 内衣) |
| 保持不变 | 会改变 |
|---|---|
| 版型与剪裁、身长袖长、领口/袖口/下摆结构、缝线位置、拍摄角度与构图 | 材质与织法、表面光泽、垂坠与褶皱形态、厚度观感 |
不做:不改版型比例;不改变服装的结构设计;不承诺真实打样的手感与克重——输出是视觉预览,不是工艺样衣。
2、输入素材规则
生成前先自检这几条硬性约束:
- 大小:20KB ~ 15MB
- 分辨率:大于 400×400
- 格式:jpg / jpeg / png / webp
版式图(✅):纯色背景、结构清晰、正面完整的平铺图或人台图。
面料图(✅):面料小样特写,能看清织纹与光泽;有褶皱转折更好(能交代垂坠)。
会明显拉低效果的输入(❌)
| 问题 | 说明 |
|---|---|
| 面料图拍太远 | 看不清织纹,只会当成一块纯色 |
| 面料图带强环境色 | 黄光下拍的白布会换成米黄色 |
| 版式图有复杂印花 | 原印花会和新面料打架,先用 item-repair 或换素图 |
| 面料与品类不匹配 | 硬挺牛仔布做不出吊带裙的垂坠,模型会硬凑 |
3、面料替换的关键:写清「材质带来的物理变化」
只说「换成真丝」不够——模型不知道该怎么改光影。要把材质翻译成可画出来的物理特征:
| 面料 | 要写的物理特征 |
|---|---|
| 真丝 / 缎面 | lustrous specular highlights along the folds, fluid drape, soft continuous gradients |
| 粗针织 | chunky knit loops with visible yarn twist, matte fibre halo, structured heavy drape |
| 牛仔 | twill diagonal weave, slight slub texture, stiff drape with sharp fold creases |
| 灯芯绒 | vertical wale ridges catching light, matte pile, medium-stiff drape |
| 雪纺 | semi-sheer, very light drape with many fine ripples, soft diffused light through the fabric |
| 皮革 | low-frequency specular sheen, grain texture, stiff drape with broad soft creases |
| 摇粒绒 | dense short pile, fuzzy silhouette edge, no specular highlight |
再加一句「版型不许动」——这是本技能最容易失守的地方:
Keep the pattern identical: same cut, same body length, same sleeve length,
same collar/cuff/hem construction, same flat-lay layout and camera angle.
Replace only the material.
4、工具调用
本技能使用 dLazy 的 gpt-image-2(图像编辑模型;面料替换要求「几何完全不动、材质完全改变」,是典型的定向属性替换任务)。
调用方式
两种等价写法,选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本:
# A. 统一入口(推荐):可切任意后端,加 --dry-run 不计费空跑
node scripts/gen.mjs --task fabric-on-body \
--prompt '<见下方 Prompt 模板>' \
--images <按下表顺序> \
--save output/fabric-on-body-<sku>.jpg
# B. 直接用 dLazy CLI(不想引入 Node 依赖时,效果等价)
dlazy gpt-image-2 --prompt '...' --images ... --save output/fabric-on-body.jpg
参数约定(本技能固定用法)
| 参数 | 取值 | 理由 |
|---|---|---|
--images |
[版式图, 面料图] |
顺序即 prompt 中的 image 1 / 2 |
--size |
与版式图比例一致(1024x1024 平铺 / 1024x1536 人台竖版) |
换料不该改构图 |
--quality |
high |
材质是本技能的唯一产出,必须 high |
--imageFormat |
jpeg |
通用格式 |
--batch |
2 ~ 3 |
垂坠形态有随机性 |
--save |
docs/fabric-on-body/output-<版型>-<面料>.jpg |
版型 × 面料矩阵命名 |
Command Examples
# basic call: 一个版型换一种面料
dlazy gpt-image-2 \
--prompt 'Fabric replacement. Image 1 is the garment pattern reference, image 2 is the target fabric. Re-render the exact same garment silhouette from image 1 in the fabric from image 2. Keep the pattern identical: same cut, body length, sleeve length, collar/cuff/hem construction, layout and camera angle. Replace only the material. Clean white background, even studio light, no text.' \
--images docs/fabric-on-body/style-sheet.jpg docs/fabric-on-body/fabric-swatch.jpg \
--size 1024x1024 --quality high
# complex call: 一个版型 × 多种面料,跑成一个选型矩阵
STYLE=docs/fabric-on-body/style-sheet.jpg
KEEP='Keep the pattern identical: same oversized drop-shoulder cut, same body length, same sleeve length, same collar/cuff/hem construction, same flat-lay layout and camera angle. Replace only the material.'
for F in satin corduroy denim fleece; do
case $F in
satin) PHYS='lustrous specular highlights along the folds, fluid drape, soft continuous gradients' ;;
corduroy) PHYS='vertical wale ridges catching light, matte pile, medium-stiff drape' ;;
denim) PHYS='twill diagonal weave, slight slub texture, stiff drape with sharp fold creases' ;;
fleece) PHYS='dense short pile, fuzzy silhouette edge, no specular highlight' ;;
esac
dlazy gpt-image-2 \
--prompt "Fabric replacement for a garment style sheet. Image 1 is the garment pattern/style reference. Image 2 is the target fabric. Re-render the exact same garment silhouette from image 1 in the fabric from image 2. $KEEP The garment must now read as $F: $PHYS. Clean white background, even studio light, no text." \
--images "$STYLE" "docs/fabric-on-body/swatch-$F.jpg" \
--size 1024x1024 --quality high --imageFormat jpeg \
--save "docs/fabric-on-body/output-drop-shoulder-$F.jpg"
done
# 先估价不真跑
dlazy gpt-image-2 --dry-run --prompt '...' --images a.jpg b.jpg --size 1024x1024 --quality high
延伸阅读
| 要查什么 | 去哪 |
|---|---|
| 认证、多后端配置、输出结构、错误码 | references/provider-cli.md |
gpt-image-2 的全部可用参数 |
references/model-flags.md |
| 统一入口的全部选项 | node scripts/gen.mjs --help |
5、Prompt 模板
Fabric replacement for a garment style sheet.
Image 1 is the garment pattern/style reference: [品类 + 版型描述].
Image 2 is the target fabric: [面料名 + 颜色 + 光泽描述].
Re-render the exact same garment silhouette from image 1 in the fabric from image 2.
Keep the pattern identical: same [剪裁], same body length, same sleeve length,
same [领口/袖口/下摆结构], same [缝线位置], same layout and camera angle.
Replace only the material — the garment must now read as [面料名]:
[第三节表格里对应的物理特征].
Clean [背景色] background, even studio light, no text.
按问题追加的修正句
| 问题 | 追加到 prompt 末尾 |
|---|---|
| 版型跟着变了 | The silhouette outline must be pixel-aligned with image 1. Only surface material may differ. |
| 面料颜色偏了 | Sample the fabric colour from image 2 under neutral light; do not shift hue or add colour cast. |
| 换完还是原来的质感 | 把物理特征写得更极端,并追加 The original [原面料] texture must be completely gone. |
| 垂坠不对 | Drape stiffness: [very fluid / medium / stiff]. Fold count and fold radius must match a [面料] of about [克重] gsm. |
| 缝线/罗纹消失了 | Preserve construction details: [罗纹/明线/拉链] must remain visible in the new material. |
6、执行流程
- 备素材:版式图(结构清晰、印花越少越好)+ 面料小样特写(能看清织纹)。
- 翻译材质:查第三节表格,把面料名换成物理特征描述。
- 写版型锁定句:剪裁 / 身长 / 袖长 / 领口袖口下摆 / 缝线 / 角度,逐项写死。
--quality high起跑,比例跟随版式图。- 要做选型矩阵:用第四节循环,一个版型 × N 种面料。
- 质检:版型轮廓是否与原图对齐、面料颜色是否准、质感是否真的换掉了、缝线罗纹是否还在。
- 交付时注明这是视觉预览,不代表真实手感与克重。
7、常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
| 版型变了 | 未锁定轮廓 | 追加 silhouette outline must be pixel-aligned with image 1 |
| 面料颜色不对 | 面料图带环境色 | 重拍面料小样(中性光),或追加取色约束句 |
| 质感没换掉 | 物理特征写得太弱 | 用第三节表格的极端描述 + original texture must be completely gone |
| 垂坠像纸板 | 未指定垂坠刚度 | 追加 drape stiffness 句,给出克重参考 |
| 罗纹/明线消失 | 被新材质吞掉 | 追加保留结构细节句 |
| 面料与品类物理上不成立 | 硬挺布做垂坠款 | 换匹配的面料,或改版型 |
Tips
Visit https://dlazy.com for more information.
Files (ecommerce-skills)
-
examples
-
brand.yaml 1.6 KB
# ⚠️ 由 scripts/build-skills.mjs 从 shared/examples/brand.yaml 同步生成,不要直接改这里。 # 店铺品牌视觉规范 —— 所有生图技能读这一份,保证几百个 SKU 看起来像同一家店。 # node scripts/brand.mjs --brand brand.yaml --for flat-lay # node scripts/gen.mjs --task flat-lay --brand brand.yaml --prompt '...' brand: name: 示例品牌 # 一句话概括调性,会原样进 prompt tone: quiet minimalist, warm and lived-in, never glossy or commercial model: # 锁模特:给一张脸的参考图,所有技能都会把它作为最后一张参考图传入 reference: assets/model/face-a.jpg description: East Asian woman, late twenties, natural makeup, shoulder-length black hair body: slim, height around 168cm photography: background: seamless off-white studio backdrop, RGB 248 248 246 lighting: soft large softbox from camera left, gentle fill, no hard shadows camera: 85mm equivalent, eye level, shallow depth of field grade: neutral white balance around 5200K, low contrast, slightly lifted blacks crop: full body with headroom, product centered layout: # 给带排版的技能(主图 / 详情页)用 margin: at least 8% empty margin on all sides typeface: clean sans-serif, no decorative fonts text_color: near-black on light background forbid: - no visible brand logos other than the product's own - no text or watermark - no exaggerated poses or dramatic wind effects - no oversaturated colors # 可选:把这些直接写进合规目标,生成时就按平台要求出图 compliance: platform: amazon
-
-
references
-
model-flags.md 2.1 KB
# `gpt-image-2` 参数清单 本技能默认用的模型的完整参数。日常只需要「参数约定」里那几个, 这份清单在需要用到非常规参数时再看。 **CRITICAL INSTRUCTION FOR AGENT**: Run the `dlazy gpt-image-2` command to get results. ```bash dlazy gpt-image-2 -h Options: --prompt <prompt> Prompt --images [images...] Images [image: url or local path] (max 5) --size <size> Size [default: auto] (choices: "1024x1024", "1536x1024", "1024x1536", "2048x2048", "2048x1152", "3840x2160", "2160x3840", "auto") --imageFormat <imageFormat> Image Format [default: jpeg] (choices: "jpeg", "png", "webp") --quality <quality> Quality [default: medium] (choices: "low", "medium", "high") --dry-run Print payload without executing the tool --no-wait Return generateId immediately for async tasks --timeout <seconds> Max seconds to wait for async completion (default: "1800") --input <jsonOrFile> Inline JSON or @path/to/file.json — merged under flag values (flags win) --save <path> Download the result asset to this local path (mkdir + retry handled for you). A destination path — NOT a response format; for stdout shape use --format --batch <n> Fan-out N parallel runs (cloud tools only) (default: "1") -h, --help display help for command ``` > 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. --- 换其他后端时参数由 `scripts/gen.mjs` 统一翻译,见 [`provider-cli.md`](provider-cli.md)。 -
provider-cli.md 4.7 KB
<!-- 由 scripts/build-skills.mjs 从 shared/references/provider-cli.md 同步生成,不要直接改这里。 --> # 后端调用参考 技能正文只写「要生成什么」。认证、计费、错误码、输出结构这些每个技能都一样的东西放在这里, **用到时再读**,不占技能的常驻上下文。 --- ## 一、认证 ### 默认后端 dLazy ```bash dlazy login # 设备码流程,远程 shell 也能用,自动写入本地配置 dlazy auth set <KEY> # 已有 key 时直接写入 ``` key 存在用户配置目录(macOS/Linux `~/.dlazy/config.json`,Windows `%USERPROFILE%\.dlazy\config.json`), 权限限本机用户。也可以每次调用用环境变量 `DLAZY_API_KEY` 传入。 手动获取:登录 [dlazy.com](https://dlazy.com) → [API Key 页面](https://dlazy.com/dashboard/organization/api-key)。 key 按组织隔离,可随时轮换或吊销。 ### 其他后端 本技能库不锁定单一厂商。配好任意一家的 key 即可跑: | 后端 | 环境变量 | 说明 | | --- | --- | --- | | `dlazy` | `dlazy login` 或 `DLAZY_API_KEY` | 默认,最省事 | | `openai` | `OPENAI_API_KEY` | 走 `/v1/images/edits` 与 `/v1/images/generations` | | `gemini` | `GEMINI_API_KEY` | Nano Banana 系列 | | `fal` | `FAL_KEY` | | | `replicate` | `REPLICATE_API_TOKEN` | | | `ark` | `ARK_API_KEY` + `ARK_MODEL` | 火山方舟,模型 ID 需按开通情况填 | 选路优先级:`--provider` 参数 > `PROVIDER` 环境变量 > 第一个配了 key 的 > `dlazy`。 ```bash node scripts/gen.mjs --doctor # 看当前哪个后端可用 ``` 各后端的模型 ID 可用 `GEN_MODEL_OPENAI` / `GEN_MODEL_GEMINI` / `GEN_MODEL_FAL` / `GEN_MODEL_REPLICATE` / `GEN_MODEL_ARK` 覆盖。**厂商目录会变,以各家最新文档为准。** --- ## 二、两种调用方式 ### 方式 A:统一入口(推荐) ```bash node scripts/gen.mjs --task <技能名> --prompt '...' --images a.jpg b.jpg --save out.jpg ``` 它负责:后端选路、默认尺寸档位、失败重试(429/5xx 指数退避)、落盘建目录、成本估算。 ```bash node scripts/gen.mjs --task flat-lay --prompt '...' --dry-run # 不调用不计费,只看要发什么 node scripts/gen.mjs --help ``` ### 方式 B:直接用 dLazy CLI 不想引入 Node 依赖时,技能正文里的 `dlazy ...` 命令可以原样执行,效果等价。 ```bash npx @dlazy/cli@1.2.3 <command> # 不装全局二进制 ``` - CLI 源码:[github.com/dlazy-ai/cli](https://github.com/dlazy-ai/cli) · npm 包 `@dlazy/cli` --- ## 三、数据流向 调用 dLazy 时:提示词与参数发往 `api.dlazy.com`;传入的本地图片会上传到 `files.dlazy.com` 供模型读取;产出 URL 同样托管在 `files.dlazy.com`。这是云端生成 API 的通用形态。 换成其他后端时,数据流向对应厂商,不经过 dLazy。 --- ## 四、输出结构 `gen.mjs`(加 `--json`): ```json { "ok": true, "task": "flat-lay", "provider": "dlazy", "model": "gpt-image-2", "files": ["docs/flat-lay/output-sku001.jpg"], "texts": [], "estimatedCredits": 60, "elapsedMs": 58213 } ``` dLazy CLI 原生: ```json { "ok": true, "result": { "tool": "gpt-image-2", "data": { "urls": ["https://files.dlazy.com/data/ai/....jpg"] }, "savedPath": "docs/flat-lay/example-output.jpg" } } ``` 加 `--no-wait` 的异步任务不返回 `data`,返回 `task: { generateId, status }`, 用 `dlazy status <generateId> --wait` 轮询。 文本类模型(如质检)产出在 `result.data.texts[0]`: ```bash dlazy claude-sonnet-5 --prompt '...' --images x.jpg \ | python3 -c 'import sys,json;print(json.load(sys.stdin)["result"]["data"]["texts"][0])' ``` --- ## 五、错误处理 | Code | 类型 | 示例 | | --- | --- | --- | | 401 | 未授权 / 无 key | `ok: false, code: "unauthorized"` | | 501 | 缺必填参数 | `error: required option '--prompt <prompt>' not specified` | | 502 | 本地文件读不到 | `Error: Image file not found: ...` | | 503 | 余额不足 | `ok: false, code: "insufficient_balance"` | | 503 | 服务端错误 | `HTTP status code error (500)` | | 504 | 异步任务失败 | `=== Generation Failed ===` / `Prompt violates safety policy` | **给 Agent 的硬性要求** 1. 命中 `insufficient_balance` → 明确告诉用户算力不足,并给出充值入口 <https://dlazy.com/dashboard/organization/settings?tab=credits> 2. 命中 `unauthorized` / 缺 key → 告诉用户去 <https://dlazy.com/dashboard/organization/api-key> 取 key,用 `dlazy auth set <key>` 存好再继续。 3. 用 `gen.mjs` 时,429 与 5xx 已自动重试;仍失败才向用户报错。 4. **不要**为了「跑通」而偷偷降级参数(尺寸、档位、批量),先问用户。
-
-
scripts
-
lib
-
miniyaml.mjs 2.8 KB · in bundle
-
providers.mjs 11.9 KB · in bundle
-
tasks.json 3.1 KB
{ "_note": "技能 → 默认模型与参数。dlazy 列为默认后端的模型名;其他后端走 providers.mjs 的通用映射,可用 GEN_MODEL_<PROVIDER> 覆盖。", "_credits": { "gpt-image-2": 60, "seedream-5.0": 30, "seedream-5.0-pro": 45, "banana-pro": 25, "claude-sonnet-5": 3 }, "tasks": { "flat-lay": { "model": "gpt-image-2", "size": "1024x1536", "quality": "high", "format": "jpeg" }, "wear-everything": { "model": "gpt-image-2", "size": "1024x1536", "quality": "medium", "format": "jpeg" }, "image-fusion": { "model": "seedream-5.0", "size": "3:4", "resolution": "2k" }, "one-shot": { "model": "gpt-image-2", "size": "1024x1536", "quality": "medium", "format": "jpeg" }, "fission-pattern": { "model": "gpt-image-2", "size": "1024x1536", "quality": "medium", "format": "jpeg" }, "item-detail": { "model": "seedream-5.0-pro", "size": "3:4", "resolution": "2k" }, "creative-scene": { "model": "banana-pro", "size": "1024x1536", "format": "jpeg" }, "batch-image": { "model": "seedream-5.0", "size": "3:4", "resolution": "2k" }, "to-3d": { "model": "gpt-image-2", "size": "1024x1024", "quality": "high", "format": "jpeg" }, "clothing-extraction": { "model": "gpt-image-2", "size": "1024x1024", "quality": "high", "format": "jpeg" }, "fabric-on-body": { "model": "gpt-image-2", "size": "1024x1536", "quality": "high", "format": "jpeg" }, "clothing-detail": { "model": "gpt-image-2", "size": "1024x1024", "quality": "high", "format": "jpeg" }, "clothing-grass-planting": { "model": "gpt-image-2", "size": "1024x1536", "quality": "medium", "format": "jpeg" }, "item-selling-point": { "model": "seedream-5.0-pro", "size": "1:1", "resolution": "2k" }, "item-change-background": { "model": "gpt-image-2", "size": "1024x1024", "quality": "high", "format": "jpeg" }, "remove-watermark": { "model": "gpt-image-2", "size": "1024x1024", "quality": "high", "format": "jpeg" }, "material-enhancement": { "model": "gpt-image-2", "size": "1024x1024", "quality": "high", "format": "jpeg" }, "item-repair": { "model": "gpt-image-2", "size": "1024x1024", "quality": "high", "format": "jpeg" }, "detect-task": { "model": "claude-sonnet-5", "text": true }, "listing-optimizer": { "model": "gpt-image-2", "size": "1024x1024", "quality": "high", "format": "jpeg" }, "cross-border-localize": { "model": "seedream-5.0-pro", "size": "1:1", "resolution": "2k" }, "brand-kit": { "model": "gpt-image-2", "size": "1024x1536", "quality": "high", "format": "jpeg" }, "platform-compliance": { "model": "claude-sonnet-5", "text": true }, "main-image-video": { "model": "$DLAZY_VIDEO_MODEL", "video": true }, "product-video-ad": { "model": "$DLAZY_VIDEO_MODEL", "video": true }, "ugc-testimonial": { "model": "$DLAZY_VIDEO_MODEL", "video": true } } }
-
-
brand.mjs 4.4 KB · in bundle
-
gen.mjs 9.3 KB · in bundle
-
-
skill.md 11.2 KB
--- name: fabric-on-body description: 一键替换服装面料。版式图 + 面料图 → 换上新面料的样衣图,垂坠与光泽随材质变。当用户说「换面料」「换材质」「试布料」「面料上身」「同款不同料」时使用。 --- # fabric-on-body — 一键替换服装面料 **版型不动,面料换掉**。给一张服装版式图 + 一张面料小样,输出这个版型用新面料做出来的样衣效果图。 价值在打样前:一个版型试 8 种面料,传统做法是打 8 件样衣(每件几天、几百块);这里是 8 次生成。 --- ## 生成效果示例 | 输入:服装版式图 | 输入:面料图 | | --- | --- | | <img src="../../docs/fabric-on-body/style-sheet.jpg" width="260"> | <img src="../../docs/fabric-on-body/fabric-swatch.jpg" width="260"> | | `style-sheet.jpg` — 落肩宽松圆领毛衣版型,800×800 | `fabric-swatch.jpg` — 象牙白真丝缎面小样,640×640 | 实际执行的命令: ```bash dlazy gpt-image-2 \ --prompt 'Fabric replacement for a garment style sheet. Image 1 is the garment pattern/style reference: an oversized drop-shoulder crewneck sweater with ribbed collar, cuffs and hem. Image 2 is the target fabric: ivory silk satin with a soft lustrous sheen and fine weave. Re-render the exact same garment silhouette from image 1 in the fabric from image 2. Keep the pattern identical: same oversized drop-shoulder cut, same body length, same sleeve length, same collar/cuff/hem construction, same flat-lay layout and camera angle. Replace only the material — the sweater must now read as ivory silk satin with specular highlights on the folds and soft drape instead of chunky knit. Clean white background, even studio light, no text.' \ --images docs/fabric-on-body/style-sheet.jpg docs/fabric-on-body/fabric-swatch.jpg \ --size 1024x1024 --quality medium --imageFormat jpeg \ --save docs/fabric-on-body/example-output.jpg ``` **输出** <img src="../../docs/fabric-on-body/example-output.jpg" width="320"> `example-output.jpg` — 1024×1024。落肩剪裁、身长袖长、罗纹领口袖口下摆的结构与平铺角度都与版式图一致;材质从粗针织变成象牙白真丝缎面,褶皱上出现高光、垂坠变得柔顺,罗纹部位仍以缎面质感保留。 --- ## 1、能力边界 | 输入 | 说明 | | --- | --- | | 服装版式图 | 决定版型、剪裁、结构与拍摄角度 | | 面料图 | 决定材质、纹理、光泽与垂坠感(面料小样特写最佳) | | 服装类型 | 帮助模型理解结构(上装 / 下装 / 连衣裙 / 外套 / 内衣) | | 保持不变 | 会改变 | | --- | --- | | 版型与剪裁、身长袖长、领口/袖口/下摆结构、缝线位置、拍摄角度与构图 | 材质与织法、表面光泽、垂坠与褶皱形态、厚度观感 | **不做**:不改版型比例;不改变服装的结构设计;不承诺真实打样的手感与克重——输出是视觉预览,不是工艺样衣。 --- ## 2、输入素材规则 生成前先自检这几条硬性约束: - 大小:**20KB ~ 15MB** - 分辨率:**大于 400×400** - 格式:**jpg / jpeg / png / webp** **版式图(✅)**:纯色背景、结构清晰、正面完整的平铺图或人台图。 **面料图(✅)**:面料小样特写,能看清织纹与光泽;有褶皱转折更好(能交代垂坠)。 **会明显拉低效果的输入(❌)** | 问题 | 说明 | | --- | --- | | 面料图拍太远 | 看不清织纹,只会当成一块纯色 | | 面料图带强环境色 | 黄光下拍的白布会换成米黄色 | | 版式图有复杂印花 | 原印花会和新面料打架,先用 [item-repair](../item-repair/skill.md) 或换素图 | | 面料与品类不匹配 | 硬挺牛仔布做不出吊带裙的垂坠,模型会硬凑 | --- ## 3、面料替换的关键:写清「材质带来的物理变化」 只说「换成真丝」不够——模型不知道该怎么改光影。要把材质翻译成**可画出来的物理特征**: | 面料 | 要写的物理特征 | | --- | --- | | 真丝 / 缎面 | `lustrous specular highlights along the folds, fluid drape, soft continuous gradients` | | 粗针织 | `chunky knit loops with visible yarn twist, matte fibre halo, structured heavy drape` | | 牛仔 | `twill diagonal weave, slight slub texture, stiff drape with sharp fold creases` | | 灯芯绒 | `vertical wale ridges catching light, matte pile, medium-stiff drape` | | 雪纺 | `semi-sheer, very light drape with many fine ripples, soft diffused light through the fabric` | | 皮革 | `low-frequency specular sheen, grain texture, stiff drape with broad soft creases` | | 摇粒绒 | `dense short pile, fuzzy silhouette edge, no specular highlight` | **再加一句「版型不许动」**——这是本技能最容易失守的地方: ```text Keep the pattern identical: same cut, same body length, same sleeve length, same collar/cuff/hem construction, same flat-lay layout and camera angle. Replace only the material. ``` --- ## 4、工具调用 本技能使用 dLazy 的 **`gpt-image-2`**(图像编辑模型;面料替换要求「几何完全不动、材质完全改变」,是典型的定向属性替换任务)。 ### 调用方式 两种等价写法,选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本: ```bash # A. 统一入口(推荐):可切任意后端,加 --dry-run 不计费空跑 node scripts/gen.mjs --task fabric-on-body \ --prompt '<见下方 Prompt 模板>' \ --images <按下表顺序> \ --save output/fabric-on-body-<sku>.jpg # B. 直接用 dLazy CLI(不想引入 Node 依赖时,效果等价) dlazy gpt-image-2 --prompt '...' --images ... --save output/fabric-on-body.jpg ``` **参数约定(本技能固定用法)** | 参数 | 取值 | 理由 | | --- | --- | --- | | `--images` | `[版式图, 面料图]` | 顺序即 prompt 中的 image 1 / 2 | | `--size` | 与版式图比例一致(`1024x1024` 平铺 / `1024x1536` 人台竖版) | 换料不该改构图 | | `--quality` | `high` | 材质是本技能的唯一产出,必须 high | | `--imageFormat` | `jpeg` | 通用格式 | | `--batch` | `2` ~ `3` | 垂坠形态有随机性 | | `--save` | `docs/fabric-on-body/output-<版型>-<面料>.jpg` | 版型 × 面料矩阵命名 | ### Command Examples ```bash # basic call: 一个版型换一种面料 dlazy gpt-image-2 \ --prompt 'Fabric replacement. Image 1 is the garment pattern reference, image 2 is the target fabric. Re-render the exact same garment silhouette from image 1 in the fabric from image 2. Keep the pattern identical: same cut, body length, sleeve length, collar/cuff/hem construction, layout and camera angle. Replace only the material. Clean white background, even studio light, no text.' \ --images docs/fabric-on-body/style-sheet.jpg docs/fabric-on-body/fabric-swatch.jpg \ --size 1024x1024 --quality high # complex call: 一个版型 × 多种面料,跑成一个选型矩阵 STYLE=docs/fabric-on-body/style-sheet.jpg KEEP='Keep the pattern identical: same oversized drop-shoulder cut, same body length, same sleeve length, same collar/cuff/hem construction, same flat-lay layout and camera angle. Replace only the material.' for F in satin corduroy denim fleece; do case $F in satin) PHYS='lustrous specular highlights along the folds, fluid drape, soft continuous gradients' ;; corduroy) PHYS='vertical wale ridges catching light, matte pile, medium-stiff drape' ;; denim) PHYS='twill diagonal weave, slight slub texture, stiff drape with sharp fold creases' ;; fleece) PHYS='dense short pile, fuzzy silhouette edge, no specular highlight' ;; esac dlazy gpt-image-2 \ --prompt "Fabric replacement for a garment style sheet. Image 1 is the garment pattern/style reference. Image 2 is the target fabric. Re-render the exact same garment silhouette from image 1 in the fabric from image 2. $KEEP The garment must now read as $F: $PHYS. Clean white background, even studio light, no text." \ --images "$STYLE" "docs/fabric-on-body/swatch-$F.jpg" \ --size 1024x1024 --quality high --imageFormat jpeg \ --save "docs/fabric-on-body/output-drop-shoulder-$F.jpg" done # 先估价不真跑 dlazy gpt-image-2 --dry-run --prompt '...' --images a.jpg b.jpg --size 1024x1024 --quality high ``` ### 延伸阅读 | 要查什么 | 去哪 | | --- | --- | | 认证、多后端配置、输出结构、错误码 | [`references/provider-cli.md`](references/provider-cli.md) | | `gpt-image-2` 的全部可用参数 | [`references/model-flags.md`](references/model-flags.md) | | 统一入口的全部选项 | `node scripts/gen.mjs --help` | ## 5、Prompt 模板 ```text Fabric replacement for a garment style sheet. Image 1 is the garment pattern/style reference: [品类 + 版型描述]. Image 2 is the target fabric: [面料名 + 颜色 + 光泽描述]. Re-render the exact same garment silhouette from image 1 in the fabric from image 2. Keep the pattern identical: same [剪裁], same body length, same sleeve length, same [领口/袖口/下摆结构], same [缝线位置], same layout and camera angle. Replace only the material — the garment must now read as [面料名]: [第三节表格里对应的物理特征]. Clean [背景色] background, even studio light, no text. ``` **按问题追加的修正句** | 问题 | 追加到 prompt 末尾 | | --- | --- | | 版型跟着变了 | `The silhouette outline must be pixel-aligned with image 1. Only surface material may differ.` | | 面料颜色偏了 | `Sample the fabric colour from image 2 under neutral light; do not shift hue or add colour cast.` | | 换完还是原来的质感 | 把物理特征写得更极端,并追加 `The original [原面料] texture must be completely gone.` | | 垂坠不对 | `Drape stiffness: [very fluid / medium / stiff]. Fold count and fold radius must match a [面料] of about [克重] gsm.` | | 缝线/罗纹消失了 | `Preserve construction details: [罗纹/明线/拉链] must remain visible in the new material.` | --- ## 6、执行流程 1. **备素材**:版式图(结构清晰、印花越少越好)+ 面料小样特写(能看清织纹)。 2. **翻译材质**:查第三节表格,把面料名换成物理特征描述。 3. **写版型锁定句**:剪裁 / 身长 / 袖长 / 领口袖口下摆 / 缝线 / 角度,逐项写死。 4. **`--quality high` 起跑**,比例跟随版式图。 5. **要做选型矩阵**:用第四节循环,一个版型 × N 种面料。 6. **质检**:版型轮廓是否与原图对齐、面料颜色是否准、质感是否真的换掉了、缝线罗纹是否还在。 7. **交付时注明这是视觉预览**,不代表真实手感与克重。 --- ## 7、常见问题 | 现象 | 原因 | 处理 | | --- | --- | --- | | 版型变了 | 未锁定轮廓 | 追加 `silhouette outline must be pixel-aligned with image 1` | | 面料颜色不对 | 面料图带环境色 | 重拍面料小样(中性光),或追加取色约束句 | | 质感没换掉 | 物理特征写得太弱 | 用第三节表格的极端描述 + `original texture must be completely gone` | | 垂坠像纸板 | 未指定垂坠刚度 | 追加 drape stiffness 句,给出克重参考 | | 罗纹/明线消失 | 被新材质吞掉 | 追加保留结构细节句 | | 面料与品类物理上不成立 | 硬挺布做垂坠款 | 换匹配的面料,或改版型 | --- ## Tips Visit https://dlazy.com for more information.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.


No comments yet.