Turns A Portrait Short Video · Open Skill 公开技能

Turns A Portrait Short Video

Turns A Portrait Short Video 是 Digen 上的公开 Open Skill。打开后即可了解该工作流能制作什么。

@l1ror6r0qixd

Custom

0 0 1

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

# Turns A Portrait Short Video

Deliver one **short vertical reaction clip** built from a single portrait. The character's **mouth is fitted with a gag-style restraint accessory**, and they react with **subtle, realistic facial and head motion**. **Identity lock:** same face, same hair, same outfit, same lighting as the reference portrait; no drift, no distortion of the mouth or jaw.

**Upload path:** optional still polish of the portrait, then **`ref2v`** with the locked reaction beat sheet in one generation pass. **Direct generate:** text-to-image **original fictional portrait keyframe** (default: adult model, neutral expression, clear mouth area), then the same video pipeline — **upload is never required**.

Prompt templates and beat timing 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 may **upload a portrait**, **describe the look**, or **tap direct generate** — 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 **reaction clip** 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 asked to **generate**, tapped **direct generate**, or sent a one-shot create message, **do not** re-ask — read the prompt references, apply defaults, and generate.

## Pause = clickable buttons (hard)

Any turn that **stops without a new shown final video**, 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 upload, no portrait brief, no direct-generate tap, no last clip to refine | Direct generate clip · Upload portrait · Describe the look |
| P-brief | Wants the clip but gave no portrait cues and no upload | Direct generate default portrait · fill_input custom look · Upload photo instead |
| P-refuse | Real identifiable person without consent, minors, explicit or non-consensual restraint content, gore, hate | Direct generate fictional adult · Upload a different portrait |
| P-fail | Generation or `video_agent` `success=false` after retry | Direct generate again · Regenerate from last still · Softer reaction, same beat |
| P-done | Final reaction clip ready | Direct generate new portrait · Upload my photo · Softer reaction · Different accessory style |

## When to use

- User wants **Portrait Reaction Gag Video** / **portrait reaction clip** / **character reacts as accessory is fitted over mouth** as a short video.
- User uploads a **portrait photo** and wants the **same person** reacting, with **identity and outfit preserved**.
- User has **no photo** or taps **direct generate** — run **T2I portrait keyframe + ref2v** using defaults in `references/guidance-buttons.md` (default **original fictional adult**, invented — not a real celebrity).
- Use