animate_scenes
Animate scenes
Film the scenes you name, or every scene whose still is ready and whose clip is not. This spends credits and returns as soon as the work is dispatched; poll get_storyboard. A scene is animated from its own still, so generate the stills first and look at them — a clip of a ruined frame costs the same as a clip of a good one. A morph travels from this scene's still to another scene's, and NEVER describe the transformation in the motion prompt: the model is already interpolating between the two frames, and a prompt that also describes the change makes it happen twice. A morph has one destination and a model belongs to one take, so both are refused on more than one scene rather than half-applied after the credits are gone. Pass quote to price the batch without filming anything.
Scope
generation.write— Makes, edits, imports, shares and deletes media in the account.storyboards.write— Authors, edits, renders and deletes storyboards. Reading a board rides media.read, and the two board tools that spend need generation.write as well.
Behaviour
- Writes
- Creates or changes items in the caller's own account.
- Can delete or overwrite
- Can delete, overwrite, cancel or withdraw something the caller already has, so a host should confirm it.
- Stays in the account
- Stays inside the caller's private Kuro account: any media provider it calls acts on Kuro's account, and the result is visible to no one else.
Credits
What the tool's description says about credits, verbatim.
- This spends credits and returns as soon as the work is dispatched; poll get_storyboard.
- A morph has one destination and a model belongs to one take, so both are refused on more than one scene rather than half-applied after the credits are gone.
Inputs
storyboard_idstring · requireduuid
scenesarray of integer · optionalat least 1 item · at most 30 items
all_readytrue · optionalreference_scenesarray of integer · optionalat most 4 items
referencesarray of object (type: "upload") or object (type: "generation") · optionalat most 7 items
reference_videosarray of object (type: "upload") or object (type: "generation") · optionalA clip whose camera and timing the model should follow — what match_scene_motion answers with. One scene only.
at most 1 item
morph_into_sceneinteger · optional> 0
modelstring · optionalone of "seedance-2.5", "seedance-2.0", "seedance-2.0-mini", "seedance-2.0-fast", "grok-imagine-video-1.5", "veo-3.1", "veo-3.1-fast", "veo-3.1-lite", "gemini-omni-1.1", "kling-v3-omni-video", "kling-v3-video", "happyhorse-1.0", "wan-3", "wan-3-prime", "gen-4.5", "p-video", "p-video-2", "flux-3", "minimax-h3-max", "p-video-avatar", "p-video-animate", "p-video-replace", "omni-human-1.5", "kling-avatar-v2", "kling-v3-motion-control", "kling-lip-sync", "sync-lipsync-2", "genjutsu-motion-transfer", "genjutsu-object-swap"
quoteboolean · optionalidempotency_keystring · optionalat least 1 character · at most 128 characters
Example call
A tools/call request with the required arguments only, each a placeholder read off the schema. Replace them before sending.
{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "animate_scenes",
"arguments": {
"storyboard_id": "00000000-0000-4000-8000-000000000000"
}
}
}Input schema
As the server sends it in tools/list.
{
"type": "object",
"properties": {
"storyboard_id": {
"type": "string",
"format": "uuid"
},
"scenes": {
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0
},
"minItems": 1,
"maxItems": 30
},
"all_ready": {
"type": "boolean",
"const": true
},
"reference_scenes": {
"type": "array",
"items": {
"type": "integer",
"exclusiveMinimum": 0
},
"maxItems": 4
},
"references": {
"type": "array",
"items": {
"anyOf": [
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "upload"
},
"upload_id": {
"type": "string",
"format": "uuid"
}
},
"required": [
"type",
"upload_id"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"type": {
"type": "string",
"const": "generation"
},
"generation_id": {
"type": "string",
"format": "uuid"
}
},
"required": [
"type",
"generation_id"
],
"additionalProperties": false
}
]
},
"maxItems": 7
},
"reference_videos": {
"type": "array",
"items": {
"$ref": "#/properties/references/items"
},
"maxItems": 1,
"description": "A clip whose camera and timing the model should follow — what match_scene_motion answers with. One scene only."
},
"morph_into_scene": {
"type": "integer",
"exclusiveMinimum": 0
},
"model": {
"type": "string",
"enum": [
"seedance-2.5",
"seedance-2.0",
"seedance-2.0-mini",
"seedance-2.0-fast",
"grok-imagine-video-1.5",
"veo-3.1",
"veo-3.1-fast",
"veo-3.1-lite",
"gemini-omni-1.1",
"kling-v3-omni-video",
"kling-v3-video",
"happyhorse-1.0",
"wan-3",
"wan-3-prime",
"gen-4.5",
"p-video",
"p-video-2",
"flux-3",
"minimax-h3-max",
"p-video-avatar",
"p-video-animate",
"p-video-replace",
"omni-human-1.5",
"kling-avatar-v2",
"kling-v3-motion-control",
"kling-lip-sync",
"sync-lipsync-2",
"genjutsu-motion-transfer",
"genjutsu-object-swap"
]
},
"quote": {
"type": "boolean"
},
"idempotency_key": {
"type": "string",
"minLength": 1,
"maxLength": 128
}
},
"required": [
"storyboard_id"
],
"additionalProperties": false
}Related tools
- get_storyboard
Read a film: its settings, its cast, every scene by number with its prompts and the state of its still and its clip, each derived video with how many clip…
- match_scene_motion
Cut the stretch of source video a scene was read from, so a clip model can be shown the original's camera and timing.
- apply_storyboard_template
Make a new storyboard from a template: every scene and connection, unshot.