Skip to main content
Glama

Animate sprite

animateSprite

Animate a static sprite into a spritesheet driven by a motion text prompt (image-to-spritesheet): supply an initial_image (URL or base64) plus a motion_prompt like "walking" or "attack slash", and optionally a final_image to interpolate between a start and end frame. Describe the motion exactly and unambiguously, but do not over-describe it: an action the model already knows is one phrase, not a sequence of steps, and the character, art style, background and camera come from the image, not the prompt. For animations driven by up to three keyframes (including a middle frame), use animateSpriteKeyframes instead. The job result is a single sprite result: spritesheet_url (the sheet image), video_url (an mp4 of the animation - pass it as video to transferMotion or as spritesheet_video_url to createSpriteAudio; editSpritesheet takes spritesheet_url), num_frames/num_cols/num_rows (the grid layout), and, when requested, gif_url, individual_frame_urls and spritesheet_with_background_url. The hydra and hydra-plus models also return audio_url, a sound effect for the animation - there is no need to call createSpriteAudio afterwards; forge and forge-pixel produce no audio. The chosen model must support sprite animation and the duration must be valid for it; incompatible model/duration combinations return HTTP 400. Credits are held for the duration you requested when the job is accepted; the final charge is rate × seconds of video generated (legacy models keep their minimum charge), never more than for the duration you requested, and the difference (or everything, if the job fails or is cancelled) is refunded. The returned sheet is then trimmed to its best loop and can run slightly shorter than the video; that trim is not deducted. Choosing a tool: animateSprite (this one) when you can describe the motion in text; transferMotion when you want an exact motion copied from a reference video or one of the named presets from listAnimationPresets (e.g. a standard walk or attack cycle); generatePose first when the source image is not yet in the pose the animation should start from. Omit model to run on hydra (the default) - see the model field for the per-model rates. Pass an optional request_id to tag the result so you can locate it later via listGenerations (type spritesheet). Async generation job: returns {id, status} - poll getApiJob (job and credit contract: see the server instructions).

Credits: credits/s × seconds, per model: Hydra 3/s (shortest duration 3s, so 9 credits minimum), Griffin 12 flat, Forge 1.5/s, Forge Pixel 1.5/s, Hydra+ 4/s (shortest duration 3s, so 12 credits minimum) [LEGACY], Blitz 1.9/s (min charge 4 credits) [LEGACY], Eagle 2.6/s (min charge 4 credits) [LEGACY], Eagle with Audio 3.1/s (min charge 4 credits) [LEGACY]; flat = credits per generation; [LEGACY] models are scheduled for removal - do not use them for new work; see this endpoint's full pricing table in the API docs.

Input Schema

