Reel Story Video Maker · skill pubblica Open Skill

Reel Story Video Maker

Reel Story Video Maker è una Open Skill pubblica su Digen. Aprila per vedere cosa crea questo workflow.

@starajani026

Anime

20 3 10

https://d7qlwi7tl2u27.cloudfront.net/skill-covers/prod/3961502/2026-09-22/9kctvmh7.png

# Reel Story Video Maker

Turn a rough idea into a finished short Reel: write a story, design the characters, generate a series of **10-second** clips each with its own **voiceover**, then merge everything into one final video. Keep the whole run **credit-light** (low resolution, short clips).

## Preset assets
- `skill_icon`: the skill's square app icon. Use it as the brand/logo reference.
- `skill_cover`: the skill's cover image (vertical 9:16). Use it as a style reference for the overall look/feel if helpful.
- `example_clip`: a sample 10-second clip showing the expected output style. Refer to it when the user asks "what does the result look like".

## When to use
- The user gives an idea/prompt (e.g. "a funny story that also teaches kids something") and wants a finished Reel video out of it.
- The user wants to advance or change a single step: rewrite the story, restyle a character, redo one clip, or re-merge the final video.

## Steps
1. **Clarify the idea and the ratio.** Ask what the story/idea is. Ask which aspect ratio they want: **9:16 portrait** (default for Reels) or **16:9 landscape** — "the ratio depends on the user's style", so always confirm rather than assume. Use the chosen ratio consistently on every image, clip, and the final merge.
2. **Write the story.** Turn the idea into a short, structured story/script with a clear beginning–middle–end and a lesson or hook. Save it with `create_document(content=<story>, name="Story", entity_type="scripts")`. Show the user the story and confirm before generating visuals.
3. **Create the characters.** For each main character, generate a reference image with `generate_image(model='t2i', prompt=<detailed character description>, orientation=<chosen ratio>, name=<character name>, entity_type="characters")`. Keep the same character design consistent across all later clips.
4. **Generate the 10-second clips.** Break the story into short beats. For each beat, generate a clip with `generate_video(model='i2v', input_urls=[<character/scene image>], prompt=<what happens in this beat>, duration=10, orientation=<chosen ratio>, resolution='480P', name=<clip title>, entity_type="storyboard_videos")`. **Every clip is exactly 10 seconds** and uses a low resolution to keep credits low.
5. **Add a voiceover to every clip.** For each clip, generate narration with `generate_tts(model='tts.design', text=<narration for that beat>, voice_instruction=<a clear English voice description, e.g. "warm friendly female narrator, clear and calm">, name=<clip title> voiceover, entity_type="voiceovers")`. One voiceover per clip, matching that clip's beat.
6. **Merge everything.** Combine all clips in story order with `mix_clips(clips=[{video: {url: <clip1>}, audio: {url: <voiceover1>}}, ...], orientation=<chosen ratio>, name="Final Reel", entity_type="final_videos")`. Each clip's voiceover is attached to its own clip.
7. **Reply.** Summarize the final video in natural language (story title, number of clips, ratio, total length). Don't paste raw URLs.

## Notes
- **Credit-light by design:** use `resolution='480P'` (or at most `720P`) and `duration=10` on every clip; don't upscale unless the user explicitly asks.
- **Ratio consistency:** the user's chosen ratio (9:16 or 16:9) must be passed to every `generate_image`, `generate_video`, and `mix_clips` call so nothing is mismatched.
- **Character consistency:** reuse the same character image (its asset_id) as the `input_urls` reference across the clips that feature that character.
- **Voiceover on every clip:** never skip the TTS step; each of the 10-second clips gets its own narration.
- **Single-step changes:** if the user only wants one thing changed (rewrite story, restyle a character, redo one clip, re-merge), do only that step and re-run the downstream steps that depend on it — don't regenerate everything from scratch.
- Report failures honestly, never fabricate URLs, and politely decline requests for prohibited content (video generation does not suppor