Claude Skill

item-change-background

商品换背景。白底商品图 → 逼真场景图,光影与投影匹配新环境。当用户说「换背景」「加场景」「白底转场景」「放到桌面上」时使用。

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download dlazy-ai-ecommerce-skills-skills_item-change-background-c022f20.zip · 23 KB
Part of dlazy-ai/ecommerce-skills — 26 skills

Install

skills CLI npx skills add https://github.com/dlazy-ai/ecommerce-skills/tree/main/skills/item-change-background
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install dlazy-ai-ecommerce-skills@llmmart
Git 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

item-change-background — 商品图生成逼真场景图

白底商品图 → 有质感的实拍场景图。商品不动,环境换掉。

关键不是「贴一张背景」,而是接地投影、环境反光、光向一致——这三件事做不到,商品就像浮在背景上的贴纸。


生成效果示例

输入:商品图
product-shoes.jpg — 黑色鳄鱼纹亮面皮革布洛克德比鞋,白底,800×800

实际执行的命令:

dlazy gpt-image-2 \
  --prompt 'Place this product into a photorealistic lifestyle scene. Keep the pair of black patent leather derby shoes 100% faithful: same glossy patent finish, same brogue perforation pattern, same lacing, same chunky lug sole, same proportions and camera angle. Replace the plain background with a warm autumn scene: a weathered wooden floor beside a window, a few dry maple leaves, soft late-afternoon side light casting a natural contact shadow under each shoe, blurred indoor background. The shoes must sit believably on the surface with correct perspective and grounded shadows. Photorealistic commercial product photography, no text, no watermark.' \
  --images docs/item-change-background/product-shoes.jpg \
  --size 1024x1024 --quality medium --imageFormat jpeg \
  --save docs/item-change-background/example-output.jpg

输出

example-output.jpg — 1024×1024。鞋的鳄鱼纹压花、雕花孔、白色沿条明线与厚齿底保持不变;背景换成窗边旧木板 + 枫叶,午后侧光在鞋头形成高光,每只鞋下都有接地投影,木纹的暖色被亮面皮革轻微反射。


1、能力边界

方式 说明
文生背景 用文字描述目标场景,模型生成环境
上传背景 提供一张背景图,商品合成进去
能力 说明
背景模板 智能推荐 / 木棍衣杆 / 浅色木枝 / 自定义
商品类目 辅助判断合理场景(鞋 → 地面,美妆 → 台面,家居 → 房间)
物理正确 接地投影、环境反光、光向与色温一致

不做:不改商品的外形、颜色、材质与 logo;不添加原图没有的商品部件;不生成误导性的使用场景(如非防水产品放进水里)。


2、输入素材规则

生成前先自检这几条硬性约束:

  • 大小:20KB ~ 15MB
  • 分辨率:大于 400×400
  • 格式:jpg / jpeg / png / webp

输入建议

做法 说明
✅ 纯白/纯色底商品图 抠图边界最干净
✅ 商品完整、主视角 出画的部分放进场景后要靠编
✅ 光线均匀 原图有强方向光时,新场景的光向必须跟它一致
❌ 已在复杂场景里 先用 clothing-extraction 或抠图洗成白底
❌ 半透明/反光商品无参照 玻璃瓶、镜面商品要靠环境反光才真实,白底图信息不足

3、让商品「落地」的三条物理约束

这三句几乎决定成败,每次都要写:

1. 接地:sitting believably on the surface with correct perspective and a grounded contact shadow
2. 光向:light direction and colour temperature must match the shading already on the product
3. 反光:[环境元素] subtly reflected on the [商品材质], consistent with the scene

类目 → 合理场景对照

类目 合理场景 忌
鞋 木地板 / 石板路 / 台阶,商品接地 悬浮、放在布面上没有压痕
包 椅背 / 桌面 / 手提,带受力形变 硬挺立在半空
美妆 大理石台面 / 丝绒布 / 浴室台,带倒影 放在草地、户外
3C 木桌 / 办公桌 / 深色台面,硬光勾边 温馨田园风
家居 完整房间透视,与家具比例合理 尺寸明显不对的房间
食品 餐桌 / 厨房台面 / 竹垫,暖光 冷调工业风

4、工具调用

本技能使用 dLazy 的 gpt-image-2(图像编辑模型;商品换背景的难点是「商品像素不动 + 环境重建 + 物理正确的光影耦合」,需要强区域保持与场景理解)。

调用方式

两种等价写法,选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本:

