StoryBoard Shorts Video · compétence Open Skill

StoryBoard Shorts Video

Turn any reference image and simple topic into a complete 30-second vertical Short. Choose 2D, 3D, or realistic style, generate an 8-frame professional storyboard, preserve character consistency, and transform the storyboard into a coherent 9:16 animated video.

@Lazizkhan

Other

23 5 7

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/2299256/2026-10-03/yh53u8xu.png

# Universal AI Storyboard → 30-Second Short Video

## When to use
- The user provides ONE reference image + ONE story topic and wants an 8-frame storyboard and/or a ~30s 9:16 vertical short video (YouTube Shorts).
- The user wants to redo or change a single step (re-pick style, regenerate the storyboard, re-render a shot, re-mix the video).

## Language
- The skill's primary/default language is **English**: all tool-facing prompts, storyboard captions, and default narration are written in English.
- Reply to the user in the **same language they use** in their message (Uzbek, Russian, English, etc.). Match the user's language for replies and any on-screen dialogue unless they explicitly request otherwise.

## Core workflow
IMAGE + TOPIC → ask STYLE (2D / 3D / REALISTIC) → analyze reference → 8-frame storyboard → **user approval** → styled keyframes → 30s 9:16 video.

## Steps
1. **Gather inputs.** Confirm the user has provided ONE reference image and ONE story topic. If the visual style is not already specified, ask the user to choose: **2D / 3D / REALISTIC**. Do not create the storyboard until a style is selected (unless the user already gave one). The chosen style drives the whole visual production.
2. **Analyze the reference** with `recognize_image` to lock the subject's identity (face, hair/fur, body proportions, clothing + colors, accessories, environment, rendering style). This identity must remain recognizable through any style transformation.
3. **Create the storyboard sheet.** Generate ONE single tall 9:16 canvas with EXACTLY 8 panels laid out as F1|F2 / F3|F4 / F5|F6 / F7|F8. F1 = the original fully-rendered character reference + story setup (instant hook). F2–F8 = black-pencil-on-white-paper storyboard sketches (no black silhouettes; white interiors). Follow `references/storyboard-rules.md` for the viral story engine (hook → curiosity → twist → escalation → bigger problem → false solution → major twist → "VA!" payoff + rewatch loop).
   - Call `generate_image(model='i2i.hd', input_urls=[reference image], orientation='portrait', resolution='720P', name='Storyboard - <topic>', entity_type='storyboard_images')`.
4. **Continuity check.** Verify exactly 8 panels, sequential, no duplicates, identity/clothing/environment consistent, every shot composed natively for 9:16. If a panel is wrong, regenerate.
5. **Approval gate.** Show the storyboard to the user and get explicit approval before rendering. If the user wants changes, regenerate the sheet (step 3) and re-check. Do not proceed to video until approved.
6. **Convert storyboard to video.**
   - 6a. **Split.** Split the sheet into 8 panels with `split_image(rows=4, cols=2)`.
   - 6b. **Styled keyframes (mandatory).** Recreate each panel in the selected style with `generate_image(model='i2i', input_urls=[panel], orientation='portrait', resolution='720P', name='Keyframe N - <topic>', entity_type='keyframes')`. This converts the pencil panels into the chosen 2D/3D/REALISTIC style while preserving identity/clothing/environment. Do NOT skip this step — feeding pencil panels directly to ref2v would produce pencil-style video, not the selected style.
   - 6c. **Animate.** Because a single ref2v clip is capped at 10s, produce 3 segments of ~10s each with `generate_video(model='ref2v', input_urls=[relevant styled keyframes], duration=10, orientation='portrait', resolution='720P', name='Segment N - <topic>', entity_type='storyboard_videos')`. Segment mapping: Segment 1 → F1–F3, Segment 2 → F4–F6, Segment 3 → F7–F8. Follow `references/video-rules.md`.
7. **Optional music.** If the user wants background music, generate it with `generate_music(prompt=..., name='Music - <topic>', entity_type='music')`; if the user says NO MUSIC, skip this step.
8. **Stitch into one ~30s video** with `mix_clips(... name='<topic> - 30s', entity_type='final_videos', orientation='portrait')`, attaching the optional music track.
9. **Deliver.** Summarize in natural language; the final video appears on canv