Claude Skill

remove-watermark

去水印去文字。带水印 / 文字 / logo 的图 → 干净图,背景纹理自然补全。当用户说「去水印」「去文字」「擦掉 logo」「把字去了」时使用。

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_remove-watermark-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/remove-watermark
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

remove-watermark — 一键去除水印和文字

把图上的水印、文字、角标、优惠券条、装饰边框去掉,并把被挡住的画面补回来。

最常见的用途是给别的技能准备干净输入:带文字的图丢给 fission-pattern 或 clothing-grass-planting,那些文字会被复制到每一张衍生图里。


生成效果示例

输入:带水印文字的图
source-watermarked.jpg — 家纺促销主图:红金边框 + 标题 + 活动时间 + 价格气泡 + 满减券条 + 多色可选角标

实际执行的命令:

dlazy gpt-image-2 \
  --prompt 'Remove every piece of text, price tag, badge, ribbon and decorative promotional frame from this image, and reconstruct what was behind them. Delete the red-and-gold border frame, the large headline, the date line, the price bubble with the number, the coupon banner and the bottom-right colour label. Keep the photograph itself completely unchanged: same bedroom, same bed, same taupe and cream bedding set, same table lamp, same wall art, same perspective, same colour grading and same resolution. Inpaint the cleared areas so the room continues naturally — walls, headboard, floor and bedding must look seamless, with no ghosting, blur patches or leftover letter shapes. Clean product photo, absolutely no text.' \
  --images docs/remove-watermark/source-watermarked.jpg \
  --size 1024x1024 --quality medium --imageFormat jpeg \
  --save docs/remove-watermark/example-output.jpg

输出

example-output.jpg — 1024×1024。红金边框、标题、活动时间、价格气泡、满减券条与角标全部清除,墙面、床头、地板与四件套接续自然,无字形残影;卧室、床品配色、台灯与墙上装饰画保留。

注意:对比原图可以看到房间透视被轻微重构了——这是重建而非像素级修补的正常结果。要严格保留原始像素请用专业修图工具。


1、能力边界

能去掉 说明
半透明水印 平台水印、店铺水印、防盗水印
促销文字 标题、卖点文案、活动时间
价格角标 圆形/异形价格气泡、满减角标
优惠券条 底部横条、色块条
装饰边框 边框、花纹、丝带
贴纸 表情、箭头、指示图形

重要限制:本技能是重建而不是像素级修补。被覆盖区域的内容是模型推断出来的,画面的其余部分也可能被轻微重绘(透视、纹理有细微变化)。要严格保留原始像素,请用专业修图工具。

不做:不用于抹除他人的版权水印后冒用图片;不用于抹除品牌标识后冒充自有商品;不用于去除法定标识(认证标、警示语、成分标)。


2、输入素材规则

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

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

输入建议

做法 说明
✅ 文字区域背景简单 纯色墙、纯色台面上的文字最容易补
✅ 分辨率高 重建质量随原图分辨率提升
✅ 逐项列出要删的元素 只说「去水印」会漏掉边框和角标
⚠️ 文字压在商品主体上 商品被文字挡住的部分是推断的,要人工核对
❌ 文字覆盖面积超过一半 重建出来基本是新图,建议重新做图

3、逐项点名 + 保真锁定

去印的 prompt 是两个清单:删除清单和保留清单。

【删除清单】Delete: the [边框描述], the [标题文字], the [日期行],
the [价格气泡], the [优惠券条], the [角标].
【保留清单】Keep the photograph itself completely unchanged: same [主体],
same [环境元素逐项], same perspective, same colour grading, same resolution.
【重建要求】Inpaint the cleared areas so the [场景] continues naturally —
[被遮挡的结构] must look seamless, with no ghosting, blur patches or leftover letter shapes.
【硬约束】absolutely no text anywhere in the output.

no ghosting, blur patches or leftover letter shapes 这句很关键——不写的话经常留下模糊的字形轮廓。

保留清单要逐项列,只写「保持画面不变」时模型会重构透视。


4、工具调用

本技能使用 dLazy 的 gpt-image-2(图像编辑模型;去印的本质是「区域清除 + 语义重建 + 其余保持」,需要能理解画面结构才能把被挡住的部分补得合理)。

