openapi: 3.2.0
info:
version: 3.0.0
title: Firefly Upscale API
description: REST API for Adobe Firefly services including image generation, image alteration, image upscaling, video generation, and other related services.
servers:
- url: https://firefly-api.adobe.io
description: Production server.
security:
- X-Api-Key: []
AccessToken: []
tags:
- name: Upscale
description: Image upscaling with the precise upsampler.
paths:
/v3/images/upscale:
post:
operationId: preciseUpsamplerV3Async
summary: Upscale image
description: Upscales an image asynchronously using the precise upsampler. Provide the input image via an upload ID from the storage API or a presigned URL. The response includes links to check status and retrieve the result. Poll the status URL until the job completes, then fetch the result for the upscaled image(s).
tags:
- Upscale
parameters:
- name: x-model-version
in: header
required: false
description: Model version for the upscale operation. Only `precise_upsampler_v1` is supported. Passing `creative_upsampler_v1` will return a 422 validation error.
schema:
type: string
enum:
- precise_upsampler_v1
default: precise_upsampler_v1
example: precise_upsampler_v1
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PreciseUpsamplerRequestV3'
example:
image:
source:
uploadId: a1b2c3d4-e5f6-7890-abcd-ef1234567890
seeds:
- 12345
upscaleFactor: 2
responses:
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/PreciseUpscaleAcceptResponseV3'
example:
links:
result:
href: https://firefly-api.adobe.io/v3/status/urn:ff:jobs:example:abc123
cancel:
href: https://firefly-api.adobe.io/v3/cancel/urn:ff:jobs:example:abc123
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrorResponse'
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorGeneric'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorGeneric'
'404':
description: Requested Resource Was Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorGeneric'
'422':
description: Input Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationErrorResponse'
examples:
invalid_model_version:
summary: Invalid x-model-version value
value:
error_code: validation_error
message: 'Invalid x-model-version: creative_upsampler_v1. Only ''precise_upsampler_v1'' is supported.'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorGeneric'
'500':
description: Internal Server Error
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorGeneric'
'503':
description: Service Unavailable
content:
application/json:
schema:
$ref: '#/components/schemas/ApiErrorGeneric'
components:
schemas:
PublicBinaryInputV3:
properties:
uploadId:
description: The `uploadId` from the storage API response.
format: uuid4
title: The upload ID
type: string
url:
description: 'The pre-signed URL of an uploaded file. Use a URL or an `uploadID` as the source for the image. Firefly only allows these listed domains in the request:
amazonaws.com windows.net dropboxusercontent.com storage.googleapis.com
.'
format: uri
maxLength: 2083
minLength: 1
title: The pre-signed URL
type: string
title: PublicBinaryInputV3
type: object
PreciseUpsamplerRequestV3:
type: object
title: PreciseUpsamplerRequestV3
description: Request body for upscaling an image. Provide the input image via uploadId from storage or a presigned URL. Seeds are required for reproducible results.
required:
- image
- seeds
properties:
image:
$ref: '#/components/schemas/BaseInputImageV3'
description: The input image for the upsampler (source uploadId or url).
seeds:
type: array
minItems: 1
maxItems: 4
items:
type: integer
description: The seed for each variation. Provide one seed per output (1–4 seeds).
upscaleFactor:
default: 2
description: The upscale factor (2, 3, 4, or 6). Output dimensions are input dimensions multiplied by this factor.
allOf:
- $ref: '#/components/schemas/UpsampleFactor'
PreciseUpscaleTaskLink:
type: object
title: PreciseUpscaleTaskLink
required:
- href
properties:
href:
type: string
description: URL for the cancel or result endpoint.
ValidationErrorDetail:
type: object
properties:
loc:
type: array
items:
oneOf:
- type: string
- type: integer
description: Path to the field that caused the error.
msg:
type: string
description: Human-readable error message.
type:
type: string
description: Error type identifier.
ctx:
type: object
additionalProperties: true
description: Additional context about the error.
UpsampleFactor:
type: integer
enum:
- 2
- 3
- 4
- 6
description: Supported upscale factors. Output size equals input size multiplied by this factor.
ValidationErrorResponse:
type: object
title: ValidationErrorResponse
description: Error response body for HTTP 422 (validation failures).
required:
- error_code
properties:
error_code:
$ref: '#/components/schemas/ValidationErrorCode422'
message:
type: string
description: Human-readable error description.
validation_errors:
type: array
items:
$ref: '#/components/schemas/ValidationErrorDetail'
description: List of field-level validation errors.
PreciseUpscaleAcceptResponseV3:
type: object
title: PreciseUpscaleAcceptResponseV3
description: Response for async upscale requests. Use links.result.href to poll for status and links.cancel.href to cancel.
required:
- links
properties:
links:
type: object
description: Links to cancel and to fetch the job status or result.
additionalProperties:
$ref: '#/components/schemas/PreciseUpscaleTaskLink'
progress:
type: number
description: Progress percentage when available (for example when polling status).
BaseInputImageV3:
properties:
source:
$ref: '#/components/schemas/PublicBinaryInputV3'
description: Source image that Firefly expands, fills, uses to generate similar images, or upscales.
required:
- source
title: BaseInputImageV3
type: object
ValidationErrorCode422:
type: string
title: ValidationErrorCode422
description: Error code for HTTP 422 responses (request validation only).
enum:
- validation_error
- cai_assertion_violation_error
ApiErrorGeneric:
type: object
title: ApiErrorGeneric
description: The error within the error response for non-400 failure responses.
properties:
error_code:
type: string
description: The error code.
message:
title: Message
description: A human-readable error message.
type: string
securitySchemes:
AccessToken:
type: http
scheme: bearer
description: The Adobe-generated access token, S2S format.
X-Api-Key:
type: apiKey
name: x-api-key
in: header
description: The client ID for authentication.