Portrait Outfit Swap Clip · Open Skill 公開技能

Portrait Outfit Swap Clip

Portrait Outfit Swap Clip 是 Digen 上的公開 Open Skill。開啟後即可了解此工作流能製作什麼。

@l1ror6r0qixd

Custom

2 0 1

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/4284864/2026-10-20/3nw23eea.jpg

# Portrait Outfit Swap Clip

Deliver a **photorealistic outfit change on an uploaded portrait** — either a **single swapped still** or a **short cinematic clip** where the clothing transforms on camera. **Identity lock is the whole product:** the same face, the same hairstyle, the same skin tone and body proportions, only the outfit changes. The look is a clean, natural-light, low-cost fashion aesthetic — believable everyday styling, not a costume spectacle.

**Upload path (primary):** the user's portrait is the identity anchor. Optionally polish a swapped still with I2I, then animate it with **`ref2v`** using the locked transformation timeline so the outfit morphs while the face holds.

**Direct generate:** if the user asks to generate without a portrait, do **not** invent a real person — ask for a portrait first, or offer an invented fictional model portrait as a clearly synthetic stand-in. Never claim a synthetic face is the user or a real individual.

Prompt templates, the identity contract, and the timed transformation beats live in `references/`. No structured project state.

**Language lock:** This file and all of `references/` are **English only**. Reply in the **user's language**. Every `generate_image`, `generate_video`, and `video_agent` `instruction` is **English**.

Do not tell the user tool names, channel names, or dump full prompts.

## User-visible speech (hard)

**Allowed lines only:**

- Need input: one short note that they should **upload a portrait** and optionally **describe the outfit** they want — then pause **P-empty** or **P-brief**.
- Starting generate: at most **one** short line (user language), then tool calls only — **no** `set_guidance` on that turn.
- Success: one or two sentences that the **outfit swap** is ready — no URL, no prompt dump. Pause **P-done**.
- Tool failure: brief honest note. Pause **P-fail**.
- Safety block: one polite refusal. Pause **P-refuse**.

If the user already uploaded a portrait and asked to generate, **do not** re-ask — read the references, apply defaults, and generate.

## Pause = clickable buttons (hard)

Any turn that **stops without a new shown result**, and **every success turn**, must end with:

1. One or two short sentences (user language).
2. **`set_guidance`** in the **same turn**, with **at least two** clickable options. **No tool calls after `set_guidance`.**

Do **not** call `set_guidance` in the same turn as `generate_image`, `generate_video`, `video_agent`, or `recognize_image`.

Each button is an object with `text` and `action` (not bare strings):

- **`send_message`**: `content` is the full sentence sent when tapped.
- **`fill_input`**: `content` is starter text the user can edit.

Offer **2–4** options. Localize `text` and `content` to the user's language. No channel or tool names on buttons.

Before every pause turn, `read_skill_file` → `references/guidance-buttons.md`.

| Pause | When | Example intents (localize) |
|---|---|---|
| P-empty | No portrait uploaded yet | Upload a portrait · Describe the outfit I want · Make a still first |
| P-brief | Portrait uploaded but no outfit direction | Casual street style · Smart office look · fill_input custom outfit |
| P-refuse | Real person without consent, minors, deceptive or explicit use | Use my own photo · Fictional model portrait · Change to a modest outfit |
| P-fail | Generation or `video_agent` `success=false` after retry | Try again · Make a still instead · Simpler outfit, same face |
| P-done | Swapped still or clip ready | Animate this still · Try another outfit · Make a still version · Different background |

## When to use

- User wants an **outfit swap** / **clothing change** on a **portrait they upload**, keeping the same person.
- User wants a **short clip** where the outfit **transforms on camera** while the face stays consistent.
- User wants a **still** swapped portrait first, then optionally animate it.
- User asks to **retry**, try a **different outfit style**, or **animate the last stil