Portrait Loop · skill pubblica Open Skill

Portrait Loop

Portrait Loop è una Open Skill pubblica su Digen. Aprila per vedere cosa crea questo workflow.

@l1ror6r0qixd

Custom

0 0 1

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/4284864/2026-10-21/vcdvjpu8.jpg

# Portrait Loop

Deliver one **20-second vertical (9:16) silent cinematic portrait video** built from a **single uploaded adult portrait** used as the **first frame**. The clip is one continuous locked-off shot: **no pan, no zoom, no push-in, no cut, no scene change**. Motion is subtle and lifelike only — **natural repeated blinking, a slow slight head turn, a gentle closed-lip smile, slight natural hair movement**. **Identity lock:** the subject's facial identity, facial proportions, eye shape, skin tone, hairstyle, and clothing must match the source image across the full duration.

**Upload path (default):** the user's portrait is the first frame; run **`i2v`** with the locked motion brief and the steady-camera contract. **Optional polish:** if the upload is soft, low-resolution, or badly cropped, offer one **`i2i`** cleanup still first, then animate that still.

Prompt templates, the motion contract, and the timeline 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` prompt/instruction is **English**. Output is **silent** — no subtitles, no BGM, no SFX.

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 one clear single-adult portrait** (face visible, good light) — then pause **P-empty**.
- Motion tweak: one short line confirming the change (e.g. "slower head turn") — then pause **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 **20-second portrait 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 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 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 portrait uploaded yet | Upload a portrait · What photo works best? · Describe the motion I want |
| P-brief | Uploaded, but motion brief unclear or user wants a tweak | Keep default subtle motion · Stronger smile, same camera · Slower head turn |
| P-refuse | Minor, non-consensual or sexualized real person, deepfake of a public figure, gore, hate | Upload a different adult portrait · Use a fictional adult subject |
| P-fail | Generation or `video_agent` `success=false` after retry | Retry same portrait · Clean up the still first, then animate · Softer motion, same framing |
| P-done | Final **20s portrait clip** ready | Animate another portrait · Stronger smile version · Slower head turn · Cleaner still, then re-animate |

## When to use

- User wants **Cinema Motion 20** / **cinematic portrait motion** / **animate my portrait** as a **20-second vertical** clip with **blinking, slight head turn, gentle smile, soft hair movement**.
- User uploads **one clear adu