调用方式

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

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

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

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

参数 取值 理由
--images [原图] 单图输入
--size 与原图比例一致 去印不该改构图比例
--quality high(重建区域面积大)/ medium(只有小水印) 重建质量与档位正相关
--imageFormat jpeg 通用格式
--batch 2 ~ 3 重建内容有随机性,挑一张最合理的
--save docs/remove-watermark/output-<sku>-clean.jpg 洗干净的版本单独归档

Command Examples

# basic call: 去掉水印和文字
dlazy gpt-image-2 \
  --prompt 'Remove every piece of text, watermark, badge and decorative frame from this image and reconstruct what was behind them. Keep the photograph itself unchanged: same subject, same environment, same perspective, same colour grading. Inpaint the cleared areas so the scene continues naturally, with no ghosting, blur patches or leftover letter shapes. Absolutely no text.' \
  --images docs/remove-watermark/source-watermarked.jpg \
  --size 1024x1024 --quality medium

# complex call: 逐项点名 + 保真锁定 + 出 3 张挑最合理的重建
dlazy gpt-image-2 \
  --prompt 'Remove every piece of text, price tag, badge, ribbon and decorative promotional frame from this image, and reconstruct what was behind them. Delete: the red-and-gold border frame, the large headline, the date line, the price bubble with the number, the coupon banner and the bottom-right colour label. Keep the photograph itself completely unchanged: same bedroom, same bed, same bedding set, same table lamp, same wall art, same perspective, same colour grading and same resolution. Inpaint the cleared areas so the room continues naturally — walls, headboard, floor and bedding must look seamless, with no ghosting, blur patches or leftover letter shapes. Clean product photo, absolutely no text.' \
  --images docs/remove-watermark/source-watermarked.jpg \
  --size 1024x1024 --quality high --imageFormat jpeg \
  --batch 3 --save docs/remove-watermark/output-bedding-clean.jpg

