Let's Enhance Image API

Encompasses operations with images.

Operations 12

POST /v1/scene/create Create Scene Api #
POST /v1/image/ai-fashion-models Async Try On Generation Api #
GET /v1/image/ai-fashion-models/{processing_request_id} Async Try On Generation Async Status #
POST /v1/image/ai-edit Async Ai Edit Generation Api #
GET /v1/image/ai-edit/{ai_edit_id} Async Ai Edit Generation Api Status #
POST /v1/image/edit Image Edit #
POST /v1/image/edit/async Async Image Edit #
GET /v1/image/edit/async/{task_id} Async Image Edit Result #
POST /v1/image/edit/batch Process Batch Image Edit #
GET /v1/image/edit/batch/{task_id} Image Edit Batch Async Results #
POST /v1/image/edit/upload Image Edit Upload #
POST /v1/image/generate Image Generate #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/lets-enhance-image-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

lets-enhance-image-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Claid REST Image API
  version: v1
  description: Claid REST API v1 - the AI image editing, enhancement, generation and image-to-video API operated by Let's Enhance (Claid.ai). Covers synchronous and asynchronous image editing, batch processing, direct upload, AI edit by natural-language instruction, AI fashion models, AI background scene creation, image generation, image-to-video generation, and cloud storage connector management. Consolidated verbatim from the per-endpoint OpenAPI 3.1 definitions published in the Claid API reference at https://docs.claid.ai/.
servers:
- url: https://api.claid.ai
  description: Claid API production
tags:
- name: Image
  description: Encompasses operations with images.
