Ghost Flash Mob Video · skill pubblica Open Skill

Ghost Flash Mob Video

Ghost Flash Mob Video è una Open Skill pubblica su Digen. Aprila per vedere cosa crea questo workflow.

@eggs

Roleplay

1 0 2

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/4284862/2026-10-19/n7z59uuk.jpg

# Ghost Flash Mob Video

Turn one uploaded photo into a short vertical video: the original subject stays exactly who they are, centered in frame, while a small crew of cute translucent animal ghosts pops up around them and dances in a flash-mob ring. There is no structured project state — progress lives in the conversation, the canvas assets, and the todo list.

## When to use

- The user uploads a reference image and asks for a short video, a "ghost flash mob", a dancing-ghost clip, or a cute ghost version of their photo.
- The user wants to redo or adjust a previous result: other ghost animals, calmer or wilder dance energy, different time of night, longer/shorter clip.
- The user only wants the still keyframe (ghost version of the photo) — then run the keyframe stage only and skip the video stages.

## Inputs and outputs

| Input | How it is used |
|---|---|
| Reference image (required) | Identity source. The subject's face, hair, body shape, outfit, and pose family must survive into the keyframe and the video. |
| Text (optional) | Mood, music vibe, ghost animal picks, setting tweaks, duration. Fold it into the keyframe prompt and the video script; never let it override identity or the ghost theme. |
| Output | One short vertical (9:16) video of the flash mob, plus the keyframe image used to drive it. |

## Steps

1. **Intake and validate.** Call `read_skill_file` with `path="references/step-details.md"` and follow its intake checklist: confirm an image is attached, resolve multiple/ambiguous uploads, parse the optional text, and detect the still-image-only branch. Do not invent a subject when no image is present.
2. **Read the photo.** Call `recognize_image` on the uploaded image with a prompt that asks for: subject count, apparent age range, face and hair details, outfit and colors, body framing (full/half body), pose, background, and lighting. Keep this description — it is the identity anchor.
3. **Plan.** For anything beyond a single quick step, call `write_todos` with the stages: analyze → keyframe → script → video → deliver. Keep exactly one item `in_progress`.
4. **Build the ghost keyframe.** Call `read_skill_file` with `path="references/style-and-prompt.md"`. Fill its prompt template with the subject description from step 2, the ghost roster, the setting, and the user's text. Then call:
   `generate_image(prompt=<filled template>, input_urls=[<uploaded image>], model='i2i.hd.lite', orientation='portrait', name='Ghost Flash Mob Keyframe', entity_type='storyboard_images')`.
   Follow the identity checks in `references/step-details.md`; regenerate at most once with a strengthened keep-subject clause if the face, hair, or outfit drifted.
5. **Write the video script.** Call `read_skill_file` with `path="references/video-script.md"` and write a complete script for *this* request (logline, duration, cast, setting, beat-by-beat action, per-beat shot size and camera move, lighting, transitions, must-keep, must-avoid). Then call `read_skill_file` with `path="references/video-content-constraints.md"` and reconcile the script with its shot, motion, and forbidden-content rules. The script is a real plan built from the user's words and the photo analysis — never a generic template.
6. **Generate the video.** Compress the script into a single dense English prompt using the compression rules in `references/video-script.md`, then call:
   `generate_video(prompt=<compressed script prompt>, input_urls=[<keyframe image>], model='i2v', orientation='portrait', duration=5, name='Ghost Flash Mob Video', entity_type='final_videos')`.
   Use the keyframe as the first frame; keep the camera language and ghost action inside the limits from `references/video-content-constraints.md`. Pass a higher `resolution` only if the user asks for it.
7. **Deliver.** Reply in natural language: what the clip shows, which ghosts appear, duration and aspect ratio. Do not paste long URLs. If a tool returned `success=false`, say so plainly and offer a retry wit