Storytelling with genmedia
Use this skill when the user wants a sequence, not a single asset. Load
references as needed:
references/shot-planning.md
references/workflows.md
references/examples.md
Load model-routing alongside this skill for default endpoint choices.
The goal is to produce clear story beats and executable genmedia runs. Avoid
generic inspiration copy, fake dialogue, and em dashes.
Inputs to collect
Ask only when missing information affects execution.
- Format: ad, short film, music video, documentary, tutorial, social story.
- Duration and aspect ratio.
- Number of shots or allowed range.
- Main subject, character, product, or location.
- Continuity anchors: character, product, wardrobe, environment, color.
- Source media: first frame, reference image, product shot, audio track.
- Audio needs: narration, music, sound design, transcript, no audio.
- Preferred model or model family, if the user wants to decide quality, cost,
speed, audio, or multi-shot tradeoffs.
Genmedia workflow
Start from routed endpoint IDs.
genmedia models --endpoint_id bytedance/seedance-2.0/text-to-video --json
genmedia models --endpoint_id bytedance/seedance-2.0/image-to-video --json
genmedia models --endpoint_id bytedance/seedance-2.0/reference-to-video --json
genmedia models --endpoint_id fal-ai/kling-video/v3/pro/text-to-video --json
genmedia models --endpoint_id alibaba/happy-horse/text-to-video --json
genmedia models --endpoint_id veed/fabric-1.0 --json
Use text search only as fallback discovery for an unsupported sequence
control:
genmedia models "first frame last frame video generation" --json
genmedia docs "multi shot video generation" --json
Inspect schema before planning exact payloads.
genmedia schema <endpoint_id> --json
genmedia pricing <endpoint_id> --json
Upload references.
genmedia upload ./first-frame.png --json
genmedia upload ./character.png --json
genmedia upload ./product.png --json
genmedia upload ./voiceover.wav --json
Choose the sequence route.
- Highest quality video: start with Seedance 2.0 endpoints from
model-routing.
- Native multi-prompt: use if schema has shot arrays, prompt lists, or
timeline fields.
- First/last frame: use for controlled transitions between key frames.
- Image-to-video per shot: use for maximum continuity from approved stills.
- Manual per-shot generation: use when the model only supports one prompt.
- Audio-first: generate or upload audio, then plan visual shot lengths.
- Lip-sync or talking avatar: use Fabric 1.0 or Creatify Aurora from
model-routing.
Run long jobs async and download every result with a unique template.
genmedia run <endpoint_id> \
--prompt "<shot or sequence prompt>" \
--async \
--json
genmedia status <endpoint_id> <request_id> \
--download "./outputs/story/{request_id}_{index}.{ext}" \
--json
Return a shot table with endpoint, request id, prompt summary, local path,
and any continuity issues. Genmedia downloads clips; it does not replace a
timeline editor unless the chosen model returns a complete stitched video.
Shot planning
Plan every sequence as beats first:
- Hook: immediate visual reason to keep watching.
- Setup: who, what, where, and why it matters.
- Development: movement, discovery, proof, or escalation.
- Turn: reveal, transformation, result, or emotional change.
- Close: final image, product memory, CTA-safe frame, or unresolved mood.
For each shot, write:
- Shot number and duration.
- Story purpose.
- Visual prompt.
- Continuity anchor.
- Input reference, if any.
- Genmedia endpoint.
- Expected output path.
Prompt build order
Use this structure for each shot:
SHOT [number], [duration]:
[story purpose]. [subject and action]. [location and time]. [camera framing].
[camera movement]. [lighting and color]. [continuity anchor]. [transition or
relationship to previous shot].
Keep one shot to one clear action unless the selected model supports multi-shot
or timeline prompting.
Model routing
- Highest quality video:
bytedance/seedance-2.0/text-to-video,
bytedance/seedance-2.0/image-to-video, or
bytedance/seedance-2.0/reference-to-video.
- Fast or lower-cost video:
xai/grok-imagine-video/text-to-video or
xai/grok-imagine-video/image-to-video.
- Multi-shot sequence: Seedance 2.0 first, then
fal-ai/kling-video/v3/pro/text-to-video, then
fal-ai/kling-video/v3/pro/image-to-video, then
alibaba/happy-horse/text-to-video or
alibaba/happy-horse/image-to-video.
- Text-heavy keyframes, boards, UI frames, posters, or infographics:
openai/gpt-image-2 at quality=high.
- Talking avatar, native audio, or lip-sync:
veed/fabric-1.0, veed/fabric-1.0/text, or fal-ai/creatify/aurora.
Quality bar
Before returning:
- Shot order has a clear narrative function.
- The first shot is strong enough for the platform.
- Continuity anchors are repeated without bloating every prompt.
- Camera motion is varied but not random.
- Durations add up to the requested runtime.
- Async request IDs and downloaded files are recorded.
- The model's actual schema, not assumptions, drove the final command.
1---2name: storytelling3description: Build multi-shot narrative image, video, and audio workflows with genmedia. Use this for storyboards, shot lists, multi-prompt video, first-frame to last-frame pipelines, social stories, brand films, and sequence continuity.4---5
6# Storytelling with genmedia
7
8Use this skill when the user wants a sequence, not a single asset. Load
9references as needed:
10
11- `references/shot-planning.md`
12- `references/workflows.md`
13- `references/examples.md`
14
15Load `model-routing` alongside this skill for default endpoint choices.
16
17The goal is to produce clear story beats and executable genmedia runs. Avoid
18generic inspiration copy, fake dialogue, and em dashes.
19
20## Inputs to collect
21
22Ask only when missing information affects execution.
23
24- Format: ad, short film, music video, documentary, tutorial, social story.
25- Duration and aspect ratio.
26- Number of shots or allowed range.
27- Main subject, character, product, or location.
28- Continuity anchors: character, product, wardrobe, environment, color.
29- Source media: first frame, reference image, product shot, audio track.
30- Audio needs: narration, music, sound design, transcript, no audio.
31- Preferred model or model family, if the user wants to decide quality, cost,
32 speed, audio, or multi-shot tradeoffs.
33
34## Genmedia workflow
35
361. Start from routed endpoint IDs.
37
38 ```bash
39 genmedia models --endpoint_id bytedance/seedance-2.0/text-to-video --json
40 genmedia models --endpoint_id bytedance/seedance-2.0/image-to-video --json
41 genmedia models --endpoint_id bytedance/seedance-2.0/reference-to-video --json
42 genmedia models --endpoint_id fal-ai/kling-video/v3/pro/text-to-video --json
43 genmedia models --endpoint_id alibaba/happy-horse/text-to-video --json
44 genmedia models --endpoint_id veed/fabric-1.0 --json
45 ```
46
47 Use text search only as fallback discovery for an unsupported sequence
48 control:
49
50 ```bash
51 genmedia models "first frame last frame video generation" --json
52 genmedia docs "multi shot video generation" --json
53 ```
54
552. Inspect schema before planning exact payloads.
56
57 ```bash
58 genmedia schema <endpoint_id> --json
59 genmedia pricing <endpoint_id> --json
60 ```
61
623. Upload references.
63
64 ```bash
65 genmedia upload ./first-frame.png --json
66 genmedia upload ./character.png --json
67 genmedia upload ./product.png --json
68 genmedia upload ./voiceover.wav --json
69 ```
70
714. Choose the sequence route.
72
73 - Highest quality video: start with Seedance 2.0 endpoints from
74 `model-routing`.
75 - Native multi-prompt: use if schema has shot arrays, prompt lists, or
76 timeline fields.
77 - First/last frame: use for controlled transitions between key frames.
78 - Image-to-video per shot: use for maximum continuity from approved stills.
79 - Manual per-shot generation: use when the model only supports one prompt.
80 - Audio-first: generate or upload audio, then plan visual shot lengths.
81 - Lip-sync or talking avatar: use Fabric 1.0 or Creatify Aurora from
82 `model-routing`.
83
845. Run long jobs async and download every result with a unique template.
85
86 ```bash
87 genmedia run <endpoint_id> \
88 --prompt "<shot or sequence prompt>" \
89 --async \
90 --json
91
92 genmedia status <endpoint_id> <request_id> \
93 --download "./outputs/story/{request_id}_{index}.{ext}" \
94 --json
95 ```
96
976. Return a shot table with endpoint, request id, prompt summary, local path,
98 and any continuity issues. Genmedia downloads clips; it does not replace a
99 timeline editor unless the chosen model returns a complete stitched video.
100
101## Shot planning
102
103Plan every sequence as beats first:
104
1051. Hook: immediate visual reason to keep watching.
1062. Setup: who, what, where, and why it matters.
1073. Development: movement, discovery, proof, or escalation.
1084. Turn: reveal, transformation, result, or emotional change.
1095. Close: final image, product memory, CTA-safe frame, or unresolved mood.
110
111For each shot, write:
112
113- Shot number and duration.
114- Story purpose.
115- Visual prompt.
116- Continuity anchor.
117- Input reference, if any.
118- Genmedia endpoint.
119- Expected output path.
120
121## Prompt build order
122
123Use this structure for each shot:
124
125```text
126SHOT [number], [duration]:
127[story purpose]. [subject and action]. [location and time]. [camera framing].
128[camera movement]. [lighting and color]. [continuity anchor]. [transition or
129relationship to previous shot].
130```
131
132Keep one shot to one clear action unless the selected model supports multi-shot
133or timeline prompting.
134
135## Model routing
136
137- Highest quality video: `bytedance/seedance-2.0/text-to-video`,
138 `bytedance/seedance-2.0/image-to-video`, or
139 `bytedance/seedance-2.0/reference-to-video`.
140- Fast or lower-cost video: `xai/grok-imagine-video/text-to-video` or
141 `xai/grok-imagine-video/image-to-video`.
142- Multi-shot sequence: Seedance 2.0 first, then
143 `fal-ai/kling-video/v3/pro/text-to-video`, then
144 `fal-ai/kling-video/v3/pro/image-to-video`, then
145 `alibaba/happy-horse/text-to-video` or
146 `alibaba/happy-horse/image-to-video`.
147- Text-heavy keyframes, boards, UI frames, posters, or infographics:
148 `openai/gpt-image-2` at `quality=high`.
149- Talking avatar, native audio, or lip-sync:
150 `veed/fabric-1.0`, `veed/fabric-1.0/text`, or `fal-ai/creatify/aurora`.
151
152## Quality bar
153
154Before returning:
155
156- Shot order has a clear narrative function.
157- The first shot is strong enough for the platform.
158- Continuity anchors are repeated without bloating every prompt.
159- Camera motion is varied but not random.
160- Durations add up to the requested runtime.
161- Async request IDs and downloaded files are recorded.
162- The model's actual schema, not assumptions, drove the final command.