paths:
  /v1/scene/create:
    post:
      tags:
      - Image
      summary: Create Scene Api
      description: "Specifies: \n- object to place on the scene and its properties (`object`)\n- scene properties (`scene`)\n- how many images will be created and where they will be stored (`output`)"
      operationId: create_scene_api_v1_scene_create_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SceneCreateAPIIn'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response_ScenePipelineResponseOut_'
        '401':
          description: Authorization is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '402':
          description: No API calls left.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '403':
          description: Not enough permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '422':
          description: Unprocessable Entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
      security:
      - OAuth2PasswordBearer:
        - image_generation
      - OAuth2PasswordBearer: []
  /v1/image/ai-fashion-models:
    post:
      tags:
      - Image
      summary: Async Try On Generation Api
      description: AI Fashion Models generation
      operationId: async_try_on_generation_api_v1_image_ai_fashion_models_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TryOnAPIRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response_TryOnAPIAcceptedResponse_'
        '401':
          description: Authorization is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '402':
          description: No API calls left.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '403':
          description: Not enough permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '422':
          description: Unprocessable Entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
      security:
      - OAuth2PasswordBearer:
        - image_editing
      - OAuth2PasswordBearer: []
  /v1/image/ai-fashion-models/{processing_request_id}:
    get:
      tags:
      - Image
      summary: Async Try On Generation Async Status
      description: AI Fashion Models generation result
      operationId: async_try_on_generation_async_status_v1_image_ai_fashion_models__processing_request_id__get
      parameters:
      - required: true
        schema:
          title: Processing Request Id
          type: integer
        name: processing_request_id
        in: path
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response_TryOnAPIResultResponse_'
        '401':
          description: Authorization is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '403':
          description: Not enough permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '404':
          description: Web image not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer:
        - image_editing
  /v1/image/ai-edit:
    post:
      tags:
      - Image
      summary: Async Ai Edit Generation Api
      description: AI Edit
      operationId: async_ai_edit_generation_api_v1_image_ai_edit_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AiEditAPIRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response_AiEditAcceptedResponse_'
        '401':
          description: Authorization is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '402':
          description: No API calls left.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '403':
          description: Not enough permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '422':
          description: Unprocessable Entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
      security:
      - OAuth2PasswordBearer:
        - image_editing
      - OAuth2PasswordBearer: []
  /v1/image/ai-edit/{ai_edit_id}:
    get:
      tags:
      - Image
      summary: Async Ai Edit Generation Api Status
      description: Get AI Edit generation result
      operationId: async_ai_edit_generation_api_status_v1_image_ai_edit__ai_edit_id__get
      parameters:
      - required: true
        schema:
          title: Ai Edit Id
          type: integer
        name: ai_edit_id
        in: path
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response_AiEditResultResponse_'
        '401':
          description: Authorization is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '403':
          description: Not enough permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '404':
          description: Web image not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - OAuth2PasswordBearer:
        - image_editing
  /v1/image/edit:
    post:
      tags:
      - Image
      summary: Image Edit
      description: "Specifies: \n- what image will be processed (`input`)\n- how it will be processed (`operations`)\n- where it will be stored (`output`)"
      operationId: image_edit_v1_image_edit_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response_EditResponse_'
        '401':
          description: Authorization is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '402':
          description: No API calls left.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '403':
          description: Not enough permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '422':
          description: Unprocessable Entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
      security:
      - OAuth2PasswordBearer: []
      - OAuth2PasswordBearer:
        - image_editing
  /v1/image/edit/async:
    post:
      tags:
      - Image
      summary: Async Image Edit
      description: "Specifies: \n- what image will be processed (`input`)\n- how it will be processed (`operations`)\n- where it will be stored (`output`)"
      operationId: async_image_edit_v1_image_edit_async_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AsyncEditRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response_AsyncAcceptedResponse_'
        '401':
          description: Authorization is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '402':
          description: No API calls left.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '403':
          description: Not enough permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '422':
          description: Unprocessable Entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
      security:
      - OAuth2PasswordBearer: []
      - OAuth2PasswordBearer:
        - image_editing
  /v1/image/edit/async/{task_id}:
    get:
      tags:
      - Image
      summary: Async Image Edit Result
      operationId: async_image_edit_result_v1_image_edit_async__task_id__get
      parameters:
      - required: true
        schema:
          title: Task Id
          type: integer
        name: task_id
        in: path
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response_AsyncResultResponse_'
        '401':
          description: Authorization is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '403':
          description: Not enough permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '404':
          description: Batch image edit pipeline not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '422':
          description: Unprocessable Entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
      security:
      - OAuth2PasswordBearer:
        - image_editing
  /v1/image/edit/batch:
    post:
      tags:
      - Image
      summary: Process Batch Image Edit
      description: "Specifies: \n- what images will be processed (`input`)\n- how they will be processed (`operations`)\n- where they will be stored (`output`)"
      operationId: process_batch_image_edit_v1_image_edit_batch_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchEditRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response_BatchAcceptedResponse_'
        '401':
          description: Authorization is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '402':
          description: No API calls left.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '403':
          description: Not enough permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '422':
          description: Unprocessable Entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
      security:
      - OAuth2PasswordBearer: []
      - OAuth2PasswordBearer:
        - image_editing
  /v1/image/edit/batch/{task_id}:
    get:
      tags:
      - Image
      summary: Image Edit Batch Async Results
      operationId: image_edit_batch_async_results_v1_image_edit_batch__task_id__get
      parameters:
      - required: true
        schema:
          title: Task Id
          type: integer
        name: task_id
        in: path
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response_BatchResultResponse_'
        '401':
          description: Authorization is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '403':
          description: Not enough permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '404':
          description: Batch image edit pipeline not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '422':
          description: Unprocessable Entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
      security:
      - OAuth2PasswordBearer:
        - image_editing
  /v1/image/edit/upload:
    post:
      tags:
      - Image
      summary: Image Edit Upload
      description: "Specifies: \n- how the image will be processed (`operations`)\n- where it will be stored (`output`)"
      operationId: image_edit_upload_v1_image_edit_upload_post
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/Body_image_edit_upload_v1_image_edit_upload_post'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response_EditResponse_'
        '401':
          description: Authorization is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '402':
          description: No API calls left.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '403':
          description: Not enough permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '422':
          description: Unprocessable Entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
      security:
      - OAuth2PasswordBearer: []
      - OAuth2PasswordBearer:
        - image_editing
  /v1/image/generate:
    post:
      tags:
      - Image
      summary: Image Generate
      description: "Specifies: \n- text prompt for image generation (`input`)\n- image generation options (`options`)\n- where results will be stored (`output`)"
      operationId: image_generate_v1_image_generate_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response_GenerateResponse_'
        '401':
          description: Authorization is required.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '402':
          description: No API calls left.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '403':
          description: Not enough permissions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '422':
          description: Unprocessable Entity.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
        '429':
          description: Too many requests.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HttpErrorDetails'
      security:
      - OAuth2PasswordBearer: []
      - OAuth2PasswordBearer:
        - image_editing
