Horror Selfie · skill pubblica Open Skill
Horror Selfie
Horror Selfie
Auto
2 0 1
https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/3949831/2026-10-15/n867u7um.jpg
# Horror Selfie
Turn a user-uploaded reference photo into a "horror selfie": first keep the person and the scene intact and replace only the atmosphere to produce a horror-graded still; then animate that still into a 3–6 second horror selfie short video. The whole process has a single visual theme — the selfie — and every colour, material and lighting choice serves it.
## When to use
- The user uploads a photo and asks for a horror / eerie / creepy / supernatural / ghost-movie style selfie.
- The user says things like "make my selfie scary", "turn this photo into a horror selfie video", "add a ghost", "horror filter".
- The user wants only the horror-graded still image, or already has a horror still and wants to continue into a short video.
## Steps
### 1. Confirm the input and the deliverable
- You need one user-uploaded portrait / selfie reference image; if there isn't one, ask the user for it first — do not invent a person from a text description.
- If the user explicitly says "image only" → do only steps 2–3; do not call `generate_video`.
- If the user says "video" or does not specify → after steps 2–3 produce the still, continue to step 4 to make the short video, and do not stop in between to ask "shall I continue?".
### 2. Read the image to get the person, location, pose and camera distance
Call `recognize_image(image_url=<the image the user uploaded this turn>)`. Use `prompt` to require all of the following items in both Chinese and English; they will be filled into the prompts later:
```
prompt="Describe in English: (1) the person's identity cues — hair, clothing, expression, age range; (2) the location and the visible background objects; (3) the selfie pose — how the phone is held, head angle, and camera distance (extreme close-up / close-up / half body); (4) lighting and color palette; (5) image orientation (portrait / landscape / square)."
```
### 3. Generate the horror-graded still (image-to-image, keep consistency)
```text
generate_image(
prompt=<the horror selfie template below>,
input_urls=[the user's original image],
model='i2i',
orientation=<same as the original; a selfie is usually 'portrait'>,
name='horror selfie still',
entity_type='horror_selfie_stills'
)
```
**Still prompt convention (English, fill in every item)**:
```
Horror selfie, same person / same hair / same clothes / same location / same framing as the reference photo,
{camera distance: extreme close-up / close-up / half-body} phone selfie at arm's length, {pose: the phone-holding angle and head direction from the original photo}.
Camera & light: dark phone-camera photo taken at night, harsh direct on-camera flash, blown-out highlights on the skin falling off fast into a near-black background, strong vignette, no fill light.
Palette & material: desaturated corpse-green, dirty grey and sickly cyan palette; waxy wet-looking pale skin, cold sweat sheen on the forehead, dull matte blood-red accents; heavy film grain, digital noise, slight chromatic aberration and wide-angle phone lens distortion.
Face details: sunken dark eye sockets, milky or bloodshot eyes with no catchlight, blue-grey lips, thin veins and cracked skin, unnatural shadow under the nose and chin.
Background: {the location read out in step 2} barely readable in the darkness; one faint out-of-focus dark silhouette standing still far behind the subject.
Composition: identical framing, camera distance and orientation to the reference photo.
Keep: the person's identity, hairstyle, clothing and the original layout unchanged — only atmosphere, light, colour and material change.
```
Key points: do **not** change a single thing about the framing, the person's identity, the clothing or the location (rely on the consistency of `i2i` plus the final "Keep" line in the template); the horror comes only from light, colour, material, face details and the dark silhouette in the background.
When finer skin / material texture is needed, you may use `model='i2i.hd'` (higher qual