Ghost Flash Mob Video · Open Skill 公開スキル
Ghost Flash Mob Video
Ghost Flash Mob Video は Digen 上の公開 Open Skill です。開くと、このワークフローが何を作るか分かります。
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