components:
  schemas:
    EditRequest:
      title: EditRequest
      required:
      - input
      - operations
      type: object
      properties:
        input:
          title: Input URL
          maxLength: 4096
          minLength: 1
          type: string
          description: URL of the input image. Should be from 1 to 512 characters. Image must be accessible by our system.
          format: uri
        operations:
          title: Operations
          allOf:
          - $ref: '#/components/schemas/ImageOperations'
          description: Customize the editing workflow so that the output images meet your requirements.
        output:
          title: Output
          anyOf:
          - $ref: '#/components/schemas/ImageOutputOptions'
          - type: string
            minLength: 1
            maxLength: 4096
            format: uri
          description: Customize the result output.
          default:
            format: jpeg
      additionalProperties: false
    AdjustmentsOptions:
      title: adjustments options
      type: object
      properties:
        hdr:
          title: Hdr
          anyOf:
          - type: integer
            description: HDR effect intensity.
            minimum: 0
            maximum: 100
          - $ref: '#/components/schemas/HdrOptions'
          description: Balances out colors and lighting. Allows to turn on `stitching` for stitched 360 photos.
          default: 0
        exposure:
          title: Exposure
          maximum: 100
          minimum: -100
          type: integer
          description: Decrease (negative integer) or increase (positive integer) exposure.
          default: 0
        saturation:
          title: Saturation
          maximum: 100
          minimum: -100
          type: integer
          description: Decrease (negative integer) or increase (positive integer) saturation.
          default: 0
        contrast:
          title: Contrast
          maximum: 100
          minimum: -100
          type: integer
          description: Decrease (negative integer) or increase (positive integer) contrast.
          default: 0
        sharpness:
          title: Sharpness
          maximum: 100
          minimum: 0
          type: integer
          description: Increase sharpness.
          default: 0
      additionalProperties: false
    AiEditRequestOptionsObject:
      title: AiEditRequestOptionsObject
      required:
      - prompt
      type: object
      properties:
        model:
          allOf:
          - $ref: '#/components/schemas/AIEditModelAPI'
          description: Model to be used for generation.
          default: v2
        prompt:
          title: Prompt
          maxLength: 5000
          minLength: 3
          type: string
          description: Prompt for the generation.
        aspect_ratio:
          allOf:
          - $ref: '#/components/schemas/AiEditAspectRatio'
          description: Aspect ratio of the generated images.
        inference_steps:
          title: Inference Steps
          maximum: 50
          minimum: 1
          type: integer
          description: Number of inference steps.
        guidance_scale:
          title: Guidance Scale
          maximum: 10
          minimum: 1
          type: number
          description: Guidance scale for the generation.
      additionalProperties: false
    UpscaleEnum:
      title: Upscale
      enum:
      - smart_enhance
      - smart_resize
      - faces
      - digital_art
      - photo
      type: string
      description: "Upscales the image with specified type of image upscaling neural network. \n\n| Value | Description |\n| --- | --- |\n| `null` | DEFAULT. Interpolation. Used when output image resolution is smaller than the input resolution.|\n| `\"smart_enhance\"` | Used for small low quality product, real estate and food images.|\n| `\"smart_resize\"` | Used for high quality images.|\n| `\"faces\"` | Used for images containing persons.|\n| `\"digital_art\"` | Used for drawings, illustrations, paintings, cartoons, anime, etc.|\n| `\"photo\"` | Used for images taken by mobile devices or digital camera of people, nature, architecture, etc.|"
    GenerativeOptions:
      title: generative transformations options
      type: object
      properties:
        style_transfer:
          title: Style Transfer
          allOf:
          - $ref: '#/components/schemas/StyleTransferOptions'
          description: Apply style from a reference image.
      additionalProperties: false
    TryOnAPIAspectRatio:
      title: TryOnAPIAspectRatio
      enum:
      - '1:1'
      - '2:3'
      - '3:2'
      - '3:4'
      - '4:3'
      - '9:16'
      - '16:9'
      - '21:9'
      - '4:5'
      - '5:4'
      type: string
      description: An enumeration.
    FitCropEnum:
      title: Crop
      enum:
      - center
      - smart
      type: string
      description: "Selects the crop mode: \n\n| Value | Description |\n| --- | --- |\n| `\"center\"` | Cropping relative to the center of the image.|\n| `\"smart\"` | Content aware image cropping.|\n"
    BackgroundBlurLevelEnum:
      title: Background blur strength level
      enum:
      - low
      - medium
      - high
      type: string
      description: "Selects the level of blur strength: \n\n| Value | Description |\n| --- | --- |\n| `\"low\"` | Low blur strength.|\n| `\"medium\"` | Medium blur strength.|\n| `\"high\"` | High blur strength.|\n"
    SceneCreateAPISceneTemplateIn:
      title: Template-based scene
      required:
      - template_url
      - view
      type: object
      properties:
        model:
          title: Scene creation model
          allOf:
          - $ref: '#/components/schemas/SceneCreateModelEnum'
          description: Selects the scene creation model. By default, the model is 'v1'.
          default: v1
        template_mode:
          title: Template mode
          allOf:
          - $ref: '#/components/schemas/TemplateModeEnum'
          description: 'Selects how closely the result should match the template.


            | Value | Description |

            | --- | --- |

            | `"transform"` | Template is transformed according to the prompt and color.|

            | `"adjust"` | Template is slightly adjusted to the product and prompt.|| `"lock"` | Template is preserved with maximum detail.|'
          default: transform
        template_url:
          title: Template image file URL
          maxLength: 4096
          minLength: 1
          type: string
          description: URL of the input image. Should be from 1 to 4096 characters. Image must be accessible by our system. Is optional, if `prompt` is specified.
          format: uri
        color:
          title: Color
          type: string
          description: 'Color as a hexadecimal. Examples: `"#ffffff"`, `"#000000"`.'
        view:
          title: Template viewpoint
          allOf:
          - $ref: '#/components/schemas/TemplateViewEnum'
          description: 'The position of the viewpoint relative to the scene


            | Value | Description |

            | --- | --- |

            | `"top"` | The view is top-down, looking down on the scene from above.|

            | `"front"` | The view is horizontal, looking directly on the scene.|'
        prompt:
          title: Text prompt for scene creation
          anyOf:
          - type: string
            minLength: 3
            maxLength: 2048
          - $ref: '#/components/schemas/ScenePromptAdvancedIn'
          description: 'Text prompt that will be used to create the scene. Should be from 3 to 2048 characters. '
        negative_prompt:
          title: Negative text prompt for scene creation
          maxLength: 2048
          minLength: 3
          type: string
          description: 'Text prompt that will exclude things from the scene. Should be from 3 to 2048 characters. '
        steps:
          title: Number of inference steps
          exclusiveMaximum: 50
          minimum: 1
          type: integer
          description: The more inference steps you use, the better the results, but the more steps, the longer it takes to generate. If you want faster results, you can use fewer steps. If you want higher-quality results, you can use more steps. By default each `template_mode` has an optimal `steps` value.
      additionalProperties: false
    TryOnAPIRequest:
      title: TryOnAPIRequest
      required:
      - input
      - options
      type: object
      properties:
        output:
          title: Output
          anyOf:
          - $ref: '#/components/schemas/TryOnAPIRequestOutputObject'
          - type: string
            minLength: 1
            maxLength: 4096
            format: uri
          description: Customize output format, destination and number of images.
          default:
            number_of_images: 1
            format: png
        input:
          title: Input
          allOf:
          - $ref: '#/components/schemas/TryOnAPIRequestInputOptions'
          description: Input model and clothing images for the generation.
        options:
          title: Options
          allOf:
          - $ref: '#/components/schemas/TryOnAPIRequestOptionsObject'
          description: Customize the generation.
      additionalProperties: false
    BackgroundEnum:
      title: Transparent
      enum:
      - transparent
      type: string
      description: Makes the background of the image transparent, only works for `"png"` output format.
    AvifCompressionEnum:
      title: AVIF Compression
      enum:
      - lossy
      - lossless
      type: string
      description: "Selects the AVIF compression type: \n\n| Value | Description |\n| --- | --- |\n| `\"lossy\"` | Lossy compression allows you to reduce the size of the image significantly in exchange for some loss of data, reducing the quality of an image.|\n| `\"lossless\"` | Lossless compression allows you to save maximum image details in exchange for a significantly increased file size.|\n"
    BatchEditInputOptions:
      title: image input options
      required:
      - source
      type: object
      properties:
        source:
          title: Input folder URL
          maxLength: 4096
          minLength: 1
          type: string
          description: URL of the input file or folder. Should be from 1 to 512 characters. Must be accessible by our system.
          format: uri
        recursive:
          title: Recursive
          type: boolean
          description: 'If `true`, recursively processes all images in subfolders as well, works only if source is folder. '
          default: false
      additionalProperties: false
    AiEditOutputImageObject:
      title: AiEditOutputImageObject
      type: object
      properties:
        ext:
          title: Ext
          type: string
          description: File extension.
        mps:
          title: Mps
          type: number
          description: Megapixel count
        mime:
          title: Mime
          type: string
          description: MIME type (also known as 'media type')
        format:
          title: Format
          type: string
          description: File format.
        width:
          title: Width
          type: integer
          description: Image width in pixels
        height:
          title: Height
          type: integer
          description: Image height in pixels
        tmp_url:
          title: Tmp Url
          type: string
          description: Temporal URL of a processed image
        object_key:
          title: Object Key
          type: string
          description: Path to a processed image in a bucket
        object_bucket:
          title: Object Bucket
          type: string
          description: Bucket name
        object_uri:
          title: Object Uri
          type: string
          description: URI of a processed image in a bucket
        claid_storage_uri:
          title: Claid Storage Uri
          type: string
          description: URI of a processed image in a storage
    WebpLossyCompressionOptions:
      title: WebpLossyCompressionOptions
      required:
      - type
      type: object
      properties:
        typ

# --- truncated at 32 KB (110 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lets-enhance/refs/heads/main/openapi/lets-enhance-image-api-openapi.yml