NameRequiredDescriptionDefault
requestBodyYesPayload for generating an animated spritesheet from a static image. Input images can either be provided in base64 or URL. If the image was generated using Ludo, ideally it should be generated using the "sprite", "sprite-vfx" or "ui_asset" type.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • changedInput schema / properties / requestBody / properties / duration / description
      Previous value: -"Duration in seconds. Available values depend on the model:\n- hydra: 3, 3.5, 4, 4.5, 5\n- hydra-plus: 3, 3.5, 4, 4.5, 5\n- forge: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5\n- forge-pixel: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- eagle-audio: 1, 2, 3, 4 Default: 3."New value: +"Duration in seconds. Available values depend on the model:\n- hydra: 3, 3.5, 4, 4.5, 5\n- griffin-hd: 5\n- forge: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5\n- forge-pixel: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5\n- hydra-plus: 3, 3.5, 4, 4.5, 5\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- eagle-audio: 1, 2, 3, 4 Default: 3."
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, shortest duration 3s, so 9 credits minimum · Most capable all-around model, generates audio\n- \"hydra-plus\" (Hydra+): 4 credits/s, shortest duration 3s, so 12 credits minimum · Hydra but with better fine details. Slower generations\n- \"forge\" (Forge): 1.5 credits/s · Sharper detail, simpler motion. Best for simple body shapes and short actions; may need a few tries\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s · Best for low-res pixel art animations\n- \"blitz\" (Blitz): 1.9 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new.\nforge-pixel expects real pixel art - a perfect pixel grid at its natural resolution; for other art use hydra or forge. Tiling image types stay seamless only on forge and forge-pixel. Default: \"hydra\"."New value: +"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, shortest duration 3s, so 9 credits minimum · Most reliable all-around model, generates audio\n- \"griffin-hd\" (Griffin): flat 12 credits per generation · High resolution animations, best for highly detailed sprites\n- \"forge\" (Forge): 1.5 credits/s · Best for simple body shapes and short actions; may need a few tries\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s · Best for low-res pixel art animations\n- \"hydra-plus\" (Hydra+): 4 credits/s, shortest duration 3s, so 12 credits minimum · LEGACY - scheduled for removal, do not use for new work\n- \"blitz\" (Blitz): 1.9 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new.\nforge-pixel expects real pixel art - a perfect pixel grid at its natural resolution; for other art use hydra or forge. Tiling image types stay seamless only on forge and forge-pixel. Default: \"hydra\"."
    • changedInput schema / properties / requestBody / properties / model / enum
      Previous value: -[
      -  "hydra",
      -  "hydra-plus",
      -  "forge",
      -  "forge-pixel",
      -  "blitz",
      -  "standard",
      -  "eagle",
      -  "eagle-audio"
      -]New value: +[
      +  "hydra",
      +  "griffin-hd",
      +  "forge",
      +  "forge-pixel",
      +  "hydra-plus",
      +  "blitz",
      +  "standard",
      +  "eagle",
      +  "eagle-audio"
      +]
  2. Changed1 schema field changed
    • addedInput schema / properties / requestBody / properties / use_pixel_grid
      Added value: +{
      +  "description": "Use the animation's pixel grid if one is detected. Defaults to true. true: when Ludo detects a pixel grid with confidence, the sheet is packed on it (logical pixels, scaled up by whole blocks); when none is detected, this has no effect. false: always pack as ordinary art, for when the detected grid is wrong for your asset (for example a smooth sprite coming back as coarse blocks). Ignored for forge-pixel animations, which are always packed on their grid.",
      +  "type": "boolean"
      +}
  3. Changed4 schema fields changed
    • changedInput schema / properties / requestBody / properties / duration / description
      Previous value: -"Duration in seconds. Available values depend on the model:\n- hydra: 3, 3.5, 4, 4.5, 5\n- forge: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5\n- forge-pixel: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- eagle-audio: 1, 2, 3, 4 Default: 3."New value: +"Duration in seconds. Available values depend on the model:\n- hydra: 3, 3.5, 4, 4.5, 5\n- hydra-plus: 3, 3.5, 4, 4.5, 5\n- forge: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5\n- forge-pixel: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- eagle-audio: 1, 2, 3, 4 Default: 3."
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, shortest duration 3s, so 9 credits minimum · Most capable all-around model, generates audio\n- \"forge\" (Forge): 1.5 credits/s · Sharper detail, simpler motion. Best for simple body shapes and short actions; may need a few tries\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s · Best for low-res pixel art animations\n- \"blitz\" (Blitz): 1.9 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new.\nforge-pixel expects real pixel art - a perfect pixel grid at its natural resolution; for other art use hydra or forge. Tiling image types stay seamless only on forge and forge-pixel. Default: \"hydra\"."New value: +"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, shortest duration 3s, so 9 credits minimum · Most capable all-around model, generates audio\n- \"hydra-plus\" (Hydra+): 4 credits/s, shortest duration 3s, so 12 credits minimum · Hydra but with better fine details. Slower generations\n- \"forge\" (Forge): 1.5 credits/s · Sharper detail, simpler motion. Best for simple body shapes and short actions; may need a few tries\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s · Best for low-res pixel art animations\n- \"blitz\" (Blitz): 1.9 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new.\nforge-pixel expects real pixel art - a perfect pixel grid at its natural resolution; for other art use hydra or forge. Tiling image types stay seamless only on forge and forge-pixel. Default: \"hydra\"."
    • changedInput schema / properties / requestBody / properties / model / enum
      Previous value: -[
      -  "hydra",
      -  "forge",
      -  "forge-pixel",
      -  "blitz",
      -  "standard",
      -  "eagle",
      -  "eagle-audio"
      -]New value: +[
      +  "hydra",
      +  "hydra-plus",
      +  "forge",
      +  "forge-pixel",
      +  "blitz",
      +  "standard",
      +  "eagle",
      +  "eagle-audio"
      +]
    • changedInput schema / properties / requestBody / properties / motion_prompt / description
      Previous value: -"Text description of the desired animation, e.g. \"walking\", \"idle breathing\", \"attack slash\", \"casting a fireball with both hands\". Describe exactly and unambiguously what the character should do. Specific or complex actions are fine; there is no need to simplify them. Do not over-describe, though: too much detail can harm the animation, and an action the model already knows should be named, not decomposed into its steps (\"walking\", never \"move the left foot forward, then the right foot\"). Do not restate what initial_image already shows (the character, its appearance and equipment, the art style, the background, the lighting, the camera), and leave frame count and timing to the frames and duration fields. Negative phrasing (\"no background\", \"do not move the camera\", \"without a weapon\") works only on hydra. On forge, forge-pixel and the legacy models it backfires: naming something you do not want makes it more likely to appear, so \"without a weapon\" tends to produce a weapon. On those models never phrase anything negatively; state only what should happen, and control everything else through the image and the other fields. Keep it well under 100 words: in longer prompts details start competing and some get dropped."New value: +"Text description of the desired animation, e.g. \"walking\", \"idle breathing\", \"attack slash\", \"casting a fireball with both hands\". Describe exactly and unambiguously what the character should do. Specific or complex actions are fine; there is no need to simplify them. Do not over-describe, though: too much detail can harm the animation, and an action the model already knows should be named, not decomposed into its steps (\"walking\", never \"move the left foot forward, then the right foot\"). Do not restate what initial_image already shows (the character, its appearance and equipment, the art style, the background, the lighting, the camera), and leave frame count and timing to the frames and duration fields. Negative phrasing (\"no background\", \"do not move the camera\", \"without a weapon\") works only on hydra and hydra-plus. On forge, forge-pixel and the legacy models it backfires: naming something you do not want makes it more likely to appear, so \"without a weapon\" tends to produce a weapon. On those models never phrase anything negatively; state only what should happen, and control everything else through the image and the other fields. Keep it well under 100 words: in longer prompts details start competing and some get dropped."
  4. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, min charge 9 credits · Most capable all-around model, generates audio\n- \"forge\" (Forge): 1.5 credits/s, min charge 4 credits · Sharper detail, simpler motion. Best for simple body shapes and short actions; may need a few tries\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min charge 4 credits · Best for low-res pixel art animations\n- \"blitz\" (Blitz): 1.9 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new.\nforge-pixel expects real pixel art - a perfect pixel grid at its natural resolution; for other art use hydra or forge. Tiling image types stay seamless only on forge and forge-pixel. Default: \"hydra\"."New value: +"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, shortest duration 3s, so 9 credits minimum · Most capable all-around model, generates audio\n- \"forge\" (Forge): 1.5 credits/s · Sharper detail, simpler motion. Best for simple body shapes and short actions; may need a few tries\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s · Best for low-res pixel art animations\n- \"blitz\" (Blitz): 1.9 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new.\nforge-pixel expects real pixel art - a perfect pixel grid at its natural resolution; for other art use hydra or forge. Tiling image types stay seamless only on forge and forge-pixel. Default: \"hydra\"."
  5. Changed3 schema fields changed
    • removedInput schema / properties / requestBody / properties / margin_ratio
      Removed value: -{
      -  "deprecated": true,
      -  "description": "Deprecated: prefer margin_ratio_horizontal / margin_ratio_vertical. Amount of padding around the sprite as a ratio (0.0 to 1.0). Sets both axes to this value. A per-axis value, when also given, overrides this for that axis. Supplying any margin value selects margin_ratio_mode \"manual\" unless margin_ratio_mode is set explicitly.",
      -  "format": "float",
      -  "type": "number"
      -}
    • changedInput schema / properties / requestBody / properties / margin_ratio_horizontal / description
      Previous value: -"Horizontal padding around the sprite as a ratio (0.0 to 1.0). Every bit of margin is resolution taken from the sprite, so keep it as tight as the motion allows - about 0.15 - and go higher only for motion that extends sideways (sword slashes, punches) or if the sprite gets cut off. Supplying a value selects margin_ratio_mode \"manual\" unless margin_ratio_mode is set explicitly; overrides the legacy margin_ratio on this axis."New value: +"Horizontal padding around the sprite as a ratio (0.0 to 1.0). Every bit of margin is resolution taken from the sprite, so keep it as tight as the motion allows - about 0.15 - and go higher only for motion that extends sideways (sword slashes, punches) or if the sprite gets cut off. Supplying a value selects margin_ratio_mode \"manual\" unless margin_ratio_mode is set explicitly."
    • changedInput schema / properties / requestBody / properties / margin_ratio_vertical / description
      Previous value: -"Vertical padding around the sprite as a ratio (0.0 to 1.0). Every bit of margin is resolution taken from the sprite, so keep it as tight as the motion allows - about 0.15 - and go higher only for motion that extends up or down (jumps) or if the sprite gets cut off. Supplying a value selects margin_ratio_mode \"manual\" unless margin_ratio_mode is set explicitly; overrides the legacy margin_ratio on this axis."New value: +"Vertical padding around the sprite as a ratio (0.0 to 1.0). Every bit of margin is resolution taken from the sprite, so keep it as tight as the motion allows - about 0.15 - and go higher only for motion that extends up or down (jumps) or if the sprite gets cut off. Supplying a value selects margin_ratio_mode \"manual\" unless margin_ratio_mode is set explicitly."
  6. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / frame_size / description
      Previous value: -"Size of each frame in pixels (width and height). It sizes the exported frames only - it does not change how the sprite is generated. 0 is maximum resolution. -1 is AI 1.5x upscaling. -9 is True Size: frames keep the size and position of the input frame, untrimmed, so the spritesheet lines up exactly with the input image - use it (not margin_ratio_mode \"none\") whenever the output must align with your input; it works with any margin mode. Exporting larger than the input image adds no detail: do not pick a size above the input's own resolution, and 0 or -1 gain nothing on inputs under 512 px. True Size crops at the input image's edges, so anything the animation adds beyond them (an aura, a spell effect, a swung weapon) is cut off: use a fixed size or 0 for those. adjustSpritesheet re-exports a finished animation at another size for free. Accepted values: 32, 64, 96, 128, 192, 256, 384, 0, -1, -9. Default: 0."New value: +"Size of the sprite in pixels, not of the frame: it sets how big the character is drawn in the exported sheet, and each frame also holds the space around the sprite, so frames come out larger than this value. It changes the export only, not how the sprite is generated. 0 is maximum resolution. -1 is AI 1.5x upscaling. -9 is True Size: frames keep the size and position of the input frame, untrimmed, so the spritesheet lines up exactly with the input image - use it (not margin_ratio_mode \"none\") whenever the output must align with your input; it works with any margin mode. Exporting larger than the input image adds no detail: do not pick a size above the input's own resolution, and 0 or -1 gain nothing on inputs under 512 px. True Size crops at the input image's edges, so anything the animation adds beyond them (an aura, a spell effect, a swung weapon) is cut off: use a fixed size or 0 for those. adjustSpritesheet re-exports a finished animation at another size for free. Accepted values: 32, 64, 96, 128, 192, 256, 384, 0, -1, -9. Default: 0."
  7. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / frame_size / description
      Previous value: -"Size of each frame in pixels (width and height). It sizes the exported frames only - it does not change how the sprite is generated. 0 is maximum resolution. -1 is AI 1.5x upscaling. -9 is True Size: frames keep the size and position of the input frame, untrimmed, so the spritesheet lines up exactly with the input image - use it (not margin_ratio_mode \"none\") whenever the output must align with your input; it works with any margin mode. Exporting larger than the input image adds no detail: do not pick a size above the input's own resolution, and 0 or -1 gain nothing on inputs under 512 px. Accepted values: 32, 64, 96, 128, 192, 256, 384, 0, -1, -9. Default: 0."New value: +"Size of each frame in pixels (width and height). It sizes the exported frames only - it does not change how the sprite is generated. 0 is maximum resolution. -1 is AI 1.5x upscaling. -9 is True Size: frames keep the size and position of the input frame, untrimmed, so the spritesheet lines up exactly with the input image - use it (not margin_ratio_mode \"none\") whenever the output must align with your input; it works with any margin mode. Exporting larger than the input image adds no detail: do not pick a size above the input's own resolution, and 0 or -1 gain nothing on inputs under 512 px. True Size crops at the input image's edges, so anything the animation adds beyond them (an aura, a spell effect, a swung weapon) is cut off: use a fixed size or 0 for those. adjustSpritesheet re-exports a finished animation at another size for free. Accepted values: 32, 64, 96, 128, 192, 256, 384, 0, -1, -9. Default: 0."
  8. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / frames / description
      Previous value: -"Maximum number of frames in the output spritesheet. Allow about one second of duration per 12 frames - above that the model may not be able to produce them all (36 frames needs a duration of at least 3). The result can have fewer frames when the duration is short or bad frames were removed. Accepted values: 4, 9, 16, 25, 36, 49, 64. Default: 36."New value: +"Maximum number of frames in the output spritesheet. Allow about one second of duration per 16 frames - above that the model may not be able to produce them all (64 frames needs a duration of at least 4). The result can have fewer frames when the duration is short or bad frames were removed. Accepted values: 4, 9, 16, 25, 36, 49, 64. Default: 36."
  9. Changed2 schema fields changed
    • changedInput schema / properties / requestBody / properties / augment_prompt / description
      Previous 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. If you do turn it off, set the margins yourself and keep them tight: send margin_ratio_horizontal / margin_ratio_vertical (about 0.15 each), which selects margin_ratio_mode \"manual\". Automatic framing needs the augmented prompt, so augment_prompt false with the default \"auto\" margin mode fails with HTTP 400. Do not switch to margin_ratio_mode \"none\" just to get past that error - see margin_ratio_mode. 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."
    • changedInput schema / properties / requestBody / properties / frames / description
      Previous value: -"Maximum number of frames in the output spritesheet. Allow about one second of duration per 12 frames - above that the model may not be able to produce them all (36 frames needs a duration of at least 3). 49 and 64 are more prone to looping issues and motion blur. The result can have fewer frames when the duration is short or bad frames were removed. Accepted values: 4, 9, 16, 25, 36, 49, 64. Default: 36."New value: +"Maximum number of frames in the output spritesheet. Allow about one second of duration per 12 frames - above that the model may not be able to produce them all (36 frames needs a duration of at least 3). The result can have fewer frames when the duration is short or bad frames were removed. Accepted values: 4, 9, 16, 25, 36, 49, 64. Default: 36."
  10. Changed9 schema fields changed
    • changedInput schema / properties / requestBody / properties / augment_prompt / description
      Previous value: -"Augment the prompt behind the scenes. Disable to have more control. Incompatible with automatic framing: false requires margin_ratio_mode \"manual\" (with margin_ratio_horizontal and/or margin_ratio_vertical) or \"none\". Because margin_ratio_mode defaults to \"auto\", sending augment_prompt false on its own fails with HTTP 400. 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. If you do turn it off, set the margins yourself and keep them tight: send margin_ratio_horizontal / margin_ratio_vertical (about 0.15 each), which selects margin_ratio_mode \"manual\". Automatic framing needs the augmented prompt, so augment_prompt false with the default \"auto\" margin mode fails with HTTP 400. Do not switch to margin_ratio_mode \"none\" just to get past that error - see margin_ratio_mode. Default: true."
    • changedInput schema / properties / requestBody / properties / frame_size / description
      Previous value: -"Size of each frame in pixels (width and height). 0 is for maximum resolution. -1 is for AI 1.5x upscaling. -9 is for matching the size and position of the input frame. Accepted values: 32, 64, 96, 128, 192, 256, 384, 0, -1, -9. Default: 0."New value: +"Size of each frame in pixels (width and height). It sizes the exported frames only - it does not change how the sprite is generated. 0 is maximum resolution. -1 is AI 1.5x upscaling. -9 is True Size: frames keep the size and position of the input frame, untrimmed, so the spritesheet lines up exactly with the input image - use it (not margin_ratio_mode \"none\") whenever the output must align with your input; it works with any margin mode. Exporting larger than the input image adds no detail: do not pick a size above the input's own resolution, and 0 or -1 gain nothing on inputs under 512 px. Accepted values: 32, 64, 96, 128, 192, 256, 384, 0, -1, -9. Default: 0."
    • changedInput schema / properties / requestBody / properties / frames / description
      Previous value: -"Number of frames in the output spritesheet. Accepted values: 4, 9, 16, 25, 36, 49, 64. Default: 36."New value: +"Maximum number of frames in the output spritesheet. Allow about one second of duration per 12 frames - above that the model may not be able to produce them all (36 frames needs a duration of at least 3). 49 and 64 are more prone to looping issues and motion blur. The result can have fewer frames when the duration is short or bad frames were removed. Accepted values: 4, 9, 16, 25, 36, 49, 64. Default: 36."
    • changedInput schema / properties / requestBody / properties / image_type / description
      Previous value: -"Type of sprite being animated. Affects generation parameters and styling. Default: \"sprite\"."New value: +"Type of sprite being animated. Affects generation parameters and styling. Tiling types (horizontal / vertical tiles, scrolling backgrounds, parallax layers, textures) stay seamless only on forge and forge-pixel, and only if the input image itself already wraps seamlessly on that axis; otherwise the animation shows a visible seam when tiled. Default: \"sprite\"."
    • changedInput schema / properties / requestBody / properties / margin_ratio_horizontal / description
      Previous value: -"Horizontal padding around the sprite as a ratio (0.0 to 1.0). Useful for animations that extend sideways (e.g., sword slashes, punches). Supplying a value selects margin_ratio_mode \"manual\" unless margin_ratio_mode is set explicitly; overrides the legacy margin_ratio on this axis."New value: +"Horizontal padding around the sprite as a ratio (0.0 to 1.0). Every bit of margin is resolution taken from the sprite, so keep it as tight as the motion allows - about 0.15 - and go higher only for motion that extends sideways (sword slashes, punches) or if the sprite gets cut off. Supplying a value selects margin_ratio_mode \"manual\" unless margin_ratio_mode is set explicitly; overrides the legacy margin_ratio on this axis."
    • changedInput schema / properties / requestBody / properties / margin_ratio_mode / description
      Previous value: -"Controls how margins are applied around the sprite. Omit it and send margin_ratio_horizontal / margin_ratio_vertical to get \"manual\" automatically. \"manual\" requires margin_ratio_horizontal and/or margin_ratio_vertical (or the legacy margin_ratio); sending \"manual\" with no margin value fails with HTTP 400. Sending \"auto\" or \"none\" explicitly together with a margin value fails with HTTP 400 (the value would be ignored). Default: \"auto\"."New value: +"How the sprite is framed for generation. The model always generates on a canvas of the same size, so any margin is canvas the sprite does not fill: the more margin, the lower the resolution and detail of the sprite. \"auto\" (default, recommended) trims and centers the sprite and picks a margin suited to the motion. \"manual\" uses margin_ratio_horizontal / margin_ratio_vertical; keep them as tight as the motion allows (about 0.15) and raise only the axis the motion needs. \"none\" animates the input exactly as framed, with no trimming and no margin added, so the input must already have suitable margins: a sprite touching the edges gets its limbs, weapons and effects cut off as soon as it moves, and an image that is mostly empty space yields a small, low-detail sprite. \"none\" is the way to keep a deliberately off-center sprite (e.g. a character at the left edge firing a beam to the right), but results can be unpredictable. Do not use \"none\" to make the spritesheet line up with the input image - use frame_size -9 (True Size) for that; it works with any margin mode. Rules: omit margin_ratio_mode and send margin_ratio_horizontal / margin_ratio_vertical to get \"manual\" automatically; \"manual\" with no margin value fails with HTTP 400; \"auto\" or \"none\" sent together with a margin value fails with HTTP 400 (the value would be ignored). Default: \"auto\"."
    • changedInput schema / properties / requestBody / properties / margin_ratio_vertical / description
      Previous value: -"Vertical padding around the sprite as a ratio (0.0 to 1.0). Useful for animations that extend up or down (e.g., jumps). Supplying a value selects margin_ratio_mode \"manual\" unless margin_ratio_mode is set explicitly; overrides the legacy margin_ratio on this axis."New value: +"Vertical padding around the sprite as a ratio (0.0 to 1.0). Every bit of margin is resolution taken from the sprite, so keep it as tight as the motion allows - about 0.15 - and go higher only for motion that extends up or down (jumps) or if the sprite gets cut off. Supplying a value selects margin_ratio_mode \"manual\" unless margin_ratio_mode is set explicitly; overrides the legacy margin_ratio on this axis."
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, min charge 9 credits · Most capable all-around model, generates audio\n- \"forge\" (Forge): 1.5 credits/s, min charge 4 credits · Sharper detail, simpler motion. Best for simple body shapes and short actions; may need a few tries\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min charge 4 credits · Best for low-res pixel art animations\n- \"blitz\" (Blitz): 1.9 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new. Default: \"hydra\"."New value: +"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, min charge 9 credits · Most capable all-around model, generates audio\n- \"forge\" (Forge): 1.5 credits/s, min charge 4 credits · Sharper detail, simpler motion. Best for simple body shapes and short actions; may need a few tries\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min charge 4 credits · Best for low-res pixel art animations\n- \"blitz\" (Blitz): 1.9 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new.\nforge-pixel expects real pixel art - a perfect pixel grid at its natural resolution; for other art use hydra or forge. Tiling image types stay seamless only on forge and forge-pixel. Default: \"hydra\"."
    • changedInput schema / properties / requestBody / properties / motion_prompt / description
      Previous value: -"Text description of the desired animation, e.g. \"walking\", \"idle breathing\", \"attack slash\", \"casting a fireball with both hands\". Describe exactly and unambiguously what the character should do. Specific or complex actions are fine; there is no need to simplify them. Do not over-describe, though: too much detail can harm the animation, and an action the model already knows should be named, not decomposed into its steps (\"walking\", never \"move the left foot forward, then the right foot\"). Do not restate what initial_image already shows (the character, its appearance and equipment, the art style, the background, the lighting, the camera), and leave frame count and timing to the frames and duration fields. Negative phrasing (\"no background\", \"do not move the camera\", \"without a weapon\") works only on hydra. On forge, forge-pixel and the legacy models it backfires: naming something you do not want makes it more likely to appear, so \"without a weapon\" tends to produce a weapon. On those models never phrase anything negatively; state only what should happen, and control everything else through the image and the other fields."New value: +"Text description of the desired animation, e.g. \"walking\", \"idle breathing\", \"attack slash\", \"casting a fireball with both hands\". Describe exactly and unambiguously what the character should do. Specific or complex actions are fine; there is no need to simplify them. Do not over-describe, though: too much detail can harm the animation, and an action the model already knows should be named, not decomposed into its steps (\"walking\", never \"move the left foot forward, then the right foot\"). Do not restate what initial_image already shows (the character, its appearance and equipment, the art style, the background, the lighting, the camera), and leave frame count and timing to the frames and duration fields. Negative phrasing (\"no background\", \"do not move the camera\", \"without a weapon\") works only on hydra. On forge, forge-pixel and the legacy models it backfires: naming something you do not want makes it more likely to appear, so \"without a weapon\" tends to produce a weapon. On those models never phrase anything negatively; state only what should happen, and control everything else through the image and the other fields. Keep it well under 100 words: in longer prompts details start competing and some get dropped."
  11. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, shortest duration 3s, so 9 credits minimum · Most capable all-around model, generates audio\n- \"forge\" (Forge): 1.5 credits/s, min charge 4 credits · Sharper detail, simpler motion. Best for simple body shapes and short actions; may need a few tries\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min charge 4 credits · Best for low-res pixel art animations\n- \"blitz\" (Blitz): 1.9 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new. Default: \"hydra\"."New value: +"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, min charge 9 credits · Most capable all-around model, generates audio\n- \"forge\" (Forge): 1.5 credits/s, min charge 4 credits · Sharper detail, simpler motion. Best for simple body shapes and short actions; may need a few tries\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min charge 4 credits · Best for low-res pixel art animations\n- \"blitz\" (Blitz): 1.9 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new. Default: \"hydra\"."
  12. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, shortest duration 3s, so 9 credits minimum · Most capable all-around model, generates audio\n- \"forge\" (Forge): 1.5 credits/s, min charge 4 credits · Use only for basic animations and simple sprites. Multiple tries might be needed\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min charge 4 credits · Best for low-res pixel art animations\n- \"blitz\" (Blitz): 1.9 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new. Default: \"hydra\"."New value: +"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, shortest duration 3s, so 9 credits minimum · Most capable all-around model, generates audio\n- \"forge\" (Forge): 1.5 credits/s, min charge 4 credits · Sharper detail, simpler motion. Best for simple body shapes and short actions; may need a few tries\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min charge 4 credits · Best for low-res pixel art animations\n- \"blitz\" (Blitz): 1.9 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new. Default: \"hydra\"."
  13. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / motion_prompt / description
      Previous value: -"Text description of the desired animation (e.g., \"walking\", \"jumping\", \"idle breathing\", \"attack slash\")."New value: +"Text description of the desired animation, e.g. \"walking\", \"idle breathing\", \"attack slash\", \"casting a fireball with both hands\". Describe exactly and unambiguously what the character should do. Specific or complex actions are fine; there is no need to simplify them. Do not over-describe, though: too much detail can harm the animation, and an action the model already knows should be named, not decomposed into its steps (\"walking\", never \"move the left foot forward, then the right foot\"). Do not restate what initial_image already shows (the character, its appearance and equipment, the art style, the background, the lighting, the camera), and leave frame count and timing to the frames and duration fields. Negative phrasing (\"no background\", \"do not move the camera\", \"without a weapon\") works only on hydra. On forge, forge-pixel and the legacy models it backfires: naming something you do not want makes it more likely to appear, so \"without a weapon\" tends to produce a weapon. On those models never phrase anything negatively; state only what should happen, and control everything else through the image and the other fields."
  14. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, shortest duration 3s, so 9 credits minimum · Most capable model, generates audio\n- \"forge\" (Forge): 1.5 credits/s, min charge 4 credits · Best for basic animations and relatively simple sprites\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min charge 4 credits · Best for low-res pixel art animations\n- \"blitz\" (Blitz): 1.9 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new. Default: \"hydra\"."New value: +"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, shortest duration 3s, so 9 credits minimum · Most capable all-around model, generates audio\n- \"forge\" (Forge): 1.5 credits/s, min charge 4 credits · Use only for basic animations and simple sprites. Multiple tries might be needed\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min charge 4 credits · Best for low-res pixel art animations\n- \"blitz\" (Blitz): 1.9 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new. Default: \"hydra\"."
  15. Changed5 schema fields changed
    • changedInput schema / properties / requestBody / properties / crop / description
      Previous value: -"Crop sprite frames to fit content. Results in smaller spritesheets but inconsistent frame sizes across different animations. Default: false."New value: +"Crop sprite frames to fit content. Results in smaller spritesheets but inconsistent frame sizes across different animations. Default: true."
    • changedInput schema / properties / requestBody / properties / crop / example
      Previous value: -falseNew value: +true
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s\n- \"forge\" (Forge): 1.5 credits/s, min 4\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min 4\n- \"blitz\" (Blitz): 1.9 credits/s, min 4 · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min 4 · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min 4 · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new. Default: \"blitz\"."New value: +"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, shortest duration 3s, so 9 credits minimum · Most capable model, generates audio\n- \"forge\" (Forge): 1.5 credits/s, min charge 4 credits · Best for basic animations and relatively simple sprites\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min charge 4 credits · Best for low-res pixel art animations\n- \"blitz\" (Blitz): 1.9 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min charge 4 credits · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new. Default: \"hydra\"."
    • changedInput schema / properties / requestBody / properties / model / example
      Previous value: -"blitz"New value: +"hydra"
    • 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."
  16. Changed3 schema fields changed
    • changedInput schema / properties / requestBody / properties / duration / description
      Previous value: -"Duration in seconds. Available values depend on the model:\n- hydra: 3, 3.5, 4, 4.5, 5\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- eagle-audio: 1, 2, 3, 4\n- forge: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5\n- forge-pixel: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5 Default: 3."New value: +"Duration in seconds. Available values depend on the model:\n- hydra: 3, 3.5, 4, 4.5, 5\n- forge: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5\n- forge-pixel: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- eagle-audio: 1, 2, 3, 4 Default: 3."
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, min 4\n- \"blitz\" (Blitz): 1.9 credits/s, min 4\n- \"eagle\" (Eagle): 2.6 credits/s, min 4\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min 4\n- \"forge\" (Forge): 1.5 credits/s, min 4\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min 4\nLegacy aliases: \"standard\" → blitz. Default: \"blitz\"."New value: +"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s\n- \"forge\" (Forge): 1.5 credits/s, min 4\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min 4\n- \"blitz\" (Blitz): 1.9 credits/s, min 4 · LEGACY - scheduled for removal, do not use for new work\n- \"eagle\" (Eagle): 2.6 credits/s, min 4 · LEGACY - scheduled for removal, do not use for new work\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min 4 · LEGACY - scheduled for removal, do not use for new work\nLegacy aliases: \"standard\" → blitz.\nModels marked LEGACY still work for existing integrations but will be removed; pick a current model for anything new. Default: \"blitz\"."
    • changedInput schema / properties / requestBody / properties / model / enum
      Previous value: -[
      -  "hydra",
      -  "blitz",
      -  "standard",
      -  "eagle",
      -  "eagle-audio",
      -  "forge",
      -  "forge-pixel"
      -]New value: +[
      +  "hydra",
      +  "forge",
      +  "forge-pixel",
      +  "blitz",
      +  "standard",
      +  "eagle",
      +  "eagle-audio"
      +]
  17. Changed5 schema fields changed
    • changedInput schema / properties / requestBody / properties / duration / description
      Previous value: -"Duration in seconds. Available values depend on the model:\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- eagle-audio: 1, 2, 3, 4\n- forge: 1, 1.5, 2, 2.5, 3, 3.5, 4\n- forge-pixel: 1, 1.5, 2, 2.5, 3, 3.5, 4 Default: 3."New value: +"Duration in seconds. Available values depend on the model:\n- hydra: 3, 3.5, 4, 4.5, 5\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- eagle-audio: 1, 2, 3, 4\n- forge: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5\n- forge-pixel: 1, 1.5, 2, 2.5, 3, 3.5, 4, 4.5, 5 Default: 3."
    • changedInput schema / properties / requestBody / properties / frame_size / example
      Previous value: -32New value: +0
    • changedInput schema / properties / requestBody / properties / frames / example
      Previous value: -4New value: +36
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"Model to use. Available models:\n- \"blitz\" (Blitz): Visual Quality: 4/10 · Motion Stability: 8/10 · 1.9 credits/s, min 4\n- \"eagle\" (Eagle): Visual Quality: 8/10 · Motion Stability: 5/10 · 2.6 credits/s, min 4\n- \"eagle-audio\" (Eagle with Audio): Visual Quality: 8/10 · Motion Stability: 5/10 · 3.1 credits/s, min 4\n- \"forge\" (Forge): 1.5 credits/s, min 4\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min 4\nLegacy aliases: \"standard\" → blitz. Default: \"blitz\"."New value: +"Model to use. Available models:\n- \"hydra\" (Hydra): 3 credits/s, min 4\n- \"blitz\" (Blitz): 1.9 credits/s, min 4\n- \"eagle\" (Eagle): 2.6 credits/s, min 4\n- \"eagle-audio\" (Eagle with Audio): 3.1 credits/s, min 4\n- \"forge\" (Forge): 1.5 credits/s, min 4\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min 4\nLegacy aliases: \"standard\" → blitz. Default: \"blitz\"."
    • changedInput schema / properties / requestBody / properties / model / enum
      Previous value: -[
      -  "blitz",
      -  "standard",
      -  "eagle",
      -  "eagle-audio",
      -  "forge",
      -  "forge-pixel"
      -]New value: +[
      +  "hydra",
      +  "blitz",
      +  "standard",
      +  "eagle",
      +  "eagle-audio",
      +  "forge",
      +  "forge-pixel"
      +]
  18. 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: +"Augment the prompt behind the scenes. Disable to have more control. Incompatible with automatic framing: false requires margin_ratio_mode \"manual\" (with margin_ratio_horizontal and/or margin_ratio_vertical) or \"none\". Because margin_ratio_mode defaults to \"auto\", sending augment_prompt false on its own fails with HTTP 400. Default: true."
  19. Changed28 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 / crop / default
      Removed value: -false
    • changedInput schema / properties / requestBody / properties / crop / description
      Previous value: -"Crop sprite frames to fit content. Results in smaller spritesheets but inconsistent frame sizes across different animations."New value: +"Crop sprite frames to fit content. Results in smaller spritesheets but inconsistent frame sizes across different animations. Default: false."
    • removedInput schema / properties / requestBody / properties / duration / default
      Removed value: -3
    • changedInput schema / properties / requestBody / properties / duration / description
      Previous value: -"Duration in seconds. Available values depend on the model:\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- eagle-audio: 1, 2, 3, 4\n- forge: 1, 1.5, 2, 2.5, 3, 3.5, 4\n- forge-pixel: 1, 1.5, 2, 2.5, 3, 3.5, 4"New value: +"Duration in seconds. Available values depend on the model:\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- eagle-audio: 1, 2, 3, 4\n- forge: 1, 1.5, 2, 2.5, 3, 3.5, 4\n- forge-pixel: 1, 1.5, 2, 2.5, 3, 3.5, 4 Default: 3."
    • removedInput schema / properties / requestBody / properties / frame_size / default
      Removed value: -0
    • changedInput schema / properties / requestBody / properties / frame_size / description
      Previous value: -"Size of each frame in pixels (width and height). 0 is for maximum resolution. -1 is for AI 1.5x upscaling. -9 is for matching the size and position of the input frame. Accepted values: 32, 64, 96, 128, 192, 256, 384, 0, -1, -9."New value: +"Size of each frame in pixels (width and height). 0 is for maximum resolution. -1 is for AI 1.5x upscaling. -9 is for matching the size and position of the input frame. Accepted values: 32, 64, 96, 128, 192, 256, 384, 0, -1, -9. Default: 0."
    • removedInput schema / properties / requestBody / properties / frames / default
      Removed value: -36
    • changedInput schema / properties / requestBody / properties / frames / description
      Previous value: -"Number of frames in the output spritesheet. Accepted values: 4, 9, 16, 25, 36, 49, 64."New value: +"Number of frames in the output spritesheet. Accepted values: 4, 9, 16, 25, 36, 49, 64. Default: 36."
    • removedInput schema / properties / requestBody / properties / gif / default
      Removed value: -false
    • changedInput schema / properties / requestBody / properties / gif / description
      Previous value: -"When true, generates an animated GIF from the spritesheet and returns it in gif_url. Disabled by default to reduce response time."New value: +"When true, generates an animated GIF from the spritesheet and returns it in gif_url. Disabled by default to reduce response time. Default: false."
    • removedInput schema / properties / requestBody / properties / image_type / default
      Removed value: -"sprite"
    • changedInput schema / properties / requestBody / properties / image_type / description
      Previous value: -"Type of sprite being animated. Affects generation parameters and styling."New value: +"Type of sprite being animated. Affects generation parameters and styling. Default: \"sprite\"."
    • removedInput schema / properties / requestBody / properties / individual_frames / default
      Removed value: -false
    • changedInput schema / properties / requestBody / properties / individual_frames / description
      Previous value: -"When true, extracts each frame from the spritesheet as an individual image and returns the URLs in individual_frame_urls."New value: +"When true, extracts each frame from the spritesheet as an individual image and returns the URLs in individual_frame_urls. Default: false."
    • removedInput schema / properties / requestBody / properties / loop / default
      Removed value: -true
    • changedInput schema / properties / requestBody / properties / loop / description
      Previous value: -"Trim the animation at the beginning or end to create a seamless loop. Not guaranteed to produce a perfect loop."New value: +"Trim the animation at the beginning or end to create a seamless loop. Not guaranteed to produce a perfect loop. Default: true."
    • addedInput schema / properties / requestBody / properties / margin_ratio / deprecated
      Added value: +true
    • changedInput schema / properties / requestBody / properties / margin_ratio / description
      Previous value: -"Deprecated - prefer margin_ratio_horizontal / margin_ratio_vertical. Amount of padding around the sprite as a ratio (0.0 to 1.0), applied to both axes (equivalent to setting both per-axis params to this value). Only used when margin_ratio_mode is \"manual\". Cannot be combined with the per-axis params: providing both fails with HTTP 400."New value: +"Deprecated: prefer margin_ratio_horizontal / margin_ratio_vertical. Amount of padding around the sprite as a ratio (0.0 to 1.0). Sets both axes to this value. A per-axis value, when also given, overrides this for that axis. Supplying any margin value selects margin_ratio_mode \"manual\" unless margin_ratio_mode is set explicitly."
    • changedInput schema / properties / requestBody / properties / margin_ratio_horizontal / description
      Previous value: -"Horizontal padding around the sprite as a ratio (0.0 to 1.0). Only used when margin_ratio_mode is \"manual\". Useful for animations that extend sideways (e.g., sword slashes, punches). Cannot be combined with the legacy margin_ratio param."New value: +"Horizontal padding around the sprite as a ratio (0.0 to 1.0). Useful for animations that extend sideways (e.g., sword slashes, punches). Supplying a value selects margin_ratio_mode \"manual\" unless margin_ratio_mode is set explicitly; overrides the legacy margin_ratio on this axis."
    • removedInput schema / properties / requestBody / properties / margin_ratio_mode / default
      Removed value: -"auto"
    • changedInput schema / properties / requestBody / properties / margin_ratio_mode / description
      Previous value: -"Controls how margins are applied around the sprite. \"manual\" requires margin_ratio_horizontal and/or margin_ratio_vertical (or the legacy margin_ratio); sending \"manual\" with no margin value fails with HTTP 400."New value: +"Controls how margins are applied around the sprite. Omit it and send margin_ratio_horizontal / margin_ratio_vertical to get \"manual\" automatically. \"manual\" requires margin_ratio_horizontal and/or margin_ratio_vertical (or the legacy margin_ratio); sending \"manual\" with no margin value fails with HTTP 400. Sending \"auto\" or \"none\" explicitly together with a margin value fails with HTTP 400 (the value would be ignored). Default: \"auto\"."
    • changedInput schema / properties / requestBody / properties / margin_ratio_vertical / description
      Previous value: -"Vertical padding around the sprite as a ratio (0.0 to 1.0). Only used when margin_ratio_mode is \"manual\". Useful for animations that extend up or down (e.g., jumps). Cannot be combined with the legacy margin_ratio param."New value: +"Vertical padding around the sprite as a ratio (0.0 to 1.0). Useful for animations that extend up or down (e.g., jumps). Supplying a value selects margin_ratio_mode \"manual\" unless margin_ratio_mode is set explicitly; overrides the legacy margin_ratio on this axis."
    • removedInput schema / properties / requestBody / properties / model / default
      Removed value: -"blitz"
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"Model to use. Available models:\n- \"blitz\" (Blitz): Visual Quality: 4/10 · Motion Stability: 8/10 · 1.9 credits/s, min 4\n- \"eagle\" (Eagle): Visual Quality: 8/10 · Motion Stability: 5/10 · 2.6 credits/s, min 4\n- \"eagle-audio\" (Eagle with Audio): Visual Quality: 8/10 · Motion Stability: 5/10 · 3.1 credits/s, min 4\n- \"forge\" (Forge): 1.5 credits/s, min 4\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min 4\nLegacy aliases: \"standard\" → blitz."New value: +"Model to use. Available models:\n- \"blitz\" (Blitz): Visual Quality: 4/10 · Motion Stability: 8/10 · 1.9 credits/s, min 4\n- \"eagle\" (Eagle): Visual Quality: 8/10 · Motion Stability: 5/10 · 2.6 credits/s, min 4\n- \"eagle-audio\" (Eagle with Audio): Visual Quality: 8/10 · Motion Stability: 5/10 · 3.1 credits/s, min 4\n- \"forge\" (Forge): 1.5 credits/s, min 4\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min 4\nLegacy aliases: \"standard\" → blitz. Default: \"blitz\"."
    • removedInput schema / properties / requestBody / properties / spritesheet_with_background / default
      Removed value: -false
    • changedInput schema / properties / requestBody / properties / spritesheet_with_background / description
      Previous value: -"When true, also returns the spritesheet with background intact (before background removal). Useful for manually fixing background removal issues. The with-background spritesheet URL will be in spritesheet_with_background_url."New value: +"When true, also returns the spritesheet with background intact (before background removal). Useful for manually fixing background removal issues. The with-background spritesheet URL will be in spritesheet_with_background_url. Default: false."
  20. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / margin_ratio_mode / description
      Previous value: -"Controls how margins are applied around the sprite."New value: +"Controls how margins are applied around the sprite. \"manual\" requires margin_ratio_horizontal and/or margin_ratio_vertical (or the legacy margin_ratio); sending \"manual\" with no margin value fails with HTTP 400."
  21. Changed5 schema fields changed
    • addedInput schema / properties / requestBody / properties / crop / default
      Added value: +false
    • addedInput schema / properties / requestBody / properties / crop / example
      Added value: +false
    • addedInput schema / properties / requestBody / properties / duration / default
      Added value: +3
    • addedInput schema / properties / requestBody / properties / duration / example
      Added value: +3
    • addedInput schema / properties / requestBody / properties / image_type / default
      Added value: +"sprite"
  22. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / margin_ratio / description
      Previous value: -"Deprecated — prefer margin_ratio_horizontal / margin_ratio_vertical. Amount of padding around the sprite as a ratio (0.0 to 1.0), applied to both axes (equivalent to setting both per-axis params to this value). Only used when margin_ratio_mode is \"manual\". Cannot be combined with the per-axis params: providing both fails with HTTP 400."New value: +"Deprecated - prefer margin_ratio_horizontal / margin_ratio_vertical. Amount of padding around the sprite as a ratio (0.0 to 1.0), applied to both axes (equivalent to setting both per-axis params to this value). Only used when margin_ratio_mode is \"manual\". Cannot be combined with the per-axis params: providing both fails with HTTP 400."
  23. 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."
  24. Changed4 schema fields changed
    • changedInput schema / properties / requestBody / properties / duration / description
      Previous value: -"Duration in seconds. Available values depend on the model:\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- eagle-audio: 1, 2, 3, 4\n- forge: 1, 1.5, 2, 2.5, 3, 3.5, 4"New value: +"Duration in seconds. Available values depend on the model:\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- eagle-audio: 1, 2, 3, 4\n- forge: 1, 1.5, 2, 2.5, 3, 3.5, 4\n- forge-pixel: 1, 1.5, 2, 2.5, 3, 3.5, 4"
    • changedInput schema / properties / requestBody / properties / image_type / enum
      Previous value: -[
      -  "sprite",
      -  "sprite-vfx",
      -  "ui_asset"
      -]New value: +[
      +  "sprite",
      +  "sprite-vfx",
      +  "item-icon",
      +  "ui_asset",
      +  "logo",
      +  "sprite-tiling-horizontal",
      +  "sprite-tiling-vertical",
      +  "parallax_layer",
      +  "tile",
      +  "texture",
      +  "portrait",
      +  "card-art"
      +]
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"Model to use. Available models:\n- \"blitz\" (Blitz): Visual Quality: 4/10 · Motion Stability: 8/10 · 1.9 credits/s, min 4\n- \"eagle\" (Eagle): Visual Quality: 8/10 · Motion Stability: 5/10 · 2.6 credits/s, min 4\n- \"eagle-audio\" (Eagle with Audio): Visual Quality: 8/10 · Motion Stability: 5/10 · 3.1 credits/s, min 4\n- \"forge\" (Forge): 1.5 credits/s, min 4\nLegacy aliases: \"standard\" → blitz."New value: +"Model to use. Available models:\n- \"blitz\" (Blitz): Visual Quality: 4/10 · Motion Stability: 8/10 · 1.9 credits/s, min 4\n- \"eagle\" (Eagle): Visual Quality: 8/10 · Motion Stability: 5/10 · 2.6 credits/s, min 4\n- \"eagle-audio\" (Eagle with Audio): Visual Quality: 8/10 · Motion Stability: 5/10 · 3.1 credits/s, min 4\n- \"forge\" (Forge): 1.5 credits/s, min 4\n- \"forge-pixel\" (Forge Pixel): 1.5 credits/s, min 4\nLegacy aliases: \"standard\" → blitz."
    • changedInput schema / properties / requestBody / properties / model / enum
      Previous value: -[
      -  "blitz",
      -  "standard",
      -  "eagle",
      -  "eagle-audio",
      -  "forge"
      -]New value: +[
      +  "blitz",
      +  "standard",
      +  "eagle",
      +  "eagle-audio",
      +  "forge",
      +  "forge-pixel"
      +]
  25. Changed3 schema fields changed
    • changedInput schema / properties / requestBody / properties / duration / description
      Previous value: -"Duration in seconds. Available values depend on the model:\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- eagle-audio: 1, 2, 3, 4\n- chaos: 4"New value: +"Duration in seconds. Available values depend on the model:\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- eagle-audio: 1, 2, 3, 4\n- forge: 1, 1.5, 2, 2.5, 3, 3.5, 4"
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"Model to use. Available models:\n- \"blitz\" (Blitz): Visual Quality: 4/10 · Motion Stability: 8/10 · 1.9 credits/s, min 4\n- \"eagle\" (Eagle): Visual Quality: 8/10 · Motion Stability: 5/10 · 2.6 credits/s, min 4\n- \"eagle-audio\" (Eagle with Audio): Visual Quality: 8/10 · Motion Stability: 5/10 · 3.1 credits/s, min 4\n- \"chaos\" (Chaos): Visual Quality: 6/10 · Motion Stability: 3/10 · 1.4 credits/s, min 4\nLegacy aliases: \"standard\" → blitz, \"new\" → chaos."New value: +"Model to use. Available models:\n- \"blitz\" (Blitz): Visual Quality: 4/10 · Motion Stability: 8/10 · 1.9 credits/s, min 4\n- \"eagle\" (Eagle): Visual Quality: 8/10 · Motion Stability: 5/10 · 2.6 credits/s, min 4\n- \"eagle-audio\" (Eagle with Audio): Visual Quality: 8/10 · Motion Stability: 5/10 · 3.1 credits/s, min 4\n- \"forge\" (Forge): 1.5 credits/s, min 4\nLegacy aliases: \"standard\" → blitz."
    • changedInput schema / properties / requestBody / properties / model / enum
      Previous value: -[
      -  "blitz",
      -  "standard",
      -  "eagle",
      -  "eagle-audio",
      -  "chaos",
      -  "new"
      -]New value: +[
      +  "blitz",
      +  "standard",
      +  "eagle",
      +  "eagle-audio",
      +  "forge"
      +]
  26. Changed3 schema fields changed
    • changedInput schema / properties / requestBody / properties / margin_ratio / description
      Previous value: -"Amount of padding around the sprite as a ratio (0.0 to 1.0). Only used when margin_ratio_mode is \"manual\". Higher values provide more space for expansive animations."New value: +"Deprecated — prefer margin_ratio_horizontal / margin_ratio_vertical. Amount of padding around the sprite as a ratio (0.0 to 1.0), applied to both axes (equivalent to setting both per-axis params to this value). Only used when margin_ratio_mode is \"manual\". Cannot be combined with the per-axis params: providing both fails with HTTP 400."
    • addedInput schema / properties / requestBody / properties / margin_ratio_horizontal
      Added value: +{
      +  "description": "Horizontal padding around the sprite as a ratio (0.0 to 1.0). Only used when margin_ratio_mode is \"manual\". Useful for animations that extend sideways (e.g., sword slashes, punches). Cannot be combined with the legacy margin_ratio param.",
      +  "format": "float",
      +  "type": "number"
      +}
    • addedInput schema / properties / requestBody / properties / margin_ratio_vertical
      Added value: +{
      +  "description": "Vertical padding around the sprite as a ratio (0.0 to 1.0). Only used when margin_ratio_mode is \"manual\". Useful for animations that extend up or down (e.g., jumps). Cannot be combined with the legacy margin_ratio param.",
      +  "format": "float",
      +  "type": "number"
      +}
  27. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / frame_size / description
      Previous value: -"Size of each frame in pixels (width and height). 0 is for maximum resolution. Accepted values: 32, 64, 96, 128, 192, 256, 384, 0."New value: +"Size of each frame in pixels (width and height). 0 is for maximum resolution. -1 is for AI 1.5x upscaling. -9 is for matching the size and position of the input frame. Accepted values: 32, 64, 96, 128, 192, 256, 384, 0, -1, -9."
  28. Changed3 schema fields changed
    • changedInput schema / properties / requestBody / properties / duration / description
      Previous value: -"Duration in seconds. Available values depend on the model:\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- chaos: 4"New value: +"Duration in seconds. Available values depend on the model:\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- eagle-audio: 1, 2, 3, 4\n- chaos: 4"
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"Model to use. Available models:\n- \"blitz\" (Blitz): Visual Quality: 4/10 · Motion Stability: 8/10 · 1.9 credits/s, min 4\n- \"eagle\" (Eagle): Visual Quality: 8/10 · Motion Stability: 5/10 · 2.6 credits/s, min 4\n- \"chaos\" (Chaos): Visual Quality: 6/10 · Motion Stability: 3/10 · 1.4 credits/s, min 4\nLegacy aliases: \"standard\" → blitz, \"new\" → chaos."New value: +"Model to use. Available models:\n- \"blitz\" (Blitz): Visual Quality: 4/10 · Motion Stability: 8/10 · 1.9 credits/s, min 4\n- \"eagle\" (Eagle): Visual Quality: 8/10 · Motion Stability: 5/10 · 2.6 credits/s, min 4\n- \"eagle-audio\" (Eagle with Audio): Visual Quality: 8/10 · Motion Stability: 5/10 · 3.1 credits/s, min 4\n- \"chaos\" (Chaos): Visual Quality: 6/10 · Motion Stability: 3/10 · 1.4 credits/s, min 4\nLegacy aliases: \"standard\" → blitz, \"new\" → chaos."
    • changedInput schema / properties / requestBody / properties / model / enum
      Previous value: -[
      -  "blitz",
      -  "standard",
      -  "eagle",
      -  "chaos",
      -  "new"
      -]New value: +[
      +  "blitz",
      +  "standard",
      +  "eagle",
      +  "eagle-audio",
      +  "chaos",
      +  "new"
      +]
  29. Changed6 schema fields changed
    • changedInput schema / properties / requestBody / properties / duration / description
      Previous value: -"Animation length in seconds. Available values depend on the model:\n- standard model: 1.2, 1.5, 2, 2.5, 3 (default: 2)\n- new model: 4 (default: 4) Accepted values: 1.2, 1.5, 2, 2.5, 3, 4."New value: +"Duration in seconds. Available values depend on the model:\n- blitz: 1.2, 1.5, 2, 2.5, 3, 3.5, 4\n- eagle: 1, 2, 3, 4\n- chaos: 4"
    • removedInput schema / properties / requestBody / properties / duration / example
      Removed value: -1.2
    • changedInput schema / properties / requestBody / properties / model / default
      Previous value: -"standard"New value: +"blitz"
    • changedInput schema / properties / requestBody / properties / model / description
      Previous value: -"Animation model to use.\n- \"standard\": More consistent and predictable. Durations: 1.2, 1.5, 2, 2.5, 3 seconds (default: 2)\n- \"new\": Higher quality with more dynamic motion. Duration: 4 seconds only\n"New value: +"Model to use. Available models:\n- \"blitz\" (Blitz): Visual Quality: 4/10 · Motion Stability: 8/10 · 1.9 credits/s, min 4\n- \"eagle\" (Eagle): Visual Quality: 8/10 · Motion Stability: 5/10 · 2.6 credits/s, min 4\n- \"chaos\" (Chaos): Visual Quality: 6/10 · Motion Stability: 3/10 · 1.4 credits/s, min 4\nLegacy aliases: \"standard\" → blitz, \"new\" → chaos."
    • changedInput schema / properties / requestBody / properties / model / enum
      Previous value: -[
      -  "standard",
      -  "new"
      -]New value: +[
      +  "blitz",
      +  "standard",
      +  "eagle",
      +  "chaos",
      +  "new"
      +]
    • changedInput schema / properties / requestBody / properties / model / example
      Previous value: -"standard"New value: +"blitz"
  30. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / frame_size / description
      Previous value: -"Size of each frame in pixels (width and height). 0 is for maximum resolution. Accepted values: 32, 64, 128, 192, 256, 384, 0."New value: +"Size of each frame in pixels (width and height). 0 is for maximum resolution. Accepted values: 32, 64, 96, 128, 192, 256, 384, 0."
  31. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / frame_size / description
      Previous value: -"Size of each frame in pixels (width and height). 0 is for maximum resolution. Accepted values: 32, 64, 128, 256, 384, 0."New value: +"Size of each frame in pixels (width and height). 0 is for maximum resolution. Accepted values: 32, 64, 128, 192, 256, 384, 0."
  32. Changed2 schema fields changed
    • changedInput schema / properties / requestBody / properties / frame_size / description
      Previous value: -"Size of each frame in pixels (width and height). 0 is for maximum resolution. Accepted values: 64, 128, 256, 0."New value: +"Size of each frame in pixels (width and height). 0 is for maximum resolution. Accepted values: 32, 64, 128, 256, 384, 0."
    • changedInput schema / properties / requestBody / properties / frame_size / example
      Previous value: -64New value: +32
  33. Changed6 schema fields changed
    • changedInput schema / properties / requestBody / properties / duration / description
      Previous value: -"Animation length in seconds. Available values depend on the model:\n- standard model: 1.2, 1.5, 2, 2.5, 3 (default: 2)\n- new model: 4 (default: 4)\n"New value: +"Animation length in seconds. Available values depend on the model:\n- standard model: 1.2, 1.5, 2, 2.5, 3 (default: 2)\n- new model: 4 (default: 4) Accepted values: 1.2, 1.5, 2, 2.5, 3, 4."
    • removedInput schema / properties / requestBody / properties / duration / enum
      Removed value: -[
      -  1.2,
      -  1.5,
      -  2,
      -  2.5,
      -  3,
      -  4
      -]
    • changedInput schema / properties / requestBody / properties / frame_size / description
      Previous value: -"Size of each frame in pixels (width and height). 0 is for maximum resolution."New value: +"Size of each frame in pixels (width and height). 0 is for maximum resolution. Accepted values: 64, 128, 256, 0."
    • removedInput schema / properties / requestBody / properties / frame_size / enum
      Removed value: -[
      -  64,
      -  128,
      -  256,
      -  0
      -]
    • changedInput schema / properties / requestBody / properties / frames / description
      Previous value: -"Number of frames in the output spritesheet."New value: +"Number of frames in the output spritesheet. Accepted values: 4, 9, 16, 25, 36, 49, 64."
    • removedInput schema / properties / requestBody / properties / frames / enum
      Removed value: -[
      -  4,
      -  9,
      -  16,
      -  25,
      -  36,
      -  49,
      -  64
      -]
  34. 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"
      +}
  35. Changed1 schema field changed
    • removedInput schema / properties / requestBody / properties / pixel_art_filter
      Removed value: -{
      -  "description": "Apply a pixelation filter to make the output look like pixel art.",
      -  "enum": [
      -    "none",
      -    "small",
      -    "medium",
      -    "large"
      -  ],
      -  "example": "none",
      -  "type": "string"
      -}
  36. Changed1 schema field changed
    • changedInput schema / properties / requestBody / properties / frame_size / default
      Previous value: -256New value: +0
  37. Changed1 schema field changed
    • addedInput schema / properties / requestBody / properties / spritesheet_with_background
      Added value: +{
      +  "default": false,
      +  "description": "When true, also returns the spritesheet with background intact (before background removal). Useful for manually fixing background removal issues. The with-background spritesheet URL will be in spritesheet_with_background_url.",
      +  "example": false,
      +  "type": "boolean"
      +}
  38. Changed2 schema fields changed
    • addedInput schema / properties / requestBody / properties / gif
      Added value: +{
      +  "default": false,
      +  "description": "When true, generates an animated GIF from the spritesheet and returns it in gif_url. Disabled by default to reduce response time.",
      +  "example": false,
      +  "type": "boolean"
      +}
    • addedInput schema / properties / requestBody / properties / individual_frames
      Added value: +{
      +  "default": false,
      +  "description": "When true, extracts each frame from the spritesheet as an individual image and returns the URLs in individual_frame_urls.",
      +  "example": false,
      +  "type": "boolean"
      +}
  39. Added

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already establish that this is a non-destructive, non-read-only, non-idempotent job, and the description goes well beyond them: credit hold/refund mechanics, the rule that the loop trim is not deducted, per-model audio behavior (hydra/hydra-plus return audio_url; forge models do not), and the HTTP 400 failure mode for incompatible model/duration pairs. The only reason it is not a 5 is that the credit-rate table largely duplicates the model enum in the schema rather than adding new behavioral insight.

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

