Skip to main content
Glama

Animate image

animate_image

Animate an existing image or upload into a clip. Describe the motion in prompt; the image is frame zero, so it must show everyone who acts, at the height and distance the action needs: a clip cannot move what its first frame does not show. First search list_recipes for a matching motion recipe and read it with get_recipe. Prefer generate_with_recipe when its inputs and output fit; otherwise read the chosen model's guide and animate directly here.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
imageYes
modelNo
promptNo
presetsNo
subjectsNoNames or ids of the account's Subjects (list_subjects). The server supplies each one's face and description — seated against the model's capacity — so do not also attach pictures of them.
last_frameNo
resolutionNo
first_frameNo
recreate_ofNo
aspect_ratioNoDefaults to 9:16 (vertical). Confirm the shape with the user when the destination is unclear — a feed, a banner and a phone screen want different ones. With a first frame, leave it out: the clip takes the frame's own shape, and a ratio that disagrees with the frame is refused.
generate_audioNo
duration_secondsNo
reference_audiosNo
reference_imagesNo
reference_videosNoThe video this clip is driven by — a source performance to copy, or the take a mouth is re-synced in. Uploads and clips you generated alike, in the shape list_media returns.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
messageYes
generationYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedOutput schema / properties / generation / properties / ready_in_seconds
      Added value: +{
      +  "type": [
      +    "number",
      +    "null"
      +  ]
      +}
    • changedOutput schema / properties / generation / required
      Previous value: -[
      -  "generation_id",
      -  "kind",
      -  "status",
      -  "model",
      -  "prompt",
      -  "aspect_ratio",
      -  "refined_from",
      -  "caption_style",
      -  "output_url",
      -  "credits_cost",
      -  "error",
      -  "vendor_phase",
      -  "stalled",
      -  "created_at",
      -  "app_url"
      -]New value: +[
      +  "generation_id",
      +  "kind",
      +  "status",
      +  "model",
      +  "prompt",
      +  "aspect_ratio",
      +  "refined_from",
      +  "caption_style",
      +  "output_url",
      +  "credits_cost",
      +  "error",
      +  "vendor_phase",
      +  "stalled",
      +  "ready_in_seconds",
      +  "created_at",
      +  "app_url"
      +]
  2. Changed3 schema fields changed
    • changedInput schema / properties / reference_audios / maxItems
      Previous value: -3New value: +10
    • changedInput schema / properties / reference_images / maxItems
      Previous value: -9New value: +30
    • changedInput schema / properties / reference_videos / maxItems
      Previous value: -3New value: +10
  3. Changed1 schema field changed
    • changedInput schema / properties / duration_seconds / anyOf
      Previous value: -[
      -  {
      -    "const": -1,
      -    "type": "number"
      -  },
      -  {
      -    "maximum": 15,
      -    "minimum": 1,
      -    "type": "integer"
      -  }
      -]New value: +[
      +  {
      +    "const": -1,
      +    "type": "number"
      +  },
      +  {
      +    "maximum": 1800,
      +    "minimum": 1,
      +    "type": "integer"
      +  }
      +]
  4. First observed

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare the safety profile (not readOnly, not destructive, not idempotent), lowering the bar. The description adds one genuinely behavioral constraint — the image is frame zero, so a clip cannot move what the first frame does not show — but says nothing about cost, credit consumption, async/queue behavior, or what a failed animation leaves behind. Useful but thin for a 15-parameter generation tool.

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?

Front-loaded with the core verb+resource in the first sentence, then the constraint, then the routing. The frame-zero sentence is slightly labored ('at the height and distance the action needs') but every clause adds usable information, and there is no filler.

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

Completeness4/5

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

For a complex, 15-parameter generation tool with an output schema covering returns, the description supplies purpose, the key input constraint, and an explicit escalation path to recipes and model guides. The main residual gap is model-selection guidance, which it deflects to the guides rather than attempting to cover inline.

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 only 20%, so the description carries real weight here: it defines `prompt` as the motion description and `image` as frame zero with a composition requirement, which the schema does not. However, of 15 parameters, model, resolution, presets, subjects, duration_seconds, recreate_of, reference_audios, reference_images and the frame params get no semantic treatment in the description, so it only partially compensates for the coverage gap.

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

Purpose5/5

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

States a specific verb and resource — 'Animate an existing image or upload into a clip' — and scopes it to existing images rather than generating new ones, which cleanly separates it from generate_image and generate_clip. It also names generate_with_recipe as the preferred alternative, so the agent can place it without opening any schema.

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

Usage Guidelines5/5

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

Explicit routing: search list_recipes, read with get_recipe, prefer generate_with_recipe when inputs/output fit, otherwise read the model guide and animate here. This is a full when-to-use / when-to-use-something-else instruction set, not an implied one.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources