Adobe Creative Cloud · Arazzo Workflow

Adobe Creative Cloud Firefly Generative Expand

Version 1.0.0

Upload an image then expand it beyond its original boundaries with AI-generated content.

1 workflow 1 source API 1 provider
View Spec View on GitHub AI/MLCloudCreativeDesignDocumentsPhotographySaaSVideoArazzoWorkflows

Provider

adobe-creative-cloud

Workflows

firefly-generative-expand
Upload an image and expand it to target dimensions with AI fill.
Uploads a source image to Firefly storage, then expands it to the requested width and height, generating new content in the expanded areas.
2 steps inputs: accessToken, apiKey, contentType, height, prompt, sourceImage, width outputs: firstImageUrl, size, uploadId
1
uploadSource
uploadImage
Upload the source image to Firefly temporary storage.
2
expand
expandImage
Expand the uploaded image to the target dimensions, generating new content in the expanded areas guided by the optional prompt.

Source API Descriptions

Arazzo Workflow Specification

adobe-creative-cloud-firefly-generative-expand-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Adobe Creative Cloud Firefly Generative Expand
  summary: Upload an image then expand it beyond its original boundaries with AI-generated content.
  description: >-
    Generative expand (outpainting) with Adobe Firefly. The workflow uploads a
    source image to Firefly temporary storage to obtain an upload ID, then
    calls the expand endpoint with the target dimensions and an optional prompt
    so the canvas grows and the new edges are filled with content that
    seamlessly extends the scene. Every step spells out its request inline,
    including the bearer token and x-api-key, so the flow can be read and run
    without opening the underlying OpenAPI description.
  version: 1.0.0
sourceDescriptions:
- name: fireflyApi
  url: ../openapi/adobe-firefly-api-openapi-original.yml
  type: openapi
workflows:
- workflowId: firefly-generative-expand
  summary: Upload an image and expand it to target dimensions with AI fill.
  description: >-
    Uploads a source image to Firefly storage, then expands it to the
    requested width and height, generating new content in the expanded areas.
  inputs:
    type: object
    required:
    - accessToken
    - apiKey
    - sourceImage
    - width
    - height
    properties:
      accessToken:
        type: string
        description: OAuth 2.0 bearer access token from the Adobe IMS token endpoint.
      apiKey:
        type: string
        description: Client ID (x-api-key) from the Adobe Developer Console project.
      sourceImage:
        type: string
        description: Binary contents of the source image to expand.
      contentType:
        type: string
        description: MIME type of the uploaded image.
        default: image/png
      width:
        type: integer
        description: Target width in pixels of the expanded canvas.
      height:
        type: integer
        description: Target height in pixels of the expanded canvas.
      prompt:
        type: string
        description: Text describing the content to generate in expanded areas.
        default: ""
  steps:
  - stepId: uploadSource
    description: Upload the source image to Firefly temporary storage.
    operationId: uploadImage
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: x-api-key
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: $inputs.contentType
      payload: $inputs.sourceImage
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      uploadId: $response.body#/images/0/id
  - stepId: expand
    description: >-
      Expand the uploaded image to the target dimensions, generating new
      content in the expanded areas guided by the optional prompt.
    operationId: expandImage
    parameters:
    - name: Authorization
      in: header
      value: "Bearer $inputs.accessToken"
    - name: x-api-key
      in: header
      value: $inputs.apiKey
    requestBody:
      contentType: application/json
      payload:
        image:
          source:
            uploadId: $steps.uploadSource.outputs.uploadId
        size:
          width: $inputs.width
          height: $inputs.height
        prompt: $inputs.prompt
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      firstImageUrl: $response.body#/outputs/0/image/url
      size: $response.body#/size
  outputs:
    uploadId: $steps.uploadSource.outputs.uploadId
    firstImageUrl: $steps.expand.outputs.firstImageUrl
    size: $steps.expand.outputs.size