create_storyboard

Create a storyboard

Make a film three ways: from a brief you have written as scenes, from media the account already holds, or from a video you have already analysed. Scenes are written in order and chained in one write, so a twelve-beat board arrives as one video path rather than twelve calls. Anything you leave out of a scene is filled in: the description and the image prompt fall back to the title, and an unwritten motion prompt gets a subtle drift. Cast members are named, not referenced — the names of Subjects the account holds, which list_subjects finds. settings applies to written scenes and from_analysis; a film made from_media takes its frame from the first file, so set its settings with update_storyboard afterwards. A style is looked up before anything is made, and a name that misses makes nothing. Nothing here spends credits. For written scenes, attach owned footage with set_scene_clip, or use generate_scene_images when new stills are needed. Add a voice-over or music with add_storyboard_sound before rendering.

Scope

Behaviour

Writes
Creates or changes items in the caller's own account.
Adds or updates
Adds or updates; nothing the caller already has is deleted or overwritten.
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.

Inputs

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": "create_storyboard",
    "arguments": {}
  }
}

Input schema

As the server sends it in tools/list.

{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "settings": {
      "type": "object",
      "properties": {
        "aspect_ratio": {
          "type": "string",
          "enum": [
            "9:16",
            "1:1",
            "16:9"
          ]
        },
        "default_image_model": {
          "type": "string",
          "enum": [
            "seedream-5-lite",
            "nano-banana-2.1",
            "nano-banana-2",
            "gpt-image-2.5-flare",
            "gpt-image-2.5-sunburst",
            "gpt-image-2",
            "nano-banana-2-lite",
            "seedream-5-pro",
            "flux-schnell",
            "flux-2-flex",
            "flux-2-pro",
            "flux-2-max",
            "recraft-v4.1-svg",
            "recraft-v4.1-pro-svg",
            "p-image",
            "grok-imagine-image",
            "grok-imagine-image-quality",
            "krea-3",
            "qwen-image-3-pro",
            "soul-2"
          ]
        },
        "default_video_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"
          ]
        },
        "style": {
          "type": "string"
        }
      },
      "additionalProperties": false
    },
    "cast": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "scenes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "description": {
            "type": "string",
            "minLength": 1,
            "maxLength": 600
          },
          "image_prompt": {
            "type": "string",
            "minLength": 1,
            "maxLength": 2000
          },
          "motion_prompt": {
            "type": "string",
            "minLength": 1,
            "maxLength": 6000
          },
          "duration_seconds": {
            "type": "number",
            "minimum": 0.2
          },
          "hold_motion": {
            "type": "string",
            "enum": [
              "none",
              "push_in",
              "pull_out",
              "pan_left",
              "pan_right",
              "animate"
            ]
          },
          "cast": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "title",
          "duration_seconds"
        ],
        "additionalProperties": false
      },
      "maxItems": 60
    },
    "from_media": {
      "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
          }
        ]
      },
      "minItems": 2,
      "maxItems": 250
    },
    "from_analysis": {
      "type": "object",
      "properties": {
        "upload_id": {
          "type": "string",
          "format": "uuid"
        }
      },
      "required": [
        "upload_id"
      ],
      "additionalProperties": false,
      "description": "Build the board from a video you read with measure_video and wrote a beat sheet for with save_video_analysis. One scene per beat, with its title, its intent, its prompts and its MEASURED length — never re-type a beat sheet as scenes, because the arithmetic is ours and a board written by hand remembers no source, which is what match_scene_motion needs. The prompts arrive written for a different subject, as the beat sheet wrote them: transpose them with update_scene afterwards."
    }
  },
  "additionalProperties": false
}

Related tools

Every tool· This page as Markdown