# 批量洗图:作为其他技能的前置步骤
for f in docs/remove-watermark/raw/*.jpg; do
  dlazy gpt-image-2 \
    --prompt 'Remove all watermarks, text, badges and decorative frames; reconstruct the covered areas seamlessly. Keep the photograph unchanged in subject, perspective and colour grading. No ghosting, no blur patches, no leftover letter shapes. Absolutely no text.' \
    --images "$f" --size 1024x1024 --quality high --imageFormat jpeg \
    --save "docs/remove-watermark/clean/$(basename $f)"
done

# 先估价不真跑
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 模板

Remove every piece of text, watermark, badge, ribbon and decorative promotional frame
from this image, and reconstruct what was behind them.

Delete: the [边框], the [标题文字], the [日期/说明行], the [价格气泡],
the [优惠券条], the [角标/贴纸].

Keep the photograph itself completely unchanged: same [主体], same [环境元素逐项],
same perspective, same colour grading and same resolution.

Inpaint the cleared areas so the [场景] continues naturally — [被遮挡的结构逐项]
must look seamless, with no ghosting, blur patches or leftover letter shapes.

Clean product photo, absolutely no text.

按问题追加的修正句

问题 追加到 prompt 末尾
留下模糊字形 No residual glyph shapes, no smudged rectangles where text used to be.
只删了一部分 把漏掉的逐项补进删除清单,并追加 Every one of the listed elements must be gone.
画面被重构了 Do not re-compose the photograph: keep the same camera angle, the same object positions and the same wall/floor lines.
重建区域纹理不接 Continue the existing [墙面/木纹/织物] texture across the cleared area with matching scale and direction.
商品被文字挡住的部分错了 Reconstruct the occluded part of the product from symmetry and the visible portion; do not invent new features.

6、执行流程

  1. 列删除清单:把画面里每一个文字/图形元素点名(边框、标题、日期、价格、券条、角标、贴纸)。
  2. 列保留清单:主体 + 环境元素逐项 + 透视 + 色调 + 分辨率。
  3. 写重建要求:明确哪些结构要接得上,并加「无字形残留」句。
  4. --quality high(重建面积大时)→ --batch 2~3 挑最合理的一张。
  5. 质检:文字是否全清、有没有字形残影、透视是否被改、被挡住的商品部分是否合理。
  6. 交付时说明:重建区域是推断内容,需要像素级保真请走专业修图。

7、常见问题

现象 原因 处理
留下模糊的字形轮廓 未写无残留约束 追加 no residual glyph shapes 句
只删掉了一部分元素 删除清单不全 逐项补齐 + Every one of the listed elements must be gone.
透视/构图变了 未锁定构图 追加禁止重构构图句;这是本技能的固有局限
重建区域纹理断裂 未要求纹理接续 追加纹理接续句,指明纹理种类与方向
被文字挡住的商品补错了 那部分是推断的 追加对称推断句;关键部位人工核对
文字覆盖超过一半 超出能力边界 重新做图,别洗

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: remove-watermark
    description: 去水印去文字。带水印 / 文字 / logo 的图 → 干净图,背景纹理自然补全。当用户说「去水印」「去文字」「擦掉 logo」「把字去了」时使用。
    ---
    
    # remove-watermark — 一键去除水印和文字
    
    把图上的**水印、文字、角标、优惠券条、装饰边框**去掉,并把被挡住的画面补回来。
    
    最常见的用途是**给别的技能准备干净输入**:带文字的图丢给 [fission-pattern](../fission-pattern/skill.md) 或 [clothing-grass-planting](../clothing-grass-planting/skill.md),那些文字会被复制到每一张衍生图里。
    
    ---
    
    ## 生成效果示例
    
    | 输入:带水印文字的图 |
    | --- |
    | <img src="../../docs/remove-watermark/source-watermarked.jpg" width="280"> |
    | `source-watermarked.jpg` — 家纺促销主图:红金边框 + 标题 + 活动时间 + 价格气泡 + 满减券条 + 多色可选角标 |
    
    实际执行的命令:
    
    ```bash
    dlazy gpt-image-2 \
      --prompt 'Remove every piece of text, price tag, badge, ribbon and decorative promotional frame from this image, and reconstruct what was behind them. Delete the red-and-gold border frame, the large headline, the date line, the price bubble with the number, the coupon banner and the bottom-right colour label. Keep the photograph itself completely unchanged: same bedroom, same bed, same taupe and cream bedding set, same table lamp, same wall art, same perspective, same colour grading and same resolution. Inpaint the cleared areas so the room continues naturally — walls, headboard, floor and bedding must look seamless, with no ghosting, blur patches or leftover letter shapes. Clean product photo, absolutely no text.' \
      --images docs/remove-watermark/source-watermarked.jpg \
      --size 1024x1024 --quality medium --imageFormat jpeg \
      --save docs/remove-watermark/example-output.jpg
    ```
    
    **输出**
    
    <img src="../../docs/remove-watermark/example-output.jpg" width="320">
    
    `example-output.jpg` — 1024×1024。红金边框、标题、活动时间、价格气泡、满减券条与角标全部清除,墙面、床头、地板与四件套接续自然,无字形残影;卧室、床品配色、台灯与墙上装饰画保留。
    
    > 注意:对比原图可以看到房间透视被轻微重构了——这是重建而非像素级修补的正常结果。要严格保留原始像素请用专业修图工具。
    
    ---
    
    ## 1、能力边界
    
    | 能去掉 | 说明 |
    | --- | --- |
    | 半透明水印 | 平台水印、店铺水印、防盗水印 |
    | 促销文字 | 标题、卖点文案、活动时间 |
    | 价格角标 | 圆形/异形价格气泡、满减角标 |
    | 优惠券条 | 底部横条、色块条 |
    | 装饰边框 | 边框、花纹、丝带 |
    | 贴纸 | 表情、箭头、指示图形 |
    
    **重要限制**:本技能是**重建**而不是像素级修补。被覆盖区域的内容是模型**推断**出来的,画面的其余部分也可能被轻微重绘(透视、纹理有细微变化)。要严格保留原始像素,请用专业修图工具。
    
    **不做**:不用于抹除他人的版权水印后冒用图片;不用于抹除品牌标识后冒充自有商品;不用于去除法定标识(认证标、警示语、成分标)。
    
    ---
    
    ## 2、输入素材规则
    
    生成前先自检这几条硬性约束:
    
    - 大小:**20KB ~ 15MB**
    - 分辨率:**大于 400×400**
    - 格式:**jpg / jpeg / png / webp**
    
    **输入建议**
    
    | 做法 | 说明 |
    | --- | --- |
    | ✅ 文字区域背景简单 | 纯色墙、纯色台面上的文字最容易补 |
    | ✅ 分辨率高 | 重建质量随原图分辨率提升 |
    | ✅ 逐项列出要删的元素 | 只说「去水印」会漏掉边框和角标 |
    | ⚠️ 文字压在商品主体上 | 商品被文字挡住的部分是推断的,要人工核对 |
    | ❌ 文字覆盖面积超过一半 | 重建出来基本是新图,建议重新做图 |
    
    ---
    
    ## 3、逐项点名 + 保真锁定
    
    去印的 prompt 是两个清单:**删除清单**和**保留清单**。
    
    ```text
    【删除清单】Delete: the [边框描述], the [标题文字], the [日期行],
    the [价格气泡], the [优惠券条], the [角标].
    【保留清单】Keep the photograph itself completely unchanged: same [主体],
    same [环境元素逐项], same perspective, same colour grading, same resolution.
    【重建要求】Inpaint the cleared areas so the [场景] continues naturally —
    [被遮挡的结构] must look seamless, with no ghosting, blur patches or leftover letter shapes.
    【硬约束】absolutely no text anywhere in the output.
    ```
    
    **`no ghosting, blur patches or leftover letter shapes` 这句很关键**——不写的话经常留下模糊的字形轮廓。
    
    **保留清单要逐项列**,只写「保持画面不变」时模型会重构透视。
    
    ---
    
    ## 4、工具调用
    
    本技能使用 dLazy 的 **`gpt-image-2`**(图像编辑模型;去印的本质是「区域清除 + 语义重建 + 其余保持」,需要能理解画面结构才能把被挡住的部分补得合理)。
    
    ### 调用方式
    
    两种等价写法,选一种。统一入口会自动选后端、失败重试、建目录落盘、估算成本:
    
    ```bash
    # A. 统一入口(推荐):可切任意后端,加 --dry-run 不计费空跑
    node scripts/gen.mjs --task remove-watermark \
      --prompt '<见下方 Prompt 模板>' \
      --images <按下表顺序> \
      --save output/remove-watermark-<sku>.jpg
    
    # B. 直接用 dLazy CLI(不想引入 Node 依赖时,效果等价)
    dlazy gpt-image-2 --prompt '...' --images ... --save output/remove-watermark.jpg
    ```
    
    **参数约定(本技能固定用法)**
    
    | 参数 | 取值 | 理由 |
    | --- | --- | --- |
    | `--images` | `[原图]` | 单图输入 |
    | `--size` | 与原图比例一致 | 去印不该改构图比例 |
    | `--quality` | `high`(重建区域面积大)/ `medium`(只有小水印) | 重建质量与档位正相关 |
    | `--imageFormat` | `jpeg` | 通用格式 |
    | `--batch` | `2` ~ `3` | 重建内容有随机性,挑一张最合理的 |
    | `--save` | `docs/remove-watermark/output-<sku>-clean.jpg` | 洗干净的版本单独归档 |
    
    ### Command Examples
    
    ```bash
    # basic call: 去掉水印和文字
    dlazy gpt-image-2 \
      --prompt 'Remove every piece of text, watermark, badge and decorative frame from this image and reconstruct what was behind them. Keep the photograph itself unchanged: same subject, same environment, same perspective, same colour grading. Inpaint the cleared areas so the scene continues naturally, with no ghosting, blur patches or leftover letter shapes. Absolutely no text.' \
      --images docs/remove-watermark/source-watermarked.jpg \
      --size 1024x1024 --quality medium
    
    # complex call: 逐项点名 + 保真锁定 + 出 3 张挑最合理的重建
    dlazy gpt-image-2 \
      --prompt 'Remove every piece of text, price tag, badge, ribbon and decorative promotional frame from this image, and reconstruct what was behind them. Delete: the red-and-gold border frame, the large headline, the date line, the price bubble with the number, the coupon banner and the bottom-right colour label. Keep the photograph itself completely unchanged: same bedroom, same bed, same bedding set, same table lamp, same wall art, same perspective, same colour grading and same resolution. Inpaint the cleared areas so the room continues naturally — walls, headboard, floor and bedding must look seamless, with no ghosting, blur patches or leftover letter shapes. Clean product photo, absolutely no text.' \
      --images docs/remove-watermark/source-watermarked.jpg \
      --size 1024x1024 --quality high --imageFormat jpeg \
      --batch 3 --save docs/remove-watermark/output-bedding-clean.jpg
    
    # 批量洗图:作为其他技能的前置步骤
    for f in docs/remove-watermark/raw/*.jpg; do
      dlazy gpt-image-2 \
        --prompt 'Remove all watermarks, text, badges and decorative frames; reconstruct the covered areas seamlessly. Keep the photograph unchanged in subject, perspective and colour grading. No ghosting, no blur patches, no leftover letter shapes. Absolutely no text.' \
        --images "$f" --size 1024x1024 --quality high --imageFormat jpeg \
        --save "docs/remove-watermark/clean/$(basename $f)"
    done
    
    # 先估价不真跑
    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
    Remove every piece of text, watermark, badge, ribbon and decorative promotional frame
    from this image, and reconstruct what was behind them.
    
    Delete: the [边框], the [标题文字], the [日期/说明行], the [价格气泡],
    the [优惠券条], the [角标/贴纸].
    
    Keep the photograph itself completely unchanged: same [主体], same [环境元素逐项],
    same perspective, same colour grading and same resolution.
    
    Inpaint the cleared areas so the [场景] continues naturally — [被遮挡的结构逐项]
    must look seamless, with no ghosting, blur patches or leftover letter shapes.
    
    Clean product photo, absolutely no text.
    ```
    
    **按问题追加的修正句**
    
    | 问题 | 追加到 prompt 末尾 |
    | --- | --- |
    | 留下模糊字形 | `No residual glyph shapes, no smudged rectangles where text used to be.` |
    | 只删了一部分 | 把漏掉的逐项补进删除清单,并追加 `Every one of the listed elements must be gone.` |
    | 画面被重构了 | `Do not re-compose the photograph: keep the same camera angle, the same object positions and the same wall/floor lines.` |
    | 重建区域纹理不接 | `Continue the existing [墙面/木纹/织物] texture across the cleared area with matching scale and direction.` |
    | 商品被文字挡住的部分错了 | `Reconstruct the occluded part of the product from symmetry and the visible portion; do not invent new features.` |
    
    ---
    
    ## 6、执行流程
    
    1. **列删除清单**:把画面里**每一个**文字/图形元素点名(边框、标题、日期、价格、券条、角标、贴纸)。
    2. **列保留清单**:主体 + 环境元素逐项 + 透视 + 色调 + 分辨率。
    3. **写重建要求**:明确哪些结构要接得上,并加「无字形残留」句。
    4. **`--quality high`**(重建面积大时)→ `--batch 2~3` 挑最合理的一张。
    5. **质检**:文字是否全清、有没有字形残影、透视是否被改、被挡住的商品部分是否合理。
    6. **交付时说明**:重建区域是推断内容,需要像素级保真请走专业修图。
    
    ---
    
    ## 7、常见问题
    
    | 现象 | 原因 | 处理 |
    | --- | --- | --- |
    | 留下模糊的字形轮廓 | 未写无残留约束 | 追加 `no residual glyph shapes` 句 |
    | 只删掉了一部分元素 | 删除清单不全 | 逐项补齐 + `Every one of the listed elements must be gone.` |
    | 透视/构图变了 | 未锁定构图 | 追加禁止重构构图句;这是本技能的固有局限 |
    | 重建区域纹理断裂 | 未要求纹理接续 | 追加纹理接续句,指明纹理种类与方向 |
    | 被文字挡住的商品补错了 | 那部分是推断的 | 追加对称推断句;关键部位人工核对 |
    | 文字覆盖超过一半 | 超出能力边界 | 重新做图,别洗 |
    
    ---
    
    ## 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