Skip to main content
Glama

Re-pose sprite

generatePose

Re-pose an existing sprite into a new target pose while preserving the character, taking a source image (URL or base64), a pose name (or "Other" with a free-text description), and an optional n (1-4) for how many variations to produce. Only works with sprite image types (not icons, screenshots, etc.). The job result is an array of pose results, each containing the generated image url, the pose and description used, and a suggested motion_prompt tuned for that pose. Credits are held when the job is accepted and refunded if it fails or is cancelled; the charge scales with the number of images generated. This is typically the first step before animating: call generatePose to set the character's pose, then feed the result (and its suggested motion_prompt) into animateSprite for the best animation quality; use rotateSprite instead when you want to change the camera angle rather than the pose. Pass an optional request_id to tag the results so you can locate them later via listGenerations (type spritesheet). Async generation job: returns {id, status} - poll getApiJob (job and credit contract: see the server instructions).

Credits: This endpoint consumes 0.5 credits per result.

Input Schema

NameRequiredDescriptionDefault
requestBodyYesPayload for generating a new pose for an existing sprite

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / properties / requestBody / properties / augment_prompt
      Removed value: -{
      -  "description": "Rewrites your prompt behind the scenes into the form the model works best with. Leave it on (the default). Turning it off does not give you more control - it usually gives worse results. Do not disable it unless you really know what you are doing and have tested your prompts extensively. Default: true.",
      -  "example": true,
      -  "type": "boolean"
      -}
  2. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / augment_prompt / description
      Previous value: -"Augment the prompt behind the scenes. Disable to have more control. Default: true."New value: +"Rewrites your prompt behind the scenes into the form the model works best with. Leave it on (the default). Turning it off does not give you more control - it usually gives worse results. Do not disable it unless you really know what you are doing and have tested your prompts extensively. Default: true."
  3. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / request_id / description
      Previous value: -"Optional client-provided identifier, unique per request. Re-sending the same request_id returns the existing job instead of generating again. Also usable with the results endpoint."New value: +"Optional client-provided identifier, unique per request. Re-sending the same request_id returns the existing job instead of generating again. Also usable as the request_id filter of listGenerations."
  4. Changed4 schema fields changed
    • removedInput schema / properties / requestBody / properties / augment_prompt / default
      Removed value: -true
    • changedInput schema / properties / requestBody / properties / augment_prompt / description
      Previous value: -"Augment the prompt behind the scenes. Disable to have more control."New value: +"Augment the prompt behind the scenes. Disable to have more control. Default: true."
    • removedInput schema / properties / requestBody / properties / n / default
      Removed value: -1
    • changedInput schema / properties / requestBody / properties / n / description
      Previous value: -"Number of pose variations to generate (1-4)."New value: +"Number of pose variations to generate (1-4). Default: 1."
  5. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / request_id / description
      Previous value: -"Optional client-provided identifier for this request. Use this to retrieve results later via the results endpoint."New value: +"Optional client-provided identifier, unique per request. Re-sending the same request_id returns the existing job instead of generating again. Also usable with the results endpoint."
  6. Changed2 schema fields changed
    • changedInput schema / properties / requestBody / properties / pose / enum
      Previous value: -[
      -  "World of Dinos",
      -  "World of Dinos",
      -  "World of Dinos"
      -]New value: +[
      +  "Idle (Front)",
      +  "Idle (Back)",
      +  "Idle (Left Facing)",
      +  "Idle (Right Facing)",
      +  "Walk (Left)",
      +  "Walk (Right)",
      +  "Walk (Towards the camera)",
      +  "Walk (Away from the camera)",
      +  "Run (Left)",
      +  "Run (Right)",
      +  "Run (Towards the camera)",
      +  "Run (Away from the camera)",
      +  "Crouching",
      +  "Crawling",
      +  "Sitting",
      +  "Defending / Blocking",
      +  "Attack Ready",
      +  "Jump Preparation",
      +  "Sleeping",
      +  "Flying",
      +  "Other"
      +]
    • changedInput schema / properties / requestBody / properties / pose / example
      Previous value: -"World of Dinos"New value: +"Idle (Front)"
  7. Changed2 schema fields changed
    • changedInput schema / properties / requestBody / properties / pose / enum
      Previous value: -[
      -  "Idle (Front)",
      -  "Idle (Back)",
      -  "Idle (Left Facing)",
      -  "Idle (Right Facing)",
      -  "Walk (Left)",
      -  "Walk (Right)",
      -  "Walk (Towards the camera)",
      -  "Walk (Away from the camera)",
      -  "Run (Left)",
      -  "Run (Right)",
      -  "Run (Towards the camera)",
      -  "Run (Away from the camera)",
      -  "Crouching",
      -  "Crawling",
      -  "Sitting",
      -  "Defending / Blocking",
      -  "Attack Ready",
      -  "Jump Preparation",
      -  "Sleeping",
      -  "Flying",
      -  "Other"
      -]New value: +[
      +  "World of Dinos",
      +  "World of Dinos",
      +  "World of Dinos"
      +]
    • changedInput schema / properties / requestBody / properties / pose / example
      Previous value: -"Idle (Front)"New value: +"World of Dinos"
  8. Changed1 schema field changed
    • addedInput schema / properties / requestBody / properties / request_id
      Added value: +{
      +  "description": "Optional client-provided identifier for this request. Use this to retrieve results later via the results endpoint.",
      +  "type": "string"
      +}
  9. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / pose / enum
      Previous value: -[
      -  "Idle (Front)",
      -  "Idle (Back)",
      -  "Idle (Left Facing)",
      -  "Idle (Right Facing)",
      -  "Walk / Run (Left)",
      -  "Walk / Run (Right)",
      -  "Walk / Run (Towards the camera)",
      -  "Walk / Run (Away from the camera)",
      -  "Crouching",
      -  "Crawling",
      -  "Sleeping",
      -  "Flying",
      -  "Sitting",
      -  "Defending / Blocking",
      -  "Attack Ready",
      -  "Jump Preparation",
      -  "Other"
      -]New value: +[
      +  "Idle (Front)",
      +  "Idle (Back)",
      +  "Idle (Left Facing)",
      +  "Idle (Right Facing)",
      +  "Walk (Left)",
      +  "Walk (Right)",
      +  "Walk (Towards the camera)",
      +  "Walk (Away from the camera)",
      +  "Run (Left)",
      +  "Run (Right)",
      +  "Run (Towards the camera)",
      +  "Run (Away from the camera)",
      +  "Crouching",
      +  "Crawling",
      +  "Sitting",
      +  "Defending / Blocking",
      +  "Attack Ready",
      +  "Jump Preparation",
      +  "Sleeping",
      +  "Flying",
      +  "Other"
      +]
  10. Changed2 schema fields changed
    • changedInput schema / properties / requestBody / properties / pose / enum
      Previous value: -[
      -  "World of Dinos",
      -  "World of Dinos",
      -  "World of Dinos"
      -]New value: +[
      +  "Idle (Front)",
      +  "Idle (Back)",
      +  "Idle (Left Facing)",
      +  "Idle (Right Facing)",
      +  "Walk / Run (Left)",
      +  "Walk / Run (Right)",
      +  "Walk / Run (Towards the camera)",
      +  "Walk / Run (Away from the camera)",
      +  "Crouching",
      +  "Crawling",
      +  "Sleeping",
      +  "Flying",
      +  "Sitting",
      +  "Defending / Blocking",
      +  "Attack Ready",
      +  "Jump Preparation",
      +  "Other"
      +]
    • changedInput schema / properties / requestBody / properties / pose / example
      Previous value: -"World of Dinos"New value: +"Idle (Front)"
  11. Changed2 schema fields changed
    • changedInput schema / properties / requestBody / properties / pose / enum
      Previous value: -[
      -  "Idle (Front)",
      -  "Idle (Back)",
      -  "Idle (Left Facing)",
      -  "Idle (Right Facing)",
      -  "Walk / Run (Left)",
      -  "Walk / Run (Right)",
      -  "Walk / Run (Towards the camera)",
      -  "Walk / Run (Away from the camera)",
      -  "Crouching",
      -  "Crawling",
      -  "Sleeping",
      -  "Flying",
      -  "Sitting",
      -  "Defending / Blocking",
      -  "Attack Ready",
      -  "Jump Preparation",
      -  "Other"
      -]New value: +[
      +  "World of Dinos",
      +  "World of Dinos",
      +  "World of Dinos"
      +]
    • changedInput schema / properties / requestBody / properties / pose / example
      Previous value: -"Idle (Front)"New value: +"World of Dinos"
  12. Changed3 schema fields changed
    • changedInput schema / properties / requestBody / properties / pose / description
      Previous value: -"Target pose for the sprite. Common poses include: \"Idle (Front)\", \"Idle (Back)\", \"Idle (Left Facing)\", \"Idle (Right Facing)\", \"Walk / Run (Left)\", \"Walk / Run (Right)\", \"Walk / Run (Towards the camera)\", \"Walk / Run (Away from the camera)\", \"Crouching\", \"Crawling\", \"Sleeping\", \"Flying\", \"Sitting\", \"Defending / Blocking\", \"Attack Ready\", \"Jump Preparation\". You can also specify custom poses.\n"New value: +"Target pose for the sprite. Use the value \"Other\" to generate other poses not listed in the accepted values, and fill the field description accordingly."
    • addedInput schema / properties / requestBody / properties / pose / enum
      Added value: +[
      +  "Idle (Front)",
      +  "Idle (Back)",
      +  "Idle (Left Facing)",
      +  "Idle (Right Facing)",
      +  "Walk / Run (Left)",
      +  "Walk / Run (Right)",
      +  "Walk / Run (Towards the camera)",
      +  "Walk / Run (Away from the camera)",
      +  "Crouching",
      +  "Crawling",
      +  "Sleeping",
      +  "Flying",
      +  "Sitting",
      +  "Defending / Blocking",
      +  "Attack Ready",
      +  "Jump Preparation",
      +  "Other"
      +]
    • addedInput schema / properties / requestBody / properties / pose / example
      Added value: +"Idle (Front)"
  13. Added

