Haunted Portrait — Open Skill

Haunted Portrait

Haunted Portrait is a public Open Skill on Digen. Open it to see what this workflow creates.

@l1ror6r0qixd

Custom

0 0 3

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

---

allowed-tools:
  - list_models
  - recognize_image
  - generate_image
  - generate_video
---

# Haunted Portrait

Deliver one **4-second cinematic haunted-portrait video**. The uploaded portrait is the **first frame**; the subject **subtly comes to life** with a **slight head turn** and a **mysterious closed-mouth smile**, while **eerie mist**, **flickering warm candlelight**, **moonlit violet shadows**, and a **slow cinematic push-in** build a restrained gothic horror mood. **Identity lock:** same face, same outfit, same body proportions, same lighting direction, stable framing—**no facial morphing, warping, or limb distortion**.

**Upload path:** the user's photo becomes the i2v first frame; the user's motion prompt drives the animation and atmosphere. **Direct generate:** text-only scene brief produces a gothic portrait still, then the same i2v pipeline—**upload is never required**.

Prompt templates and motion 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 may **upload a portrait photo**, **describe the scene**, 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 **haunted 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 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 scene brief, no direct-generate tap, no last clip to refine | Direct generate haunted portrait · Upload portrait photo · Describe my scene |
| P-brief | Wants a haunted portrait but no photo and no scene cues | Direct generate default gothic portrait · fill_input custom scene · Upload photo instead |
| P-refuse | Real-person face used without consent, explicit nudity, sexual acts, graphic violence, injury, minors | Direct generate fictional portrait · Upload a different photo |
| P-fail | Generation or `video_agent` `success=false` after retry | Direct generate again · Regenerate video from last still · Softer horror, same motion |
| P-done | Final 4s haunted portrait clip ready | Direct generate new portrait · Upload another photo · Stronger mist and candlelight · Gentler smile, same push-in |

## When to use

- User wants **Haunted Portrait Cinematic Animation** / **haunted portrait video** / **gothic portrait animation** in a **4-second** clip with mist, candlelight, and a slow push-in.
- User uploads a **portrait photo** and wants the subjec