Shattered Mirror Twist · публичный навык Open Skill
Shattered Mirror Twist
was: I start with one clear adult photo. A visible face works best. now: I place the subject in a hall of mirrors. Shards fracture, spin, and twist the room in slow motion. Photo -> a surreal 9:16 mirror-twist video. Options: Photo only. Every generation stays portrait, 9:16, whatever shape the source image uses.
Film
0 0 0
https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/4284951/2026-10-15/zja4mrcj.gif
# Shattered Mirror Twist Reality cracks around you. The person in your photo stands in a hall of mirrors that shatters and spins, each shard reflecting them as the room twists in slow motion. ## When to use - The user wants a short surreal video of the person in their photo inside a space of shattering mirrors (mirror shards, fractured reflections, glass twist effect) - Another take with a different length or orientation Not for: Still images only. ## Inputs and gates | Input | Required | Default | Gate | |---|---|---|---| | Photo | Yes | — | One adult with the face clearly visible. Ask for another photo if the face is tiny, blurred, heavily covered or in profile | | Duration | No | `6` s | 6 or 10 | | Orientation | No | `9:16` portrait | Other ratios on request | - If the person may be under 18, stop and decline politely. Real-person photos must be of adults the user has the right to use. - Video does not allow NSFW content: keep wardrobe fully covering and refuse sexual requests. Suggestive fashion looks stay as still images. ## Steps 1. Read `references/video-motion.md`. 2. **Identity read**: `recognize_image(image_url=<photo>, prompt='Describe this adult for identity preservation: face shape, eye shape and color, brows, nose, lips, skin tone, apparent age range, hair color and length, distinctive marks, glasses. One compact line.')`. 3. **Keyframe**: `generate_image(prompt=<KEYFRAME>, input_urls=[photo], model='i2i.hd', orientation='portrait', aspect_ratio='9:16', name='Shattered Mirror Twist keyframe', entity_type='work_in_progress')`. If the face drifts, regenerate once. 4. **Video**: `generate_video(prompt=<MOTION>, input_urls=[keyframe], model='i2v', orientation='portrait', aspect_ratio='9:16', duration=<d>, name='Shattered Mirror Twist', entity_type='final_videos')`. Pass only the keyframe, never the original upload. 5. Reply in one or two sentences, e.g. "Your shattered mirror twist is ready. Want another take with a 10-second cut?" Results appear on the canvas; never paste URLs. ## Prompt templates **KEYFRAME** ```text The same adult from the reference: <identity line>. Same face structure, eyes, skin tone and recognizable likeness; no beautification or face reshaping. Opening frame of this scene: standing in a dark mirrored room as the mirrors shatter into floating shards that slowly rotate around them, each shard reflecting the person, the space twists and spirals, slow-motion glints of light. Posed for motion, clear subject, cinematic light. Nothing from the original photo's background remains. ``` **MOTION** (motion only; the frame already shows the look) ```text Starting from this exact frame: <one clear motion arc for this concept: standing in a dark mirrored room as the mirrors shatter into floating shards that slowly rotate around them, each shard reflecting the person, the space twists and spirals, slow-motion glints of light>, beginning, peak and settle in one continuous shot. Camera: <one move: slow push-in, gentle orbit, or static>. The same face and outfit throughout. Cinematic, no text. ``` ## Failure handling - `success=false`: say what failed in one sentence; retry once only if transient; never invent links. - Content-policy rejection on video: soften wording and retry once; otherwise offer the keyframe as a still. - Identity drifts: offer to regenerate. ## Examples **Default**: the user says "here's my selfie, do it" with a photo. Use the tuned defaults, 9:16. Reply: "Your shattered mirror twist is ready." **Variation**: "love it, make another". Keep the same inputs and change one option (a 10-second cut). **Missing input**: no photo was sent. Ask: "Send one clear photo where your face is easy to see, and I'll start." ## References - `references/video-motion.md`