# A. 统一入口(推荐):可切任意后端,加 --dry-run 不计费空跑
node scripts/gen.mjs --task item-change-background \
  --prompt '<见下方 Prompt 模板>' \
  --images <按下表顺序> \
  --save output/item-change-background-<sku>.jpg

# B. 直接用 dLazy CLI(不想引入 Node 依赖时,效果等价)
dlazy gpt-image-2 --prompt '...' --images ... --save output/item-change-background.jpg

参数约定(本技能固定用法)

参数 取值 理由
--images [商品图](文生背景)/ [商品图, 背景图](上传背景) 顺序即 prompt 中的 image 1 / 2
--size 1024x1024(方图主图)/ 1024x1536(竖版场景) 跟随主图规范
--quality high(皮革、金属、玻璃等反光材质)/ medium(哑光材质) 反光材质靠 high
--imageFormat jpeg 通用格式
--batch 2 ~ 4 场景构图随机性大
--save docs/item-change-background/output-<sku>-<场景>.jpg 按场景归档

Command Examples

# basic call: 文生背景
dlazy gpt-image-2 \
  --prompt 'Place this product into a photorealistic lifestyle scene. Keep the product 100% faithful: same shape, colour, material finish and logo. Replace the plain background with a weathered wooden floor beside a window, soft late-afternoon side light casting a natural contact shadow, blurred indoor background. The product must sit believably on the surface with correct perspective and grounded shadows. Photorealistic commercial product photography, no text.' \
  --images docs/item-change-background/product-shoes.jpg \
  --size 1024x1024 --quality medium

# complex call: 上传背景图 + 一个商品铺 4 个场景
SRC=docs/item-change-background/product-shoes.jpg
KEEP='Keep the pair of black crocodile-embossed patent leather derby shoes 100% faithful: same glossy finish, same croc embossing pattern, same brogue perforation, same lacing, same white welt stitching, same chunky lug sole, same proportions and camera angle.'
PHYS='The shoes must sit believably on the surface with correct perspective and a grounded contact shadow under each shoe. Light direction and colour temperature must match the shading already on the product. Photorealistic commercial product photography, no text, no watermark.'
for S in wood street office autumn; do
  case $S in
    wood)   SCENE='on a weathered wooden floor beside a window, soft late-afternoon side light, blurred indoor background' ;;
    street) SCENE='on wet grey cobblestones after rain, reflections in the puddles, overcast diffused light' ;;
    office) SCENE='on a dark polished stone floor in a modern office lobby, cool directional light, glass panels blurred behind' ;;
    autumn) SCENE='on a wooden deck with a few dry maple leaves, warm golden-hour side light' ;;
  esac
  dlazy gpt-image-2 \
    --prompt "Place this product into a photorealistic lifestyle scene. $KEEP Replace the plain background with a scene: $SCENE. $PHYS" \
    --images "$SRC" --size 1024x1024 --quality high --imageFormat jpeg \
    --batch 2 --save "docs/item-change-background/output-sku001-$S.jpg"
done

# 上传背景图的写法:--images 商品图 背景图
dlazy gpt-image-2 \
  --prompt 'Composite the product from image 1 into the scene from image 2. Keep the product 100% faithful. Place it on [具体位置] with correct perspective, a grounded contact shadow, and light direction matching image 2. Blend edges seamlessly; no cut-out halo. Photorealistic, no text.' \
  --images docs/item-change-background/product-shoes.jpg docs/item-change-background/bg.jpg \
  --size 1024x1024 --quality high

# 先估价不真跑
dlazy gpt-image-2 --dry-run --prompt '...' --images a.jpg --size 1024x1024 --quality high

延伸阅读

要查什么 去哪
认证、多后端配置、输出结构、错误码 references/provider-cli.md
gpt-image-2 的全部可用参数 references/model-flags.md
统一入口的全部选项 node scripts/gen.mjs --help

5、Prompt 模板

Place this product into a photorealistic lifestyle scene.

Keep the [商品品类 + 颜色 + 材质] 100% faithful: same [外形], same [材质光泽],
same [五金/缝线/纹理], same [logo 位置], same proportions and camera angle.

Replace the background with [场景描述:表面 + 环境 + 道具 + 光线].

The product must sit believably on the surface with correct perspective and a
grounded contact shadow. Light direction and colour temperature must match the
shading already on the product. [环境元素] subtly reflected on the [材质].

Photorealistic commercial product photography, no text, no watermark.

按问题追加的修正句

