Skip to main content
Glama

edit_image

Creates a Seedream image editing task on RunAPI from source image URLs and an optional prompt; returns the task ID, status, and output URLs.

Instructions

Create a Seedream task on RunAPI (edit image). Returns a task id, status, and output URLs.

Input Schema

NameRequiredDescriptionDefault
seedNoDeclared type: integer.
waitNoPoll until the task reaches a terminal status.
modelNoRunAPI model slug for this model line.
promptNoDeclared type: string.
backgroundNoKeep the transparent background of the source image. Requires exactly one PNG source image with an alpha channel and output_format png. Declared type: string. Known values: "transparent".
timeout_msNo
aspect_ratioNoDeclared type: string. Known values: "1:1", "4:3", "3:4", "16:9", "9:16", "2:3", "3:2", "21:9".
callback_urlNoDeclared type: string.
output_countNoDeclared type: integer.
output_formatNoDeclared type: string.
output_qualityNoDeclared type: string.
poll_interval_msNo
output_resolutionNoDeclared type: string.
source_image_urlsYesDeclared type: array.
enable_safety_checkerNoDeclared type: boolean.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv0.3.0
    • addedInput schema / properties / background
      Added value: +{
      +  "description": "Keep the transparent background of the source image. Requires exactly one PNG source image with an alpha channel and output_format png. Declared type: string. Known values: \"transparent\".",
      +  "type": "string"
      +}
  2. Changed19 schema fields changedv0.2.0
    • changedInput schema / additionalProperties
      Previous value: -falseNew value: +{}
    • addedInput schema / properties / aspect_ratio / description
      Added value: +"Declared type: string. Known values: \"1:1\", \"4:3\", \"3:4\", \"16:9\", \"9:16\", \"2:3\", \"3:2\", \"21:9\"."
    • removedInput schema / properties / aspect_ratio / enum
      Removed value: -[
      -  "1:1",
      -  "4:3",
      -  "3:4",
      -  "16:9",
      -  "9:16",
      -  "2:3",
      -  "3:2",
      -  "21:9"
      -]
    • addedInput schema / properties / callback_url / description
      Added value: +"Declared type: string."
    • addedInput schema / properties / enable_safety_checker / description
      Added value: +"Declared type: boolean."
    • removedInput schema / properties / model / enum
      Removed value: -[
      -  "seedream-4.5-edit",
      -  "seedream-5-lite-edit",
      -  "seedream-5-pro-edit",
      -  "seedream-v4-edit"
      -]
    • addedInput schema / properties / output_count / description
      Added value: +"Declared type: integer."
    • changedInput schema / properties / output_count / type
      Previous value: -"number"New value: +"integer"
    • addedInput schema / properties / output_format / description
      Added value: +"Declared type: string."
    • addedInput schema / properties / output_quality / description
      Added value: +"Declared type: string."
    • addedInput schema / properties / output_resolution / description
      Added value: +"Declared type: string."
    • addedInput schema / properties / poll_interval_ms / maximum
      Added value: +9007199254740991
    • addedInput schema / properties / prompt / description
      Added value: +"Declared type: string."
    • addedInput schema / properties / seed / description
      Added value: +"Declared type: integer."
    • changedInput schema / properties / seed / type
      Previous value: -"number"New value: +"integer"
    • addedInput schema / properties / source_image_urls / description
      Added value: +"Declared type: array."
    • removedInput schema / properties / source_image_urls / maxItems
      Removed value: -14
    • removedInput schema / properties / source_image_urls / minItems
      Removed value: -1
    • addedInput schema / properties / timeout_ms / maximum
      Added value: +9007199254740991
  3. Changed14 schema fields changedv0.1.7
    • addedInput schema / properties / callback_url
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / enable_safety_checker
      Added value: +{
      +  "type": "boolean"
      +}
    • changedInput schema / properties / model / enum
      Previous value: -[
      -  "seedream-4.5-edit",
      -  "seedream-5-lite-edit",
      -  "seedream-v4-edit"
      -]New value: +[
      +  "seedream-4.5-edit",
      +  "seedream-5-lite-edit",
      +  "seedream-5-pro-edit",
      +  "seedream-v4-edit"
      +]
    • removedInput schema / properties / output_count / enum
      Removed value: -[
      -  1,
      -  2,
      -  3,
      -  4,
      -  5,
      -  6
      -]
    • addedInput schema / properties / output_format
      Added value: +{
      +  "type": "string"
      +}
    • removedInput schema / properties / output_quality / enum
      Removed value: -[
      -  "basic",
      -  "high"
      -]
    • removedInput schema / properties / output_resolution / enum
      Removed value: -[
      -  "1k",
      -  "2k",
      -  "4k"
      -]
    • addedInput schema / properties / prompt
      Added value: +{
      +  "type": "string"
      +}
    • addedInput schema / properties / seed
      Added value: +{
      +  "type": "number"
      +}
    • addedInput schema / properties / source_image_urls / items
      Added value: +{}
    • addedInput schema / properties / source_image_urls / maxItems
      Added value: +14
    • addedInput schema / properties / source_image_urls / minItems
      Added value: +1
    • addedInput schema / properties / source_image_urls / type
      Added value: +"array"
    • addedInput schema / required
      Added value: +[
      +  "source_image_urls"
      +]
  4. First observedv0.1.0

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description carries the full disclosure burden. It hints at async behavior by promising a 'task id', but never explains that this is an asynchronous generation job, that the 'wait' parameter controls polling, that the call may incur cost (a check_pricing sibling exists), or what auth/rate-limit constraints apply.

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

Conciseness4/5

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

Two tight sentences with the operation front-loaded and no filler. The parenthetical '(edit image)' is mildly redundant with the tool name, but the whole description is appropriately sized for a 15-parameter tool.

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

Completeness3/5

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

The description compensates partly for the missing output schema by naming the return values (task id, status, output URLs), and the schema covers most parameters. However, for a 15-parameter async creation tool with side effects and no annotations, the absence of usage, async/polling, and cost context leaves meaningful gaps.

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

Parameters3/5

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

Schema description coverage is 87%, so the schema already documents nearly all 15 parameters, including the conditional constraint on 'background' and enum values on 'aspect_ratio'. The description adds no parameter-level detail, which matches the baseline 3 when the schema does the heavy lifting.

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

Purpose4/5

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

The description states a specific verb (Create) and resource (a Seedream task on RunAPI) and clarifies the operation is an image edit, which is more than a restatement of the name. It does not, however, differentiate itself from siblings like text_to_image or decompose_layers, so an agent must infer the boundary from the name alone.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance. Nothing tells the agent when this should be preferred over text_to_image or decompose_layers, or what prerequisites (e.g., a valid source image URL, authentication) are required before calling it.

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