Generate Video
Skill ID: generate-video · Install skills · Canonical source
Try it
Animate my uploaded product image into a short video and save the result.
The instructions below describe the workflow. Installed skills and connected tools are separate; use only operations exposed by your authorized connection.
For a long recording cut into actual short clips, use repurpose-video. For standalone scripted narration, use generate-voiceover; an audio result does not establish that it was muxed into a video.
Create one clear motion asset using a compatible model, ready workspace references, and the current tool’s nested parameters.
Workflow
- Resolve scope with
simplified-workspacewhen a workspace/teamspace is named or uncertain. Carryspace_idinto every related call. - Define the subject, action, placement, aspect ratio, duration, camera behavior, and audio needs. Infer ordinary choices from the user’s brief; ask only for missing constraints that change the result or cost.
- Discover current models with
api_listVideoModelsorapi_getModelFields(type: "video"), depending on the exposed tools. Inspectapi_getVideoModelFieldsor the available model-fields tool for model-specific durations, resolutions, and capabilities. Do not guess model IDs, costs, or supported values. - Use
manage-assetsto find/import/upload references and check readiness withapi_getAsset. Every video input slot takes a Simplified asset UUID from the same workspace, not a local path or remote URL. - Choose
storage: "asset"for a reusable video. Generation spends credits; proceed for an explicit request, and clarify material ambiguity in scope/cost before submitting. - Call
api_generateVideoonce. Current apikit waits for the rendered result; wait for this call before using any continuation tool. - Inspect the actual terminal status and return the rendered video link plus its real asset ID when present. Handle pending/timeout/older deployments as described in references/models-and-polling.md.
Current input contract
Top-level: model, parameters, and chosen storage; optional capability and space_id. All generation controls belong inside parameters.
Despite _url in the names, these slots take asset UUIDs. Use the same public slot names across models. Choose only controls the selected model supports, such as duration, resolution, aspect_ratio, or generate_audio. Image-driven modes may derive their ratio from the reference; do not force an unsupported ratio. Omit capability to let the current tool infer it from inputs, or use an explicitly supported mode.
Replace placeholders before calling. Do not assume every model supports every slot, duration, or audio option.
Creative quality
Use one readable visual beat for a short clip. Preserve product geometry, packaging, logos, and identity in references; avoid contradictory camera moves. Leave space for overlays when needed. If the client can inspect the output, check it; otherwise state that visual quality has not been inspected. Synthetic people/scenes are not documentary evidence.
Handoff
Use the client’s supported video preview or a usable link; preserve any thumbnail link and permanent asset UUID. Signed URLs can expire. default gallery storage is not a guarantee of a standalone reusable asset; transient may supply only a temporary URL. If no asset ID exists and the user wants reuse, import the downloadable output using api_createAsset. Never invent an asset ID from an art or variation ID.
Pass confirmed assets to simplified-social for drafts when requested. Generating a video does not authorize publishing. Report failures directly and avoid duplicate paid submissions after a timeout.