TDQS

A4.8/5.0
Behavior5/5

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

Annotations only cover the generic read/write and open-world flags; the description adds the credit contract (held on acceptance, refunded on failure/cancel, cost scales with image count, 0.5 credits per result) and the async job lifecycle (returns {id, status}, poll getApiJob). It also discloses the returned array shape and the request_id dedupe/tagging behavior, which annotations do not convey.

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 purpose and inputs before the routing advice and job/credit contract, which is the right order. Slight redundancy: the credit model is stated twice ("charge scales with the number of images generated" and the trailing "0.5 credits per result"), costing a little tightness.

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

Completeness5/5

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

For a nested-object, single-required-param async job with no output schema, the description supplies everything an agent needs: input forms (URL or base64), output array contents, the suggested motion_prompt hand-off, the polling endpoint, and the credit implications. Nothing material is left to inference.

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

Parameters4/5

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

Schema coverage is already 100%, so the baseline is 3; the description adds real value by explaining the "Other" pose value requires a free-text description, the 1-4 range for n, and that request_id doubles as a listGenerations filter. The only minor gap is that the relationship between `description` and pose="Other" is implied rather than spelled out.

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 ("Re-pose an existing sprite into a new target pose while preserving the character") and immediately constrains the input domain to sprite image types, excluding icons and screenshots. It is unambiguously distinguishable from animateSprite and rotateSprite by naming both siblings in context.

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?

Gives explicit routing: use this first, then feed the result into animateSprite for best animation quality, and use rotateSprite instead when the goal is a camera-angle change rather than a pose. Also states the negative case (only sprite image types, not icons or screenshots).

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.