Watermark Removal · Open Skill 공개 스킬

Watermark Removal

Watermark Removal은 Digen의 공개 Open Skill입니다. 열어 보면 이 워크플로가 무엇을 만드는지 알 수 있습니다.

@GG_Bone

TryOn

2 1 2

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/4150474/2026-10-15/dnk2c5va.jpg

# Watermark Removal

Turn one user-supplied image into a clean version of the **same** image with the overlaid watermark gone. This is a single image-to-image edit: one input image in, one cleaned image out. There is no multi-stage pipeline and no project state to keep.

## When to use

- The user uploads an image together with a request to remove / erase / delete / clean a watermark, logo, channel mark, studio mark, date stamp, tiled overlay or burned-in subtitle text.
- The user asks to "restore" or "rebuild" the region hidden behind an overlay.
- Follow-ups on a previous result: the watermark is still visible, the wrong region was erased, the output drifted from the original, or the user wants a sharper version of the cleaned image.

## Steps

1. **Take the input image.** Use the uploaded image's asset id (preferred) or its URL as `input_urls`. Use **one** image per call. If the user gave no image, ask them to upload one — never invent or guess an image URL.

2. **Decide exactly what to remove.** Usually the watermark is obvious, so do not interrogate the user.
   - Text / semi-transparent stamp → remove the text and rebuild the background.
   - Logo or badge → remove the whole mark, including its outline and drop shadow.
   - Date stamp → remove the digits and rebuild the surface behind them.
   - Tiled overlay repeated over the frame → remove **every** occurrence of the same pattern.
   - Burned-in caption / subtitle → remove the caption text and rebuild the area behind it (the original dialogue is not recoverable; say so if it matters).
   - If several marks exist and the user pointed at one, remove only that one; if the user said "all", list every mark in the prompt.

3. **Write the prompt in English** with the template below. Fill every placeholder; keep the style-lock, subject-lock and negative constraints — they are what keeps the result faithful to the source instead of a re-imagined picture.

   ```
   Remove the <watermark kind: semi-transparent text / solid logo / date stamp / tiled repeated overlay / burned-in caption>
   located at <position: bottom-right corner / bottom edge / center / repeated over the whole frame> from the provided image,
   and rebuild the area it covered.
   Reconstruction: inpaint the covered pixels so the patch matches the surrounding <surface: sky / wall / skin / fabric / foliage>
   in texture, grain, sharpness and noise, with a seamless blending edge — no blur halo, no smear, no repeated pattern,
   no visible rectangle or patch outline.
   Style lock: keep the source image's exact color palette (hue, saturation, white balance, contrast), the material rendering
   (skin, metal, glass, fabric, water) and the lighting (direction, hardness, shadow shape, specular highlights) — the whole
   frame must stay one single coherent look that serves only the original subject.
   Subject lock: keep the original subject, pose, geometry, background, composition, framing and crop unchanged.
   Do not add, remove, move, restyle or beautify anything else; do not add new text, signature, border, logo, frame or vignette.
   Output: one clean, photoreal image identical to the source except that the watermark is gone and its area is fully reconstructed.
   ```

4. **Call the generation tool.**

   ```
   generate_image(
     prompt   = <the English prompt from step 3>,
     input_urls = [<the uploaded image: asset id or URL>],
     model    = 'i2i',
     name     = <short 2–4 word canvas title, e.g. 'Clean image'>,
     orientation = <'landscape' | 'portrait' | 'square' matching the source; omit if unclear>
   )
   ```

   - `model='i2i'` is required: this is an image-to-image edit driven by the reference image. Always pass the channel, never a physical model name.
   - `orientation` should match the source image so the output keeps its shape; omit it when you genuinely cannot tell.
   - Do **not** pass `resolution` by default. Only if the user explicitly asks for a sharper or bigger result, pass `resolut