问题 追加到 prompt 末尾
商品像贴纸浮着 Add a soft occlusion/contact shadow where the product meets the surface, and a faint ambient-occlusion darkening along the contact line.
光向对不上 The scene light must come from [方向], matching the highlight already on the product.
抠图有白边 Blend the product edges seamlessly into the scene; no cut-out halo, no white fringe.
商品被改了 Change only the background. Every pixel of the product must remain identical to image 1.
反光材质假 Render physically plausible reflections of the surrounding scene on the [材质] surface.
商品太小 The product must occupy at least 45% of the frame and be the sharpest element.

6、执行流程

  1. 洗成白底:商品图如带复杂背景,先抠干净。
  2. 查类目 → 合理场景(第三节表格),避免物理上不成立的组合。
  3. 写商品保真句 → 写场景句 → 写三条物理约束(接地 / 光向 / 反光)。
  4. 反光材质用 --quality high。
  5. --batch 2~4 出多张挑构图,落盘到 docs/item-change-background/。
  6. 质检:是否接地(有没有投影和压痕)、光向是否一致、边缘有没有白边、商品本体是否被改。

7、常见问题

现象 原因 处理
商品像浮在背景上 缺接地投影 追加接地投影 + AO 暗化句
光向明显矛盾 未约束光向 追加指定光向句,与商品原有高光一致
边缘有白边 抠图残留 追加无白边融合句
商品细节被改 模型重绘了商品 追加 Change only the background.
玻璃/金属反光很假 缺环境反光 追加环境反光句 + --quality high
场景不合理(鞋在草地悬空) 类目与场景不匹配 查第三节表格换场景

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.3 KB
    ---
    name: item-change-background
    description: 商品换背景。白底商品图 → 逼真场景图,光影与投影匹配新环境。当用户说「换背景」「加场景」「白底转场景」「放到桌面上」时使用。
    ---
    
    # item-change-background — 商品图生成逼真场景图
    
    白底商品图 → **有质感的实拍场景图**。商品不动,环境换掉。
    
    关键不是「贴一张背景」,而是**接地投影、环境反光、光向一致**——这三件事做不到,商品就像浮在背景上的贴纸。
    
    ---
    
    ## 生成效果示例
    
    | 输入:商品图 |
    | --- |
    | <img src="../../docs/item-change-background/product-shoes.jpg" width="280"> |
    | `product-shoes.jpg` — 黑色鳄鱼纹亮面皮革布洛克德比鞋,白底,800×800 |
    
    实际执行的命令:
    
    ```bash
    dlazy gpt-image-2 \
      --prompt 'Place this product into a photorealistic lifestyle scene. Keep the pair of black patent leather derby shoes 100% faithful: same glossy patent finish, same brogue perforation pattern, same lacing, same chunky lug sole, same proportions and camera angle. Replace the plain background with a warm autumn scene: a weathered wooden floor beside a window, a few dry maple leaves, soft late-afternoon side light casting a natural contact shadow under each shoe, blurred indoor background. The shoes must sit believably on the surface with correct perspective and grounded shadows. Photorealistic commercial product photography, no text, no watermark.' \
      --images docs/item-change-background/product-shoes.jpg \
      --size 1024x1024 --quality medium --imageFormat jpeg \
      --save docs/item-change-background/example-output.jpg
    ```
    
    **输出**
    
    <img src="../../docs/item-change-background/example-output.jpg" width="320">
    
    `example-output.jpg` — 1024×1024。鞋的鳄鱼纹压花、雕花孔、白色沿条明线与厚齿底保持不变;背景换成窗边旧木板 + 枫叶,午后侧光在鞋头形成高光,每只鞋下都有接地投影,木纹的暖色被亮面皮革轻微反射。
    
    ---
    
    ## 1、能力边界
    
    | 方式 | 说明 |
    | --- | --- |
    | 文生背景 | 用文字描述目标场景,模型生成环境 |
    | 上传背景 | 提供一张背景图,商品合成进去 |
    
    | 能力 | 说明 |
    | --- | --- |
    | 背景模板 | 智能推荐 / 木棍衣杆 / 浅色木枝 / 自定义 |
    | 商品类目 | 辅助判断合理场景(鞋 → 地面,美妆 → 台面,家居 → 房间) |
    | 物理正确 | 接地投影、环境反光、光向与色温一致 |
    
    **不做**:不改商品的外形、颜色、材质与 logo;不添加原图没有的商品部件;不生成误导性的使用场景(如非防水产品放进水里)。
    
    ---
    
    ## 2、输入素材规则
    
    生成前先自检这几条硬性约束:
    
    - 大小:**20KB ~ 15MB**
    - 分辨率:**大于 400×400**
    - 格式:**jpg / jpeg / png / webp**
    
    **输入建议**
    
    | 做法 | 说明 |
    | --- | --- |
    | ✅ 纯白/纯色底商品图 | 抠图边界最干净 |
    | ✅ 商品完整、主视角 | 出画的部分放进场景后要靠编 |
    | ✅ 光线均匀 | 原图有强方向光时,新场景的光向必须跟它一致 |
    | ❌ 已在复杂场景里 | 先用 [clothing-extraction](../clothing-extraction/skill.md) 或抠图洗成白底 |
    | ❌ 半透明/反光商品无参照 | 玻璃瓶、镜面商品要靠环境反光才真实,白底图信息不足 |
    
    ---
    
    ## 3、让商品「落地」的三条物理约束
    
    这三句几乎决定成败,每次都要写:
    
    ```text
    1. 接地:sitting believably on the surface with correct perspective and a grounded contact shadow
    2. 光向:light direction and colour temperature must match the shading already on the product
    3. 反光:[环境元素] subtly reflected on the [商品材质], consistent with the scene
    ```
    
    **类目 → 合理场景对照**
    
    | 类目 | 合理场景 | 忌 |
    | --- | --- | --- |
    | 鞋 | 木地板 / 石板路 / 台阶,商品接地 | 悬浮、放在布面上没有压痕 |
    | 包 | 椅背 / 桌面 / 手提,带受力形变 | 硬挺立在半空 |
    | 美妆 | 大理石台面 / 丝绒布 / 浴室台,带倒影 | 放在草地、户外 |
    | 3C | 木桌 / 办公桌 / 深色台面,硬光勾边 | 温馨田园风 |
    | 家居 | 完整房间透视,与家具比例合理 | 尺寸明显不对的房间 |
    | 食品 | 餐桌 / 厨房台面 / 竹垫,暖光 | 冷调工业风 |
    
    ---
    
    ## 4、工具调用
    
    本技能使用 dLazy 的 **`gpt-image-2`**(图像编辑模型;商品换背景的难点是「商品像素不动 + 环境重建 + 物理正确的光影耦合」,需要强区域保持与场景理解)。
    
    ### 调用方式
    
    两种等价写法,选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本:
    
    ```bash
    # A. 统一入口(推荐):可切任意后端,加 --dry-run 不计费空跑
    node scripts/gen.mjs --task item-change-background \
      --prompt '<见下方 Prompt 模板>' \
      --images <按下表顺序> \
      --save output/item-change-background-<sku>.jpg
    
    # B. 直接用 dLazy CLI(不想引入 Node 依赖时,效果等价)
    dlazy gpt-image-2 --prompt '...' --images ... --save output/item-change-background.jpg
    ```
    
    **参数约定(本技能固定用法)**
    
    | 参数 | 取值 | 理由 |
    | --- | --- | --- |
    | `--images` | `[商品图]`(文生背景)/ `[商品图, 背景图]`(上传背景) | 顺序即 prompt 中的 image 1 / 2 |
    | `--size` | `1024x1024`(方图主图)/ `1024x1536`(竖版场景) | 跟随主图规范 |
    | `--quality` | `high`(皮革、金属、玻璃等反光材质)/ `medium`(哑光材质) | 反光材质靠 high |
    | `--imageFormat` | `jpeg` | 通用格式 |
    | `--batch` | `2` ~ `4` | 场景构图随机性大 |
    | `--save` | `docs/item-change-background/output-<sku>-<场景>.jpg` | 按场景归档 |
    
    ### Command Examples
    
    ```bash
    # basic call: 文生背景
    dlazy gpt-image-2 \
      --prompt 'Place this product into a photorealistic lifestyle scene. Keep the product 100% faithful: same shape, colour, material finish and logo. Replace the plain background with a weathered wooden floor beside a window, soft late-afternoon side light casting a natural contact shadow, blurred indoor background. The product must sit believably on the surface with correct perspective and grounded shadows. Photorealistic commercial product photography, no text.' \
      --images docs/item-change-background/product-shoes.jpg \
      --size 1024x1024 --quality medium
    
    # complex call: 上传背景图 + 一个商品铺 4 个场景
    SRC=docs/item-change-background/product-shoes.jpg
    KEEP='Keep the pair of black crocodile-embossed patent leather derby shoes 100% faithful: same glossy finish, same croc embossing pattern, same brogue perforation, same lacing, same white welt stitching, same chunky lug sole, same proportions and camera angle.'
    PHYS='The shoes must sit believably on the surface with correct perspective and a grounded contact shadow under each shoe. Light direction and colour temperature must match the shading already on the product. Photorealistic commercial product photography, no text, no watermark.'
    for S in wood street office autumn; do
      case $S in
        wood)   SCENE='on a weathered wooden floor beside a window, soft late-afternoon side light, blurred indoor background' ;;
        street) SCENE='on wet grey cobblestones after rain, reflections in the puddles, overcast diffused light' ;;
        office) SCENE='on a dark polished stone floor in a modern office lobby, cool directional light, glass panels blurred behind' ;;
        autumn) SCENE='on a wooden deck with a few dry maple leaves, warm golden-hour side light' ;;
      esac
      dlazy gpt-image-2 \
        --prompt "Place this product into a photorealistic lifestyle scene. $KEEP Replace the plain background with a scene: $SCENE. $PHYS" \
        --images "$SRC" --size 1024x1024 --quality high --imageFormat jpeg \
        --batch 2 --save "docs/item-change-background/output-sku001-$S.jpg"
    done
    
    # 上传背景图的写法:--images 商品图 背景图
    dlazy gpt-image-2 \
      --prompt 'Composite the product from image 1 into the scene from image 2. Keep the product 100% faithful. Place it on [具体位置] with correct perspective, a grounded contact shadow, and light direction matching image 2. Blend edges seamlessly; no cut-out halo. Photorealistic, no text.' \
      --images docs/item-change-background/product-shoes.jpg docs/item-change-background/bg.jpg \
      --size 1024x1024 --quality high
    
    # 先估价不真跑
    dlazy gpt-image-2 --dry-run --prompt '...' --images a.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
    Place this product into a photorealistic lifestyle scene.
    
    Keep the [商品品类 + 颜色 + 材质] 100% faithful: same [外形], same [材质光泽],
    same [五金/缝线/纹理], same [logo 位置], same proportions and camera angle.
    
    Replace the background with [场景描述:表面 + 环境 + 道具 + 光线].
    
    The product must sit believably on the surface with correct perspective and a
    grounded contact shadow. Light direction and colour temperature must match the
    shading already on the product. [环境元素] subtly reflected on the [材质].
    
    Photorealistic commercial product photography, no text, no watermark.
    ```
    
    **按问题追加的修正句**
    
    | 问题 | 追加到 prompt 末尾 |
    | --- | --- |
    | 商品像贴纸浮着 | `Add a soft occlusion/contact shadow where the product meets the surface, and a faint ambient-occlusion darkening along the contact line.` |
    | 光向对不上 | `The scene light must come from [方向], matching the highlight already on the product.` |
    | 抠图有白边 | `Blend the product edges seamlessly into the scene; no cut-out halo, no white fringe.` |
    | 商品被改了 | `Change only the background. Every pixel of the product must remain identical to image 1.` |
    | 反光材质假 | `Render physically plausible reflections of the surrounding scene on the [材质] surface.` |
    | 商品太小 | `The product must occupy at least 45% of the frame and be the sharpest element.` |
    
    ---
    
    ## 6、执行流程
    
    1. **洗成白底**:商品图如带复杂背景,先抠干净。
    2. **查类目 → 合理场景**(第三节表格),避免物理上不成立的组合。
    3. **写商品保真句** → **写场景句** → **写三条物理约束**(接地 / 光向 / 反光)。
    4. **反光材质用 `--quality high`**。
    5. **`--batch 2~4`** 出多张挑构图,落盘到 `docs/item-change-background/`。
    6. **质检**:是否接地(有没有投影和压痕)、光向是否一致、边缘有没有白边、商品本体是否被改。
    
    ---
    
    ## 7、常见问题
    
    | 现象 | 原因 | 处理 |
    | --- | --- | --- |
    | 商品像浮在背景上 | 缺接地投影 | 追加接地投影 + AO 暗化句 |
    | 光向明显矛盾 | 未约束光向 | 追加指定光向句,与商品原有高光一致 |
    | 边缘有白边 | 抠图残留 | 追加无白边融合句 |
    | 商品细节被改 | 模型重绘了商品 | 追加 `Change only the background.` |
    | 玻璃/金属反光很假 | 缺环境反光 | 追加环境反光句 + `--quality high` |
    | 场景不合理(鞋在草地悬空) | 类目与场景不匹配 | 查第三节表格换场景 |
    
    ---
    
    ## Tips
    
    Visit https://dlazy.com for more information.
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related