tools

Upscale an image

Upscale one image to 2x, 4x, or 8x its original resolution, up to a maximum output of 8192px per side. Ideogram selects the best upscaling model for each request, and the selection may change over time; callers never choose a model.

Supply the source either as an image_asset_identifier reference (an image already stored with Ideogram) or as raw image bytes (multipart requests only). Provide exactly one of the two forms; supplying both, or neither, is rejected with a 400. Uploaded bytes are used for this request only and are not stored as an asset; upscales of a referenced asset keep a visible link to their source image.

Upscaling takes no prompt: the source image is enhanced as-is.

By default the request blocks until the upscaled image is ready and returns it in data. Set async to true to return immediately after the request is accepted, then poll for completion and results with GET /v1/generations/{generation_id} using the returned generation_id.

post/v2/tools/upscale

Request body

imagestring binary

The source image to upscale (max size 50MB), as raw bytes; only common image formats such as JPEG, PNG, and WEBP are supported. Multipart requests only. Provide exactly one of image_asset_identifier or image. The bytes are used for this request only and are not stored as an asset.

upscale_factor'X2' | 'X4' | 'X8'

How much to enlarge the source image: 2x, 4x, or 8x its original width and height. Rejected when the output would exceed 8192px on either side.

seedinteger

Random seed. Set for reproducible generation.

asyncboolean

When false (the default), the request blocks until the upscaled image is ready and returns it in data. When true, the request returns as soon as it is accepted; poll for completion and results with GET /v1/generations/{generation_id} using the returned generation_id.

Example request

{
  "image_asset_identifier": {
    "asset_type": "RESPONSE",
    "asset_id": "7uS_VESkRI6O3-sVgHQp_A"
  },
  "seed": 12345
}

Response

The upscaled image (synchronous requests), or an acknowledgement to poll with GET /v1/generations/{generation_id} (async requests).

generation_idstring required

URL-safe base64 ID of the accepted generation. Accepted by the GET /v1/generations/{generation_id} polling endpoint.

seedinteger required

Random seed. Set for reproducible generation.

widthinteger required

The output width in pixels.

heightinteger required

The output height in pixels.

Example response

{
  "data": [
    {
      "seed": 12345,
      "resolution": "2048x2048",
      "url": "https://openapi-generator.tech",
      "is_image_safe": true
    },
    {
      "seed": 12345,
      "resolution": "2048x2048",
      "url": "https://openapi-generator.tech",
      "is_image_safe": true
    }
  ],
  "seed": 12345,
  "generation_id": "generation_id",
  "width": 0,
  "height": 6
}

Changes