Conciseness3/5

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

The purpose and tool-choice guidance are front-loaded, which is good, but the body is a single dense paragraph that mixes output contract, credits, model defaults, sibling routing, and prompt advice. It is informative yet noticeably bloated, with pricing details repeated verbatim from the model enum, so an agent scanning for the key decision points must wade through a wall of text.

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 complex async generation job with a deeply nested schema and no output schema, the description covers the returned fields (spritesheet_url, video_url, grid layout, optional gif/individual frames/background sheet, per-model audio_url) and the polling contract via getApiJob. Combined with the routing guidance and error behavior, an agent has everything needed to invoke and follow up correctly.

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 description coverage is 100%, so the baseline is 3, but the description adds cross-field semantics the per-property schema cannot: incompatible model/duration combinations fail with HTTP 400, and the output's spritesheet is trimmed to its best loop and may run shorter than the video. Most individual parameter hints (prompt style, defaults) restate the schema, which keeps this below a 5.

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?

The opening states a specific verb and transformation: 'Animate a static sprite into a spritesheet driven by a motion text prompt (image-to-spritesheet)', and immediately names the required inputs (initial_image, motion_prompt) plus the optional final_image interpolation. It explicitly distinguishes itself from animateSpriteKeyframes, transferMotion, and generatePose, so an agent can pick it without opening a sibling 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?

The 'Choosing a tool' section spells out when to use this tool versus transferMotion (reference video or listAnimationPresets preset), generatePose (source not in the starting pose), and animateSpriteKeyframes (up to three keyframes). It also states the default model (hydra), that model/duration must be compatible or the call returns HTTP 400, and that the result should be polled via getApiJob.

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.