Skip to main content
Glama

image_to_video

Turn a source image into video via Grok Imagine on RunAPI, returning task ID, status, and output URLs.

Instructions

Create a Grok Imagine task on RunAPI (image to video). Returns a task id, status, and output URLs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
waitNoPoll until the task reaches a terminal status.
indexNoZero-based source image index; used only with source_task_id. Declared type: integer.
modelNoRunAPI model slug for this model line.
promptNoOptional video generation prompt. Declared type: string.
timeout_msNo
aspect_ratioNoOutput aspect ratio. Declared type: string. Known values: "2:3", "3:2", "1:1", "16:9", "9:16", "auto".
callback_urlNoWebhook URL for terminal Task delivery. Declared type: string.
motion_styleNoVideo motion style; spicy requires source_task_id. Declared type: string.
source_task_idNoPrior Grok Imagine text-to-image Task ID; provide this or source_image_url, but not both. Declared type: string.
duration_secondsNoOutput duration in seconds. Declared type: integer.
poll_interval_msNo
source_image_urlNoPublic source image URL; provide this or source_task_id, but not both. Declared type: string.
output_resolutionNoOutput resolution. Declared type: string. Known values: "480p", "720p", "1080p".
reference_image_urlsNoNot accepted by this model. Declared type: array.
enable_safety_checkerNoEnable content safety checks. Declared type: boolean.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed25 schema fields changedv0.2.0
    • addedInput schema / additionalProperties
      Added value: +{}
    • removedInput schema / properties / aspect_ratio / anyOf
      Removed value: -[
      -  {
      -    "const": "2:3",
      -    "type": "string"
      -  },
      -  {
      -    "const": "3:2",
      -    "type": "string"
      -  },
      -  {
      -    "const": "1:1",
      -    "type": "string"
      -  },
      -  {
      -    "const": "16:9",
      -    "type": "string"
      -  },
      -  {
      -    "const": "9:16",
      -    "type": "string"
      -  },
      -  {
      -    "const": "auto",
      -    "type": "string"
      -  }
      -]
    • changedInput schema / properties / aspect_ratio / description
      Previous value: -"Output aspect ratio."New value: +"Output aspect ratio. Declared type: string. Known values: \"2:3\", \"3:2\", \"1:1\", \"16:9\", \"9:16\", \"auto\"."
    • addedInput schema / properties / aspect_ratio / type
      Added value: +"string"
    • changedInput schema / properties / callback_url / description
      Previous value: -"Webhook URL for terminal Task delivery."New value: +"Webhook URL for terminal Task delivery. Declared type: string."
    • changedInput schema / properties / duration_seconds / description
      Previous value: -"Output duration in seconds."New value: +"Output duration in seconds. Declared type: integer."
    • removedInput schema / properties / duration_seconds / maximum
      Removed value: -30
    • removedInput schema / properties / duration_seconds / minimum
      Removed value: -6
    • changedInput schema / properties / duration_seconds / type
      Previous value: -"number"New value: +"integer"
    • changedInput schema / properties / enable_safety_checker / description
      Previous value: -"Enable content safety checks."New value: +"Enable content safety checks. Declared type: boolean."
    • changedInput schema / properties / index / description
      Previous value: -"Zero-based source image index; used only with source_task_id."New value: +"Zero-based source image index; used only with source_task_id. Declared type: integer."
    • removedInput schema / properties / index / maximum
      Removed value: -5
    • removedInput schema / properties / index / minimum
      Removed value: -0
    • changedInput schema / properties / index / type
      Previous value: -"number"New value: +"integer"
    • removedInput schema / properties / model / enum
      Removed value: -[
      -  "grok-imagine-image-to-video",
      -  "grok-imagine-video-1.5-fast",
      -  "grok-imagine-video-1.5-preview"
      -]
    • changedInput schema / properties / motion_style / description
      Previous value: -"Video motion style; spicy requires source_task_id."New value: +"Video motion style; spicy requires source_task_id. Declared type: string."
    • removedInput schema / properties / output_resolution / anyOf
      Removed value: -[
      -  {
      -    "const": "480p",
      -    "type": "string"
      -  },
      -  {
      -    "const": "720p",
      -    "type": "string"
      -  },
      -  {
      -    "const": "1080p",
      -    "type": "string"
      -  }
      -]
    • changedInput schema / properties / output_resolution / description
      Previous value: -"Output resolution."New value: +"Output resolution. Declared type: string. Known values: \"480p\", \"720p\", \"1080p\"."
    • addedInput schema / properties / output_resolution / type
      Added value: +"string"
    • changedInput schema / properties / prompt / description
      Previous value: -"Optional video generation prompt."New value: +"Optional video generation prompt. Declared type: string."
    • removedInput schema / properties / prompt / maxLength
      Removed value: -5000
    • changedInput schema / properties / reference_image_urls / description
      Previous value: -"Not accepted by this model."New value: +"Not accepted by this model. Declared type: array."
    • changedInput schema / properties / source_image_url / description
      Previous value: -"Public source image URL; provide this or source_task_id, but not both."New value: +"Public source image URL; provide this or source_task_id, but not both. Declared type: string."
    • changedInput schema / properties / source_task_id / description
      Previous value: -"Prior Grok Imagine text-to-image Task ID; provide this or source_image_url, but not both."New value: +"Prior Grok Imagine text-to-image Task ID; provide this or source_image_url, but not both. Declared type: string."
    • addedInput schema / required
      Added value: +[]
  2. Changed9 schema fields changedv0.1.13
    • removedInput schema / additionalProperties
      Removed value: -false
    • addedInput schema / properties / aspect_ratio / anyOf
      Added value: +[
      +  {
      +    "const": "2:3",
      +    "type": "string"
      +  },
      +  {
      +    "const": "3:2",
      +    "type": "string"
      +  },
      +  {
      +    "const": "1:1",
      +    "type": "string"
      +  },
      +  {
      +    "const": "16:9",
      +    "type": "string"
      +  },
      +  {
      +    "const": "9:16",
      +    "type": "string"
      +  },
      +  {
      +    "const": "auto",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / aspect_ratio / enum
      Removed value: -[
      -  "2:3",
      -  "3:2",
      -  "1:1",
      -  "16:9",
      -  "9:16",
      -  "auto"
      -]
    • removedInput schema / properties / aspect_ratio / type
      Removed value: -"string"
    • addedInput schema / properties / output_resolution / anyOf
      Added value: +[
      +  {
      +    "const": "480p",
      +    "type": "string"
      +  },
      +  {
      +    "const": "720p",
      +    "type": "string"
      +  },
      +  {
      +    "const": "1080p",
      +    "type": "string"
      +  }
      +]
    • removedInput schema / properties / output_resolution / enum
      Removed value: -[
      -  "480p",
      -  "720p"
      -]
    • removedInput schema / properties / output_resolution / type
      Removed value: -"string"
    • addedInput schema / properties / poll_interval_ms / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / timeout_ms / maximum
      Added value: +9007199254740991
  3. Changed14 schema fields changedv0.1.11
    • addedInput schema / properties / aspect_ratio / description
      Added value: +"Output aspect ratio."
    • changedInput schema / properties / aspect_ratio / enum
      Previous value: -[
      -  "2:3",
      -  "3:2",
      -  "1:1",
      -  "16:9",
      -  "9:16"
      -]New value: +[
      +  "2:3",
      +  "3:2",
      +  "1:1",
      +  "16:9",
      +  "9:16",
      +  "auto"
      +]
    • addedInput schema / properties / callback_url
      Added value: +{
      +  "description": "Webhook URL for terminal Task delivery.",
      +  "type": "string"
      +}
    • addedInput schema / properties / duration_seconds
      Added value: +{
      +  "description": "Output duration in seconds.",
      +  "maximum": 30,
      +  "minimum": 6,
      +  "type": "number"
      +}
    • addedInput schema / properties / enable_safety_checker
      Added value: +{
      +  "description": "Enable content safety checks.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / index
      Added value: +{
      +  "description": "Zero-based source image index; used only with source_task_id.",
      +  "maximum": 5,
      +  "minimum": 0,
      +  "type": "number"
      +}
    • changedInput schema / properties / model / enum
      Previous value: -[
      -  "grok-imagine-image-to-video"
      -]New value: +[
      +  "grok-imagine-image-to-video",
      +  "grok-imagine-video-1.5-fast",
      +  "grok-imagine-video-1.5-preview"
      +]
    • addedInput schema / properties / motion_style / description
      Added value: +"Video motion style; spicy requires source_task_id."
    • removedInput schema / properties / motion_style / enum
      Removed value: -[
      -  "fun",
      -  "normal",
      -  "spicy"
      -]
    • addedInput schema / properties / output_resolution / description
      Added value: +"Output resolution."
    • addedInput schema / properties / prompt
      Added value: +{
      +  "description": "Optional video generation prompt.",
      +  "maxLength": 5000,
      +  "type": "string"
      +}
    • addedInput schema / properties / reference_image_urls
      Added value: +{
      +  "description": "Not accepted by this model.",
      +  "items": {},
      +  "type": "array"
      +}
    • addedInput schema / properties / source_image_url
      Added value: +{
      +  "description": "Public source image URL; provide this or source_task_id, but not both.",
      +  "type": "string"
      +}
    • addedInput schema / properties / source_task_id
      Added value: +{
      +  "description": "Prior Grok Imagine text-to-image Task ID; provide this or source_image_url, but not both.",
      +  "type": "string"
      +}
  4. First observedv0.1.0

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden, and it does at least characterize the async task model by stating the call returns a task id, status, and output URLs. It stops there – no mention of cost, failure behavior, or auth requirements, and the async/polling nature is only hinted at rather than explained.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tight sentences with no filler, and the core action is front-loaded ahead of the return-value note. It is appropriately sized, though the terseness contributes to the coverage gaps noted elsewhere.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 15-parameter generation tool with no annotations and no output schema, the description is thin: it briefly covers the return payload, which is genuinely useful without an output schema, but says nothing about the async lifecycle or how wait/timeout/callback interact. Adequate as a minimum but with clear gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is high at 87%, so the schema already documents most parameters, and the description adds no syntax, format, or interplay details beyond it. Baseline of 3 is appropriate when the schema does the heavy lifting and the prose adds nothing on top.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Create a Grok Imagine task ... image to video') and names the underlying provider, so the agent knows it is an image-to-video generation call. It does not explicitly contrast with siblings like text_to_video or extend_video, but the '(image to video)' qualifier is enough to separate it from those without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use guidance and never names an alternative, even though siblings text_to_video and extend_video are obvious confusables. It also omits the prerequisite that a source image (URL or prior task id) must be supplied despite zero required parameters, leaving the agent to infer the workflow entirely from the schema.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.