{
  "openapi": "3.1.1",
  "info": {
    "title": "Civitai Orchestration Consumer API",
    "description": "The Civitai Orchestration API is a RESTful API that allows you to interact with the Civitai Orchestration system. The API is designed to be simple and easy to use, and is built on top of the OpenAPI specification.",
    "version": "v2"
  },
  "paths": {
    "/v2/consumer/blobs/{blobId}": {
      "get": {
        "tags": [
          "Blobs"
        ],
        "summary": "Get blob by ID. This will redirect to a cacheable content URL.",
        "operationId": "GetBlob",
        "parameters": [
          {
            "name": "blobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "workflowId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "nsfwLevel",
            "in": "query",
            "description": "Maximum NSFW level. When set, a blob with no level or a level above it is an error.",
            "schema": {
              "$ref": "#/components/schemas/NSFWLevel"
            }
          },
          {
            "name": "filename",
            "in": "query",
            "description": "Optional filename for the Content-Disposition header. Path components and control characters are stripped.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "download",
            "in": "query",
            "description": "When true, the blob is served with Content-Disposition: attachment to prompt a download. Defaults to inline.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "308": {
            "description": "Permanent Redirect"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "head": {
        "tags": [
          "Blobs"
        ],
        "summary": "Same as GET, but answers 204 with the redirect target in Location, so a client can read the verdict headers\nbefore loading the content.",
        "operationId": "HeadBlob",
        "parameters": [
          {
            "name": "blobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "workflowId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "nsfwLevel",
            "in": "query",
            "schema": {
              "$ref": "#/components/schemas/NSFWLevel"
            }
          },
          {
            "name": "filename",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "download",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          }
        }
      }
    },
    "/v2/consumer/blobs/upload": {
      "get": {
        "tags": [
          "Blobs"
        ],
        "summary": "Get a presigned URL for browser uploads.\nThe returned URL points to POST /v2/consumer/blobs with a signature for authentication.",
        "operationId": "GetConsumerBlobUploadUrl",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsumerBlobPresignResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/blobs": {
      "post": {
        "tags": [
          "Blobs"
        ],
        "summary": "Upload a blob directly with on-the-fly moderation.\nSupports both authenticated requests (Bearer token) and presigned URLs (sig query param).",
        "operationId": "UploadConsumerBlob",
        "parameters": [
          {
            "name": "public",
            "in": "query",
            "description": "Store the blob in the public tier and return a durable, unsigned URL for it. Privileged callers only: nothing gates a read of that URL, so a block decided after the fact cannot take it back.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Blob"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported Media Type",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/blobs/ingest": {
      "post": {
        "tags": [
          "Blobs"
        ],
        "summary": "Copy a trusted url into a blob named after that source, so the caller can ask for it again\nwithout holding the bytes. 200 when it already existed, 201 when copied.",
        "operationId": "IngestConsumerBlob",
        "parameters": [
          {
            "name": "sourceUrl",
            "in": "query",
            "description": "Object to copy; must resolve to a configured trusted source.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "public",
            "in": "query",
            "description": "Store in the public tier and return a durable, unsigned URL.",
            "schema": {
              "type": "boolean"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Blob"
                }
              }
            }
          },
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Blob"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Content",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway"
          }
        },
        "security": []
      }
    },
    "/v2/consumer/blobs/content/{encryptedToken}": {
      "get": {
        "tags": [
          "Blobs"
        ],
        "summary": "Serves cacheable blob content using a deterministic encrypted token",
        "operationId": "GetBlobContent",
        "parameters": [
          {
            "name": "encryptedToken",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": []
      }
    },
    "/v2/consumer/blobs/blocked/{encryptedToken}": {
      "get": {
        "tags": [
          "Blobs"
        ],
        "summary": "Serves a blocked placeholder image with the specified dimensions",
        "operationId": "GetBlockedContent",
        "parameters": [
          {
            "name": "encryptedToken",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/v2/consumer/blobs/archive/{encryptedToken}": {
      "get": {
        "tags": [
          "Blobs"
        ],
        "summary": "Streams an archive (zip or tar) of the blobs referenced by a signed archive token.\nTokens are produced by the `blobArchive` workflow step.",
        "operationId": "GetBlobArchive",
        "parameters": [
          {
            "name": "encryptedToken",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "410": {
            "description": "Gone",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/v2/consumer/blobs/{blobId}/refresh": {
      "post": {
        "tags": [
          "Blobs"
        ],
        "summary": "Refresh a blob's URL and debounce its lifetime.\nReturns a fresh presigned URL and resets the 30-day TTL.",
        "operationId": "RefreshBlob",
        "parameters": [
          {
            "name": "blobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Blob"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/free-tier": {
      "get": {
        "tags": [
          "Free tier"
        ],
        "summary": "Get the free-tier models and the caller's remaining quota. Use them with `tier: \"free\"` on a workflow,\n`?tier=free` on a recipe, or `X-Civitai-Tier: free` on the OpenAI-compatible chat endpoint.",
        "operationId": "GetFreeTier",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FreeTierResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/funds": {
      "post": {
        "tags": [
          "Funds"
        ],
        "summary": "The id is the only way to reach the fund, so keep it secret, in your app's state.",
        "operationId": "CreateFund",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FundTemplate"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FundTemplate"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FundTemplate"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FundResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/funds/{fundId}": {
      "patch": {
        "tags": [
          "Funds"
        ],
        "summary": "Sets the fund to expire `ttl` from now, so a long-running session can keep rolling it over.",
        "operationId": "UpdateFund",
        "parameters": [
          {
            "name": "fundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonPatchDocument"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FundResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Funds"
        ],
        "operationId": "GetFund",
        "parameters": [
          {
            "name": "fundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FundResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Funds"
        ],
        "summary": "Whatever is left goes to Civitai, not back to the depositors. A fund is also deleted on its own at `expiresAt`.",
        "operationId": "DeleteFund",
        "parameters": [
          {
            "name": "fundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/funds/{fundId}/deposits": {
      "post": {
        "tags": [
          "Funds"
        ],
        "operationId": "DepositIntoFund",
        "parameters": [
          {
            "name": "fundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FundDeposit"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FundDeposit"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FundDeposit"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FundResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "402": {
            "description": "Payment Required",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/aceStepAudio": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Generates full songs from text descriptions and structured lyrics with ACE Step 1.5.",
        "operationId": "InvokeAceStepAudioStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "description": "How a workflow is paid for.",
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AceStepAudioInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AceStepAudioInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AceStepAudioInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AceStepAudioOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/audioCaptioning": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Audio Captioning",
        "description": "Generates music captions, lyrics, and metadata by running the ACE-Step captioner and transcriber models.",
        "operationId": "InvokeAudioCaptioningStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AudioCaptioningInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AudioCaptioningInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AudioCaptioningInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AudioCaptioningOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/audioClassification": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "operationId": "InvokeAudioClassificationStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AudioClassificationInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AudioClassificationInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AudioClassificationInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AudioClassificationOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/audioModeration": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Transcribe every audio track and classify the lyrics for sexualized minors.",
        "operationId": "InvokeAudioModerationStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AudioModerationInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AudioModerationInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AudioModerationInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AudioModerationOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/audioTextModeration": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Classify transcribed lyrics for sexualized minors.",
        "operationId": "InvokeAudioTextModerationStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AudioTextModerationInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/AudioTextModerationInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/AudioTextModerationInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AudioTextModerationOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/blobArchive": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Bundles blobs into a single zip or tar that callers download from a signed streaming URL.\n/// Runs in-process in the orchestrator; no worker job is dispatched.",
        "operationId": "InvokeBlobArchiveStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BlobArchiveInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BlobArchiveInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BlobArchiveInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlobArchiveOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/chatCompletion": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "ChatCompletion",
        "description": "Generate chat completions using language models with support for text and image inputs.\n/// Compatible with OpenAI Chat Completions API format.",
        "operationId": "InvokeChatCompletionStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "Input for a chat completion step, compatible with OpenAI Chat Completions API.",
                "$ref": "#/components/schemas/ChatCompletionInput"
              }
            },
            "text/json": {
              "schema": {
                "description": "Input for a chat completion step, compatible with OpenAI Chat Completions API.",
                "$ref": "#/components/schemas/ChatCompletionInput"
              }
            },
            "application/*+json": {
              "schema": {
                "description": "Input for a chat completion step, compatible with OpenAI Chat Completions API.",
                "$ref": "#/components/schemas/ChatCompletionInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ChatCompletionOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/comfy": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Comfy workflows",
        "description": "Runs a comfy workflow. Currently there are limited nodes available. Contact support for more information.",
        "operationId": "InvokeComfyStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComfyInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ComfyInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ComfyInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComfyOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/comfyNodepackSnapshot": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "operationId": "InvokeComfyNodepackSnapshotStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "Installs ComfyUI custom nodepacks on a comfy image and captures the resolved install and editor metadata as\nreusable blobs. Runs on a real worker so compiled deps match the fleet the consumer will run on.",
                "$ref": "#/components/schemas/ComfyNodepackSnapshotInput"
              }
            },
            "text/json": {
              "schema": {
                "description": "Installs ComfyUI custom nodepacks on a comfy image and captures the resolved install and editor metadata as\nreusable blobs. Runs on a real worker so compiled deps match the fleet the consumer will run on.",
                "$ref": "#/components/schemas/ComfyNodepackSnapshotInput"
              }
            },
            "application/*+json": {
              "schema": {
                "description": "Installs ComfyUI custom nodepacks on a comfy image and captures the resolved install and editor metadata as\nreusable blobs. Runs on a real worker so compiled deps match the fleet the consumer will run on.",
                "$ref": "#/components/schemas/ComfyNodepackSnapshotInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "One result per installed pack, each carrying the captured install layer, full /object_info and web assets as\nblobs that consumers read directly from orchestrator blob storage.",
                  "$ref": "#/components/schemas/ComfyNodepackSnapshotOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/composeMedia": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Compose Media",
        "description": "Composes audio and/or video elements onto one timeline and canvas: overlay and stack videos, mix and place audio,\n/// and apply per-element transformers (fades, volume). Produces a video blob when any element is video, otherwise an audio blob.",
        "operationId": "InvokeComposeMediaStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ComposeMediaInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ComposeMediaInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ComposeMediaInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ComposeMediaOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/convertImage": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "A workflow step that converts images to different formats and applies optional transforms.",
        "operationId": "InvokeConvertImageStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConvertImageInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ConvertImageInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ConvertImageInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConvertImageOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/customComfy": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "CustomComfy",
        "description": "Submit a raw ComfyUI workflow graph for execution. Every resource the workflow uses, including <c>comfy:nodepack</c> URNs\n/// for custom nodes, must be declared in <c>resources</c>; the orchestrator does not scan the workflow. Billed after execution\n/// on actual ComfyUI runtime; infra failures don't charge.",
        "operationId": "InvokeCustomComfyStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomComfyInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CustomComfyInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CustomComfyInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CustomComfyOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/humanoidImageMask": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "operationId": "InvokeHumanoidImageMaskStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/HumanoidImageMaskInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/HumanoidImageMaskInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/HumanoidImageMaskInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HumanoidImageMaskOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/imageBackgroundRemoval": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Removes the background from an image using BiRefNet.",
        "operationId": "InvokeImageBackgroundRemovalStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImageBackgroundRemovalInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ImageBackgroundRemovalInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ImageBackgroundRemovalInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageBackgroundRemovalOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/imageGen": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Image Generation",
        "description": "Generate images through text/image inputs using any of our supported engines",
        "operationId": "InvokeImageGenStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImageGenInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ImageGenInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ImageGenInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageGenOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/imageResourceTraining": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "LORA Training",
        "description": "Train LORA's",
        "operationId": "InvokeImageResourceTrainingStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImageResourceTrainingInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ImageResourceTrainingInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ImageResourceTrainingInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageResourceTrainingOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/imageToSvg": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Converts a raster image to an SVG using a local StarVector or OmniSVG model.",
        "operationId": "InvokeImageToSvgStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImageToSvgInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ImageToSvgInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ImageToSvgInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageToSvgOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/imageUpload": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Image upload",
        "description": "Uploads an image to be used in a workflow",
        "operationId": "InvokeImageUploadStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "string"
              }
            },
            "text/json": {
              "schema": {
                "type": "string"
              }
            },
            "application/*+json": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageUploadOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/imageUpscaler": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "operationId": "InvokeImageUpscalerStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImageUpscalerInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ImageUpscalerInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ImageUpscalerInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageUpscalerOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/liveTextToSpeech": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Live text to speech",
        "description": "Append text to <c>output.inputUrl</c> and play <c>output.audioUrl</c>; billed per character once the session ends.",
        "operationId": "InvokeLiveTextToSpeechStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "Mirrors `textToSpeech` inputs, but only for voices proven to stream with low first-audio latency.",
                "$ref": "#/components/schemas/LiveTextToSpeechInput"
              }
            },
            "text/json": {
              "schema": {
                "description": "Mirrors `textToSpeech` inputs, but only for voices proven to stream with low first-audio latency.",
                "$ref": "#/components/schemas/LiveTextToSpeechInput"
              }
            },
            "application/*+json": {
              "schema": {
                "description": "Mirrors `textToSpeech` inputs, but only for voices proven to stream with low first-audio latency.",
                "$ref": "#/components/schemas/LiveTextToSpeechInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveTextToSpeechOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/liveTranscription": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Live transcription",
        "description": "Transcribes speech while it is recorded: append audio to <c>output.inputUrl</c> and read text from\n/// <c>output.transcriptUrl</c> as it decodes. Billed per second of audio once the session ends.",
        "operationId": "InvokeLiveTranscriptionStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LiveTranscriptionInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LiveTranscriptionInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LiveTranscriptionInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveTranscriptionOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/mediaCaptioning": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Media Captioning",
        "description": "Generates a descriptive caption for a single media item using the JoyCaption model.",
        "operationId": "InvokeMediaCaptioningStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaCaptioningInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaCaptioningInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MediaCaptioningInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaCaptioningOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/mediaHash": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "MediaHash",
        "description": "Generates perceptual hashes for media content to enable similarity detection and duplicate identification.",
        "operationId": "InvokeMediaHashStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaHashInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaHashInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MediaHashInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaHashOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/mediaRating": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "MediaRating",
        "description": "Performs NSFW level detection and content safety classification on media content.",
        "operationId": "InvokeMediaRatingStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaRatingInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MediaRatingInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MediaRatingInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MediaRatingOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/merge": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Merge",
        "description": "Also waits for every step the referenced steps generate, such as each iteration of a repeat.",
        "operationId": "InvokeMergeStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MergeInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MergeInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MergeInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MergeOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/miniMaxMusic3": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Generate a complete song from a structured caption and lyrics with MiniMax Music 3.",
        "operationId": "InvokeMiniMaxMusic3StepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MiniMaxMusic3Input"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MiniMaxMusic3Input"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MiniMaxMusic3Input"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MiniMaxMusic3Output"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/model3DPreview": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "3D model preview",
        "description": "Renders screenshots of a 3D model from predefined or supplied camera poses.",
        "operationId": "InvokeModel3DPreviewStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Model3DPreviewInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Model3DPreviewInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Model3DPreviewInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Model3DPreviewOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/modelHash": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "ModelHash",
        "description": "Computes Civitai content hashes (SHA256, AutoV1/2/3, Blake3, CRC32) of a model file.",
        "operationId": "InvokeModelHashStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModelHashInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ModelHashInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ModelHashInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelHashOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/modelParseMetadata": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "ModelParseMetadata",
        "description": "Extracts the embedded JSON metadata header from a safetensors model file.",
        "operationId": "InvokeModelParseMetadataStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModelParseMetadataInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ModelParseMetadataInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ModelParseMetadataInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelParseMetadataOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/polyGen": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "3D model generation",
        "description": "Generate 3D models through text or image inputs using any of our supported engines.",
        "operationId": "InvokePolyGenStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PolyGenInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PolyGenInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PolyGenInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PolyGenOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/prepareResource": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Prepare Resource",
        "description": "Loads a resource into a provider so later work needing it does not pay the cold-start download. Succeeds immediately when the resource is already available on the fleet.",
        "operationId": "InvokePrepareResourceStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PrepareResourceInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PrepareResourceInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PrepareResourceInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrepareResourceOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/preprocessImage": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "operationId": "InvokePreprocessImageStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreprocessImageInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PreprocessImageInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PreprocessImageInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreprocessImageOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/preprocessVideo": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "operationId": "InvokePreprocessVideoStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreprocessVideoInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PreprocessVideoInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PreprocessVideoInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreprocessVideoOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/promptEnhancement": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "PromptEnhancement",
        "description": "Analyzes and enhances user prompts for a specific AI ecosystem.\n/// Returns detected issues, recommendations, and improved prompt variants.",
        "operationId": "InvokePromptEnhancementStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PromptEnhancementInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PromptEnhancementInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PromptEnhancementInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromptEnhancementOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/promptModeration": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "PromptModeration",
        "description": "Evaluate CR, Young and Sexual together with Civitai Imajev's fixed BF16 model and packaged policies.",
        "operationId": "InvokePromptModerationStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PromptModerationInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PromptModerationInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PromptModerationInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PromptModerationOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/qwenImageBench": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Qwen Image Bench",
        "description": "Scores generated images against their prompts using Qwen-Image-Bench.",
        "operationId": "InvokeQwenImageBenchStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QwenImageBenchInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QwenImageBenchInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QwenImageBenchInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QwenImageBenchOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/repeat": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Repeat workflow step.",
        "operationId": "InvokeRepeatStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RepeatInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RepeatInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RepeatInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RepeatOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/soniloAudioGen": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Generate music or a standalone sound effect from a text prompt with Sonilo.",
        "operationId": "InvokeSoniloAudioGenStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "Text-to-audio via Sonilo; `operation` picks music or a standalone sound effect.",
                "$ref": "#/components/schemas/SoniloAudioGenInput"
              }
            },
            "text/json": {
              "schema": {
                "description": "Text-to-audio via Sonilo; `operation` picks music or a standalone sound effect.",
                "$ref": "#/components/schemas/SoniloAudioGenInput"
              }
            },
            "application/*+json": {
              "schema": {
                "description": "Text-to-audio via Sonilo; `operation` picks music or a standalone sound effect.",
                "$ref": "#/components/schemas/SoniloAudioGenInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SoniloAudioGenOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/textToImage": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "TextToImage",
        "description": "Generate images using text as input",
        "operationId": "InvokeTextToImageStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TextToImageInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TextToImageInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TextToImageInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TextToImageOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/textToSpeech": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Text-to-Speech",
        "description": "Synthesizes speech from text, supporting both voice cloning (Base mode with reference audio) and built-in speakers (CustomVoice mode).",
        "operationId": "InvokeTextToSpeechStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TextToSpeechInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TextToSpeechInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TextToSpeechInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TextToSpeechOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/training": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Training",
        "description": "Trains models (LoRAs, checkpoints) on images, videos or audio, one job per epoch.",
        "operationId": "InvokeTrainingStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrainingInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TrainingInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TrainingInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrainingOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/transcode": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Transcoding",
        "operationId": "InvokeTranscodeStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranscodeInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TranscodeInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TranscodeInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranscodeOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/transcription": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Transcription",
        "description": "Performs automatic speech recognition (ASR) on audio media, returning transcribed text with optional timestamps.",
        "operationId": "InvokeTranscriptionStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TranscriptionInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TranscriptionInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TranscriptionInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TranscriptionOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/tryOnU": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "operationId": "InvokeTryOnUStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TryOnUInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TryOnUInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TryOnUInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TryOnUOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/videoBackgroundRemoval": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Tracks a prompted foreground object across a video and returns a lossless animated WebP with transparency.",
        "operationId": "InvokeVideoBackgroundRemovalStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoBackgroundRemovalInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoBackgroundRemovalInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VideoBackgroundRemovalInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoBackgroundRemovalOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/videoEnhancement": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Upscale videos and/or interpolate frames",
        "operationId": "InvokeVideoEnhancementStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoEnhancementInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoEnhancementInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VideoEnhancementInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoEnhancementOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/videoFrameExtraction": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Video Frame Extraction",
        "description": "Extracts unique frames from a video at a specified rate, filtering near-duplicates by perceptual hash.",
        "operationId": "InvokeVideoFrameExtractionStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoFrameExtractionInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoFrameExtractionInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VideoFrameExtractionInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoFrameExtractionOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/videoGen": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Video generation",
        "description": "Generate videos through text/image inputs using any of our supported engines",
        "operationId": "InvokeVideoGenStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoGenInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoGenInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VideoGenInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoGenOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/videoInterpolation": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Interpolate videos using VFI Mamba",
        "operationId": "InvokeVideoInterpolationStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoInterpolationInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoInterpolationInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VideoInterpolationInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoInterpolationOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/videoMetadata": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Extract metadata from videos including width, height, FPS, and duration",
        "operationId": "InvokeVideoMetadataStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoMetadataInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoMetadataInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VideoMetadataInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoMetadataOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/videoUpscaler": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Upscale videos using FlashVSR",
        "operationId": "InvokeVideoUpscalerStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoUpscalerInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/VideoUpscalerInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/VideoUpscalerInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VideoUpscalerOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/wdTagging": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "WDTagging",
        "description": "Performs Waifu Diffusion tagging on media content to identify characteristics, objects, and themes.",
        "operationId": "InvokeWDTaggingStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WDTaggingInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/WDTaggingInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/WDTaggingInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WDTaggingOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/webScrape": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "WebScrape",
        "description": "Fetches and renders a single web page, returning its content as markdown and/or HTML.",
        "operationId": "InvokeWebScrapeStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebScrapeInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/WebScrapeInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/WebScrapeInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebScrapeOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/webSearch": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "WebSearch",
        "description": "Searches the web, returning result titles, URLs and descriptions, optionally with the scraped content of each result page.",
        "operationId": "InvokeWebSearchStepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebSearchInput"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/WebSearchInput"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/WebSearchInput"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebSearchOutput"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/recipes/yuE2": {
      "post": {
        "tags": [
          "Recipes"
        ],
        "summary": "Generate a song from style and lyrics with YuE2.",
        "operationId": "InvokeYuE2StepTemplate",
        "parameters": [
          {
            "name": "experimental",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "allowMatureContent",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "ephemeral",
            "in": "query",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "tier",
            "in": "query",
            "description": "How a workflow is paid for.",
            "schema": {
              "$ref": "#/components/schemas/WorkflowTier"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "description": "YuE2 text-to-music generation with optional ABC score planning.",
                "$ref": "#/components/schemas/YuE2Input"
              }
            },
            "text/json": {
              "schema": {
                "description": "YuE2 text-to-music generation with optional ABC score planning.",
                "$ref": "#/components/schemas/YuE2Input"
              }
            },
            "application/*+json": {
              "schema": {
                "description": "YuE2 text-to-music generation with optional ABC score planning.",
                "$ref": "#/components/schemas/YuE2Input"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/YuE2Output"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/resources": {
      "get": {
        "tags": [
          "Resources"
        ],
        "summary": "List resources: `view=Queue` is what the orchestrator is loading now, `view=Loaded`\nwhat at least one worker holds and can use now. Each page is a fresh snapshot.",
        "operationId": "QueryResources",
        "parameters": [
          {
            "name": "view",
            "in": "query",
            "description": "A projection of the resource collection. There is no view that lists every known resource — resources\nare addressed by AIR and only materialise once something asks for them.",
            "required": true,
            "schema": {
              "description": "A projection of the resource collection. There is no view that lists every known resource — resources\nare addressed by AIR and only materialise once something asks for them.",
              "$ref": "#/components/schemas/ResourceView"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "take",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "Repeatable, OR'd. Matches the AIR's type segment literally with no alias expansion, so `checkpoint`\ndoes not cover base weights arriving as `diffusion_model`, `diffusionmodel` or `unet`.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "excludeType",
            "in": "query",
            "description": "Repeatable, OR'd, and wins over `type`. `other`, `torchcompilecache` and\n`nodepacklayer` are the generated artifacts rather than models.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "source",
            "in": "query",
            "description": "Repeatable, OR'd, matched against the AIR's source segment. `civitai` is the cheapest\nway to drop everything the orchestrator generated itself.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "minSizeBytes",
            "in": "query",
            "description": "Inclusive. 1073741824 (1 GiB) is where a resource starts taking the large download lane. A\nresource whose provider never reported a byte count has size 0 and is excluded by any value.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "maxSizeBytes",
            "in": "query",
            "description": "Inclusive.",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CursedArrayOfStringAndResourceInfo"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable"
          }
        }
      }
    },
    "/v2/resources/{air}": {
      "get": {
        "tags": [
          "Resources"
        ],
        "summary": "Get an existing resource.",
        "operationId": "GetResource",
        "parameters": [
          {
            "name": "air",
            "in": "path",
            "description": "A unique ID for the resource being requested. See https://developer.civitai.com/site/guide/air for more info on AIRs.",
            "required": true,
            "schema": {
              "pattern": "^(?!huggingface/).*$",
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResourceInfo"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/services": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "List services, optionally filtered.",
        "operationId": "ListServices",
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "description": "Restrict to a category (image, video, chat, audio, text, 3d, model, utility).",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "prefix",
            "in": "query",
            "description": "Restrict to a subtree of the id, e.g. \"image/flux2\".",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tags",
            "in": "query",
            "description": "Only services carrying all of these tags.",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "Free-text over id, name, description and tags.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "status",
            "in": "query",
            "description": "Only services currently in this state.",
            "schema": {
              "$ref": "#/components/schemas/ServiceStatus"
            }
          },
          {
            "name": "window",
            "in": "query",
            "description": "Window the metrics and status are computed over: 1h, 24h or 7d.",
            "schema": {
              "type": "string",
              "default": "24h"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of services to return.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "description": "Number of services to skip.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedResponseOfServiceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/v2/services/{serviceId}": {
      "get": {
        "tags": [
          "Services"
        ],
        "summary": "Get a single service by id, e.g. \"image/flux2/klein/createImage/9b\", with its bucketed\nhistory over the window.",
        "operationId": "GetService",
        "parameters": [
          {
            "name": "serviceId",
            "in": "path",
            "description": "The service id.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "window",
            "in": "query",
            "description": "Window the summary metrics and history cover: 1h, 24h or 7d.",
            "schema": {
              "type": "string",
              "default": "24h"
            }
          },
          {
            "name": "interval",
            "in": "query",
            "description": "History bucket size: 5m, 1h or 1d.",
            "schema": {
              "type": "string",
              "default": "1h"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "A service we offer.",
                  "$ref": "#/components/schemas/ServiceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/v2/consumer/streaming-blobs/{blobKey}": {
      "post": {
        "tags": [
          "StreamingBlobs"
        ],
        "description": "Number chunks from `seq=0`; a resent seq is a no-op, a gap returns 409 with the expected seq,\nand `final=true` closes the blob.",
        "operationId": "AppendStreamingBlob",
        "parameters": [
          {
            "name": "blobKey",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "seq",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int64"
            }
          },
          {
            "name": "final",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingBlobAppendResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StreamingBlobAppendResponse"
                }
              }
            }
          },
          "413": {
            "description": "Content Too Large",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": []
      },
      "get": {
        "tags": [
          "StreamingBlobs"
        ],
        "operationId": "GetStreamingBlob",
        "parameters": [
          {
            "name": "blobKey",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/v2/consumer/workflows": {
      "post": {
        "tags": [
          "Workflows"
        ],
        "summary": "Submit workflow",
        "operationId": "SubmitWorkflow",
        "parameters": [
          {
            "name": "wait",
            "in": "query",
            "description": "Seconds to wait for the workflow to complete before returning. If it has not completed by then a 202 is\nreturned and the client should query the workflow by its id.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "description": "Whether to actually submit the workflow or return an estimate on what would happen upon submission",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "hideMatureContent",
            "in": "query",
            "description": "When set to true, any blob that has mature won't be available and won't have a URL",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkflowTemplate"
              },
              "examples": {
                "TextToImage": {
                  "value": {
                    "metadata": {
                      "key1": "value1",
                      "key2": 2
                    },
                    "steps": [
                      {
                        "input": {
                          "quantity": 2,
                          "batchSize": 4,
                          "model": "urn:air:sdxl:model:civitai:101055@128078",
                          "additionalNetworks": {
                            "urn:air:sd1:embedding:civitai:7808@9208": {
                              "triggerWord": "easynegative"
                            }
                          },
                          "controlNets": [],
                          "prompt": "A curious cat",
                          "negativePrompt": "nsfw",
                          "scheduler": "eulerA",
                          "steps": 30,
                          "cfgScale": 7.5,
                          "width": 512,
                          "height": 512,
                          "seed": 1790693947,
                          "clipSkip": 2,
                          "outputFormat": "jpeg",
                          "sourceImageDenoiseStrenght": 0.8
                        },
                        "priority": "high",
                        "timeout": "00:05:00",
                        "retries": 5
                      }
                    ],
                    "callbacks": [
                      {
                        "url": "https://example.com/callback",
                        "type": [
                          "workflow:succeeded",
                          "workflow:failed"
                        ]
                      }
                    ],
                    "tier": "paid",
                    "upgradeMode": "automatic",
                    "currencies": []
                  }
                },
                "LORA training": {
                  "value": {
                    "metadata": {
                      "key1": "value1",
                      "key2": 2
                    },
                    "steps": [
                      {
                        "input": {
                          "maxTrainEpochs": 5,
                          "numRepeats": 8,
                          "resolution": 512,
                          "enableBucket": true,
                          "shuffleCaption": false,
                          "keepTokens": 0,
                          "clipSkip": 1,
                          "flipAugmentation": false,
                          "unetLR": 0.00005,
                          "textEncoderLR": 0.00005,
                          "lrSchedulerNumCycles": 3,
                          "engine": "kohya",
                          "model": "urn:air:sdxl:model:civitai:101055@128078",
                          "trainingData": "https://example.com/training-data",
                          "trainingDataImagesCount": 10,
                          "loraName": "mylora",
                          "samplePrompts": []
                        },
                        "priority": "normal",
                        "retries": 1
                      }
                    ],
                    "callbacks": [
                      {
                        "url": "https://example.com/callback",
                        "type": [
                          "workflow:succeeded",
                          "workflow:failed"
                        ]
                      }
                    ],
                    "tier": "paid",
                    "upgradeMode": "automatic",
                    "currencies": []
                  }
                },
                "Comfy job": {
                  "value": {
                    "metadata": {
                      "key1": "value1",
                      "key2": 2
                    },
                    "steps": [
                      {
                        "input": {
                          "comfyWorkflow": {
                            "3": {
                              "class_type": "KSampler",
                              "inputs": {
                                "sampler_name": "euler",
                                "scheduler": "normal",
                                "seed": 740593329207015,
                                "steps": 20,
                                "cfg": 8,
                                "denoise": 1,
                                "model": [
                                  "4",
                                  0
                                ],
                                "positive": [
                                  "6",
                                  0
                                ],
                                "negative": [
                                  "7",
                                  0
                                ],
                                "latent_image": [
                                  "5",
                                  0
                                ]
                              }
                            },
                            "4": {
                              "class_type": "CheckpointLoaderSimple",
                              "inputs": {
                                "ckpt_name": "@civitai/46846"
                              }
                            },
                            "5": {
                              "class_type": "EmptyLatentImage",
                              "inputs": {
                                "width": 512,
                                "height": 512,
                                "batch_size": 1
                              }
                            },
                            "6": {
                              "class_type": "CLIPTextEncode",
                              "inputs": {
                                "text": "beautiful scenery nature glass bottle landscape, purple galaxy bottle",
                                "clip": [
                                  "4",
                                  1
                                ]
                              }
                            },
                            "7": {
                              "class_type": "CLIPTextEncode",
                              "inputs": {
                                "text": "text, watermark",
                                "clip": [
                                  "4",
                                  1
                                ]
                              }
                            },
                            "8": {
                              "class_type": "VAEDecode",
                              "inputs": {
                                "samples": [
                                  "3",
                                  0
                                ],
                                "vae": [
                                  "4",
                                  2
                                ]
                              }
                            },
                            "9": {
                              "class_type": "SaveImage",
                              "inputs": {
                                "filename_prefix": "ComfyUI",
                                "images": [
                                  "8",
                                  0
                                ]
                              }
                            }
                          },
                          "quantity": 1
                        }
                      }
                    ],
                    "callbacks": [
                      {
                        "url": "https://example.com/callback",
                        "type": [
                          "workflow:succeeded",
                          "workflow:failed"
                        ]
                      }
                    ],
                    "tier": "paid",
                    "upgradeMode": "automatic",
                    "currencies": []
                  }
                }
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/WorkflowTemplate"
              },
              "examples": {
                "TextToImage": {
                  "value": {
                    "metadata": {
                      "key1": "value1",
                      "key2": 2
                    },
                    "steps": [
                      {
                        "input": {
                          "quantity": 2,
                          "batchSize": 4,
                          "model": "urn:air:sdxl:model:civitai:101055@128078",
                          "additionalNetworks": {
                            "urn:air:sd1:embedding:civitai:7808@9208": {
                              "triggerWord": "easynegative"
                            }
                          },
                          "controlNets": [],
                          "prompt": "A curious cat",
                          "negativePrompt": "nsfw",
                          "scheduler": "eulerA",
                          "steps": 30,
                          "cfgScale": 7.5,
                          "width": 512,
                          "height": 512,
                          "seed": 1790693947,
                          "clipSkip": 2,
                          "outputFormat": "jpeg",
                          "sourceImageDenoiseStrenght": 0.8
                        },
                        "priority": "high",
                        "timeout": "00:05:00",
                        "retries": 5
                      }
                    ],
                    "callbacks": [
                      {
                        "url": "https://example.com/callback",
                        "type": [
                          "workflow:succeeded",
                          "workflow:failed"
                        ]
                      }
                    ],
                    "tier": "paid",
                    "upgradeMode": "automatic",
                    "currencies": []
                  }
                },
                "LORA training": {
                  "value": {
                    "metadata": {
                      "key1": "value1",
                      "key2": 2
                    },
                    "steps": [
                      {
                        "input": {
                          "maxTrainEpochs": 5,
                          "numRepeats": 8,
                          "resolution": 512,
                          "enableBucket": true,
                          "shuffleCaption": false,
                          "keepTokens": 0,
                          "clipSkip": 1,
                          "flipAugmentation": false,
                          "unetLR": 0.00005,
                          "textEncoderLR": 0.00005,
                          "lrSchedulerNumCycles": 3,
                          "engine": "kohya",
                          "model": "urn:air:sdxl:model:civitai:101055@128078",
                          "trainingData": "https://example.com/training-data",
                          "trainingDataImagesCount": 10,
                          "loraName": "mylora",
                          "samplePrompts": []
                        },
                        "priority": "normal",
                        "retries": 1
                      }
                    ],
                    "callbacks": [
                      {
                        "url": "https://example.com/callback",
                        "type": [
                          "workflow:succeeded",
                          "workflow:failed"
                        ]
                      }
                    ],
                    "tier": "paid",
                    "upgradeMode": "automatic",
                    "currencies": []
                  }
                },
                "Comfy job": {
                  "value": {
                    "metadata": {
                      "key1": "value1",
                      "key2": 2
                    },
                    "steps": [
                      {
                        "input": {
                          "comfyWorkflow": {
                            "3": {
                              "class_type": "KSampler",
                              "inputs": {
                                "sampler_name": "euler",
                                "scheduler": "normal",
                                "seed": 740593329207015,
                                "steps": 20,
                                "cfg": 8,
                                "denoise": 1,
                                "model": [
                                  "4",
                                  0
                                ],
                                "positive": [
                                  "6",
                                  0
                                ],
                                "negative": [
                                  "7",
                                  0
                                ],
                                "latent_image": [
                                  "5",
                                  0
                                ]
                              }
                            },
                            "4": {
                              "class_type": "CheckpointLoaderSimple",
                              "inputs": {
                                "ckpt_name": "@civitai/46846"
                              }
                            },
                            "5": {
                              "class_type": "EmptyLatentImage",
                              "inputs": {
                                "width": 512,
                                "height": 512,
                                "batch_size": 1
                              }
                            },
                            "6": {
                              "class_type": "CLIPTextEncode",
                              "inputs": {
                                "text": "beautiful scenery nature glass bottle landscape, purple galaxy bottle",
                                "clip": [
                                  "4",
                                  1
                                ]
                              }
                            },
                            "7": {
                              "class_type": "CLIPTextEncode",
                              "inputs": {
                                "text": "text, watermark",
                                "clip": [
                                  "4",
                                  1
                                ]
                              }
                            },
                            "8": {
                              "class_type": "VAEDecode",
                              "inputs": {
                                "samples": [
                                  "3",
                                  0
                                ],
                                "vae": [
                                  "4",
                                  2
                                ]
                              }
                            },
                            "9": {
                              "class_type": "SaveImage",
                              "inputs": {
                                "filename_prefix": "ComfyUI",
                                "images": [
                                  "8",
                                  0
                                ]
                              }
                            }
                          },
                          "quantity": 1
                        }
                      }
                    ],
                    "callbacks": [
                      {
                        "url": "https://example.com/callback",
                        "type": [
                          "workflow:succeeded",
                          "workflow:failed"
                        ]
                      }
                    ],
                    "tier": "paid",
                    "upgradeMode": "automatic",
                    "currencies": []
                  }
                }
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/WorkflowTemplate"
              },
              "examples": {
                "TextToImage": {
                  "value": {
                    "metadata": {
                      "key1": "value1",
                      "key2": 2
                    },
                    "steps": [
                      {
                        "input": {
                          "quantity": 2,
                          "batchSize": 4,
                          "model": "urn:air:sdxl:model:civitai:101055@128078",
                          "additionalNetworks": {
                            "urn:air:sd1:embedding:civitai:7808@9208": {
                              "triggerWord": "easynegative"
                            }
                          },
                          "controlNets": [],
                          "prompt": "A curious cat",
                          "negativePrompt": "nsfw",
                          "scheduler": "eulerA",
                          "steps": 30,
                          "cfgScale": 7.5,
                          "width": 512,
                          "height": 512,
                          "seed": 1790693947,
                          "clipSkip": 2,
                          "outputFormat": "jpeg",
                          "sourceImageDenoiseStrenght": 0.8
                        },
                        "priority": "high",
                        "timeout": "00:05:00",
                        "retries": 5
                      }
                    ],
                    "callbacks": [
                      {
                        "url": "https://example.com/callback",
                        "type": [
                          "workflow:succeeded",
                          "workflow:failed"
                        ]
                      }
                    ],
                    "tier": "paid",
                    "upgradeMode": "automatic",
                    "currencies": []
                  }
                },
                "LORA training": {
                  "value": {
                    "metadata": {
                      "key1": "value1",
                      "key2": 2
                    },
                    "steps": [
                      {
                        "input": {
                          "maxTrainEpochs": 5,
                          "numRepeats": 8,
                          "resolution": 512,
                          "enableBucket": true,
                          "shuffleCaption": false,
                          "keepTokens": 0,
                          "clipSkip": 1,
                          "flipAugmentation": false,
                          "unetLR": 0.00005,
                          "textEncoderLR": 0.00005,
                          "lrSchedulerNumCycles": 3,
                          "engine": "kohya",
                          "model": "urn:air:sdxl:model:civitai:101055@128078",
                          "trainingData": "https://example.com/training-data",
                          "trainingDataImagesCount": 10,
                          "loraName": "mylora",
                          "samplePrompts": []
                        },
                        "priority": "normal",
                        "retries": 1
                      }
                    ],
                    "callbacks": [
                      {
                        "url": "https://example.com/callback",
                        "type": [
                          "workflow:succeeded",
                          "workflow:failed"
                        ]
                      }
                    ],
                    "tier": "paid",
                    "upgradeMode": "automatic",
                    "currencies": []
                  }
                },
                "Comfy job": {
                  "value": {
                    "metadata": {
                      "key1": "value1",
                      "key2": 2
                    },
                    "steps": [
                      {
                        "input": {
                          "comfyWorkflow": {
                            "3": {
                              "class_type": "KSampler",
                              "inputs": {
                                "sampler_name": "euler",
                                "scheduler": "normal",
                                "seed": 740593329207015,
                                "steps": 20,
                                "cfg": 8,
                                "denoise": 1,
                                "model": [
                                  "4",
                                  0
                                ],
                                "positive": [
                                  "6",
                                  0
                                ],
                                "negative": [
                                  "7",
                                  0
                                ],
                                "latent_image": [
                                  "5",
                                  0
                                ]
                              }
                            },
                            "4": {
                              "class_type": "CheckpointLoaderSimple",
                              "inputs": {
                                "ckpt_name": "@civitai/46846"
                              }
                            },
                            "5": {
                              "class_type": "EmptyLatentImage",
                              "inputs": {
                                "width": 512,
                                "height": 512,
                                "batch_size": 1
                              }
                            },
                            "6": {
                              "class_type": "CLIPTextEncode",
                              "inputs": {
                                "text": "beautiful scenery nature glass bottle landscape, purple galaxy bottle",
                                "clip": [
                                  "4",
                                  1
                                ]
                              }
                            },
                            "7": {
                              "class_type": "CLIPTextEncode",
                              "inputs": {
                                "text": "text, watermark",
                                "clip": [
                                  "4",
                                  1
                                ]
                              }
                            },
                            "8": {
                              "class_type": "VAEDecode",
                              "inputs": {
                                "samples": [
                                  "3",
                                  0
                                ],
                                "vae": [
                                  "4",
                                  2
                                ]
                              }
                            },
                            "9": {
                              "class_type": "SaveImage",
                              "inputs": {
                                "filename_prefix": "ComfyUI",
                                "images": [
                                  "8",
                                  0
                                ]
                              }
                            }
                          },
                          "quantity": 1
                        }
                      }
                    ],
                    "callbacks": [
                      {
                        "url": "https://example.com/callback",
                        "type": [
                          "workflow:succeeded",
                          "workflow:failed"
                        ]
                      }
                    ],
                    "tier": "paid",
                    "upgradeMode": "automatic",
                    "currencies": []
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workflow"
                }
              }
            }
          },
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workflow"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Workflows"
        ],
        "summary": "Query workflows",
        "operationId": "QueryWorkflows",
        "parameters": [
          {
            "name": "cursor",
            "in": "query",
            "description": "An optional cursor to continue querying workflows from a previous query.",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "take",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          },
          {
            "name": "tags",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "excludeTags",
            "in": "query",
            "description": "An optional list of tags; workflows with any of these tags are excluded",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "query",
            "in": "query",
            "description": "An optional additional query that is used to match workflows through metadata",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "ascending",
            "in": "query",
            "description": "Whether to return data from oldest to newest",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "hideMatureContent",
            "in": "query",
            "description": "When set to true, any blob that has mature won't be available and won't have a URL",
            "schema": {
              "type": "boolean",
              "default": true
            }
          },
          {
            "name": "fromDate",
            "in": "query",
            "description": "An optional start date to filter workflows created on or after this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "toDate",
            "in": "query",
            "description": "An optional end date to filter workflows created on or before this date",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "excludeFailed",
            "in": "query",
            "description": "When set to true, excludes workflows with Failed, Expired, or Canceled status",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "Specify 'application/zip' to get the response as a zip file",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CursedArrayOfTelemetryCursorAndWorkflow"
                }
              },
              "application/zip": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/workflows/{workflowId}": {
      "get": {
        "tags": [
          "Workflows"
        ],
        "summary": "Get workflow",
        "operationId": "GetWorkflow",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "wait",
            "in": "query",
            "description": "Seconds to wait for the workflow to complete before returning. If it has not completed by then a 202 is\nreturned and the client should query the workflow by its id.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "until",
            "in": "query",
            "description": "What wait waits for: `completion` (the default) returns once the workflow reaches a\nfinal status, `change` as soon as its status or any of its steps changes.",
            "schema": {
              "description": "What a held read of a workflow waits for before it returns.",
              "default": "completion",
              "$ref": "#/components/schemas/WorkflowWaitUntil"
            }
          },
          {
            "name": "hideMatureContent",
            "in": "query",
            "description": "When set to true, any blob that has mature won't be available and won't have a URL",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workflow"
                }
              }
            }
          },
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workflow"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Workflows"
        ],
        "summary": "Update workflow",
        "description": "Updates a workflow. This can currently be used to cancel a workflow or override metadata and/or tags",
        "operationId": "UpdateWorkflow",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "whatif",
            "in": "query",
            "description": "Whether to apply the update or return what it would cost.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWorkflowRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWorkflowRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWorkflowRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Workflow"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Workflows"
        ],
        "summary": "Patch workflow",
        "description": "Patches a workflow using JSON Patch. This can currently be used to cancel a workflow, update metadata and add additional tags",
        "operationId": "PatchWorkflow",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonPatchDocument"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Workflows"
        ],
        "summary": "Delete workflow",
        "description": "May trigger a refund if the work requested with this workflow has not yet started",
        "operationId": "DeleteWorkflow",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/workflows/{workflowId}/tags": {
      "post": {
        "tags": [
          "Workflows"
        ],
        "summary": "Add workflow tag",
        "operationId": "AddWorkflowTag",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "string"
              }
            },
            "text/json": {
              "schema": {
                "type": "string"
              }
            },
            "application/*+json": {
              "schema": {
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Workflows"
        ],
        "summary": "Delete all workflow tags",
        "operationId": "RemoveAllWorkflowTags",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/workflows/{workflowId}/tags/{tag}": {
      "delete": {
        "tags": [
          "Workflows"
        ],
        "summary": "Delete workflow tag",
        "operationId": "RemoveWorkflowTag",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tag",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValidationProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v2/consumer/workflows/{workflowId}/steps/{stepName}": {
      "get": {
        "tags": [
          "WorkflowSteps"
        ],
        "summary": "Get the status of a workflow step",
        "operationId": "GetWorkflowStep",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stepName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkflowStep"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "WorkflowSteps"
        ],
        "summary": "Updates a step within a particular workflow.",
        "operationId": "UpdateWorkflowStep",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stepName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWorkflowStepRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWorkflowStepRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateWorkflowStepRequest"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "WorkflowSteps"
        ],
        "operationId": "PatchWorkflowStep",
        "parameters": [
          {
            "name": "workflowId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "stepName",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/JsonPatchDocument"
              }
            }
          }
        },
        "responses": {
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AIRecognitionResult": {
        "required": [
          "confidence",
          "label"
        ],
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "description": "Classification label, taken from the model's own id2label — AIorNot-SigLIP2 emits\n\"AI\"/\"Real\". Casing varies per model, so compare case-insensitively."
          },
          "confidence": {
            "type": "number",
            "description": "Confidence in the classification given by Label (0.0 to 1.0) — not the probability of being AI.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Represents AI vs real image recognition results."
      },
      "AIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "ecosystem",
              "engine",
              "maxBatchSize",
              "storageBuzzPerEpoch",
              "trace",
              "usesStepPricing"
            ],
            "type": "object",
            "properties": {
              "ecosystem": {
                "type": "string"
              },
              "epochs": {
                "maximum": 200,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Number of saved checkpoints (one downloadable model per epoch). Derived from `steps` when omitted;\nwhen both are supplied, epochs is the checkpoint count and steps the total.",
                "format": "int32"
              },
              "steps": {
                "maximum": 10000,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Total training steps; the primary control over training length and pricing.\nDerived from `epochs` when omitted.",
                "format": "int32"
              },
              "batchSize": {
                "maximum": 4,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Defaults to 1; raise it (up to the ecosystem maximum, above which it is clamped) to train faster at the cost of GPU memory.\nA larger batch sees more images per step, so fewer steps are needed.",
                "format": "int32"
              },
              "lr": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "description": "Sets the learning rate for the model. This is the learning rate when performing additional learning on each attention block (and other blocks depending on the setting).",
                "format": "double",
                "default": 0.0001
              },
              "textEncoderLr": {
                "maximum": 1,
                "minimum": 0,
                "type": [
                  "null",
                  "number"
                ],
                "description": "Sets the learning rate for the text encoder. Only used when TrainTextEncoder is true. For models with multiple text encoders, this applies to all of them.",
                "format": "double"
              },
              "trainTextEncoder": {
                "type": [
                  "null",
                  "boolean"
                ],
                "description": "Whether to train the text encoder(s) alongside the model. Enabling this can improve prompt understanding but increases training time and memory usage."
              },
              "lrScheduler": {
                "enum": [
                  "constant",
                  "constant_with_warmup",
                  "cosine",
                  "linear",
                  "step"
                ],
                "type": [
                  "null",
                  "string"
                ],
                "description": "You can change the learning rate in the middle of learning. A scheduler is a setting for how to change the learning rate."
              },
              "optimizerType": {
                "enum": [
                  "adamw",
                  "adamw8bit",
                  "adam8bit",
                  "lion",
                  "lion8bit",
                  "adafactor",
                  "adagrad",
                  "prodigy",
                  "prodigy8bit",
                  "automagic"
                ],
                "type": [
                  "null",
                  "string"
                ],
                "description": "The optimizer determines how to update the neural net weights during training.\nVarious methods have been proposed for smart learning, but the most commonly used in LoRA learning is \"adamw8bit\"."
              },
              "networkDim": {
                "maximum": 256,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "The larger the Dim setting, the more learning information can be stored, but the possibility of learning unnecessary information other than the learning target increases. A larger Dim also increases LoRA file size.",
                "format": "int32"
              },
              "networkAlpha": {
                "maximum": 256,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Scales the stored weights by Alpha/Dim (e.g. 16/32 halves the effective learning rate); equal to Dim means no scaling.",
                "format": "int32"
              },
              "noiseOffset": {
                "maximum": 1,
                "minimum": 0,
                "type": [
                  "null",
                  "number"
                ],
                "description": "Adds noise to training images. 0 adds no noise at all. A value of 1 adds strong noise.",
                "format": "double"
              },
              "flipAugmentation": {
                "type": "boolean",
                "description": "If this option is turned on, the image will be horizontally flipped randomly. It can learn left and right angles, which is useful when you want to learn symmetrical people and objects.",
                "default": false
              },
              "shuffleTokens": {
                "type": "boolean",
                "description": "Randomly changes the order of your tags during training. The intent of shuffling is to improve learning. If you are using captions (sentences), this option has no meaning.",
                "default": false
              },
              "keepTokens": {
                "maximum": 10,
                "minimum": 0,
                "type": "integer",
                "description": "Number of leading tags kept in place when `shuffleTokens` is on; does nothing otherwise.",
                "format": "int32",
                "default": 0
              },
              "triggerWord": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "A trigger word that activates the trained LoRA when used in prompts.\nOnly applicable to certain ecosystems (sd1, sdxl, flux1, chroma, zimagebase, zimageturbo, flux2klein)."
              },
              "continueFrom": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ],
                "description": "Optional previously-trained LoRA to continue training from (\"train further\"). When set, the first\nepoch resumes from this model instead of the base model, and the new epochs build on top of it."
              },
              "trace": {
                "description": "What each epoch job records to its trace stream (`output.epochs[].traceUrl`): `none` (default), `logs` (plain-text console output)\nor `events` (NDJSON of console lines, step progress, phases and epoch checkpoints).",
                "$ref": "#/components/schemas/TrainingTraceMode"
              },
              "storageBuzzPerEpoch": {
                "type": "number",
                "description": "Per-epoch surcharge (buzz) for the delivered checkpoint and its preview samples, billed on top of the per-step cost. Override where per-epoch samples are expensive (e.g. video).",
                "format": "double",
                "readOnly": true
              },
              "defaultSteps": {
                "type": "integer",
                "description": "Default step budget when neither `steps` nor `epochs` is supplied; override where the ecosystem needs more or fewer.",
                "format": "int32",
                "readOnly": true
              },
              "usesStepPricing": {
                "type": "boolean",
                "description": "False only on the legacy path where the caller supplied `epochs` but no `steps`,\nwhich keeps the historical flat per-epoch price.",
                "readOnly": true
              },
              "maxBatchSize": {
                "type": "integer",
                "description": "Upper bound the user's `batchSize` is clamped to; most ecosystems cap at 1.",
                "format": "int32",
                "readOnly": true
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "ecosystem",
              "mapping": {
                "flux1": "#/components/schemas/Flux1AIToolkitTrainingInput",
                "sdxl": "#/components/schemas/SdxlAIToolkitTrainingInput",
                "sd1": "#/components/schemas/SD1AIToolkitTrainingInput",
                "chroma": "#/components/schemas/ChromaAIToolkitTrainingInput",
                "ernie": "#/components/schemas/ErnieAIToolkitTrainingInput",
                "qwen": "#/components/schemas/QwenAIToolkitTrainingInput",
                "qwen21": "#/components/schemas/Qwen21AIToolkitTrainingInput",
                "zimageturbo": "#/components/schemas/ZImageTurboAIToolkitTrainingInput",
                "zimagebase": "#/components/schemas/ZImageBaseAIToolkitTrainingInput",
                "mossImage": "#/components/schemas/MossImageAIToolkitTrainingInput",
                "flux3klein": "#/components/schemas/Flux3KleinAIToolkitTrainingInput",
                "flux2klein": "#/components/schemas/Flux2KleinAIToolkitTrainingInput",
                "ltx2": "#/components/schemas/Ltx2AIToolkitTrainingInput",
                "ltx23": "#/components/schemas/Ltx23AIToolkitTrainingInput",
                "ltx25": "#/components/schemas/Ltx25AIToolkitTrainingInput",
                "ace_step_15": "#/components/schemas/AceStep15AIToolkitTrainingInput",
                "ace_step_15_xl": "#/components/schemas/AceStep15XlAIToolkitTrainingInput",
                "hidream-o1": "#/components/schemas/HiDreamO1AIToolkitTrainingInput",
                "anima": "#/components/schemas/AnimaAIToolkitTrainingInput",
                "boogu": "#/components/schemas/BooguAIToolkitTrainingInput",
                "krea2": "#/components/schemas/Krea2AIToolkitTrainingInput",
                "ideogram4": "#/components/schemas/Ideogram4AIToolkitTrainingInput",
                "mageflow": "#/components/schemas/MageFlowAIToolkitTrainingInput",
                "ming": "#/components/schemas/MingAIToolkitTrainingInput",
                "yue2": "#/components/schemas/YuE2AIToolkitTrainingInput",
                "minimaxh3": "#/components/schemas/MiniMaxH3AIToolkitTrainingInput"
              }
            }
          }
        ]
      },
      "AceStep15AIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "samplesOverrides": {
                "type": "array",
                "items": {
                  "description": "Per-prompt overrides for AceStep training samples, index-aligned with `Samples.Prompts`;\nnull fields fall back to the hardcoded sample default.",
                  "$ref": "#/components/schemas/AceStepSampleOverride"
                }
              },
              "ecosystem": {
                "enum": [
                  "ace_step_15"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "AceStep15XlAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "modelVariant"
            ],
            "type": "object",
            "properties": {
              "modelVariant": {
                "type": "string"
              },
              "samplesOverrides": {
                "type": "array",
                "items": {
                  "description": "Per-prompt overrides for AceStep training samples, index-aligned with `Samples.Prompts`;\nnull fields fall back to the hardcoded sample default.",
                  "$ref": "#/components/schemas/AceStepSampleOverride"
                }
              },
              "ecosystem": {
                "enum": [
                  "ace_step_15_xl"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "modelVariant",
              "mapping": {
                "base": "#/components/schemas/AceStep15XlBaseAIToolkitTrainingInput",
                "sft": "#/components/schemas/AceStep15XlSftAIToolkitTrainingInput"
              }
            }
          }
        ]
      },
      "AceStep15XlBaseAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AceStep15XlAIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "modelVariant"
            ],
            "type": "object",
            "properties": {
              "modelVariant": {
                "enum": [
                  "base"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "ace_step_15_xl"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "AceStep15XlSftAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AceStep15XlAIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "modelVariant"
            ],
            "type": "object",
            "properties": {
              "modelVariant": {
                "enum": [
                  "sft"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "ace_step_15_xl"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "AceStepAudioCover": {
        "required": [
          "imageUrl"
        ],
        "type": "object",
        "properties": {
          "imageUrl": {
            "type": "string",
            "description": "Either A URL, A DataURL or a Base64 string",
            "format": "source-image"
          }
        },
        "additionalProperties": false,
        "description": "When present, the output is a WebM video with this image as the visual."
      },
      "AceStepAudioInput": {
        "required": [
          "lyrics",
          "prompt",
          "seed"
        ],
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "description": "What the track should sound like: genre, mood, instruments, tempo\n(e.g., \"Neo-Soul: A warm, organic neo-soul track...\"). The words to sing go in lyrics."
          },
          "lyrics": {
            "type": "string",
            "description": "Structured lyrics with section markers like [Verse], [Chorus], [Bridge], etc."
          },
          "seed": {
            "type": "integer",
            "format": "int32"
          },
          "duration": {
            "maximum": 190,
            "minimum": 1,
            "type": "number",
            "description": "Duration in seconds (1-190)",
            "format": "float",
            "default": 60
          },
          "bpm": {
            "maximum": 200,
            "minimum": 40,
            "type": "integer",
            "description": "Beats per minute (40-200)",
            "format": "int32",
            "default": 120
          },
          "timeSignature": {
            "enum": [
              "2",
              "3",
              "4",
              "6"
            ],
            "type": "string",
            "description": "Time signature (e.g., \"4\" for 4/4 time)",
            "default": "4"
          },
          "language": {
            "enum": [
              "en",
              "ja",
              "zh",
              "es",
              "de",
              "fr",
              "pt",
              "ru",
              "it",
              "nl",
              "pl",
              "tr",
              "vi",
              "cs",
              "fa",
              "id",
              "ko",
              "uk",
              "hu",
              "ar",
              "sv",
              "ro",
              "el"
            ],
            "type": "string",
            "description": "Language code (e.g., \"en\", \"zh\", \"ja\", \"ko\")",
            "default": "en"
          },
          "key": {
            "enum": [
              "C major",
              "C# major",
              "Db major",
              "D major",
              "D# major",
              "Eb major",
              "E major",
              "F major",
              "F# major",
              "Gb major",
              "G major",
              "G# major",
              "Ab major",
              "A major",
              "A# major",
              "Bb major",
              "B major",
              "C minor",
              "C# minor",
              "Db minor",
              "D minor",
              "D# minor",
              "Eb minor",
              "E minor",
              "F minor",
              "F# minor",
              "Gb minor",
              "G minor",
              "G# minor",
              "Ab minor",
              "A minor",
              "A# minor",
              "Bb minor",
              "B minor"
            ],
            "type": "string",
            "description": "Musical key (e.g., \"C major\", \"E minor\"). Mirrors ComfyUI's\nTextEncodeAceStepAudio1.5 keyscale combo: 17 roots × {major, minor}.",
            "default": "C major"
          },
          "instrumentalWeight": {
            "type": "number",
            "description": "Weight for instrumental elements (0.0-1.0)",
            "format": "float",
            "default": 0.85
          },
          "vocalWeight": {
            "type": "number",
            "description": "Weight for vocal elements (0.0-1.0)",
            "format": "float",
            "default": 0.9
          },
          "diffusionModel": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": [
              "null",
              "string"
            ],
            "description": "Optional diffusion model (unet) override. Defaults to ACE-Step 1.5 turbo 2B."
          },
          "cover": {
            "description": "Optional cover image. When provided, the output is a WebM video\nwith this image as the visual; otherwise, output is audio-only (MP3).",
            "$ref": "#/components/schemas/AceStepAudioCover"
          },
          "clipModel": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": [
              "null",
              "string"
            ],
            "description": "Optional text encoder (CLIP) override. Defaults to qwen_4b_ace15."
          },
          "vaeModel": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": [
              "null",
              "string"
            ],
            "description": "Optional VAE override. Defaults to ace_1.5_vae."
          },
          "languageModel": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": [
              "null",
              "string"
            ],
            "description": "Optional language model override for audio code generation. Defaults to qwen_0.6b_ace15."
          },
          "steps": {
            "maximum": 200,
            "minimum": 1,
            "type": "integer",
            "description": "Number of sampling steps. Turbo variants converge at 8; non-turbo base / sft\nvariants expect the full 50-step schedule.",
            "format": "int32",
            "default": 8
          },
          "cfgScale": {
            "maximum": 30,
            "minimum": 0,
            "type": "number",
            "description": "Classifier-free guidance scale. Turbo variants run CFG-off at 1.0;\nnon-turbo base / sft variants expect CFG on (around 4).",
            "format": "float",
            "default": 1
          },
          "loras": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "description": "LoRAs to apply; each strength applies to both the diffusion model and the dual CLIP.\nCompatibility with non-default base models is the caller's responsibility."
          }
        },
        "additionalProperties": false
      },
      "AceStepAudioOutput": {
        "required": [
          "blob"
        ],
        "type": "object",
        "properties": {
          "blob": {
            "description": "The generated output blob — VideoBlob (with background image) or AudioBlob (audio only).",
            "$ref": "#/components/schemas/Blob"
          }
        },
        "additionalProperties": false
      },
      "AceStepAudioStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/AceStepAudioInput"
              },
              "output": {
                "$ref": "#/components/schemas/AceStepAudioOutput"
              },
              "$type": {
                "enum": [
                  "aceStepAudio"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generates full songs from text descriptions and structured lyrics with ACE Step 1.5."
      },
      "AceStepAudioStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the AceStepAudioStep step.",
                "$ref": "#/components/schemas/AceStepAudioInput"
              },
              "$type": {
                "enum": [
                  "aceStepAudio"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generates full songs from text descriptions and structured lyrics with ACE Step 1.5."
      },
      "AceStepSampleOverride": {
        "type": "object",
        "properties": {
          "lyrics": {
            "type": [
              "null",
              "string"
            ]
          },
          "duration": {
            "type": [
              "null",
              "number"
            ],
            "format": "float"
          },
          "bpm": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "timeSignature": {
            "type": [
              "null",
              "string"
            ]
          },
          "language": {
            "type": [
              "null",
              "string"
            ]
          },
          "key": {
            "type": [
              "null",
              "string"
            ]
          },
          "instrumentalWeight": {
            "type": [
              "null",
              "number"
            ],
            "format": "float"
          },
          "vocalWeight": {
            "type": [
              "null",
              "number"
            ],
            "format": "float"
          },
          "steps": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "cfg": {
            "type": [
              "null",
              "number"
            ],
            "format": "float"
          }
        },
        "additionalProperties": false,
        "description": "Per-prompt overrides for AceStep training samples, index-aligned with `Samples.Prompts`;\nnull fields fall back to the hardcoded sample default."
      },
      "AgeClassificationResult": {
        "required": [
          "detections"
        ],
        "type": "object",
        "properties": {
          "detections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AgeDetection"
            }
          },
          "status": {
            "type": [
              "null",
              "string"
            ]
          },
          "ran": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "detector": {
            "type": [
              "null",
              "string"
            ]
          },
          "minorDetected": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "error": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "AgeDetection": {
        "required": [
          "ageLabel",
          "boundingBox",
          "confidence",
          "detectorType",
          "isMinor"
        ],
        "type": "object",
        "properties": {
          "detectorType": {
            "type": "string",
            "description": "The detector type used (e.g., \"yolo\", \"mediapipe\", \"ensemble\")."
          },
          "boundingBox": {
            "$ref": "#/components/schemas/BoundingBox"
          },
          "ageLabel": {
            "type": "string",
            "description": "The age label (e.g., \"adult\", \"child\", \"teen\")."
          },
          "confidence": {
            "type": "number",
            "description": "Confidence score for the age classification (0.0 to 1.0).",
            "format": "double"
          },
          "isMinor": {
            "type": "boolean"
          },
          "topK": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "description": "Full probability distribution across all age labels.\nKeys are age labels (e.g., \"Child 0-12\", \"Adult 21-44\"), values are confidence scores (0.0 to 1.0)."
          }
        },
        "additionalProperties": false
      },
      "AnimaAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "model": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string",
                "description": "The primary Anima model to train upon. Custom checkpoints use the base Anima repository as extras.",
                "default": "urn:air:anima:repository:huggingface:circlestone-labs/Anima-Base-v1.0-Diffusers@main.tar"
              },
              "defaultSteps": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "anima"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "AnimaCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AnimaImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "anima"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "AnimaImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SdCppImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampleMethod": {
                "default": "euler",
                "$ref": "#/components/schemas/SdCppSampleMethod"
              },
              "schedule": {
                "default": "simple",
                "$ref": "#/components/schemas/SdCppSchedule"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 30
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 4
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "anima"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/AnimaCreateImageGenInput",
                "createVariant": "#/components/schemas/AnimaVariantImageGenInput"
              }
            }
          }
        ]
      },
      "AnimaVariantImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AnimaImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "image",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "strength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.7
              },
              "operation": {
                "enum": [
                  "createVariant"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "anima"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "AnimalPoseBboxDetector": {
        "enum": [
          "yolox_l.torchscript.pt",
          "yolox_l.onnx",
          "yolo_nas_l_fp16.onnx",
          "yolo_nas_m_fp16.onnx",
          "yolo_nas_s_fp16.onnx"
        ],
        "type": "string"
      },
      "AnimalPoseEstimator": {
        "enum": [
          "rtmpose-m_ap10k_256_bs5.torchscript.pt",
          "rtmpose-m_ap10k_256.onnx"
        ],
        "type": "string"
      },
      "AnimeBodyAgeClassificationResult": {
        "required": [
          "ageBand",
          "apparentAge",
          "childDetected",
          "minorDetected",
          "oodDetected",
          "oodProbability",
          "ordinalCutpointProbabilities",
          "under13Probability",
          "under18Probability"
        ],
        "type": "object",
        "properties": {
          "apparentAge": {
            "type": "number",
            "format": "double"
          },
          "ageBand": {
            "type": "string"
          },
          "under13Probability": {
            "type": "number",
            "format": "double"
          },
          "under18Probability": {
            "type": "number",
            "format": "double"
          },
          "oodProbability": {
            "type": "number",
            "format": "double"
          },
          "ordinalCutpointProbabilities": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "childDetected": {
            "type": "boolean"
          },
          "minorDetected": {
            "type": "boolean"
          },
          "oodDetected": {
            "type": "boolean"
          },
          "status": {
            "type": [
              "null",
              "string"
            ]
          },
          "ran": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "warning": {
            "type": [
              "null",
              "string"
            ]
          },
          "error": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false,
        "description": "Represents anime apparent-age and child-risk results for a complete image.\nThe model is an additional risk signal, not a verified chronological-age claim."
      },
      "AnimeRecognitionResult": {
        "required": [
          "confidence",
          "label"
        ],
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "description": "Classification label: \"anime\" or \"real\"."
          },
          "confidence": {
            "type": "number",
            "description": "Confidence score for the classification (0.0 to 1.0).",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Represents anime vs real image recognition results."
      },
      "AnylineMergeWith": {
        "enum": [
          "lineart_standard",
          "lineart_realistic",
          "lineart_anime",
          "manga_line"
        ],
        "type": "string"
      },
      "ArchiveFormat": {
        "enum": [
          "zip",
          "tar"
        ],
        "type": "string"
      },
      "AssistantMessage": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChatCompletionMessage"
          },
          {
            "required": [
              "role"
            ],
            "type": "object",
            "properties": {
              "content": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "The assistant message content (text only)."
              },
              "name": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "refusal": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "tool_calls": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "$ref": "#/components/schemas/ChatCompletionToolCall"
                }
              },
              "images": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "description": "A generated image attached to an assistant message when \"image\" is included in\n`modalities`. Matches the OpenRouter wire shape.",
                  "$ref": "#/components/schemas/ChatCompletionGeneratedImage"
                },
                "description": "Generated images attached to this assistant message, populated when the request\nincluded \"image\" in its modalities. Each entry is a base64 data URI."
              },
              "reasoning_content": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Model reasoning separated from the answer by the host's reasoning parser (vLLM convention)."
              },
              "reasoning": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Input alias for the vLLM 0.26+ / OpenRouter field name; responses always use reasoning_content.",
                "writeOnly": true
              },
              "role": {
                "enum": [
                  "assistant"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "An assistant message representing a prior response."
      },
      "AudioBlob": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Blob"
          },
          {
            "required": [
              "type"
            ],
            "type": "object",
            "properties": {
              "duration": {
                "type": [
                  "null",
                  "number"
                ],
                "description": "Duration of the audio in seconds",
                "format": "float"
              },
              "type": {
                "enum": [
                  "audio"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "AudioCaptioningInput": {
        "required": [
          "includeCaption",
          "maxNewTokens",
          "mediaUrl",
          "prepareForModeration",
          "temperature"
        ],
        "type": "object",
        "properties": {
          "mediaUrl": {
            "type": "string",
            "description": "The URL of the audio file or zip archive to caption.",
            "format": "uri"
          },
          "temperature": {
            "type": "number",
            "description": "Sampling temperature for both ACE-Step requests.",
            "format": "double"
          },
          "maxNewTokens": {
            "type": "integer",
            "description": "Maximum number of tokens to generate for each ACE-Step request.",
            "format": "int32"
          },
          "includeCaption": {
            "type": "boolean"
          },
          "prepareForModeration": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "AudioCaptioningOutput": {
        "required": [
          "results"
        ],
        "type": "object",
        "properties": {
          "results": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/AudioCaptioningOutputItem"
            }
          },
          "hasAudio": {
            "type": [
              "null",
              "boolean"
            ]
          }
        },
        "additionalProperties": false
      },
      "AudioCaptioningOutputItem": {
        "required": [
          "text"
        ],
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "caption": {
            "type": [
              "null",
              "string"
            ]
          },
          "lyrics": {
            "type": [
              "null",
              "string"
            ]
          },
          "bpm": {
            "type": [
              "null",
              "string"
            ]
          },
          "keyScale": {
            "type": [
              "null",
              "string"
            ]
          },
          "timeSignature": {
            "type": [
              "null",
              "string"
            ]
          },
          "duration": {
            "type": [
              "null",
              "string"
            ]
          },
          "language": {
            "type": [
              "null",
              "string"
            ]
          },
          "finishReason": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "AudioCaptioningStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/AudioCaptioningInput"
              },
              "output": {
                "$ref": "#/components/schemas/AudioCaptioningOutput"
              },
              "$type": {
                "enum": [
                  "audioCaptioning"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Audio Captioning"
      },
      "AudioCaptioningStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the AudioCaptioningStep step.",
                "$ref": "#/components/schemas/AudioCaptioningInput"
              },
              "$type": {
                "enum": [
                  "audioCaptioning"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Audio Captioning"
      },
      "AudioClassificationInput": {
        "required": [
          "mediaUrl"
        ],
        "type": "object",
        "properties": {
          "mediaUrl": {
            "type": "string",
            "format": "uri"
          }
        },
        "additionalProperties": false
      },
      "AudioClassificationOutput": {
        "required": [
          "classificationMilliseconds",
          "hasAudio",
          "model",
          "segments"
        ],
        "type": "object",
        "properties": {
          "hasAudio": {
            "type": "boolean"
          },
          "model": {
            "type": "string"
          },
          "segments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AudioClassificationSegment"
            }
          },
          "classificationMilliseconds": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "AudioClassificationSegment": {
        "required": [
          "blobKey",
          "durationSeconds",
          "kind",
          "musicScore",
          "name",
          "singingScore",
          "speechFraction",
          "speechScore"
        ],
        "type": "object",
        "properties": {
          "blobKey": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "durationSeconds": {
            "type": "number",
            "format": "double"
          },
          "speechScore": {
            "type": "number",
            "format": "double"
          },
          "musicScore": {
            "type": "number",
            "format": "double"
          },
          "singingScore": {
            "type": "number",
            "format": "double"
          },
          "speechFraction": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "AudioComposeMediaOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComposeMediaOutput"
          },
          {
            "required": [
              "audioBlob",
              "type"
            ],
            "type": "object",
            "properties": {
              "audioBlob": {
                "$ref": "#/components/schemas/AudioBlob"
              },
              "type": {
                "enum": [
                  "audio"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "An audio mixdown produced when the composition has no video."
      },
      "AudioModerationInput": {
        "required": [
          "mediaUrl",
          "transcriber"
        ],
        "type": "object",
        "properties": {
          "mediaUrl": {
            "type": "string",
            "format": "uri"
          },
          "transcriber": {
            "enum": [
              "auto",
              "aceStep",
              "asr"
            ],
            "type": "string",
            "description": "auto classifies each segment on CPU and sends speech to ASR when the language is supported, everything else to ACE-Step."
          },
          "language": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "AudioModerationOutput": {
        "required": [
          "blocked",
          "lyrics",
          "model",
          "policyHash",
          "score",
          "sexualizedMinors"
        ],
        "type": "object",
        "properties": {
          "lyrics": {
            "type": "string"
          },
          "sexualizedMinors": {
            "type": "boolean"
          },
          "score": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "model": {
            "type": [
              "null",
              "string"
            ]
          },
          "policyHash": {
            "type": [
              "null",
              "string"
            ]
          },
          "hasAudio": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "skippedReason": {
            "type": [
              "null",
              "string"
            ]
          },
          "blocked": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "AudioModerationStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/AudioModerationInput"
              },
              "output": {
                "$ref": "#/components/schemas/AudioModerationOutput"
              },
              "$type": {
                "enum": [
                  "audioModeration"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Transcribe every audio track and classify the lyrics for sexualized minors."
      },
      "AudioModerationStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the AudioModerationStep step.",
                "$ref": "#/components/schemas/AudioModerationInput"
              },
              "$type": {
                "enum": [
                  "audioModeration"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Transcribe every audio track and classify the lyrics for sexualized minors."
      },
      "AudioTextModerationInput": {
        "type": "object",
        "properties": {
          "lyrics": {
            "type": [
              "null",
              "string"
            ]
          },
          "audioCaptioning": {
            "$ref": "#/components/schemas/AudioCaptioningOutput"
          },
          "transcription": {
            "$ref": "#/components/schemas/TranscriptionOutput"
          }
        },
        "additionalProperties": false
      },
      "AudioTextModerationOutput": {
        "required": [
          "blocked",
          "lyrics",
          "model",
          "policyHash",
          "score",
          "sexualizedMinors"
        ],
        "type": "object",
        "properties": {
          "lyrics": {
            "type": "string"
          },
          "sexualizedMinors": {
            "type": "boolean"
          },
          "score": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "model": {
            "type": [
              "null",
              "string"
            ]
          },
          "policyHash": {
            "type": [
              "null",
              "string"
            ]
          },
          "hasAudio": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "skippedReason": {
            "type": [
              "null",
              "string"
            ]
          },
          "blocked": {
            "type": "boolean",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "AvailableResourceAvailability": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ResourceAvailability"
          },
          {
            "required": [
              "status",
              "workers"
            ],
            "type": "object",
            "properties": {
              "workers": {
                "type": "integer",
                "format": "int32"
              },
              "status": {
                "enum": [
                  "available"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "AvifOutputFormat": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageOutputFormat"
          },
          {
            "required": [
              "format"
            ],
            "type": "object",
            "properties": {
              "quality": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer",
                "description": "Quality setting for AVIF compression (1-100). Only applies when Lossless is false.",
                "format": "int32",
                "default": 85
              },
              "lossless": {
                "type": "boolean",
                "default": false
              },
              "format": {
                "enum": [
                  "avif"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Animated sources are reduced to their first frame."
      },
      "BackgroundRemovalTransformer": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MediaTransformer"
          },
          {
            "required": [
              "type"
            ],
            "type": "object",
            "properties": {
              "shadowRemoval": {
                "description": "Shadow handling. Sources with painted soft drop shadows need Gentle\n(the default) or Aggressive.",
                "default": "gentle",
                "$ref": "#/components/schemas/ShadowRemoval"
              },
              "fromCenter": {
                "type": "boolean",
                "description": "Also seed the fill from the frame centre, for artwork with an enclosed background-coloured\nhole (e.g. avatar frames).",
                "default": false
              },
              "type": {
                "enum": [
                  "backgroundRemoval"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Per-frame edge-connected flood fill from the border colour (not AI matting), so enclosed background-coloured pixels\nare kept. Video only; needs an alpha-capable container (webp) and a transparent canvas background to carry the transparency."
      },
      "BasicAnimationsBlobs": {
        "type": "object",
        "properties": {
          "walkingModel": {
            "$ref": "#/components/schemas/Model3DBlob"
          },
          "walkingFbxModel": {
            "$ref": "#/components/schemas/Model3DBlob"
          },
          "walkingArmatureModel": {
            "$ref": "#/components/schemas/Model3DBlob"
          },
          "runningModel": {
            "$ref": "#/components/schemas/Model3DBlob"
          },
          "runningFbxModel": {
            "$ref": "#/components/schemas/Model3DBlob"
          },
          "runningArmatureModel": {
            "$ref": "#/components/schemas/Model3DBlob"
          }
        },
        "additionalProperties": false
      },
      "Blob": {
        "required": [
          "available",
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "available": {
            "type": "boolean"
          },
          "url": {
            "type": [
              "null",
              "string"
            ],
            "format": "uri"
          },
          "urlExpiresAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "jobId": {
            "type": [
              "null",
              "string"
            ]
          },
          "nsfwLevel": {
            "$ref": "#/components/schemas/NSFWLevel"
          },
          "blockedReason": {
            "type": [
              "null",
              "string"
            ]
          },
          "tier": {
            "type": [
              "null",
              "string"
            ],
            "description": "Deprecated: use `publicUrl` to tell a public blob. Get the storage tier holding this blob, when\none was declared. Null resolves to the private managed tier, falling back to the classic one for blobs\nwritten before producers moved off it."
          },
          "publicUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "The durable, unsigned url of a blob requested public, which a CDN can cache. Set as soon as the blob is\nrequested, so it may 404 until the workflow that produces it completes; `url` waits instead.",
            "format": "uri"
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "image": "#/components/schemas/ImageBlob",
            "video": "#/components/schemas/VideoBlob",
            "audio": "#/components/schemas/AudioBlob",
            "model3d": "#/components/schemas/Model3DBlob"
          }
        }
      },
      "BlobArchiveEntry": {
        "required": [
          "blobId"
        ],
        "type": "object",
        "properties": {
          "blobId": {
            "minLength": 1,
            "type": "string"
          },
          "fileName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Optional filename to use inside the archive. When omitted, the blob ID is used.\nPath components and control characters are stripped."
          }
        },
        "additionalProperties": false
      },
      "BlobArchiveInput": {
        "required": [
          "entries"
        ],
        "type": "object",
        "properties": {
          "entries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BlobArchiveEntry"
            },
            "description": "The blobs to include in the archive. Must contain at least 1 and at most 1000 entries."
          },
          "archiveName": {
            "type": [
              "null",
              "string"
            ],
            "description": "Optional filename for the archive itself (used in the Content-Disposition header).\nDefaults to \"archive.zip\" or \"archive.tar\" based on `format`."
          },
          "format": {
            "default": "zip",
            "$ref": "#/components/schemas/ArchiveFormat"
          }
        },
        "additionalProperties": false
      },
      "BlobArchiveOutput": {
        "required": [
          "entryCount",
          "expiresAt",
          "format",
          "url"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "The signed URL that streams the archive when requested.",
            "format": "uri"
          },
          "entryCount": {
            "type": "integer",
            "format": "int32"
          },
          "format": {
            "$ref": "#/components/schemas/ArchiveFormat"
          },
          "expiresAt": {
            "type": "string",
            "description": "The UTC time at which this URL expires.",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "BlobArchiveStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/BlobArchiveInput"
              },
              "output": {
                "$ref": "#/components/schemas/BlobArchiveOutput"
              },
              "$type": {
                "enum": [
                  "blobArchive"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Bundles blobs into a single zip or tar that callers download from a signed streaming URL.\nRuns in-process in the orchestrator; no worker job is dispatched."
      },
      "BlobArchiveStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the BlobArchiveStep step.",
                "$ref": "#/components/schemas/BlobArchiveInput"
              },
              "$type": {
                "enum": [
                  "blobArchive"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Bundles blobs into a single zip or tar that callers download from a signed streaming URL.\nRuns in-process in the orchestrator; no worker job is dispatched."
      },
      "BlobTrainingDataItem": {
        "required": [
          "air"
        ],
        "type": "object",
        "properties": {
          "air": {
            "type": "string",
            "description": "The blob reference. Accepts an AIR urn (urn:air:other:other:orchestrator:blob@{blobKey}),\na /v2/consumer/blobs/{blobKey} URL, or a bare blob key; normalized to the AIR urn form at submission."
          },
          "caption": {
            "type": [
              "null",
              "string"
            ],
            "description": "Optional caption for this item, written as the trainer's sidecar caption file."
          }
        },
        "additionalProperties": false
      },
      "BlobsTrainingData": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TrainingData"
          },
          {
            "required": [
              "items",
              "type"
            ],
            "type": "object",
            "properties": {
              "items": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/BlobTrainingDataItem"
                },
                "description": "The training items, in dataset order. Each references a consumer-uploaded blob."
              },
              "type": {
                "enum": [
                  "blobs"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Training data supplied as individually uploaded blobs (via POST /v2/consumer/blobs),\nso each item passed through per-asset moderation on upload."
      },
      "BlurRegion": {
        "required": [
          "x1",
          "x2",
          "y1",
          "y2"
        ],
        "type": "object",
        "properties": {
          "x1": {
            "type": "integer",
            "description": "Left edge X coordinate in pixels.",
            "format": "int32"
          },
          "y1": {
            "type": "integer",
            "description": "Top edge Y coordinate in pixels.",
            "format": "int32"
          },
          "x2": {
            "type": "integer",
            "description": "Right edge X coordinate in pixels.",
            "format": "int32"
          },
          "y2": {
            "type": "integer",
            "description": "Bottom edge Y coordinate in pixels.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "A rectangular region defined by pixel coordinates."
      },
      "BlurRegionMode": {
        "enum": [
          "include",
          "exclude"
        ],
        "type": "string"
      },
      "BlurTransform": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageTransform"
          },
          {
            "required": [
              "blur",
              "mode",
              "type"
            ],
            "type": "object",
            "properties": {
              "blur": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer",
                "format": "int32"
              },
              "mode": {
                "$ref": "#/components/schemas/BlurRegionMode"
              },
              "regions": {
                "type": "array",
                "items": {
                  "description": "A rectangular region defined by pixel coordinates.",
                  "$ref": "#/components/schemas/BlurRegion"
                }
              },
              "type": {
                "enum": [
                  "blur"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Applies a Gaussian blur with optional region-based masking."
      },
      "BodyAgeClassificationResult": {
        "required": [
          "detections"
        ],
        "type": "object",
        "properties": {
          "detections": {
            "type": "array",
            "items": {
              "description": "Represents one body-only age estimate for a detected person.",
              "$ref": "#/components/schemas/BodyAgeDetection"
            }
          },
          "status": {
            "type": [
              "null",
              "string"
            ]
          },
          "ran": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "childDetected": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "minorDetected": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "oodDetected": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "error": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false,
        "description": "Represents body-only apparent-age and child-risk results for media content.\nThe model is an additional risk signal, not a verified chronological-age claim."
      },
      "BodyAgeDetection": {
        "required": [
          "ageBand",
          "apparentAge",
          "boundingBox",
          "headGeometrySource",
          "isChild",
          "isMinor",
          "isOod",
          "oodProbability",
          "personDetected",
          "personDetectionConfidence",
          "under13Probability",
          "under13ViewProbabilities",
          "under18Probability"
        ],
        "type": "object",
        "properties": {
          "boundingBox": {
            "$ref": "#/components/schemas/BoundingBox"
          },
          "personDetected": {
            "type": "boolean"
          },
          "personDetectionConfidence": {
            "type": "number",
            "format": "double"
          },
          "faceBoundingBox": {
            "$ref": "#/components/schemas/BoundingBox"
          },
          "faceDetectionConfidence": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "headGeometrySource": {
            "type": "string"
          },
          "apparentAge": {
            "type": "number",
            "format": "double"
          },
          "ageBand": {
            "type": "string"
          },
          "under13Probability": {
            "type": "number",
            "format": "double"
          },
          "under18Probability": {
            "type": "number",
            "format": "double"
          },
          "oodProbability": {
            "type": "number",
            "format": "double"
          },
          "under13ViewProbabilities": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            }
          },
          "isChild": {
            "type": "boolean"
          },
          "isMinor": {
            "type": "boolean"
          },
          "isOod": {
            "type": "boolean"
          }
        },
        "additionalProperties": false,
        "description": "Represents one body-only age estimate for a detected person."
      },
      "BooguAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "defaultSteps": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "boogu"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "BoundingBox": {
        "required": [
          "x1",
          "x2",
          "y1",
          "y2"
        ],
        "type": "object",
        "properties": {
          "x1": {
            "type": "number",
            "format": "double"
          },
          "y1": {
            "type": "number",
            "format": "double"
          },
          "x2": {
            "type": "number",
            "format": "double"
          },
          "y2": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "BucketResponse": {
        "required": [
          "at",
          "canceledRate",
          "requests",
          "userErrorRate"
        ],
        "type": "object",
        "properties": {
          "at": {
            "type": "string",
            "format": "date-time"
          },
          "requests": {
            "type": "integer",
            "format": "int64"
          },
          "successRate": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "canceledRate": {
            "type": "number",
            "format": "double"
          },
          "userErrorRate": {
            "type": "number",
            "format": "double"
          },
          "costBuzz": {
            "description": "Per-request spend over succeeded steps — see `costBuzz`.",
            "$ref": "#/components/schemas/PercentilesResponse"
          },
          "latencySeconds": {
            "$ref": "#/components/schemas/PercentilesResponse"
          }
        },
        "additionalProperties": false
      },
      "BuzzClientAccount": {
        "enum": [
          "yellow",
          "blue",
          "green",
          "fakeRed"
        ],
        "type": "string"
      },
      "ChatCompletionChoice": {
        "required": [
          "index",
          "message"
        ],
        "type": "object",
        "properties": {
          "index": {
            "type": "integer",
            "format": "int32"
          },
          "message": {
            "description": "An assistant message representing a prior response.",
            "$ref": "#/components/schemas/AssistantMessage"
          },
          "finishReason": {
            "type": [
              "null",
              "string"
            ]
          },
          "logprobs": {}
        },
        "additionalProperties": false
      },
      "ChatCompletionContentPart": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "readOnly": true
          },
          "text": {
            "type": [
              "null",
              "string"
            ]
          },
          "imageUrl": {
            "$ref": "#/components/schemas/ChatCompletionImageUrl"
          }
        },
        "additionalProperties": false,
        "description": "Accepts both camelCase (`imageUrl`) and snake_case (`image_url`) type discriminators."
      },
      "ChatCompletionFunction": {
        "required": [
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "parameters": {},
          "strict": {
            "type": [
              "null",
              "boolean"
            ]
          }
        },
        "additionalProperties": false
      },
      "ChatCompletionFunctionCall": {
        "required": [
          "arguments",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "arguments": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ChatCompletionGeneratedImage": {
        "required": [
          "image_url"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "default": "image_url"
          },
          "image_url": {
            "description": "Currently always a base64 data URI.",
            "$ref": "#/components/schemas/ChatCompletionGeneratedImageUrl"
          }
        },
        "additionalProperties": false,
        "description": "A generated image attached to an assistant message when \"image\" is included in\n`modalities`. Matches the OpenRouter wire shape."
      },
      "ChatCompletionGeneratedImageUrl": {
        "required": [
          "url"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "Base64 data URI (e.g. \"data:image/png;base64,...\")."
          }
        },
        "additionalProperties": false,
        "description": "Currently always a base64 data URI."
      },
      "ChatCompletionImageConfig": {
        "type": "object",
        "properties": {
          "aspect_ratio": {
            "enum": [
              "1:1",
              "16:9",
              "9:16",
              "4:3",
              "3:4",
              "21:9"
            ],
            "type": [
              "null",
              "string"
            ]
          },
          "image_size": {
            "enum": [
              "0.5K",
              "1K",
              "2K",
              "4K"
            ],
            "type": [
              "null",
              "string"
            ],
            "description": "Approximate output resolution. \"1K\" ≈ 1MP, \"2K\" ≈ 2MP, etc. Engines clamp to their supported range."
          },
          "n": {
            "maximum": 10,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "description": "Number of images to generate. Engines may clamp to their supported maximum.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "Image generation parameters used when `modalities` contains \"image\".\nMirrors OpenRouter's `image_config` shape on chat-completion requests."
      },
      "ChatCompletionImageUrl": {
        "required": [
          "url"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "description": "A URL, base64 data URI, or raw base64.",
            "format": "source-image"
          },
          "detail": {
            "type": [
              "null",
              "string"
            ],
            "description": "The detail level for processing the image.\n\"low\", \"high\", or \"auto\" (default).",
            "default": "auto"
          }
        },
        "additionalProperties": false
      },
      "ChatCompletionInput": {
        "required": [
          "messages",
          "model"
        ],
        "type": "object",
        "properties": {
          "model": {
            "minLength": 1,
            "type": "string"
          },
          "messages": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChatCompletionMessage"
            }
          },
          "temperature": {
            "maximum": 2,
            "minimum": 0,
            "type": "number",
            "description": "Temperature for sampling (0-2). Higher values make output more random.",
            "format": "double",
            "default": 1
          },
          "topP": {
            "maximum": 1,
            "minimum": 0,
            "type": "number",
            "description": "Nucleus sampling parameter. Consider tokens with top_p probability mass.",
            "format": "double",
            "default": 1
          },
          "maxTokens": {
            "maximum": 128000,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "thinkingTokenBudget": {
            "maximum": 2147483647,
            "minimum": -1,
            "type": [
              "null",
              "integer"
            ],
            "description": "vLLM reasoning-token limit per completion, including each server-tool round: 0 ends thinking immediately,\n-1/null sets no separate limit. MaxTokens still caps thinking plus answer tokens.",
            "format": "int32"
          },
          "reasoningEffort": {
            "pattern": "^(none|minimal|low|medium|high|xhigh)$",
            "type": [
              "null",
              "string"
            ],
            "description": "OpenAI reasoning_effort: none, minimal, low, medium, high or xhigh. Portable across vLLM\nand hosted providers; the worker translates it to each provider's native reasoning control."
          },
          "n": {
            "maximum": 128,
            "minimum": 1,
            "type": "integer",
            "description": "Number of completions to generate.",
            "format": "int32",
            "default": 1
          },
          "stop": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Up to 4 sequences where the API will stop generating tokens."
          },
          "presencePenalty": {
            "maximum": 2,
            "minimum": -2,
            "type": "number",
            "description": "Presence penalty (-2.0 to 2.0). Positive values penalize new tokens based on whether they appear in the text so far.",
            "format": "double",
            "default": 0
          },
          "frequencyPenalty": {
            "maximum": 2,
            "minimum": -2,
            "type": "number",
            "description": "Frequency penalty (-2.0 to 2.0). Positive values penalize new tokens based on their existing frequency in the text.",
            "format": "double",
            "default": 0
          },
          "seed": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int64"
          },
          "user": {
            "type": [
              "null",
              "string"
            ]
          },
          "logprobs": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "topLogprobs": {
            "maximum": 20,
            "minimum": 0,
            "type": [
              "null",
              "integer"
            ],
            "description": "Number of top log probability candidates to return per generated token.\nRequires `logprobs` to be enabled.",
            "format": "int32"
          },
          "chatTemplateKwargs": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {},
            "description": "Model-specific chat template options, forwarded unchanged to vLLM as chat_template_kwargs.\nPrefer reasoningEffort and thinkingTokenBudget for reasoning control."
          },
          "tools": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/ChatCompletionTool"
            }
          },
          "tool_choice": {
            "description": "Controls which (if any) tool is called by the model.\nCan be \"auto\", \"none\", \"required\", or an object specifying a particular function."
          },
          "modalities": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Output modalities, \"text\" and/or \"image\"; defaults to text-only. Including \"image\" routes the request to the\nimage generation pipeline and returns generated images on the assistant message."
          },
          "image_config": {
            "description": "Image-generation parameters. Only consulted when `modalities` contains \"image\".",
            "$ref": "#/components/schemas/ChatCompletionImageConfig"
          },
          "responseFormat": {
            "description": "OpenAI-compatible response_format (`json_object` or `json_schema`). When set, the parsed content is exposed on\n`parsed` so later steps can reference fields via `$ref` paths such as `output.parsed.lyrics`.",
            "$ref": "#/components/schemas/ChatCompletionResponseFormat"
          }
        },
        "additionalProperties": false,
        "description": "Input for a chat completion step, compatible with OpenAI Chat Completions API."
      },
      "ChatCompletionJsonSchema": {
        "required": [
          "name",
          "schema"
        ],
        "type": "object",
        "properties": {
          "name": {
            "minLength": 1,
            "type": "string"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "schema": {},
          "strict": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "OpenAI strict mode. Forces additionalProperties=false and all fields required."
          }
        },
        "additionalProperties": false
      },
      "ChatCompletionMessage": {
        "required": [
          "role"
        ],
        "type": "object",
        "properties": {
          "role": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "role",
          "mapping": {
            "user": "#/components/schemas/UserMessage",
            "system": "#/components/schemas/SystemMessage",
            "assistant": "#/components/schemas/AssistantMessage",
            "tool": "#/components/schemas/ToolMessage"
          }
        }
      },
      "ChatCompletionOutput": {
        "required": [
          "choices",
          "created",
          "id",
          "model"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "object": {
            "type": "string",
            "default": "chat.completion"
          },
          "created": {
            "type": "integer",
            "description": "Unix timestamp of when the completion was created.",
            "format": "int64"
          },
          "model": {
            "type": "string"
          },
          "choices": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ChatCompletionChoice"
            }
          },
          "usage": {
            "$ref": "#/components/schemas/ChatCompletionUsage"
          },
          "systemFingerprint": {
            "type": [
              "null",
              "string"
            ]
          },
          "parsed": {
            "description": "Parsed JSON of `Choices[0].Message.Content`, populated when the request used a JSON `response_format`\nand the content parsed. Reachable from later steps via `$ref` paths like `output.parsed.<field>`."
          }
        },
        "additionalProperties": false
      },
      "ChatCompletionResponseFormat": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "minLength": 1,
            "type": "string",
            "description": "OpenAI-compatible value: `text`, `json_object`, or `json_schema`."
          },
          "jsonSchema": {
            "description": "Required when `type` is `json_schema`. Ignored otherwise.",
            "$ref": "#/components/schemas/ChatCompletionJsonSchema"
          }
        },
        "additionalProperties": false,
        "description": "OpenAI-compatible response_format. For `json_object` or `json_schema` the content is parsed server-side and\nexposed on `parsed` for `$ref` paths like `output.parsed.<field>`."
      },
      "ChatCompletionStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for a chat completion step, compatible with OpenAI Chat Completions API.",
                "$ref": "#/components/schemas/ChatCompletionInput"
              },
              "output": {
                "$ref": "#/components/schemas/ChatCompletionOutput"
              },
              "$type": {
                "enum": [
                  "chatCompletion"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "ChatCompletion"
      },
      "ChatCompletionStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the ChatCompletionStep step.",
                "$ref": "#/components/schemas/ChatCompletionInput"
              },
              "$type": {
                "enum": [
                  "chatCompletion"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "ChatCompletion"
      },
      "ChatCompletionTokensDetails": {
        "type": "object",
        "properties": {
          "reasoningTokens": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Reasoning tokens generated before the answer; billed as completion tokens.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ChatCompletionTool": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "function": {
            "$ref": "#/components/schemas/ChatCompletionFunction"
          },
          "parameters": {
            "description": "Server-tool parameters for providers such as OpenRouter."
          }
        },
        "additionalProperties": false
      },
      "ChatCompletionToolCall": {
        "required": [
          "function",
          "id",
          "type"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "function": {
            "$ref": "#/components/schemas/ChatCompletionFunctionCall"
          }
        },
        "additionalProperties": false
      },
      "ChatCompletionUsage": {
        "required": [
          "completionTokens",
          "promptTokens",
          "totalTokens"
        ],
        "type": "object",
        "properties": {
          "promptTokens": {
            "type": "integer",
            "format": "int32"
          },
          "completionTokens": {
            "type": "integer",
            "format": "int32"
          },
          "totalTokens": {
            "type": "integer",
            "format": "int32"
          },
          "completionTokensDetails": {
            "description": "Breakdown of `completionTokens`, present when the provider reports one.",
            "$ref": "#/components/schemas/ChatCompletionTokensDetails"
          }
        },
        "additionalProperties": false
      },
      "ChromaAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "ecosystem": {
                "enum": [
                  "chroma"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "CoarseMode": {
        "enum": [
          "disable",
          "enable"
        ],
        "type": "string"
      },
      "ComfyAnimaCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyAnimaImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "anima"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyAnimaImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createImage"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "er_sde",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 30
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 4
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "anima"
                ],
                "type": "string"
              },
              "controlNets": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ImageJobControlNet"
                }
              },
              "vaeModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyAnimaCreateImageGenInput",
                "createVariant": "#/components/schemas/ComfyAnimaVariantImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyAnimaVariantImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyAnimaImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "image",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "strength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.75
              },
              "operation": {
                "enum": [
                  "createVariant"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "anima"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyBooguBaseCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyBooguBaseImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "base"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "boogu"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyBooguBaseImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyBooguImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 4
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "model": {
                "enum": [
                  "base"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "boogu"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyBooguBaseCreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyBooguEditImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyBooguImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 25
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 3.5
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "model": {
                "enum": [
                  "edit"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "boogu"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "editImage": "#/components/schemas/ComfyBooguEditImageInput"
              }
            }
          }
        ]
      },
      "ComfyBooguEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyBooguEditImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "images": {
                "maxItems": 2,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "edit"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "boogu"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyBooguEditTurboImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyBooguImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 4
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "model": {
                "enum": [
                  "editTurbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "boogu"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "editImage": "#/components/schemas/ComfyBooguEditTurboImageInput"
              }
            }
          }
        ]
      },
      "ComfyBooguEditTurboImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyBooguEditTurboImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "images": {
                "maxItems": 2,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "editTurbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "boogu"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyBooguImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "boogu"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "base": "#/components/schemas/ComfyBooguBaseImageGenInput",
                "turbo": "#/components/schemas/ComfyBooguTurboImageGenInput",
                "edit": "#/components/schemas/ComfyBooguEditImageGenInput",
                "editTurbo": "#/components/schemas/ComfyBooguEditTurboImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyBooguTurboCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyBooguTurboImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "boogu"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyBooguTurboImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyBooguImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 4
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "model": {
                "enum": [
                  "turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "boogu"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyBooguTurboCreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyChromaCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyChromaImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "chroma"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyChromaImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 28
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 3.5
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "model": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "ecosystem": {
                "enum": [
                  "chroma"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyChromaCreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyErnieImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "ernie"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "ernie": "#/components/schemas/ComfyErnieStandardImageGenInput",
                "turbo": "#/components/schemas/ComfyErnieTurboImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyErnieStandardCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyErnieStandardImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "ernie"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "ernie"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyErnieStandardImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyErnieImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 4
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "model": {
                "enum": [
                  "ernie"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "ernie"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyErnieStandardCreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyErnieTurboCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyErnieTurboImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "ernie"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyErnieTurboImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyErnieImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 8
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "model": {
                "enum": [
                  "turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "ernie"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyErnieTurboCreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyFlux1CreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyFlux1ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyFlux1EditImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyFlux1ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "steps": {
                "type": "integer",
                "format": "int32",
                "default": 28
              },
              "images": {
                "maxItems": 2,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                },
                "description": "Uses only the first image for image-to-image at denoise strength 0.7. An empty list generates from text, matching sdcpp Flux 1 editImage."
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Compatibility route for sdcpp Flux 1 editing: ordinary image-to-image using only\nthe first source image, or text-to-image when the image list is empty."
      },
      "ComfyFlux1ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createImage"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 3.5
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "model": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "vaeModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "controlNets": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ImageJobControlNet"
                }
              },
              "ecosystem": {
                "enum": [
                  "flux1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyFlux1CreateImageGenInput",
                "createVariant": "#/components/schemas/ComfyFlux1VariantImageGenInput",
                "editImage": "#/components/schemas/ComfyFlux1EditImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyFlux1VariantImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyFlux1ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "image",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "strength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.75
              },
              "operation": {
                "enum": [
                  "createVariant"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyFlux2DevCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyFlux2DevImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux2Dev"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyFlux2DevEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyFlux2DevImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 9,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux2Dev"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyFlux2DevImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 1000,
                "minLength": 0,
                "type": "string"
              },
              "width": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "cfgScale": {
                "maximum": 20,
                "minimum": 1,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "steps": {
                "maximum": 50,
                "minimum": 4,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "ecosystem": {
                "enum": [
                  "flux2Dev"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyFlux2DevCreateImageInput",
                "editImage": "#/components/schemas/ComfyFlux2DevEditImageInput",
                "createVariant": "#/components/schemas/ComfyFlux2DevVariantImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyFlux2DevVariantImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyFlux2DevImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "image",
              "operation"
            ],
            "type": "object",
            "properties": {
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "strength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.7
              },
              "operation": {
                "enum": [
                  "createVariant"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux2Dev"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyFlux2KleinCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyFlux2KleinImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux2Klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyFlux2KleinEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyFlux2KleinImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 2,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux2Klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyFlux2KleinImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 1000,
                "minLength": 0,
                "type": "string"
              },
              "width": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "cfgScale": {
                "maximum": 20,
                "minimum": 1,
                "type": "number",
                "format": "double",
                "default": 5
              },
              "steps": {
                "maximum": 50,
                "minimum": 4,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "modelVersion": {
                "enum": [
                  "4b",
                  "4b-base",
                  "9b",
                  "9b-base",
                  "9b-kv"
                ],
                "type": "string",
                "description": "Klein model variant. Both 9b and 9b-kv always use the 9B KV checkpoint and reference-image caching. 4B and Base variants use their original checkpoints.",
                "default": "4b"
              },
              "ecosystem": {
                "enum": [
                  "flux2Klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyFlux2KleinCreateImageInput",
                "editImage": "#/components/schemas/ComfyFlux2KleinEditImageInput",
                "createVariant": "#/components/schemas/ComfyFlux2KleinVariantImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyFlux2KleinVariantImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyFlux2KleinImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "image",
              "operation"
            ],
            "type": "object",
            "properties": {
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "strength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.7
              },
              "operation": {
                "enum": [
                  "createVariant"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux2Klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyFlux3KleinBaseCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyFlux3KleinBaseImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "base"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux3Klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyFlux3KleinBaseEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyFlux3KleinBaseImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 10,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "base"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux3Klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyFlux3KleinBaseImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyFlux3KleinImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createImage"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 50
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 1,
                "type": "number",
                "format": "double",
                "default": 3.5
              },
              "model": {
                "enum": [
                  "base"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux3Klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyFlux3KleinBaseCreateImageInput",
                "editImage": "#/components/schemas/ComfyFlux3KleinBaseEditImageInput"
              }
            }
          }
        ]
      },
      "ComfyFlux3KleinDistilledCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyFlux3KleinDistilledImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "distilled"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux3Klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyFlux3KleinDistilledEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyFlux3KleinDistilledImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 10,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "distilled"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux3Klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyFlux3KleinDistilledImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyFlux3KleinImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createImage"
              },
              "model": {
                "enum": [
                  "distilled"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux3Klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyFlux3KleinDistilledCreateImageInput",
                "editImage": "#/components/schemas/ComfyFlux3KleinDistilledEditImageInput"
              }
            }
          }
        ]
      },
      "ComfyFlux3KleinImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "distilled"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 16
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 1,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ],
                "description": "Compatible FLUX.3 Klein diffusion checkpoint AIR. Omit or set null to use the selected model's int8 checkpoint; the int8 text encoder and VAE remain unchanged."
              },
              "ecosystem": {
                "enum": [
                  "flux3Klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "base": "#/components/schemas/ComfyFlux3KleinBaseImageGenInput",
                "distilled": "#/components/schemas/ComfyFlux3KleinDistilledImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyHiDreamI1CreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyHiDreamI1ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "hidream"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyHiDreamI1ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "variant": {
                "default": "fast",
                "$ref": "#/components/schemas/HiDreamI1Variant"
              },
              "precision": {
                "description": "Defaults to fp8, except for the full variant which is only available in fp16.",
                "$ref": "#/components/schemas/HiDreamI1Precision"
              },
              "sampler": {
                "description": "Defaults to lcm for fast and dev, uni_pc for full.",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Defaults to 16 for fast, 28 for dev and 50 for full.",
                "format": "int32"
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": [
                  "null",
                  "number"
                ],
                "description": "Defaults to 1 for fast and dev, 5 for full.",
                "format": "double"
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "ecosystem": {
                "enum": [
                  "hidream"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyHiDreamI1CreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyHiDreamImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "hidream-o1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "HiDream-O1-Image": "#/components/schemas/ComfyHiDreamO1ImageGenInput",
                "HiDream-O1-Image-dev": "#/components/schemas/ComfyHiDreamO1DevImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyHiDreamO1CreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyHiDreamO1ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "HiDream-O1-Image"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "hidream-o1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyHiDreamO1DevCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyHiDreamO1DevImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "HiDream-O1-Image-dev"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "hidream-o1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyHiDreamO1DevEditImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyHiDreamO1DevImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 3,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "HiDream-O1-Image-dev"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "hidream-o1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyHiDreamO1DevImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyHiDreamImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 2048
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 2048
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 28
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "checkpointModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string",
                "default": "urn:air:hidream-o1:checkpoint:civitai:2618495@2939964"
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "model": {
                "enum": [
                  "HiDream-O1-Image-dev"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "hidream-o1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyHiDreamO1DevCreateImageGenInput",
                "editImage": "#/components/schemas/ComfyHiDreamO1DevEditImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyHiDreamO1EditImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyHiDreamO1ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 3,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "HiDream-O1-Image"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "hidream-o1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyHiDreamO1ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyHiDreamImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 2048
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 2048
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 40
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 5
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "checkpointModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string",
                "default": "urn:air:hidream-o1:checkpoint:civitai:2618495@2939946"
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "model": {
                "enum": [
                  "HiDream-O1-Image"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "hidream-o1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyHiDreamO1CreateImageGenInput",
                "editImage": "#/components/schemas/ComfyHiDreamO1EditImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyIdeogram4CreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyIdeogram4ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "ideogram4"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyIdeogram4ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "sampler": {
                "default": "res_multistep",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 12
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 7
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "unconditionalDiffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "ecosystem": {
                "enum": [
                  "ideogram4"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyIdeogram4CreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "ecosystem": {
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "ecosystem",
              "mapping": {
                "sd1": "#/components/schemas/ComfySd1ImageGenInput",
                "sdxl": "#/components/schemas/ComfySdxlImageGenInput",
                "flux1": "#/components/schemas/ComfyFlux1ImageGenInput",
                "mossImage": "#/components/schemas/ComfyMossImageGenInput",
                "flux3Klein": "#/components/schemas/ComfyFlux3KleinImageGenInput",
                "flux2Dev": "#/components/schemas/ComfyFlux2DevImageGenInput",
                "ernie": "#/components/schemas/ComfyErnieImageGenInput",
                "hidream-o1": "#/components/schemas/ComfyHiDreamImageGenInput",
                "hidream": "#/components/schemas/ComfyHiDreamI1ImageGenInput",
                "chroma": "#/components/schemas/ComfyChromaImageGenInput",
                "ponyV7": "#/components/schemas/ComfyPonyV7ImageGenInput",
                "anima": "#/components/schemas/ComfyAnimaImageGenInput",
                "lens": "#/components/schemas/ComfyLensImageGenInput",
                "ming": "#/components/schemas/ComfyMingImageGenInput",
                "ideogram4": "#/components/schemas/ComfyIdeogram4ImageGenInput",
                "boogu": "#/components/schemas/ComfyBooguImageGenInput",
                "krea2": "#/components/schemas/ComfyKrea2ImageGenInput",
                "mageflow": "#/components/schemas/ComfyMageFlowImageGenInput",
                "flux2Klein": "#/components/schemas/ComfyFlux2KleinImageGenInput",
                "qwen": "#/components/schemas/ComfyQwenImageGenInput",
                "zImage": "#/components/schemas/ComfyZImageImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyImageToSvgInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageToSvgInput"
          },
          {
            "required": [
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "ecosystem": {
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "ecosystem",
              "mapping": {
                "starvector": "#/components/schemas/StarVectorImageToSvgInput",
                "omnisvg": "#/components/schemas/OmniSvgImageToSvgInput",
                "vtracer": "#/components/schemas/VTracerImageToSvgInput"
              }
            }
          }
        ]
      },
      "ComfyInput": {
        "required": [
          "comfyWorkflow"
        ],
        "type": "object",
        "properties": {
          "comfyWorkflow": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/ComfyNode"
            }
          },
          "quantity": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer",
            "description": "The number of jobs to start with this workflow.",
            "format": "int32",
            "default": 1
          },
          "imageMetadata": {
            "type": [
              "null",
              "string"
            ],
            "description": "External metadata that will be stored with the image"
          },
          "useSpineComfy": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "When set, restricts the job to (true) or away from (false) a dedicated pool of Comfy workers."
          }
        },
        "additionalProperties": false
      },
      "ComfyKrea2EditImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyKrea2ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 10
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "model": {
                "enum": [
                  "edit"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "krea2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "editImage": "#/components/schemas/ComfyKrea2EditImageInput"
              }
            }
          }
        ]
      },
      "ComfyKrea2EditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyKrea2EditImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "images": {
                "maxItems": 2,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "edit"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "krea2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyKrea2ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "krea2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "raw": "#/components/schemas/ComfyKrea2RawImageGenInput",
                "turbo": "#/components/schemas/ComfyKrea2TurboImageGenInput",
                "edit": "#/components/schemas/ComfyKrea2EditImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyKrea2RawCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyKrea2RawImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "raw"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "krea2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyKrea2RawImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyKrea2ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 4
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "model": {
                "enum": [
                  "raw"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "krea2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyKrea2RawCreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyKrea2TurboCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyKrea2TurboImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "krea2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyKrea2TurboImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyKrea2ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 8
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "model": {
                "enum": [
                  "turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "krea2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyKrea2TurboCreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyLensImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "lens"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "normal": "#/components/schemas/ComfyLensNormalImageGenInput",
                "turbo": "#/components/schemas/ComfyLensTurboImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyLensNormalCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLensNormalImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "normal"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "lens"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyLensNormalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLensImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 4
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "model": {
                "enum": [
                  "normal"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "lens"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyLensNormalCreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyLensTurboCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLensTurboImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "lens"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyLensTurboImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLensImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 4
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "model": {
                "enum": [
                  "turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "lens"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyLensTurboCreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyLtx23AudioToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx23VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "sourceAudio"
            ],
            "type": "object",
            "properties": {
              "referenceImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Optional reference image (e.g. talking-head subject). When provided, the video is anchored to this image.",
                "format": "source-image"
              },
              "sourceAudio": {
                "type": "string",
                "format": "uri"
              },
              "imageGuideStrength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "description": "Strength of the image guide conditioning (0.0 to 1.0). Only used when ReferenceImage is provided.\nStage 1 strength; stage 2 is fixed at 0.5.",
                "format": "float",
                "default": 0.7
              },
              "audioToVideoAttentionScale": {
                "maximum": 10,
                "minimum": 0,
                "type": "number",
                "description": "Audio-to-video cross-attention boost applied via LTX2AttentionTunerPatch.\nHigher values make audio drive the video more strongly.",
                "format": "float",
                "default": 2
              },
              "operation": {
                "enum": [
                  "audioToVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2.3"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate video driven by a reference audio track, optionally anchored to a reference image (ComfyUI backend)"
      },
      "ComfyLtx23CreateVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx23VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                },
                "description": "Optional source image for image-to-video generation"
              },
              "operation": {
                "enum": [
                  "createVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2.3"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Create video from text prompt, optionally with a source image (ComfyUI backend)"
      },
      "ComfyLtx23EditVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx23VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "sourceVideo"
            ],
            "type": "object",
            "properties": {
              "sourceVideo": {
                "type": "string",
                "format": "uri"
              },
              "cannyLowThreshold": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "float",
                "default": 0.4
              },
              "cannyHighThreshold": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "float",
                "default": 0.8
              },
              "guideStrength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "float",
                "default": 1
              },
              "operation": {
                "enum": [
                  "editVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2.3"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Edit/transform an existing video using Canny edge control (ComfyUI backend)"
      },
      "ComfyLtx23ExtendVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx23VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "sourceVideo"
            ],
            "type": "object",
            "properties": {
              "sourceVideo": {
                "type": "string",
                "format": "uri"
              },
              "numFrames": {
                "maximum": 481,
                "minimum": 9,
                "type": "integer",
                "format": "int32",
                "default": 121
              },
              "operation": {
                "enum": [
                  "extendVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2.3"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyLtx23FirstLastFrameToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx23VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "firstFrame": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "First frame guide image. At least one of FirstFrame or LastFrame must be provided.",
                "format": "source-image"
              },
              "lastFrame": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Last frame guide image. At least one of FirstFrame or LastFrame must be provided.",
                "format": "source-image"
              },
              "frameGuideStrength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "float",
                "default": 0.7
              },
              "operation": {
                "enum": [
                  "firstLastFrameToVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2.3"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate video guided by first and/or last frame images using LTXVAddGuide conditioning (ComfyUI backend)"
      },
      "ComfyLtx23VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createVideo"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "duration": {
                "maximum": 20,
                "minimum": 3,
                "type": "integer",
                "description": "Duration in seconds (3 through 20)",
                "format": "int32",
                "default": 5
              },
              "width": {
                "type": "integer",
                "format": "int32",
                "default": 1280
              },
              "height": {
                "type": "integer",
                "format": "int32",
                "default": 720
              },
              "fps": {
                "maximum": 60,
                "minimum": 1,
                "type": "number",
                "format": "float",
                "default": 24
              },
              "generateAudio": {
                "type": "boolean",
                "default": true
              },
              "cfgScale": {
                "maximum": 10,
                "minimum": 1,
                "type": "number",
                "format": "float",
                "default": 4
              },
              "engine": {
                "enum": [
                  "ltx2.3"
                ],
                "type": "string"
              },
              "steps": {
                "maximum": 50,
                "minimum": 8,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "model": {
                "enum": [
                  "22b-dev",
                  "22b-distilled"
                ],
                "type": "string",
                "default": "22b-dev"
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ],
                "description": "Overrides the transformer checkpoint selected by `model`, leaving CLIPs, VAEs and upscale LoRA unchanged;\nuse it for community fine-tunes (e.g. SulphurAI/Sulphur-2-base)."
              },
              "quantity": {
                "maximum": 10,
                "minimum": 1,
                "type": "integer",
                "description": "Number of videos to generate in this single job. Each video uses a distinct seed\n(Seed + slotIndex) and is produced by re-running the Comfy workflow.",
                "format": "int32",
                "default": 1
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createVideo": "#/components/schemas/ComfyLtx23CreateVideoInput",
                "extendVideo": "#/components/schemas/ComfyLtx23ExtendVideoInput",
                "editVideo": "#/components/schemas/ComfyLtx23EditVideoInput",
                "firstLastFrameToVideo": "#/components/schemas/ComfyLtx23FirstLastFrameToVideoInput",
                "videoToVideo": "#/components/schemas/ComfyLtx23VideoToVideoInput",
                "audioToVideo": "#/components/schemas/ComfyLtx23AudioToVideoInput"
              }
            }
          }
        ]
      },
      "ComfyLtx23VideoToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx23VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "sourceVideo"
            ],
            "type": "object",
            "properties": {
              "sourceVideo": {
                "type": "string",
                "format": "uri"
              },
              "guideStrength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "float",
                "default": 0.2
              },
              "operation": {
                "enum": [
                  "videoToVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2.3"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Style-transfer an existing video using prompt guidance (ComfyUI backend)"
      },
      "ComfyLtx25AudioToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx25VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "sourceAudio"
            ],
            "type": "object",
            "properties": {
              "referenceImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Optional reference image (e.g. talking-head subject). When provided, the video is anchored to this image.",
                "format": "source-image"
              },
              "sourceAudio": {
                "type": "string",
                "format": "uri"
              },
              "imageGuideStrength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "description": "Strength of the image guide conditioning (0.0 to 1.0). Only used when ReferenceImage is provided.\nStage 1 strength; stage 2 is fixed at 0.5.",
                "format": "float",
                "default": 0.7
              },
              "audioToVideoAttentionScale": {
                "maximum": 10,
                "minimum": 0,
                "type": "number",
                "description": "Audio-to-video cross-attention boost applied via LTX2AttentionTunerPatch.\nHigher values make audio drive the video more strongly.",
                "format": "float",
                "default": 2
              },
              "operation": {
                "enum": [
                  "audioToVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2.5"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate video driven by a reference audio track, optionally anchored to a reference image (ComfyUI backend)"
      },
      "ComfyLtx25CreateVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx25VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                },
                "description": "Optional source image for image-to-video generation"
              },
              "operation": {
                "enum": [
                  "createVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2.5"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Create video from text prompt, optionally with a source image (ComfyUI backend)"
      },
      "ComfyLtx25EditVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx25VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "sourceVideo"
            ],
            "type": "object",
            "properties": {
              "sourceVideo": {
                "type": "string",
                "format": "uri"
              },
              "guideStrength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "float",
                "default": 1
              },
              "operation": {
                "enum": [
                  "editVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2.5"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Edit/transform an existing video using prompt and source-video guidance (ComfyUI backend)"
      },
      "ComfyLtx25ExtendVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx25VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "sourceVideo"
            ],
            "type": "object",
            "properties": {
              "sourceVideo": {
                "type": "string",
                "format": "uri"
              },
              "numFrames": {
                "maximum": 481,
                "minimum": 9,
                "type": "integer",
                "format": "int32",
                "default": 121
              },
              "operation": {
                "enum": [
                  "extendVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2.5"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyLtx25FirstLastFrameToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx25VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "firstFrame": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "First frame guide image. At least one of FirstFrame or LastFrame must be provided.",
                "format": "source-image"
              },
              "lastFrame": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Last frame guide image. At least one of FirstFrame or LastFrame must be provided.",
                "format": "source-image"
              },
              "frameGuideStrength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "float",
                "default": 0.7
              },
              "operation": {
                "enum": [
                  "firstLastFrameToVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2.5"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate video guided by first and/or last frame images using LTXVAddGuide conditioning (ComfyUI backend)"
      },
      "ComfyLtx25VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createVideo"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "duration": {
                "maximum": 20,
                "minimum": 3,
                "type": "integer",
                "description": "Duration in seconds (3 through 20)",
                "format": "int32",
                "default": 5
              },
              "width": {
                "type": "integer",
                "format": "int32",
                "default": 1280
              },
              "height": {
                "type": "integer",
                "format": "int32",
                "default": 720
              },
              "fps": {
                "maximum": 60,
                "minimum": 1,
                "type": "number",
                "format": "float",
                "default": 24
              },
              "generateAudio": {
                "type": "boolean",
                "default": true
              },
              "cfgScale": {
                "maximum": 10,
                "minimum": 1,
                "type": "number",
                "format": "float",
                "default": 4
              },
              "engine": {
                "enum": [
                  "ltx2.5"
                ],
                "type": "string"
              },
              "steps": {
                "maximum": 50,
                "minimum": 8,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "model": {
                "enum": [
                  "22b-dev",
                  "22b-distilled"
                ],
                "type": "string",
                "default": "22b-dev"
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ],
                "description": "Overrides the transformer checkpoint selected by `model`, leaving text encoder, VAEs and upscale LoRA unchanged;\nuse it for community fine-tunes (e.g. SulphurAI/Sulphur-2-base)."
              },
              "quantity": {
                "maximum": 10,
                "minimum": 1,
                "type": "integer",
                "description": "Number of videos to generate in this single job. Each video uses a distinct seed\n(Seed + slotIndex) and is produced by re-running the Comfy workflow.",
                "format": "int32",
                "default": 1
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createVideo": "#/components/schemas/ComfyLtx25CreateVideoInput",
                "extendVideo": "#/components/schemas/ComfyLtx25ExtendVideoInput",
                "editVideo": "#/components/schemas/ComfyLtx25EditVideoInput",
                "firstLastFrameToVideo": "#/components/schemas/ComfyLtx25FirstLastFrameToVideoInput",
                "videoToVideo": "#/components/schemas/ComfyLtx25VideoToVideoInput",
                "audioToVideo": "#/components/schemas/ComfyLtx25AudioToVideoInput"
              }
            }
          }
        ]
      },
      "ComfyLtx25VideoToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx25VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "sourceVideo"
            ],
            "type": "object",
            "properties": {
              "sourceVideo": {
                "type": "string",
                "format": "uri"
              },
              "guideStrength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "float",
                "default": 0.2
              },
              "operation": {
                "enum": [
                  "videoToVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2.5"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Style-transfer an existing video using prompt guidance (ComfyUI backend)"
      },
      "ComfyLtx2CreateVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx2VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                },
                "description": "Optional source image for image-to-video generation"
              },
              "operation": {
                "enum": [
                  "createVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Create video from text prompt, optionally with a source image (ComfyUI backend)"
      },
      "ComfyLtx2EditVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx2VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "sourceVideo"
            ],
            "type": "object",
            "properties": {
              "sourceVideo": {
                "type": "string",
                "format": "uri"
              },
              "cannyLowThreshold": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "float",
                "default": 0.4
              },
              "cannyHighThreshold": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "float",
                "default": 0.8
              },
              "guideStrength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "float",
                "default": 1
              },
              "operation": {
                "enum": [
                  "editVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Edit/transform an existing video using Canny edge control (ComfyUI backend)"
      },
      "ComfyLtx2ExtendVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx2VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "sourceVideo"
            ],
            "type": "object",
            "properties": {
              "sourceVideo": {
                "type": "string",
                "format": "uri"
              },
              "numFrames": {
                "maximum": 481,
                "minimum": 9,
                "type": "integer",
                "format": "int32",
                "default": 121
              },
              "operation": {
                "enum": [
                  "extendVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyLtx2FirstLastFrameToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyLtx2VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "firstFrame": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "First frame guide image. At least one of FirstFrame or LastFrame must be provided.",
                "format": "source-image"
              },
              "lastFrame": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Last frame guide image. At least one of FirstFrame or LastFrame must be provided.",
                "format": "source-image"
              },
              "frameGuideStrength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "float",
                "default": 0.7
              },
              "operation": {
                "enum": [
                  "firstLastFrameToVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ltx2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate video guided by first and/or last frame images using LTXVAddGuide conditioning (ComfyUI backend)"
      },
      "ComfyLtx2VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createVideo"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "duration": {
                "enum": [
                  3,
                  5
                ],
                "type": "integer",
                "description": "Duration in seconds (3 or 5)",
                "format": "int32",
                "default": 5
              },
              "width": {
                "type": "integer",
                "format": "int32",
                "default": 1280
              },
              "height": {
                "type": "integer",
                "format": "int32",
                "default": 720
              },
              "fps": {
                "maximum": 60,
                "minimum": 1,
                "type": "number",
                "format": "float",
                "default": 24
              },
              "generateAudio": {
                "type": "boolean",
                "default": true
              },
              "cfgScale": {
                "maximum": 10,
                "minimum": 1,
                "type": "number",
                "format": "float",
                "default": 4
              },
              "steps": {
                "maximum": 50,
                "minimum": 8,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "engine": {
                "enum": [
                  "ltx2"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "19b-dev",
                  "19b-distilled"
                ],
                "type": "string",
                "default": "19b-dev"
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createVideo": "#/components/schemas/ComfyLtx2CreateVideoInput",
                "extendVideo": "#/components/schemas/ComfyLtx2ExtendVideoInput",
                "editVideo": "#/components/schemas/ComfyLtx2EditVideoInput",
                "firstLastFrameToVideo": "#/components/schemas/ComfyLtx2FirstLastFrameToVideoInput"
              }
            }
          }
        ]
      },
      "ComfyMageFlow4bCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMageFlow4bImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "4b"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "mageflow"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyMageFlow4bEditImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMageFlowImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 30
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 5
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "model": {
                "enum": [
                  "4b-edit"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "mageflow"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "editImage": "#/components/schemas/ComfyMageFlow4bEditImageInput"
              }
            }
          }
        ]
      },
      "ComfyMageFlow4bEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMageFlow4bEditImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "images": {
                "maxItems": 16,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "4b-edit"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "mageflow"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyMageFlow4bEditTurboImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMageFlowImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 4
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "model": {
                "enum": [
                  "4b-edit-turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "mageflow"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "editImage": "#/components/schemas/ComfyMageFlow4bEditTurboImageInput"
              }
            }
          }
        ]
      },
      "ComfyMageFlow4bEditTurboImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMageFlow4bEditTurboImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "images": {
                "maxItems": 16,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "4b-edit-turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "mageflow"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyMageFlow4bImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMageFlowImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 5
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "model": {
                "enum": [
                  "4b"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "mageflow"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyMageFlow4bCreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyMageFlow4bTurboCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMageFlow4bTurboImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "4b-turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "mageflow"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyMageFlow4bTurboImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMageFlowImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 4
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "model": {
                "enum": [
                  "4b-turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "mageflow"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyMageFlow4bTurboCreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyMageFlowImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "cfgScale",
              "ecosystem",
              "engine",
              "model",
              "prompt",
              "quantity",
              "steps"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "steps": {
                "type": "integer",
                "format": "int32"
              },
              "cfgScale": {
                "type": "number",
                "format": "double"
              },
              "quantity": {
                "type": "integer",
                "format": "int32"
              },
              "ecosystem": {
                "enum": [
                  "mageflow"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "4b": "#/components/schemas/ComfyMageFlow4bImageGenInput",
                "4b-turbo": "#/components/schemas/ComfyMageFlow4bTurboImageGenInput",
                "4b-edit": "#/components/schemas/ComfyMageFlow4bEditImageGenInput",
                "4b-edit-turbo": "#/components/schemas/ComfyMageFlow4bEditTurboImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyMingDesignCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMingDesignImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 256,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 256,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "design"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "ming"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyMingDesignEditImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMingDesignImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "height",
              "images",
              "model",
              "operation",
              "width"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 3,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "resolution": {
                "maximum": 2048,
                "minimum": 256,
                "type": "integer",
                "description": "Reference pixel budget as resolution squared, preserving the first image's aspect ratio.",
                "format": "int32",
                "default": 1024
              },
              "width": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "height": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "design"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "ming"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyMingDesignImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMingImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createImage"
              },
              "prompt": {
                "maxLength": 20000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 20000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "description": "Defaults to Euler for generation, LCM for editing.",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 12
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "model": {
                "enum": [
                  "design"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "ming"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyMingDesignCreateImageGenInput",
                "editImage": "#/components/schemas/ComfyMingDesignEditImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyMingImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "design"
              },
              "ecosystem": {
                "enum": [
                  "ming"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "design": "#/components/schemas/ComfyMingDesignImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyMiniMaxH3ControlVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMiniMaxH3VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "video"
            ],
            "type": "object",
            "properties": {
              "video": {
                "type": "string",
                "format": "uri"
              },
              "strength": {
                "maximum": 10,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "startPercent": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0
              },
              "endPercent": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "operation": {
                "enum": [
                  "controlVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "minimax-h3-comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Video-to-video structure control using a preprocessed map and the MiniMax H3 Fun ControlNet Union model patch."
      },
      "ComfyMiniMaxH3ImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMiniMaxH3VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "firstFrame": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "lastFrame": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "operation": {
                "enum": [
                  "imageToVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "minimax-h3-comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Text-to-video or first/last-frame video using the FL2VA weights."
      },
      "ComfyMiniMaxH3ReferenceToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMiniMaxH3VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 9,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "referenceAudios": {
                "maxItems": 3,
                "type": "array",
                "items": {
                  "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                  "type": "string"
                },
                "description": "Up to three voice reference AIRs or AIR-compatible URLs, each 2–15 seconds. Upload other sources to orchestrator blob storage first. Refer to them as <Audio 1>, etc. in the prompt."
              },
              "firstFrame": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Optional first frame to anchor the video while using image or voice references.",
                "format": "source-image"
              },
              "operation": {
                "enum": [
                  "referenceToVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "minimax-h3-comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Reference-image/audio-to-video using the REF2VA weights."
      },
      "ComfyMiniMaxH3VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "imageToVideo"
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "duration": {
                "maximum": 15,
                "minimum": 4,
                "type": "integer",
                "format": "int32",
                "default": 5
              },
              "width": {
                "maximum": 1344,
                "minimum": 32,
                "type": "integer",
                "format": "int32",
                "default": 864
              },
              "height": {
                "maximum": 1344,
                "minimum": 32,
                "type": "integer",
                "format": "int32",
                "default": 480
              },
              "steps": {
                "maximum": 60,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "fast": {
                "type": "boolean",
                "description": "Enables EasyCache with its default configuration.",
                "default": false
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "turbo": {
                "type": "boolean",
                "default": false
              },
              "engine": {
                "enum": [
                  "minimax-h3-comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "imageToVideo": "#/components/schemas/ComfyMiniMaxH3ImageToVideoInput",
                "referenceToVideo": "#/components/schemas/ComfyMiniMaxH3ReferenceToVideoInput",
                "controlVideo": "#/components/schemas/ComfyMiniMaxH3ControlVideoInput"
              }
            }
          }
        ]
      },
      "ComfyMossImageBaseCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMossImageBaseImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "base"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "mossImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyMossImageBaseImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMossImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createImage"
              },
              "model": {
                "enum": [
                  "base"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "mossImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyMossImageBaseCreateImageInput"
              }
            }
          }
        ]
      },
      "ComfyMossImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "sft"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 25
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 1,
                "type": "number",
                "format": "double",
                "default": 2.5
              },
              "sampler": {
                "default": "er_sde",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ],
                "description": "Compatible MOSS-Image diffusion checkpoint AIR. Omit or set null to use the selected model's int8 checkpoint; the int8 text encoder and VAE remain unchanged."
              },
              "ecosystem": {
                "enum": [
                  "mossImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "base": "#/components/schemas/ComfyMossImageBaseImageGenInput",
                "sft": "#/components/schemas/ComfyMossImageSftImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyMossImageSftCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMossImageSftImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "sft"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "mossImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyMossImageSftImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyMossImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createImage"
              },
              "model": {
                "enum": [
                  "sft"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "mossImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyMossImageSftCreateImageInput"
              }
            }
          }
        ]
      },
      "ComfyNode": {
        "required": [
          "classType",
          "inputs"
        ],
        "type": "object",
        "properties": {
          "classType": {
            "type": "string"
          },
          "meta": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "string"
            }
          },
          "isChanged": {
            "type": [
              "null",
              "string"
            ]
          },
          "inputs": {
            "type": "object",
            "additionalProperties": {
              "oneOf": [
                {
                  "type": "string"
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "maxItems": 2,
                  "minItems": 2,
                  "type": "array",
                  "items": {
                    "type": "number"
                  }
                }
              ]
            }
          }
        },
        "additionalProperties": false
      },
      "ComfyNodepackSnapshotInput": {
        "required": [
          "nodepacks"
        ],
        "type": "object",
        "properties": {
          "comfyImage": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": [
              "null",
              "string"
            ],
            "description": "The comfy image to install against, as an `oci:image` AIR. The captured layer is only valid for this exact\nimage, so it is part of the blob key; when omitted the handler uses the configured default comfy image."
          },
          "nodepacks": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The `comfy:nodepack` AIRs to install and snapshot, e.g. `urn:air:comfy:nodepack:comfyregistry:kijai/comfyui-kjnodes@1.4.0`.\nOne snapshot job is produced per pack."
          },
          "minVramGb": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Minimum GPU VRAM (GB) the capturing worker must report, so the install happens on hardware representative of the session's tier.",
            "format": "int32"
          },
          "useSageAttention": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Optional Sage Attention toggle, forwarded to the worker's launch so the\ncaptured environment matches how the consumer runs the image."
          }
        },
        "additionalProperties": false,
        "description": "Installs ComfyUI custom nodepacks on a comfy image and captures the resolved install and editor metadata as\nreusable blobs. Runs on a real worker so compiled deps match the fleet the consumer will run on."
      },
      "ComfyNodepackSnapshotOutput": {
        "required": [
          "results"
        ],
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ComfyNodepackSnapshotResult"
            }
          }
        },
        "additionalProperties": false,
        "description": "One result per installed pack, each carrying the captured install layer, full /object_info and web assets as\nblobs that consumers read directly from orchestrator blob storage."
      },
      "ComfyNodepackSnapshotResult": {
        "required": [
          "layer",
          "layerAir",
          "nodepack",
          "objectInfo",
          "web"
        ],
        "type": "object",
        "properties": {
          "nodepack": {
            "type": "string",
            "description": "The pack AIR this result is for."
          },
          "layerAir": {
            "type": "string",
            "description": "The complete install-layer AIR (`urn:air:comfy:nodepacklayer:…@<ver>+<hex(image)>`), the (pack, comfy image) pair.\nDeclare this, not the bare pack URN, on a customComfy step's `resources`."
          },
          "layer": {
            "description": "Tar of the pack's site-packages + custom_nodes install delta; mounted by spine workers to skip pip.",
            "$ref": "#/components/schemas/Blob"
          },
          "objectInfo": {
            "description": "The full ComfyUI /object_info with the pack installed; ComfyCloud diffs it against its baseline for the editor.",
            "$ref": "#/components/schemas/Blob"
          },
          "web": {
            "description": "Tar of the pack's WEB_DIRECTORY (extension JS) for the editor.",
            "$ref": "#/components/schemas/Blob"
          }
        },
        "additionalProperties": false
      },
      "ComfyNodepackSnapshotStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Installs ComfyUI custom nodepacks on a comfy image and captures the resolved install and editor metadata as\nreusable blobs. Runs on a real worker so compiled deps match the fleet the consumer will run on.",
                "$ref": "#/components/schemas/ComfyNodepackSnapshotInput"
              },
              "output": {
                "description": "One result per installed pack, each carrying the captured install layer, full /object_info and web assets as\nblobs that consumers read directly from orchestrator blob storage.",
                "$ref": "#/components/schemas/ComfyNodepackSnapshotOutput"
              },
              "$type": {
                "enum": [
                  "comfyNodepackSnapshot"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyNodepackSnapshotStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the ComfyNodepackSnapshotStep step.",
                "$ref": "#/components/schemas/ComfyNodepackSnapshotInput"
              },
              "$type": {
                "enum": [
                  "comfyNodepackSnapshot"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyOutput": {
        "required": [
          "blobs"
        ],
        "type": "object",
        "properties": {
          "blobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Blob"
            }
          }
        },
        "additionalProperties": false
      },
      "ComfyPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PolyGenInput"
          },
          {
            "required": [
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "hunyuan3D": "#/components/schemas/Hunyuan3DComfyPolyGenInput",
                "trellis2": "#/components/schemas/Trellis2ComfyPolyGenInput"
              }
            }
          }
        ]
      },
      "ComfyPonyV7CreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyPonyV7ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "ponyV7"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyPonyV7ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 25
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 7
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "model": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "ecosystem": {
                "enum": [
                  "ponyV7"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyPonyV7CreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyQwen20bCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyQwen20bImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "version": {
                "enum": [
                  "latest",
                  "2509",
                  "2512"
                ],
                "type": "string",
                "default": "latest"
              },
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "20b"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyQwen20bEditImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyQwen20bImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "height",
              "images",
              "model",
              "operation",
              "width"
            ],
            "type": "object",
            "properties": {
              "version": {
                "enum": [
                  "latest",
                  "2509",
                  "2511"
                ],
                "type": "string",
                "default": "latest"
              },
              "images": {
                "maxItems": 3,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "width": {
                "maximum": 2048,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "height": {
                "maximum": 2048,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "20b"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyQwen20bImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyQwenImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 2.5
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "model": {
                "enum": [
                  "20b"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyQwen20bCreateImageGenInput",
                "editImage": "#/components/schemas/ComfyQwen20bEditImageGenInput",
                "createVariant": "#/components/schemas/ComfyQwen20bVariantImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyQwen20bVariantImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyQwen20bImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "height",
              "image",
              "model",
              "operation",
              "width"
            ],
            "type": "object",
            "properties": {
              "version": {
                "enum": [
                  "latest",
                  "2509",
                  "2512"
                ],
                "type": "string",
                "default": "latest"
              },
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "strength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.7
              },
              "width": {
                "maximum": 2048,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "height": {
                "maximum": 2048,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "operation": {
                "enum": [
                  "createVariant"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "20b"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyQwen21CreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyQwen21ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "2.1"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyQwen21EditImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyQwen21ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "height",
              "images",
              "model",
              "operation",
              "width"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 10,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "resolution": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "description": "Reference pixel budget as resolution squared; preserves each image's aspect ratio.",
                "format": "int32",
                "default": 1024
              },
              "width": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "height": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "2.1"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyQwen21ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyQwenImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 25
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "model": {
                "enum": [
                  "2.1"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyQwen21CreateImageGenInput",
                "editImage": "#/components/schemas/ComfyQwen21EditImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyQwen21TurboCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyQwen21TurboImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "2.1-turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyQwen21TurboEditImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyQwen21TurboImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "height",
              "images",
              "model",
              "operation",
              "width"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 10,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "resolution": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "description": "Reference pixel budget as resolution squared; preserves each image's aspect ratio.",
                "format": "int32",
                "default": 1024
              },
              "width": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "height": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "2.1-turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyQwen21TurboImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyQwenImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "steps": {
                "maximum": 8,
                "minimum": 8,
                "type": "integer",
                "description": "Turbo uses the checkpoint's fixed eight-step sigma schedule.",
                "format": "int32",
                "default": 8
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "model": {
                "enum": [
                  "2.1-turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyQwen21TurboCreateImageGenInput",
                "editImage": "#/components/schemas/ComfyQwen21TurboEditImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyQwenImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "20b"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "20b": "#/components/schemas/ComfyQwen20bImageGenInput",
                "2.1": "#/components/schemas/ComfyQwen21ImageGenInput",
                "2.1-turbo": "#/components/schemas/ComfyQwen21TurboImageGenInput"
              }
            }
          }
        ]
      },
      "ComfySampler": {
        "enum": [
          "euler",
          "euler_ancestral",
          "euler_cfg_pp",
          "euler_ancestral_cfg_pp",
          "heun",
          "heunpp2",
          "dpm_2",
          "dpm_2_ancestral",
          "lms",
          "dpm_fast",
          "dpm_adaptive",
          "dpmpp_2s_ancestral",
          "dpmpp_2s_ancestral_cfg_pp",
          "dpmpp_sde",
          "dpmpp_sde_gpu",
          "dpmpp_2m",
          "dpmpp_2m_cfg_pp",
          "dpmpp_2m_sde",
          "dpmpp_2m_sde_gpu",
          "dpmpp_3m_sde",
          "dpmpp_3m_sde_gpu",
          "ddpm",
          "lcm",
          "ipndm",
          "ipndm_v",
          "deis",
          "ddim",
          "uni_pc",
          "uni_pc_bh2",
          "res_multistep",
          "er_sde"
        ],
        "type": "string"
      },
      "ComfyScheduler": {
        "enum": [
          "normal",
          "karras",
          "exponential",
          "sgm_uniform",
          "simple",
          "ddim_uniform",
          "beta"
        ],
        "type": "string"
      },
      "ComfySd1CreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfySd1ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 1024,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 512
              },
              "height": {
                "maximum": 1024,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 512
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "sd1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfySd1ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "checkpointModel",
              "ecosystem",
              "engine",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler_ancestral",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "normal",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 30
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 7
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "checkpointModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "sd1"
                ],
                "type": "string"
              },
              "vaeModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "embeddings": {
                "type": "array",
                "items": {
                  "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                  "type": "string"
                }
              },
              "clipSkip": {
                "type": "integer",
                "format": "int32",
                "default": 2
              },
              "controlNets": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ImageJobControlNet"
                }
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfySd1CreateImageGenInput",
                "createVariant": "#/components/schemas/ComfySd1VariantImageGenInput"
              }
            }
          }
        ]
      },
      "ComfySd1VariantImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfySd1ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "image",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 1024,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 512
              },
              "height": {
                "maximum": 1024,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 512
              },
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "strength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.75
              },
              "operation": {
                "enum": [
                  "createVariant"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "sd1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfySdxlCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfySdxlImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "sdxl"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfySdxlImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler_ancestral",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "normal",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 30
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 7
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "checkpointModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string",
                "default": "urn:air:sdxl:checkpoint:civitai:101055@128078"
              },
              "ecosystem": {
                "enum": [
                  "sdxl"
                ],
                "type": "string"
              },
              "vaeModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "embeddings": {
                "type": "array",
                "items": {
                  "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                  "type": "string"
                }
              },
              "clipSkip": {
                "type": "integer",
                "format": "int32",
                "default": 2
              },
              "controlNets": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ImageJobControlNet"
                }
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfySdxlCreateImageGenInput",
                "createVariant": "#/components/schemas/ComfySdxlVariantImageGenInput"
              }
            }
          }
        ]
      },
      "ComfySdxlVariantImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfySdxlImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "image",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "strength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.75
              },
              "operation": {
                "enum": [
                  "createVariant"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "sdxl"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/ComfyInput"
              },
              "output": {
                "$ref": "#/components/schemas/ComfyOutput"
              },
              "$type": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Comfy workflows"
      },
      "ComfyStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the ComfyStep step.",
                "$ref": "#/components/schemas/ComfyInput"
              },
              "$type": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Comfy workflows"
      },
      "ComfyTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "engine",
              "maxBatchSize",
              "storageBuzzPerEpoch",
              "trace",
              "usesStepPricing"
            ],
            "type": "object",
            "properties": {
              "ecosystem": {
                "type": "string"
              },
              "epochs": {
                "maximum": 200,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Number of saved checkpoints (one downloadable model per epoch). Derived from `steps` when omitted;\nwhen both are supplied, epochs is the checkpoint count and steps the total.",
                "format": "int32"
              },
              "steps": {
                "maximum": 10000,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Total training steps; the primary control over training length and pricing.\nDerived from `epochs` when omitted.",
                "format": "int32"
              },
              "batchSize": {
                "maximum": 4,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Defaults to 1; raise it up to 4 for this ecosystem to train faster at the cost of more GPU memory.",
                "default": 1
              },
              "lr": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "description": "Sets the learning rate for the model. This is the learning rate when performing additional learning on each attention block (and other blocks depending on the setting).",
                "format": "double",
                "default": 0.0001
              },
              "textEncoderLr": {
                "maximum": 1,
                "minimum": 0,
                "type": [
                  "null",
                  "number"
                ],
                "description": "Sets the learning rate for the text encoder. Only used when TrainTextEncoder is true. For models with multiple text encoders, this applies to all of them.",
                "format": "double"
              },
              "trainTextEncoder": {
                "type": [
                  "null",
                  "boolean"
                ],
                "description": "Whether to train the text encoder(s) alongside the model. Enabling this can improve prompt understanding but increases training time and memory usage."
              },
              "lrScheduler": {
                "enum": [
                  "constant",
                  "constant_with_warmup",
                  "cosine",
                  "linear",
                  "step"
                ],
                "type": [
                  "null",
                  "string"
                ],
                "description": "You can change the learning rate in the middle of learning. A scheduler is a setting for how to change the learning rate."
              },
              "optimizerType": {
                "enum": [
                  "adamw",
                  "adamw8bit",
                  "adam8bit",
                  "lion",
                  "lion8bit",
                  "adafactor",
                  "adagrad",
                  "prodigy",
                  "prodigy8bit",
                  "automagic"
                ],
                "type": [
                  "null",
                  "string"
                ],
                "description": "The optimizer determines how to update the neural net weights during training.\nVarious methods have been proposed for smart learning, but the most commonly used in LoRA learning is \"adamw8bit\"."
              },
              "networkDim": {
                "maximum": 256,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "The larger the Dim setting, the more learning information can be stored, but the possibility of learning unnecessary information other than the learning target increases. A larger Dim also increases LoRA file size.",
                "format": "int32"
              },
              "networkAlpha": {
                "maximum": 256,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Scales the stored weights by Alpha/Dim (e.g. 16/32 halves the effective learning rate); equal to Dim means no scaling.",
                "format": "int32"
              },
              "noiseOffset": {
                "maximum": 1,
                "minimum": 0,
                "type": [
                  "null",
                  "number"
                ],
                "description": "Adds noise to training images. 0 adds no noise at all. A value of 1 adds strong noise.",
                "format": "double"
              },
              "flipAugmentation": {
                "type": "boolean",
                "description": "If this option is turned on, the image will be horizontally flipped randomly. It can learn left and right angles, which is useful when you want to learn symmetrical people and objects.",
                "default": false
              },
              "shuffleTokens": {
                "type": "boolean",
                "description": "Randomly changes the order of your tags during training. The intent of shuffling is to improve learning. If you are using captions (sentences), this option has no meaning.",
                "default": false
              },
              "keepTokens": {
                "maximum": 10,
                "minimum": 0,
                "type": "integer",
                "description": "Number of leading tags kept in place when `shuffleTokens` is on; does nothing otherwise.",
                "format": "int32",
                "default": 0
              },
              "triggerWord": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "A trigger word that activates the trained LoRA when used in prompts.\nOnly applicable to certain ecosystems (sd1, sdxl, flux1, chroma, zimagebase, zimageturbo, flux2klein)."
              },
              "continueFrom": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ],
                "description": "Optional previously-trained LoRA to continue training from (\"train further\"). When set, the first\nepoch resumes from this model instead of the base model, and the new epochs build on top of it."
              },
              "trace": {
                "description": "What each epoch job records to its trace stream (`output.epochs[].traceUrl`): `none` (default), `logs` (plain-text console output)\nor `events` (NDJSON of console lines, step progress, phases and epoch checkpoints).",
                "$ref": "#/components/schemas/TrainingTraceMode"
              },
              "storageBuzzPerEpoch": {
                "type": "number",
                "description": "Per-epoch surcharge (buzz) for the delivered checkpoint and its preview samples, billed on top of the per-step cost. Override where per-epoch samples are expensive (e.g. video).",
                "format": "double",
                "readOnly": true
              },
              "defaultSteps": {
                "type": "integer",
                "description": "Default step budget when neither `steps` nor `epochs` is supplied; override where the ecosystem needs more or fewer.",
                "format": "int32",
                "readOnly": true
              },
              "usesStepPricing": {
                "type": "boolean",
                "description": "False only on the legacy path where the caller supplied `epochs` but no `steps`,\nwhich keeps the historical flat per-epoch price.",
                "readOnly": true
              },
              "resolution": {
                "maximum": 1024,
                "minimum": 256,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "noHalfVae": {
                "type": "boolean",
                "default": false
              },
              "minSnrGamma": {
                "maximum": 20,
                "minimum": 0,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Min-SNR gamma passed through to compatible training backends.",
                "format": "int32"
              },
              "model": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string",
                "description": "The primary checkpoint to train upon. The model ecosystem drives Comfy training behavior.",
                "default": "urn:air:sdxl:checkpoint:civitai:101055@128078"
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ],
                "description": "Split diffusion model used by native Comfy training nodes. When omitted, checkpoint-backed families load `model`."
              },
              "textEncoderModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ],
                "description": "Split text encoder used by native Comfy training nodes."
              },
              "vaeModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ],
                "description": "Split VAE used by native Comfy training nodes."
              },
              "trainingDtype": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "loraDtype": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "quantizedBackward": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "bypassMode": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "gradAccumulationSteps": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "lossFunction": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "algorithm": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "checkpointDepth": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "offloading": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "clipType": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "unetWeightDtype": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "modelSamplingShift": {
                "type": [
                  "null",
                  "number"
                ],
                "format": "double"
              },
              "datasetCaching": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "maxBatchSize": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyZImageBaseCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyZImageBaseImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "base"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "zImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyZImageBaseImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyZImageImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createImage"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 4
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "controlNets": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ImageJobControlNet"
                }
              },
              "model": {
                "enum": [
                  "base"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "zImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyZImageBaseCreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyZImageImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "turbo"
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "zImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "turbo": "#/components/schemas/ComfyZImageTurboImageGenInput",
                "base": "#/components/schemas/ComfyZImageBaseImageGenInput"
              }
            }
          }
        ]
      },
      "ComfyZImageTurboCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyZImageTurboImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "zImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ComfyZImageTurboImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyZImageImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createImage"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "default": "euler",
                "$ref": "#/components/schemas/ComfySampler"
              },
              "scheduler": {
                "default": "simple",
                "$ref": "#/components/schemas/ComfyScheduler"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 9
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "controlNets": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ImageJobControlNet"
                }
              },
              "model": {
                "enum": [
                  "turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "zImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ComfyZImageTurboCreateImageGenInput"
              }
            }
          }
        ]
      },
      "ComposeMediaElementInput": {
        "type": "object",
        "properties": {
          "url": {
            "type": [
              "null",
              "string"
            ],
            "description": "The source media URL. Either a direct `\"https://...\"` URL or a `$ref` to a prior\nstep's `Output.AudioBlob.Url` or `Output.VideoBlob.Url`.",
            "format": "uri"
          },
          "at": {
            "type": [
              "null",
              "number"
            ],
            "description": "Absolute start time on the output timeline, in seconds; anchors the element outside the implicit sequencing chain\n(e.g. a music bed). When unset, the element starts after the previous non-anchored element ends, nudged by `offset`.",
            "format": "float"
          },
          "offset": {
            "type": "number",
            "description": "Seconds to shift this element from its after-previous position: negative overlaps, positive leaves a gap.\nIgnored when `at` is set.",
            "format": "float",
            "default": 0
          },
          "layout": {
            "description": "Spatial placement of this element on the output canvas. Ignored for audio elements and for\nall-audio compositions.",
            "$ref": "#/components/schemas/MediaLayout"
          },
          "transformers": {
            "type": "array",
            "items": {
              "description": "Per-element transformer applied to a media element before it is composited; transformers run in array order.",
              "$ref": "#/components/schemas/MediaTransformer"
            },
            "description": "Ordered per-element transformers (fades, volume, ...) applied in array order."
          }
        },
        "additionalProperties": false,
        "description": "A single audio or video element participating in a composition."
      },
      "ComposeMediaInput": {
        "required": [
          "elements"
        ],
        "type": "object",
        "properties": {
          "elements": {
            "type": "array",
            "items": {
              "description": "A single audio or video element participating in a composition.",
              "$ref": "#/components/schemas/ComposeMediaElementInput"
            },
            "description": "Elements in implicit sequencing order; overlapping audio is mixed, overlapping video is layered by canvas\n`zOrder` then array order. To stitch videos end-to-end, list them with no `at`/`offset`."
          },
          "canvas": {
            "description": "Output geometry for video output; when omitted, derived from the elements (largest video, fastest frame rate).\nSupplying a canvas does not by itself force video output — see `output`.",
            "$ref": "#/components/schemas/MediaCanvas"
          },
          "output": {
            "description": "Desired output kind and container. When omitted, the kind is derived from the elements and\nthe container defaults to MP4 (video) or Ogg (audio).",
            "$ref": "#/components/schemas/ComposeMediaOutputSpec"
          },
          "normalize": {
            "type": "boolean",
            "description": "Divide the audio mix by the number of overlapping elements to avoid clipping. Defaults to false.",
            "default": false
          }
        },
        "additionalProperties": false
      },
      "ComposeMediaOutput": {
        "required": [
          "elements",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "elements": {
            "type": "array",
            "items": {
              "description": "Resolved timing for a single element in the composed output.",
              "$ref": "#/components/schemas/ComposeMediaResolvedElement"
            },
            "description": "Per-element resolved timing in input order — useful for rendering subtitles, speaker\nhighlights, or chapter markers without re-probing every source clip."
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "audio": "#/components/schemas/AudioComposeMediaOutput",
            "video": "#/components/schemas/VideoComposeMediaOutput"
          }
        }
      },
      "ComposeMediaOutputSpec": {
        "type": "object",
        "properties": {
          "type": {
            "description": "Forces the output kind. When null, it is derived from the elements: video if any element is\nvideo or a canvas is supplied, otherwise audio.",
            "$ref": "#/components/schemas/MediaOutputType"
          },
          "container": {
            "description": "Output container. Auto selects MP4 for video and Ogg for audio.",
            "default": "auto",
            "$ref": "#/components/schemas/MediaContainer"
          }
        },
        "additionalProperties": false,
        "description": "Describes the desired output of a composition. Both fields are optional — leave\n`type` unset to derive the kind from the elements."
      },
      "ComposeMediaResolvedElement": {
        "required": [
          "duration",
          "startSeconds"
        ],
        "type": "object",
        "properties": {
          "startSeconds": {
            "type": "number",
            "format": "float"
          },
          "duration": {
            "type": "number",
            "description": "Probed duration of the source clip, in seconds.",
            "format": "float"
          }
        },
        "additionalProperties": false,
        "description": "Resolved timing for a single element in the composed output."
      },
      "ComposeMediaStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/ComposeMediaInput"
              },
              "output": {
                "$ref": "#/components/schemas/ComposeMediaOutput"
              },
              "$type": {
                "enum": [
                  "composeMedia"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Compose Media"
      },
      "ComposeMediaStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the ComposeMediaStep step.",
                "$ref": "#/components/schemas/ComposeMediaInput"
              },
              "$type": {
                "enum": [
                  "composeMedia"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Compose Media"
      },
      "ConsumerBlobPresignResponse": {
        "required": [
          "expiresAt",
          "uploadUrl"
        ],
        "type": "object",
        "properties": {
          "uploadUrl": {
            "type": "string",
            "format": "uri"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "ContainerFormat": {
        "enum": [
          "mp4",
          "webM"
        ],
        "type": "string"
      },
      "ConvertImageInput": {
        "required": [
          "image",
          "output"
        ],
        "type": "object",
        "properties": {
          "image": {
            "type": "string",
            "description": "Either A URL, A DataURL or a Base64 string",
            "format": "source-image"
          },
          "transforms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageTransform"
            },
            "description": "Applied in order, before conversion."
          },
          "output": {
            "$ref": "#/components/schemas/ImageOutputFormat"
          },
          "public": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Stores the result in a bucket that serves it directly, so the URL is stable and unsigned (CDN-cacheable). Privileged\ncallers only: nothing gates a read, so no NSFW level, blocked reason or mature-content restriction applies and a later block cannot take it back."
          }
        },
        "additionalProperties": false
      },
      "ConvertImageOutput": {
        "type": "object",
        "properties": {
          "blob": {
            "$ref": "#/components/schemas/ImageBlob"
          }
        },
        "additionalProperties": false
      },
      "ConvertImageStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/ConvertImageInput"
              },
              "output": {
                "$ref": "#/components/schemas/ConvertImageOutput"
              },
              "$type": {
                "enum": [
                  "convertImage"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "A workflow step that converts images to different formats and applies optional transforms."
      },
      "ConvertImageStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the ConvertImageStep step.",
                "$ref": "#/components/schemas/ConvertImageInput"
              },
              "$type": {
                "enum": [
                  "convertImage"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "A workflow step that converts images to different formats and applies optional transforms."
      },
      "CursedArrayOfStringAndResourceInfo": {
        "required": [
          "items",
          "next"
        ],
        "type": "object",
        "properties": {
          "next": {
            "type": [
              "null",
              "string"
            ]
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ResourceInfo"
            }
          }
        },
        "additionalProperties": false
      },
      "CursedArrayOfTelemetryCursorAndWorkflow": {
        "required": [
          "items",
          "next"
        ],
        "type": "object",
        "properties": {
          "next": {
            "type": "string"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Workflow"
            }
          }
        },
        "additionalProperties": false
      },
      "CustomComfyInput": {
        "required": [
          "resources",
          "trace",
          "workflow"
        ],
        "type": "object",
        "properties": {
          "resources": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "All resources the workflow needs as AIR URNs, including `comfy:nodepack` URNs for runtime-installable\ncustom nodes. Anything the workflow references that is not listed here fails at load time inside ComfyUI."
          },
          "workflow": {
            "description": "The raw ComfyUI workflow graph. Forwarded opaquely to the worker;\nthe orchestrator does not inspect or validate node contents."
          },
          "trace": {
            "description": "How much of the ComfyUI `/ws` activity the worker records to a streaming blob the consumer can tail\nlive (URL on `output.traceUrl`). None (default) records nothing.",
            "$ref": "#/components/schemas/TraceMode"
          },
          "sessionId": {
            "type": [
              "null",
              "string"
            ],
            "description": "When set, the scheduler prefers a worker that already holds this session's ComfyUI container.\nNull = no preference."
          },
          "comfyImage": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": [
              "null",
              "string"
            ],
            "description": "Custom comfy container image as an `urn:air:oci:image:<source>:<repo>@<version|sha256:…>` AIR. Null = worker default."
          },
          "minVramGb": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Minimum GPU VRAM (GB) the claiming worker must report. Null = any comfy-capable worker.",
            "format": "int32"
          },
          "useSageAttention": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Launches ComfyUI with `--use-sage-attention`. Null/false = the image's default (off for the cloud/slim images)."
          },
          "minimumDurationSeconds": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Submit-time affordability gate: the workflow is rejected (400) unless the user can afford at least this many\nseconds of generation. Null = no gate; the live-balance guard still cancels mid-run if the balance goes negative.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "CustomComfyOutput": {
        "required": [
          "blobs",
          "tempBlobs"
        ],
        "type": "object",
        "properties": {
          "blobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Blob"
            }
          },
          "traceUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "URL of the recorded ComfyUI `/ws` trace (`.txt` log or `.bin` recording per the requested `trace` mode),\ntailable live while the job runs. Null when tracing wasn't requested.",
            "format": "uri"
          },
          "tempBlobs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Blob"
            }
          },
          "usage": {
            "$ref": "#/components/schemas/CustomComfyUsage"
          }
        },
        "additionalProperties": false
      },
      "CustomComfyStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/CustomComfyInput"
              },
              "output": {
                "$ref": "#/components/schemas/CustomComfyOutput"
              },
              "$type": {
                "enum": [
                  "customComfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "CustomComfy"
      },
      "CustomComfyStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the CustomComfyStep step.",
                "$ref": "#/components/schemas/CustomComfyInput"
              },
              "$type": {
                "enum": [
                  "customComfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "CustomComfy"
      },
      "CustomComfyUsage": {
        "required": [
          "buzzPerSecond",
          "computedAt",
          "estimatedCost",
          "runtimeSeconds"
        ],
        "type": "object",
        "properties": {
          "buzzPerSecond": {
            "type": "number",
            "format": "double"
          },
          "runtimeSeconds": {
            "type": "number",
            "format": "double"
          },
          "estimatedCost": {
            "type": "number",
            "description": "Estimate as of `computedAt`: `Max(1, RuntimeSeconds × BuzzPerSecond)` (mirrors the billing floor).",
            "format": "double"
          },
          "startedAt": {
            "type": [
              "null",
              "string"
            ],
            "description": "When GPU runtime began accruing, or null before the worker reports. Distinct\nfrom `WorkflowStep.StartedAt`, which is the earlier (unbilled) claim time.",
            "format": "date-time"
          },
          "computedAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "CustomTextToSpeechInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TextToSpeechInput"
          },
          {
            "required": [
              "engine",
              "xVectorOnlyMode"
            ],
            "type": "object",
            "properties": {
              "refAudioUrl": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Reference audio URL for Base voice-cloning mode.\nAccepts AIR URNs (existing resources) or HTTP(S) URLs.",
                "format": "uri"
              },
              "refText": {
                "maxLength": 1000,
                "type": [
                  "null",
                  "string"
                ],
                "description": "Transcript of the reference audio.\nRequired for Base mode unless XVectorOnlyMode is true."
              },
              "xVectorOnlyMode": {
                "type": "boolean",
                "description": "If true, uses only speaker embedding for Base mode (ref_text not required)."
              },
              "speaker": {
                "enum": [
                  "aiden",
                  "dylan",
                  "eric",
                  "ono_anna",
                  "ryan",
                  "serena",
                  "sohee",
                  "uncle_fu",
                  "vivian"
                ],
                "type": [
                  "null",
                  "string"
                ],
                "description": "Built-in speaker name for CustomVoice mode."
              },
              "instruct": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Optional style instruction for CustomVoice mode."
              },
              "maxNewTokens": {
                "maximum": 2048,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "engine": {
                "enum": [
                  "custom"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "DensePoseColormap": {
        "enum": [
          "Viridis (MagicAnimate)",
          "Parula (CivitAI)"
        ],
        "type": "string"
      },
      "DensePoseModel": {
        "enum": [
          "densepose_r50_fpn_dl.torchscript",
          "densepose_r101_fpn_dl.torchscript"
        ],
        "type": "string"
      },
      "DepthAnythingCheckpoint": {
        "enum": [
          "depth_anything_vitl14.pth",
          "depth_anything_vitb14.pth",
          "depth_anything_vits14.pth"
        ],
        "type": "string"
      },
      "DepthAnythingV2Checkpoint": {
        "enum": [
          "depth_anything_v2_vitg.pth",
          "depth_anything_v2_vitl.pth",
          "depth_anything_v2_vitb.pth",
          "depth_anything_v2_vits.pth"
        ],
        "type": "string"
      },
      "DwPoseBboxDetector": {
        "enum": [
          "yolox_l.onnx",
          "yolox_l.torchscript.pt",
          "yolo_nas_l_fp16.onnx",
          "yolo_nas_m_fp16.onnx",
          "yolo_nas_s_fp16.onnx"
        ],
        "type": "string"
      },
      "DwPoseEstimator": {
        "enum": [
          "dw-ll_ucoco_384_bs5.torchscript.pt",
          "dw-ll_ucoco_384.onnx",
          "dw-ll_ucoco.onnx"
        ],
        "type": "string"
      },
      "EpochResult": {
        "required": [
          "blobName",
          "blobUrl",
          "epochNumber",
          "sampleImages"
        ],
        "type": "object",
        "properties": {
          "epochNumber": {
            "type": "integer",
            "format": "int32"
          },
          "blobName": {
            "type": "string"
          },
          "blobSize": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Get the total size in bytes of the asset",
            "format": "int64"
          },
          "sampleImages": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "blobUrl": {
            "type": "string",
            "description": "A presigned url that points to the epoch file",
            "format": "uri"
          }
        },
        "additionalProperties": false
      },
      "ErnieAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "maxBatchSize"
            ],
            "type": "object",
            "properties": {
              "maxBatchSize": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "ernie"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 2,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Defaults to 1; raise it up to 2 for this ecosystem to train faster at the cost of more GPU memory.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "FaceDetection": {
        "required": [
          "boundingBox"
        ],
        "type": "object",
        "properties": {
          "boundingBox": {
            "$ref": "#/components/schemas/BoundingBox"
          },
          "landmarks": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "$ref": "#/components/schemas/ValueTupleOfDoubleAndDouble"
            },
            "description": "Facial landmarks (e.g., eyes, nose, mouth positions).\nDictionary keys are landmark names, values are (x, y) coordinates."
          },
          "embedding": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "number",
              "format": "double"
            }
          }
        },
        "additionalProperties": false
      },
      "FaceRecognitionResult": {
        "required": [
          "faces"
        ],
        "type": "object",
        "properties": {
          "faces": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FaceDetection"
            }
          },
          "similarityMatrix": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "array",
              "items": {
                "type": "number",
                "format": "double"
              }
            },
            "description": "Pairwise cosine similarity matrix between detected faces.\nMatrix[i][j] represents similarity between face i and face j."
          }
        },
        "additionalProperties": false
      },
      "FadeInTransformer": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MediaTransformer"
          },
          {
            "required": [
              "durationMs",
              "type"
            ],
            "type": "object",
            "properties": {
              "durationMs": {
                "type": "integer",
                "format": "int32"
              },
              "type": {
                "enum": [
                  "fadeIn"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Linear fade from silence (audio) and/or black (video) at the head of the element."
      },
      "FadeOutTransformer": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MediaTransformer"
          },
          {
            "required": [
              "durationMs",
              "type"
            ],
            "type": "object",
            "properties": {
              "durationMs": {
                "type": "integer",
                "format": "int32"
              },
              "type": {
                "enum": [
                  "fadeOut"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Linear fade to silence (audio) and/or black (video) at the tail of the element."
      },
      "FalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "qwen2": "#/components/schemas/Qwen2FalImageGenInput",
                "krea2": "#/components/schemas/Krea2FalImageGenInput",
                "maiImage": "#/components/schemas/MaiImageFalImageGenInput",
                "reve": "#/components/schemas/ReveFalImageGenInput",
                "museImage": "#/components/schemas/MuseImageFalImageGenInput",
                "ideogram45": "#/components/schemas/Ideogram45FalImageGenInput",
                "flux3": "#/components/schemas/Flux3FalImageGenInput"
              }
            }
          }
        ]
      },
      "FalPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PolyGenInput"
          },
          {
            "required": [
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "meshy": "#/components/schemas/MeshyFalPolyGenInput",
                "tripo": "#/components/schemas/TripoFalPolyGenInput"
              }
            }
          }
        ]
      },
      "FileFormat": {
        "enum": [
          "unknown",
          "safeTensor",
          "pickleTensor",
          "diffusers",
          "coreML",
          "onnx",
          "tar"
        ],
        "type": "string"
      },
      "Flux1AIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "modelVariant",
              "storageBuzzPerEpoch"
            ],
            "type": "object",
            "properties": {
              "modelVariant": {
                "type": "string"
              },
              "storageBuzzPerEpoch": {
                "type": "number",
                "format": "double",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "flux1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "modelVariant",
              "mapping": {
                "dev": "#/components/schemas/Flux1DevAIToolkitTrainingInput",
                "schnell": "#/components/schemas/Flux1SchnellAIToolkitTrainingInput"
              }
            }
          }
        ]
      },
      "Flux1DevAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux1AIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "modelVariant"
            ],
            "type": "object",
            "properties": {
              "modelVariant": {
                "enum": [
                  "dev"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux1KontextDevImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux1KontextImageGenInput"
          },
          {
            "required": [
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "enum": [
                  "dev"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux1-kontext"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux1KontextImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string",
                "readOnly": true
              },
              "prompt": {
                "maxLength": 1000,
                "minLength": 0,
                "type": "string"
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "aspectRatio": {
                "enum": [
                  "21:9",
                  "16:9",
                  "4:3",
                  "3:2",
                  "1:1",
                  "2:3",
                  "3:4",
                  "9:16",
                  "9:21"
                ],
                "type": "string",
                "default": "1:1"
              },
              "guidanceScale": {
                "maximum": 20,
                "minimum": 1,
                "type": "number",
                "description": "Model/provider guidance strength. This is not a portable classifier-free guidance scale.",
                "format": "double",
                "default": 3.5
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "engine": {
                "enum": [
                  "flux1-kontext"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "pro": "#/components/schemas/Flux1KontextProImageGenInput",
                "max": "#/components/schemas/Flux1KontextMaxImageGenInput",
                "dev": "#/components/schemas/Flux1KontextDevImageGenInput"
              }
            }
          }
        ]
      },
      "Flux1KontextMaxImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux1KontextImageGenInput"
          },
          {
            "required": [
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "enum": [
                  "max"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux1-kontext"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux1KontextProImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux1KontextImageGenInput"
          },
          {
            "required": [
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "enum": [
                  "pro"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux1-kontext"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux1ProFamilyImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "engine": {
                "enum": [
                  "flux1-pro"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "pro": "#/components/schemas/Flux1ProImageGenInput",
                "ultra": "#/components/schemas/Flux1ProUltraImageGenInput"
              }
            }
          }
        ]
      },
      "Flux1ProImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux1ProFamilyImageGenInput"
          },
          {
            "required": [
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 1440,
                "minimum": 256,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 1440,
                "minimum": 256,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "model": {
                "enum": [
                  "pro"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux1-pro"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "FLUX1.1 [pro]"
      },
      "Flux1ProUltraImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux1ProFamilyImageGenInput"
          },
          {
            "required": [
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "aspectRatio": {
                "enum": [
                  "21:9",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16",
                  "9:21"
                ],
                "type": "string",
                "default": "1:1"
              },
              "raw": {
                "type": "boolean",
                "description": "Generates less processed, more natural-looking images.",
                "default": false
              },
              "model": {
                "enum": [
                  "ultra"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux1-pro"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "FLUX1.1 [pro] Ultra"
      },
      "Flux1SchnellAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux1AIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "modelVariant"
            ],
            "type": "object",
            "properties": {
              "modelVariant": {
                "enum": [
                  "schnell"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux1SdCppCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux1SdCppImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux1SdCppEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux1SdCppImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 2,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux1SdCppImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SdCppImageGenInput"
          },
          {
            "required": [
              "clipLModel",
              "diffusionModel",
              "ecosystem",
              "engine",
              "operation",
              "prompt",
              "t5XXLModel",
              "vaeModel"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 1000,
                "minLength": 0,
                "type": "string"
              },
              "width": {
                "maximum": 1216,
                "minimum": 832,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 1216,
                "minimum": 832,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "cfgScale": {
                "maximum": 20,
                "minimum": 1,
                "type": "number",
                "format": "double",
                "default": 3.5
              },
              "steps": {
                "maximum": 50,
                "minimum": 4,
                "type": "integer",
                "format": "int32",
                "default": 28
              },
              "sampleMethod": {
                "default": "euler",
                "$ref": "#/components/schemas/SdCppSampleMethod"
              },
              "schedule": {
                "default": "simple",
                "$ref": "#/components/schemas/SdCppSchedule"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux1"
                ],
                "type": "string"
              },
              "vaeModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "clipLModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "t5XXLModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Flux1SdCppCreateImageInput",
                "editImage": "#/components/schemas/Flux1SdCppEditImageInput",
                "createVariant": "#/components/schemas/Flux1SdCppVariantImageGenInput"
              }
            }
          }
        ]
      },
      "Flux1SdCppVariantImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux1SdCppImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "image",
              "operation"
            ],
            "type": "object",
            "properties": {
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "strength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.7
              },
              "operation": {
                "enum": [
                  "createVariant"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2DevCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2DevImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "dev"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2DevEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2DevImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "dev"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2DevEditImageResourceTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageResourceTrainingInput"
          },
          {
            "required": [
              "engine"
            ],
            "type": "object",
            "properties": {
              "steps": {
                "maximum": 10000,
                "minimum": 100,
                "type": "integer",
                "description": "Number of training steps. Must be in increments of 100.",
                "format": "int32",
                "default": 1000
              },
              "learningRate": {
                "type": "number",
                "format": "double",
                "default": 0.00005
              },
              "defaultCaption": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Default caption to use if caption files are missing from training data."
              },
              "referenceImageCount": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "description": "Number of reference images per training pair (1-4).\nAffects cost calculation via reference multiplier.",
                "format": "int32",
                "default": 1
              },
              "engine": {
                "enum": [
                  "flux2-dev-edit"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2DevImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "guidanceScale": {
                "maximum": 20,
                "minimum": 0,
                "type": "number",
                "description": "Embedded guidance strength passed to the guidance-distilled model; not sampling-time classifier-free guidance.",
                "format": "double",
                "default": 2.5
              },
              "steps": {
                "maximum": 50,
                "minimum": 4,
                "type": "integer",
                "format": "int32",
                "default": 28
              },
              "model": {
                "enum": [
                  "dev"
                ],
                "type": "string"
              },
              "loras": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ImageGenInputLora"
                }
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Flux2DevCreateImageInput",
                "editImage": "#/components/schemas/Flux2DevEditImageInput"
              }
            }
          }
        ]
      },
      "Flux2DevImageResourceTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageResourceTrainingInput"
          },
          {
            "required": [
              "engine"
            ],
            "type": "object",
            "properties": {
              "steps": {
                "maximum": 10000,
                "minimum": 100,
                "type": "integer",
                "description": "Number of training steps. Must be in increments of 100.",
                "format": "int32",
                "default": 1000
              },
              "learningRate": {
                "type": "number",
                "format": "double",
                "default": 0.00005
              },
              "defaultCaption": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Default caption to use if caption files are missing from training data."
              },
              "engine": {
                "enum": [
                  "flux2-dev"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2DevSdCppCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2DevSdCppImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux2Dev"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2DevSdCppEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2DevSdCppImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 2,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux2Dev"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2DevSdCppImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SdCppImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 1000,
                "minLength": 0,
                "type": "string"
              },
              "width": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "cfgScale": {
                "maximum": 20,
                "minimum": 1,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "steps": {
                "maximum": 50,
                "minimum": 4,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "sampleMethod": {
                "default": "euler",
                "$ref": "#/components/schemas/SdCppSampleMethod"
              },
              "schedule": {
                "default": "simple",
                "$ref": "#/components/schemas/SdCppSchedule"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "ecosystem": {
                "enum": [
                  "flux2Dev"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Flux2DevSdCppCreateImageInput",
                "editImage": "#/components/schemas/Flux2DevSdCppEditImageInput",
                "createVariant": "#/components/schemas/Flux2DevSdCppVariantImageGenInput"
              }
            }
          }
        ]
      },
      "Flux2DevSdCppVariantImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2DevSdCppImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "image",
              "operation"
            ],
            "type": "object",
            "properties": {
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "strength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.7
              },
              "operation": {
                "enum": [
                  "createVariant"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux2Dev"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2FlexCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2FlexImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "flex"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2FlexEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2FlexImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "flex"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2FlexImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "guidanceScale": {
                "maximum": 100,
                "minimum": 1.5,
                "type": "number",
                "description": "Model/provider guidance strength. This is not a portable classifier-free guidance scale.",
                "format": "double",
                "default": 3.5
              },
              "steps": {
                "maximum": 50,
                "minimum": 2,
                "type": "integer",
                "format": "int32",
                "default": 28
              },
              "model": {
                "enum": [
                  "flex"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Flux2FlexCreateImageInput",
                "editImage": "#/components/schemas/Flux2FlexEditImageInput"
              }
            }
          }
        ]
      },
      "Flux2ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "prompt": {
                "minLength": 1,
                "type": "string"
              },
              "width": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": false
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "dev": "#/components/schemas/Flux2DevImageGenInput",
                "flex": "#/components/schemas/Flux2FlexImageGenInput",
                "pro": "#/components/schemas/Flux2ProImageGenInput",
                "max": "#/components/schemas/Flux2MaxImageGenInput",
                "klein": "#/components/schemas/Flux2KleinImageGenInput"
              }
            }
          }
        ]
      },
      "Flux2Klein4bAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2KleinAIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "maxBatchSize",
              "modelVariant"
            ],
            "type": "object",
            "properties": {
              "maxBatchSize": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "modelVariant": {
                "enum": [
                  "4b"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux2klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 2,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Defaults to 1; raise it up to 2 for this ecosystem to train faster at the cost of more GPU memory.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2Klein9bAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2KleinAIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "modelVariant"
            ],
            "type": "object",
            "properties": {
              "modelVariant": {
                "enum": [
                  "9b"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux2klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2KleinAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "modelVariant"
            ],
            "type": "object",
            "properties": {
              "modelVariant": {
                "type": "string"
              },
              "isEditTraining": {
                "type": "boolean",
                "description": "Whether this is image-edit training (uses control paths for reference images).\nWhen true, the training data zip should contain subfolders: main/, control_1/, control_2/, control_3/.",
                "default": false
              },
              "ecosystem": {
                "enum": [
                  "flux2klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "modelVariant",
              "mapping": {
                "4b": "#/components/schemas/Flux2Klein4bAIToolkitTrainingInput",
                "9b": "#/components/schemas/Flux2Klein9bAIToolkitTrainingInput"
              }
            }
          }
        ]
      },
      "Flux2KleinCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2KleinImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2KleinEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2KleinImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 2,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2KleinImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "cfgScale": {
                "maximum": 20,
                "minimum": 1,
                "type": "number",
                "format": "double",
                "default": 5
              },
              "steps": {
                "maximum": 50,
                "minimum": 4,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "sampleMethod": {
                "default": "euler",
                "$ref": "#/components/schemas/SdCppSampleMethod"
              },
              "schedule": {
                "default": "simple",
                "$ref": "#/components/schemas/SdCppSchedule"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "modelVersion": {
                "enum": [
                  "4b",
                  "4b-base",
                  "9b",
                  "9b-base",
                  "9b-kv"
                ],
                "type": "string",
                "default": "4b"
              },
              "model": {
                "enum": [
                  "klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Flux2KleinCreateImageInput",
                "editImage": "#/components/schemas/Flux2KleinEditImageInput"
              }
            }
          }
        ]
      },
      "Flux2KleinSdCppCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2KleinSdCppImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux2Klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2KleinSdCppEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2KleinSdCppImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 2,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux2Klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2KleinSdCppImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SdCppImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 1000,
                "minLength": 0,
                "type": "string"
              },
              "width": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 512,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "cfgScale": {
                "maximum": 20,
                "minimum": 1,
                "type": "number",
                "format": "double",
                "default": 5
              },
              "steps": {
                "maximum": 50,
                "minimum": 4,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "sampleMethod": {
                "default": "euler",
                "$ref": "#/components/schemas/SdCppSampleMethod"
              },
              "schedule": {
                "default": "simple",
                "$ref": "#/components/schemas/SdCppSchedule"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "modelVersion": {
                "enum": [
                  "4b",
                  "4b-base",
                  "9b",
                  "9b-base"
                ],
                "type": "string",
                "default": "4b"
              },
              "ecosystem": {
                "enum": [
                  "flux2Klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Flux2KleinSdCppCreateImageInput",
                "editImage": "#/components/schemas/Flux2KleinSdCppEditImageInput",
                "createVariant": "#/components/schemas/Flux2KleinSdCppVariantImageGenInput"
              }
            }
          }
        ]
      },
      "Flux2KleinSdCppVariantImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2KleinSdCppImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "image",
              "operation"
            ],
            "type": "object",
            "properties": {
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "strength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.7
              },
              "operation": {
                "enum": [
                  "createVariant"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "flux2Klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2MaxCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2MaxImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "max"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2MaxEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2MaxImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "max"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2MaxImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "model": {
                "enum": [
                  "max"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Flux2MaxCreateImageInput",
                "editImage": "#/components/schemas/Flux2MaxEditImageInput"
              }
            }
          }
        ]
      },
      "Flux2ProCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2ProImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "pro"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2ProEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2ProImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "pro"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux2ProImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux2ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "model": {
                "enum": [
                  "pro"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Flux2ProCreateImageInput",
                "editImage": "#/components/schemas/Flux2ProEditImageInput"
              }
            }
          }
        ]
      },
      "Flux3CreateFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux3FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "flux3"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux3EditFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux3FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 10,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                },
                "description": "One to ten ordered references, each at least 256 pixels per side and at most 4 MP."
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "flux3"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux3FalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "minLength": 1,
                "type": "string",
                "description": "Bounding boxes can be included in the prompt using FLUX 3's prompt syntax."
              },
              "quantity": {
                "maximum": 8,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "resolution": {
                "enum": [
                  "768sq",
                  "1k",
                  "2k",
                  "4k"
                ],
                "type": "string",
                "default": "1k"
              },
              "aspectRatio": {
                "enum": [
                  "auto",
                  "21:9",
                  "2:1",
                  "16:9",
                  "3:2",
                  "7:5",
                  "4:3",
                  "5:4",
                  "1:1",
                  "4:5",
                  "3:4",
                  "5:7",
                  "2:3",
                  "9:16",
                  "1:2"
                ],
                "type": "string",
                "description": "Auto follows the first reference image, or uses a square for generation.",
                "default": "auto"
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": false
              },
              "model": {
                "enum": [
                  "flux3"
                ],
                "type": "string"
              },
              "safetyTolerance": {
                "maximum": 4,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 2
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Flux3CreateFalImageGenInput",
                "editImage": "#/components/schemas/Flux3EditFalImageGenInput"
              }
            }
          }
        ]
      },
      "Flux3Keyframe": {
        "required": [
          "frameIndex",
          "image"
        ],
        "type": "object",
        "properties": {
          "image": {
            "type": "string",
            "description": "Either A URL, A DataURL or a Base64 string",
            "format": "source-image"
          },
          "frameIndex": {
            "maximum": 480,
            "minimum": 0,
            "type": "integer",
            "description": "Frame position of this keyframe in the generated 24 fps video. Must be unique across the\nkeyframes and no greater than the duration in seconds × 24.",
            "format": "int32"
          }
        },
        "additionalProperties": false,
        "description": "An image pinned to a frame position in the generated video."
      },
      "Flux3KleinAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "defaultSteps": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "flux3klein"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux3MaxImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux3MaxVideoGenInput"
          },
          {
            "required": [
              "engine",
              "image",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "endImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "operation": {
                "enum": [
                  "imageToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v3.0-max"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux3MaxKeyframesToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux3MaxVideoGenInput"
          },
          {
            "required": [
              "engine",
              "keyframes",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "keyframes": {
                "maxItems": 10,
                "minItems": 1,
                "type": "array",
                "items": {
                  "description": "An image pinned to a frame position in the generated video.",
                  "$ref": "#/components/schemas/Flux3Keyframe"
                }
              },
              "operation": {
                "enum": [
                  "keyframesToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v3.0-max"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux3MaxTextToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux3MaxVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "textToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v3.0-max"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Flux3MaxVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux3VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "duration": {
                "maximum": 20,
                "minimum": 5,
                "type": "integer",
                "format": "int32",
                "default": 5
              },
              "resolution": {
                "enum": [
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "720p"
              },
              "aspectRatio": {
                "enum": [
                  "auto",
                  "21:9",
                  "2:1",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "type": "string",
                "default": "auto"
              },
              "generateAudio": {
                "type": "boolean",
                "default": true
              },
              "reasoningLevel": {
                "enum": [
                  "low",
                  "high"
                ],
                "type": "string",
                "description": "Higher reasoning effort increases generation time.",
                "default": "high"
              },
              "seed": {
                "maximum": 2147483647,
                "minimum": 0,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "version": {
                "enum": [
                  "v3.0-max"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "textToVideo": "#/components/schemas/Flux3MaxTextToVideoInput",
                "imageToVideo": "#/components/schemas/Flux3MaxImageToVideoInput",
                "keyframesToVideo": "#/components/schemas/Flux3MaxKeyframesToVideoInput"
              }
            }
          }
        ]
      },
      "Flux3V3DraftEnhanceInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux3V3VideoGenInput"
          },
          {
            "required": [
              "draftCache",
              "duration",
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "draftCache": {
                "type": "string",
                "description": "URL of the draft cache produced by a draft generation — pass the draftCache url from that\nstep's output. Read the workflow again to mint a fresh url if it has expired.",
                "format": "uri"
              },
              "duration": {
                "maximum": 20,
                "minimum": 5,
                "type": "integer",
                "description": "Duration in seconds of the draft being enhanced. The enhanced render bills per second at that length.",
                "format": "int32"
              },
              "operation": {
                "enum": [
                  "draftEnhance"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v3.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Re-render a previously generated draft at full-quality 1080p with audio."
      },
      "Flux3V3ExtendVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux3V3VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "sourceVideo",
              "version"
            ],
            "type": "object",
            "properties": {
              "duration": {
                "maximum": 20,
                "minimum": 5,
                "type": "integer",
                "description": "Duration in seconds. FAL also accepts \"auto\"; an explicit value is required so the Buzz cost is known up front.",
                "format": "int32",
                "default": 5
              },
              "resolution": {
                "enum": [
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "720p"
              },
              "aspectRatio": {
                "enum": [
                  "auto",
                  "21:9",
                  "2:1",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "type": "string",
                "description": "Aspect ratio of the generated video. \"auto\" lets the model choose.",
                "default": "auto"
              },
              "generateAudio": {
                "type": "boolean",
                "default": true
              },
              "draft": {
                "type": "boolean",
                "description": "Render a fast, cheap 720p draft instead of a full-quality video. Draft results additionally\ncarry a draft cache that a later draftEnhance operation re-renders at full quality.",
                "default": false
              },
              "sourceVideo": {
                "type": "string",
                "description": "URL of the source video to continue from. MP4, under 50 MB and under 15 seconds.",
                "format": "uri"
              },
              "operation": {
                "enum": [
                  "extendVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v3.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Continue an existing video from its final frames."
      },
      "Flux3V3FirstLastFrameToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux3V3VideoGenInput"
          },
          {
            "required": [
              "endImage",
              "engine",
              "operation",
              "startImage",
              "version"
            ],
            "type": "object",
            "properties": {
              "duration": {
                "maximum": 20,
                "minimum": 5,
                "type": "integer",
                "description": "Duration in seconds. FAL also accepts \"auto\"; an explicit value is required so the Buzz cost is known up front.",
                "format": "int32",
                "default": 5
              },
              "resolution": {
                "enum": [
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "720p"
              },
              "aspectRatio": {
                "enum": [
                  "auto",
                  "21:9",
                  "2:1",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "type": "string",
                "description": "Aspect ratio of the generated video. \"auto\" lets the model choose.",
                "default": "auto"
              },
              "generateAudio": {
                "type": "boolean",
                "default": true
              },
              "draft": {
                "type": "boolean",
                "description": "Render a fast, cheap 720p draft instead of a full-quality video. Draft results additionally\ncarry a draft cache that a later draftEnhance operation re-renders at full quality.",
                "default": false
              },
              "startImage": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "endImage": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "operation": {
                "enum": [
                  "firstLastFrameToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v3.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate a video that starts on one image and ends on another."
      },
      "Flux3V3ImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux3V3VideoGenInput"
          },
          {
            "required": [
              "engine",
              "image",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "duration": {
                "maximum": 20,
                "minimum": 5,
                "type": "integer",
                "description": "Duration in seconds. FAL also accepts \"auto\"; an explicit value is required so the Buzz cost is known up front.",
                "format": "int32",
                "default": 5
              },
              "resolution": {
                "enum": [
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "720p"
              },
              "aspectRatio": {
                "enum": [
                  "auto",
                  "21:9",
                  "2:1",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "type": "string",
                "description": "Aspect ratio of the generated video. \"auto\" lets the model choose.",
                "default": "auto"
              },
              "generateAudio": {
                "type": "boolean",
                "default": true
              },
              "draft": {
                "type": "boolean",
                "description": "Render a fast, cheap 720p draft instead of a full-quality video. Draft results additionally\ncarry a draft cache that a later draftEnhance operation re-renders at full quality.",
                "default": false
              },
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "operation": {
                "enum": [
                  "imageToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v3.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Animate a single source image (used as the first frame) into a video."
      },
      "Flux3V3KeyframesToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux3V3VideoGenInput"
          },
          {
            "required": [
              "engine",
              "keyframes",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "duration": {
                "maximum": 20,
                "minimum": 5,
                "type": "integer",
                "description": "Duration in seconds. FAL also accepts \"auto\"; an explicit value is required so the Buzz cost is known up front.",
                "format": "int32",
                "default": 5
              },
              "resolution": {
                "enum": [
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "720p"
              },
              "aspectRatio": {
                "enum": [
                  "auto",
                  "21:9",
                  "2:1",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "type": "string",
                "description": "Aspect ratio of the generated video. \"auto\" lets the model choose.",
                "default": "auto"
              },
              "generateAudio": {
                "type": "boolean",
                "default": true
              },
              "draft": {
                "type": "boolean",
                "description": "Render a fast, cheap 720p draft instead of a full-quality video. Draft results additionally\ncarry a draft cache that a later draftEnhance operation re-renders at full quality.",
                "default": false
              },
              "keyframes": {
                "type": "array",
                "items": {
                  "description": "An image pinned to a frame position in the generated video.",
                  "$ref": "#/components/schemas/Flux3Keyframe"
                },
                "description": "Up to 10 keyframes with unique frame positions."
              },
              "operation": {
                "enum": [
                  "keyframesToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v3.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate a video that passes through a set of images pinned to specific frame positions."
      },
      "Flux3V3TextToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux3V3VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "duration": {
                "maximum": 20,
                "minimum": 5,
                "type": "integer",
                "description": "Duration in seconds. FAL also accepts \"auto\"; an explicit value is required so the Buzz cost is known up front.",
                "format": "int32",
                "default": 5
              },
              "resolution": {
                "enum": [
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "720p"
              },
              "aspectRatio": {
                "enum": [
                  "auto",
                  "21:9",
                  "2:1",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "type": "string",
                "description": "Aspect ratio of the generated video. \"auto\" lets the model choose.",
                "default": "auto"
              },
              "generateAudio": {
                "type": "boolean",
                "default": true
              },
              "draft": {
                "type": "boolean",
                "description": "Render a fast, cheap 720p draft instead of a full-quality video. Draft results additionally\ncarry a draft cache that a later draftEnhance operation re-renders at full quality.",
                "default": false
              },
              "operation": {
                "enum": [
                  "textToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v3.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate a video from a text prompt only."
      },
      "Flux3V3VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Flux3VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "version": {
                "enum": [
                  "v3.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "flux"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "textToVideo": "#/components/schemas/Flux3V3TextToVideoInput",
                "imageToVideo": "#/components/schemas/Flux3V3ImageToVideoInput",
                "firstLastFrameToVideo": "#/components/schemas/Flux3V3FirstLastFrameToVideoInput",
                "keyframesToVideo": "#/components/schemas/Flux3V3KeyframesToVideoInput",
                "extendVideo": "#/components/schemas/Flux3V3ExtendVideoInput",
                "draftEnhance": "#/components/schemas/Flux3V3DraftEnhanceInput"
              }
            }
          }
        ]
      },
      "Flux3VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine",
              "version"
            ],
            "type": "object",
            "properties": {
              "version": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "v3.0"
              },
              "engine": {
                "enum": [
                  "flux"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "version",
              "mapping": {
                "v3.0": "#/components/schemas/Flux3V3VideoGenInput",
                "v3.0-max": "#/components/schemas/Flux3MaxVideoGenInput"
              }
            }
          }
        ],
        "description": "Black Forest Labs FLUX-3 video generation via FAL."
      },
      "FluxDevFastImageResourceTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageResourceTrainingInput"
          },
          {
            "required": [
              "engine"
            ],
            "type": "object",
            "properties": {
              "engine": {
                "enum": [
                  "flux-dev-fast"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "FreeTierModelResponse": {
        "required": [
          "airs",
          "key",
          "remaining",
          "windows"
        ],
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "The quota bucket. Every AIR listed counts against the same quota."
          },
          "airs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "remaining": {
            "type": "integer",
            "description": "Free requests left right now: the tightest of `windows`.",
            "format": "int32"
          },
          "windows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FreeTierWindowResponse"
            }
          }
        },
        "additionalProperties": false
      },
      "FreeTierResponse": {
        "required": [
          "enabled",
          "models"
        ],
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "models": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FreeTierModelResponse"
            }
          }
        },
        "additionalProperties": false
      },
      "FreeTierWindowResponse": {
        "required": [
          "duration",
          "limit",
          "remaining"
        ],
        "type": "object",
        "properties": {
          "duration": {
            "type": "string",
            "format": "date-span"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "remaining": {
            "type": "integer",
            "format": "int32"
          },
          "resetAt": {
            "type": [
              "null",
              "string"
            ],
            "description": "When this window's usage resets. Null until the first free request in it.",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "FundDeposit": {
        "required": [
          "amount"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "currencies": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/BuzzClientAccount"
            },
            "description": "Which of the caller's currencies to draw from, in order. Defaults to all."
          }
        },
        "additionalProperties": false
      },
      "FundResponse": {
        "required": [
          "allowMatureContent",
          "balance",
          "balances",
          "createdAt",
          "expiresAt",
          "id"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "allowMatureContent": {
            "type": "boolean"
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "balance": {
            "type": "integer",
            "format": "int32"
          },
          "balances": {
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int32"
            },
            "description": "Balance per currency (`yellow`, `blue`, `green`, `fakeRed`)."
          }
        },
        "additionalProperties": false
      },
      "FundTemplate": {
        "type": "object",
        "properties": {
          "ttl": {
            "type": [
              "null",
              "string"
            ],
            "description": "How long until the fund is deleted on its own. Defaults to 24 hours, at most 7 days.",
            "format": "date-span"
          },
          "allowMatureContent": {
            "type": "boolean",
            "description": "Whether workflows billed to this fund may return mature content. Deposits are then limited to Yellow, and Blue from members.",
            "default": false
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "Shown on each deposit in the depositor's Buzz history, e.g. \"Game pot deposit\"."
          }
        },
        "additionalProperties": false
      },
      "FundUpdate": {
        "required": [
          "ttl"
        ],
        "type": "object",
        "properties": {
          "ttl": {
            "type": "string",
            "description": "How long from now until the fund is deleted on its own, at most 7 days.",
            "format": "date-span"
          }
        },
        "additionalProperties": false
      },
      "Gemini25FlashCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Gemini25FlashImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "2.5-flash"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "gemini"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Gemini25FlashEditImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Gemini25FlashImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 4,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "2.5-flash"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "gemini"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Gemini25FlashImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GeminiImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "model": {
                "enum": [
                  "2.5-flash"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "gemini"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Gemini25FlashCreateImageGenInput",
                "editImage": "#/components/schemas/Gemini25FlashEditImageGenInput"
              }
            }
          }
        ]
      },
      "GeminiImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "prompt": {
                "type": "string"
              },
              "engine": {
                "enum": [
                  "gemini"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "2.5-flash": "#/components/schemas/Gemini25FlashImageGenInput"
              }
            }
          }
        ]
      },
      "GeminiOmniModel": {
        "enum": [
          "1.1-flash"
        ],
        "type": "string"
      },
      "GeminiOmniResolution": {
        "enum": [
          "360p",
          "720p",
          "1080p",
          "4k"
        ],
        "type": "string"
      },
      "GeminiOmniVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine",
              "maxBillableSeconds"
            ],
            "type": "object",
            "properties": {
              "model": {
                "default": "1.1-flash",
                "$ref": "#/components/schemas/GeminiOmniModel"
              },
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16"
                ],
                "type": "string",
                "default": "16:9"
              },
              "resolution": {
                "default": "720p",
                "$ref": "#/components/schemas/GeminiOmniResolution"
              },
              "images": {
                "maxItems": 6,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "maxBillableSeconds": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "engine": {
                "enum": [
                  "gemini-omni"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "GifOutputFormat": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageOutputFormat"
          },
          {
            "required": [
              "format"
            ],
            "type": "object",
            "properties": {
              "maxFrames": {
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Maximum number of frames to include in the output. Set to 1 to extract only the first frame from animated images.\nWhen null, all frames are preserved.",
                "format": "int32"
              },
              "format": {
                "enum": [
                  "gif"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "GoogleImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "prompt": {
                "type": "string"
              },
              "engine": {
                "enum": [
                  "google"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "imagen4": "#/components/schemas/Imagen4ImageGenInput",
                "nano-banana-pro": "#/components/schemas/NanoBananaProImageGenInput",
                "nano-banana-2": "#/components/schemas/NanoBanana2ImageGenInput",
                "nano-banana-2.1": "#/components/schemas/NanoBanana21ImageGenInput",
                "nano-banana-2-lite": "#/components/schemas/NanoBanana2LiteImageGenInput"
              }
            }
          }
        ]
      },
      "GrokCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GrokV1ImageGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "aspectRatio": {
                "enum": [
                  "2:1",
                  "20:9",
                  "19.5:9",
                  "16:9",
                  "4:3",
                  "3:2",
                  "1:1",
                  "2:3",
                  "3:4",
                  "9:16",
                  "9:19.5",
                  "9:20",
                  "1:2"
                ],
                "type": "string",
                "default": "1:1"
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "GrokEditImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GrokV1ImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 3,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "GrokEditVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GrokV1VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version",
              "videoUrl"
            ],
            "type": "object",
            "properties": {
              "videoUrl": {
                "type": "string",
                "format": "uri"
              },
              "analyzedDuration": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "operation": {
                "enum": [
                  "edit-video"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "FAL Endpoint: xai/grok-imagine-video/edit-video\nInput video is resized to max 854x480 and truncated to 8 seconds."
      },
      "GrokImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageGenInput"
          },
          {
            "required": [
              "engine",
              "prompt",
              "version"
            ],
            "type": "object",
            "properties": {
              "version": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "v1.0"
              },
              "prompt": {
                "type": "string"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "version",
              "mapping": {
                "v1.0": "#/components/schemas/GrokV1ImageGenInput",
                "v2.0": "#/components/schemas/GrokV2ImageGenInput"
              }
            }
          }
        ],
        "description": "xAI's Grok-Imagine model via FAL. Payloads without a version deserialize as v1.0."
      },
      "GrokImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GrokV1VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "aspectRatio": {
                "enum": [
                  "auto",
                  "16:9",
                  "4:3",
                  "3:2",
                  "1:1",
                  "2:3",
                  "3:4",
                  "9:16"
                ],
                "type": "string",
                "default": "auto"
              },
              "images": {
                "maxItems": 1,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "image-to-video"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "FAL Endpoint: xai/grok-imagine-video/image-to-video"
      },
      "GrokTextToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GrokV1VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "4:3",
                  "3:2",
                  "1:1",
                  "2:3",
                  "3:4",
                  "9:16"
                ],
                "type": "string",
                "default": "16:9"
              },
              "operation": {
                "enum": [
                  "text-to-video"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "FAL Endpoint: xai/grok-imagine-video/text-to-video"
      },
      "GrokV1ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GrokImageGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/GrokCreateImageGenInput",
                "editImage": "#/components/schemas/GrokEditImageGenInput"
              }
            }
          }
        ],
        "description": "FAL endpoints: xai/grok-imagine-image[/edit]"
      },
      "GrokV1VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GrokVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "text-to-video"
              },
              "duration": {
                "maximum": 15,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 6
              },
              "resolution": {
                "enum": [
                  "480p",
                  "720p"
                ],
                "type": "string",
                "default": "720p"
              },
              "version": {
                "enum": [
                  "v1.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "text-to-video": "#/components/schemas/GrokTextToVideoInput",
                "image-to-video": "#/components/schemas/GrokImageToVideoInput",
                "edit-video": "#/components/schemas/GrokEditVideoInput"
              }
            }
          }
        ]
      },
      "GrokV1_5ImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GrokV1_5VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "duration": {
                "maximum": 15,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 6
              },
              "resolution": {
                "enum": [
                  "480p",
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "720p"
              },
              "images": {
                "maxItems": 1,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "imageToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.5"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Grok v1.5 Image-to-Video. Animates a single source image; the aspect ratio follows the image.\nFAL Endpoint: xai/grok-imagine-video/v1.5/image-to-video"
      },
      "GrokV1_5ReferenceToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GrokV1_5VideoGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "duration": {
                "maximum": 15,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 8
              },
              "resolution": {
                "enum": [
                  "480p",
                  "720p"
                ],
                "type": "string",
                "default": "480p"
              },
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "4:3",
                  "3:2",
                  "1:1",
                  "2:3",
                  "3:4",
                  "9:16"
                ],
                "type": "string",
                "default": "16:9"
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                },
                "description": "1–7 reference images guiding style and content; tag them in the prompt as <IMAGE_0>, <IMAGE_1>, etc."
              },
              "operation": {
                "enum": [
                  "referenceToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.5"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Grok v1.5 Reference-to-Video. Generates a video guided by 1–7 reference images;\nreference them in the prompt as <IMAGE_0> through <IMAGE_6>."
      },
      "GrokV1_5TextToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GrokV1_5VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "duration": {
                "maximum": 15,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 6
              },
              "resolution": {
                "enum": [
                  "480p",
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "720p"
              },
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "4:3",
                  "3:2",
                  "1:1",
                  "2:3",
                  "3:4",
                  "9:16"
                ],
                "type": "string",
                "default": "16:9"
              },
              "operation": {
                "enum": [
                  "textToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.5"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "FAL Endpoint: xai/grok-imagine-video/v1.5/text-to-video"
      },
      "GrokV1_5VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GrokVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "textToVideo"
              },
              "version": {
                "enum": [
                  "v1.5"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "textToVideo": "#/components/schemas/GrokV1_5TextToVideoInput",
                "imageToVideo": "#/components/schemas/GrokV1_5ImageToVideoInput",
                "referenceToVideo": "#/components/schemas/GrokV1_5ReferenceToVideoInput"
              }
            }
          }
        ],
        "description": "Grok Imagine 1.5 via FAL (xai/grok-imagine-video/v1.5/{operation})."
      },
      "GrokV2CreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GrokV2ImageGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "aspectRatio": {
                "enum": [
                  "2:1",
                  "20:9",
                  "19.5:9",
                  "16:9",
                  "4:3",
                  "3:2",
                  "1:1",
                  "2:3",
                  "3:4",
                  "9:16",
                  "9:19.5",
                  "9:20",
                  "1:2"
                ],
                "type": "string",
                "default": "1:1"
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "FAL endpoint: xai/grok-imagine-image/v2.0/text-to-image"
      },
      "GrokV2EditImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GrokV2ImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "aspectRatio": {
                "enum": [
                  "auto",
                  "2:1",
                  "20:9",
                  "19.5:9",
                  "16:9",
                  "4:3",
                  "3:2",
                  "1:1",
                  "2:3",
                  "3:4",
                  "9:16",
                  "9:19.5",
                  "9:20",
                  "1:2"
                ],
                "type": "string",
                "default": "auto"
              },
              "images": {
                "maxItems": 3,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Grok v2.0 Edit Image. Edits 1–3 source images; \"auto\" keeps the source aspect ratio.\nFAL Endpoint: xai/grok-imagine-image/v2.0/edit"
      },
      "GrokV2ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GrokImageGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createImage"
              },
              "resolution": {
                "enum": [
                  "1k",
                  "2k"
                ],
                "type": "string",
                "default": "2k"
              },
              "quality": {
                "enum": [
                  "low",
                  "medium"
                ],
                "type": "string",
                "default": "medium"
              },
              "version": {
                "enum": [
                  "v2.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/GrokV2CreateImageGenInput",
                "editImage": "#/components/schemas/GrokV2EditImageGenInput"
              }
            }
          }
        ],
        "description": "Grok Imagine Image 2.0. FAL endpoints: xai/grok-imagine-image/v2.0/{text-to-image,edit}"
      },
      "GrokVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine",
              "version"
            ],
            "type": "object",
            "properties": {
              "version": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "v1.0"
              },
              "engine": {
                "enum": [
                  "grok"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "version",
              "mapping": {
                "v1.0": "#/components/schemas/GrokV1VideoGenInput",
                "v1.5": "#/components/schemas/GrokV1_5VideoGenInput"
              }
            }
          }
        ],
        "description": "Grok Imagine Video (xAI) via FAL."
      },
      "HaiperVideoGenAspectRatio": {
        "enum": [
          "16:9",
          "4:3",
          "1:1",
          "9:16",
          "3:4"
        ],
        "type": "string"
      },
      "HaiperVideoGenCameraMovement": {
        "enum": [
          "none",
          "panRight",
          "panLeft",
          "tiltUp",
          "tiltDown",
          "zoomIn",
          "zoomOut"
        ],
        "type": "string"
      },
      "HaiperVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine"
            ],
            "type": "object",
            "properties": {
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "cameraMovement": {
                "description": "Get or set camera movement. This is only available when targeting the v1.5 Model",
                "$ref": "#/components/schemas/HaiperVideoGenCameraMovement"
              },
              "seed": {
                "maximum": 4294967295,
                "minimum": -1,
                "type": "integer",
                "format": "int64",
                "default": -1
              },
              "duration": {
                "enum": [
                  2,
                  4,
                  8
                ],
                "type": "integer",
                "format": "int32",
                "default": 2
              },
              "aspectRatio": {
                "$ref": "#/components/schemas/HaiperVideoGenAspectRatio"
              },
              "model": {
                "default": "v2",
                "$ref": "#/components/schemas/HaiperVideoGenModel"
              },
              "resolution": {
                "enum": [
                  720,
                  1080,
                  2160
                ],
                "type": "integer",
                "format": "int32",
                "default": 1080
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": true
              },
              "engine": {
                "enum": [
                  "haiper"
                ],
                "type": "string"
              },
              "sourceImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "HaiperVideoGenModel": {
        "enum": [
          "v1_5",
          "v2"
        ],
        "type": "string"
      },
      "HaiperVideoGenOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenOutput"
          },
          {
            "type": "object",
            "properties": {
              "progress": {
                "type": [
                  "null",
                  "number"
                ],
                "format": "double"
              },
              "externalTOSViolation": {
                "type": [
                  "null",
                  "boolean"
                ]
              },
              "message": {
                "type": [
                  "null",
                  "string"
                ]
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "HappyHorseV1ImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/HappyHorseV1VideoGenInput"
          },
          {
            "required": [
              "engine",
              "image",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "operation": {
                "enum": [
                  "imageToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "happyHorse"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Animate a single source image (used as the first frame) into a video."
      },
      "HappyHorseV1ReferenceToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/HappyHorseV1VideoGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4"
                ],
                "type": "string",
                "default": "16:9"
              },
              "operation": {
                "enum": [
                  "referenceToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "happyHorse"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate a video using 1–9 reference images for subject consistency.\nReference subjects via \"character1\" through \"character9\" placeholders in the prompt."
      },
      "HappyHorseV1TextToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/HappyHorseV1VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4"
                ],
                "type": "string",
                "default": "16:9"
              },
              "operation": {
                "enum": [
                  "textToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "happyHorse"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate a video from a text prompt only."
      },
      "HappyHorseV1VideoEditInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/HappyHorseV1VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "sourceVideo",
              "version"
            ],
            "type": "object",
            "properties": {
              "sourceVideo": {
                "type": "string",
                "format": "uri"
              },
              "referenceImages": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "audioSetting": {
                "enum": [
                  "auto",
                  "origin"
                ],
                "type": "string",
                "default": "auto"
              },
              "operation": {
                "enum": [
                  "videoEdit"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "happyHorse"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Edit an existing video, optionally guided by reference images.\nFAL bills both the input and output seconds — the per-second rate is doubled."
      },
      "HappyHorseV1VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/HappyHorseVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "resolution": {
                "enum": [
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "1080p"
              },
              "duration": {
                "maximum": 15,
                "minimum": 3,
                "type": "integer",
                "format": "int32",
                "default": 5
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "version": {
                "enum": [
                  "v1.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "happyHorse"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "textToVideo": "#/components/schemas/HappyHorseV1TextToVideoInput",
                "imageToVideo": "#/components/schemas/HappyHorseV1ImageToVideoInput",
                "videoEdit": "#/components/schemas/HappyHorseV1VideoEditInput",
                "referenceToVideo": "#/components/schemas/HappyHorseV1ReferenceToVideoInput"
              }
            }
          }
        ]
      },
      "HappyHorseV1_1ImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/HappyHorseV1_1VideoGenInput"
          },
          {
            "required": [
              "engine",
              "image",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "operation": {
                "enum": [
                  "imageToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "happyHorse"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Animate a single source image (used as the first frame) into a video."
      },
      "HappyHorseV1_1ReferenceToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/HappyHorseV1_1VideoGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4",
                  "21:9",
                  "9:21",
                  "5:4",
                  "4:5"
                ],
                "type": "string",
                "default": "16:9"
              },
              "operation": {
                "enum": [
                  "referenceToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "happyHorse"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate a video using 1–9 reference images for subject consistency.\nReference subjects via \"character1\" through \"character9\" placeholders in the prompt."
      },
      "HappyHorseV1_1TextToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/HappyHorseV1_1VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4",
                  "21:9",
                  "9:21",
                  "5:4",
                  "4:5"
                ],
                "type": "string",
                "default": "16:9"
              },
              "operation": {
                "enum": [
                  "textToVideo"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v1.1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "happyHorse"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate a video from a text prompt only."
      },
      "HappyHorseV1_1VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/HappyHorseVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "resolution": {
                "enum": [
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "1080p"
              },
              "duration": {
                "maximum": 15,
                "minimum": 3,
                "type": "integer",
                "format": "int32",
                "default": 5
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "version": {
                "enum": [
                  "v1.1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "happyHorse"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "textToVideo": "#/components/schemas/HappyHorseV1_1TextToVideoInput",
                "imageToVideo": "#/components/schemas/HappyHorseV1_1ImageToVideoInput",
                "referenceToVideo": "#/components/schemas/HappyHorseV1_1ReferenceToVideoInput"
              }
            }
          }
        ]
      },
      "HappyHorseVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine",
              "version"
            ],
            "type": "object",
            "properties": {
              "version": {
                "type": "string"
              },
              "engine": {
                "enum": [
                  "happyHorse"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "version",
              "mapping": {
                "v1.0": "#/components/schemas/HappyHorseV1VideoGenInput",
                "v1.1": "#/components/schemas/HappyHorseV1_1VideoGenInput"
              }
            }
          }
        ],
        "description": "Alibaba Happy-Horse video generation via FAL."
      },
      "HeyGenVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "aspectRatio",
              "duration",
              "engine",
              "operation",
              "resolution"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "textToVideo",
                  "imageToVideo",
                  "referenceToVideo"
                ],
                "type": "string"
              },
              "duration": {
                "maximum": 15,
                "minimum": 5,
                "type": "integer",
                "format": "int32"
              },
              "resolution": {
                "enum": [
                  "480p",
                  "768p"
                ],
                "type": "string"
              },
              "aspectRatio": {
                "enum": [
                  "21:9",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "type": "string",
                "description": "Ignored for imageToVideo, which follows the first frame's aspect ratio."
              },
              "seed": {
                "maximum": 4294967295,
                "minimum": 0,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "firstFrameImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "referenceImages": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                },
                "description": "Up to 9 images; refer to them in the prompt as <Picture 1>, <Picture 2>, etc."
              },
              "referenceVideos": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uri"
                },
                "description": "Up to 3 public HTTPS videos (32 MB each). The model uses the first 5 seconds of each."
              },
              "referenceAudios": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uri"
                },
                "description": "Up to 3 public HTTPS audio files (32 MB each), accompanying a reference image or video."
              },
              "engine": {
                "enum": [
                  "heygen"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "HeyGen Video 1 (based on MiniMax H3), served through OpenRouter. Audio is generated with the video."
      },
      "HiDreamI1Precision": {
        "enum": [
          "fp8",
          "fp16"
        ],
        "type": "string"
      },
      "HiDreamI1Variant": {
        "enum": [
          "fast",
          "dev",
          "full"
        ],
        "type": "string"
      },
      "HiDreamO1AIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "ecosystem": {
                "enum": [
                  "hidream-o1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "HumanRecognitionResult": {
        "required": [
          "confidence",
          "humanScore",
          "label",
          "noHumanScore"
        ],
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "description": "Classification label: \"human\" or \"no_human\"."
          },
          "confidence": {
            "type": "number",
            "description": "Confidence score for the selected classification (0.0 to 1.0).",
            "format": "double"
          },
          "humanScore": {
            "type": "number",
            "description": "Aggregated probability that the image contains a human.",
            "format": "double"
          },
          "noHumanScore": {
            "type": "number",
            "description": "Aggregated probability that the image does not contain a human.",
            "format": "double"
          }
        },
        "additionalProperties": false,
        "description": "Represents human vs non-human image recognition results."
      },
      "HumanoidImageMaskCategory": {
        "enum": [
          "dresses",
          "upperBody",
          "lowerBody"
        ],
        "type": "string"
      },
      "HumanoidImageMaskInput": {
        "required": [
          "category",
          "imageUrl"
        ],
        "type": "object",
        "properties": {
          "imageUrl": {
            "type": "string",
            "format": "uri"
          },
          "category": {
            "$ref": "#/components/schemas/HumanoidImageMaskCategory"
          }
        },
        "additionalProperties": false
      },
      "HumanoidImageMaskOutput": {
        "required": [
          "blob"
        ],
        "type": "object",
        "properties": {
          "blob": {
            "$ref": "#/components/schemas/Blob"
          }
        },
        "additionalProperties": false
      },
      "Hunyuan3DComfyPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyPolyGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "imageTo3D"
              },
              "modelVersion": {
                "enum": [
                  "v2",
                  "v2.1",
                  "v2-mini"
                ],
                "type": "string",
                "default": "v2"
              },
              "modelAir": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": [
                  "null",
                  "number"
                ],
                "format": "double"
              },
              "sampler": {
                "enum": [
                  "euler",
                  "euler_ancestral",
                  "heun",
                  "heunpp2",
                  "dpm_2",
                  "dpm_2_ancestral",
                  "lms",
                  "dpm_fast",
                  "dpm_adaptive",
                  "dpmpp_2s_ancestral",
                  "dpmpp_sde",
                  "dpmpp_2m",
                  "dpmpp_2m_sde",
                  "dpmpp_3m_sde",
                  "ddpm",
                  "lcm",
                  "uni_pc",
                  "uni_pc_bh2"
                ],
                "type": "string",
                "default": "euler"
              },
              "scheduler": {
                "enum": [
                  "normal",
                  "karras",
                  "exponential",
                  "sgm_uniform",
                  "simple",
                  "ddim_uniform",
                  "beta"
                ],
                "type": "string",
                "default": "normal"
              },
              "resolution": {
                "maximum": 8192,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "vaeNumChunks": {
                "maximum": 500000,
                "minimum": 1000,
                "type": "integer",
                "format": "int32",
                "default": 8000
              },
              "octreeResolution": {
                "maximum": 512,
                "minimum": 16,
                "type": "integer",
                "format": "int32",
                "default": 256
              },
              "meshThreshold": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.6
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "shift": {
                "type": "number",
                "format": "double",
                "default": 1
              },
              "model": {
                "enum": [
                  "hunyuan3D"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "imageTo3D": "#/components/schemas/Hunyuan3DImageTo3DComfyPolyGenInput",
                "shapeGen": "#/components/schemas/Hunyuan3DShapeGenComfyPolyGenInput",
                "texGen": "#/components/schemas/Hunyuan3DTexGenComfyPolyGenInput"
              }
            }
          }
        ]
      },
      "Hunyuan3DImageTo3DComfyPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Hunyuan3DComfyPolyGenInput"
          },
          {
            "required": [
              "engine",
              "imageUrl",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "imageUrl": {
                "type": "string",
                "format": "uri"
              },
              "prompt": {
                "maxLength": 600,
                "type": [
                  "null",
                  "string"
                ]
              },
              "shouldTexture": {
                "type": "boolean",
                "default": true
              },
              "shouldRemesh": {
                "type": "boolean",
                "default": false
              },
              "enablePbr": {
                "type": "boolean",
                "default": true
              },
              "operation": {
                "enum": [
                  "imageTo3D"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "hunyuan3D"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Hunyuan3DShapeGenComfyPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Hunyuan3DComfyPolyGenInput"
          },
          {
            "required": [
              "engine",
              "imageUrl",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "imageUrl": {
                "type": "string",
                "format": "uri"
              },
              "prompt": {
                "maxLength": 600,
                "type": [
                  "null",
                  "string"
                ]
              },
              "operation": {
                "enum": [
                  "shapeGen"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "hunyuan3D"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Hunyuan3DTexGenComfyPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Hunyuan3DComfyPolyGenInput"
          },
          {
            "required": [
              "engine",
              "imageUrl",
              "mesh",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "imageUrl": {
                "type": "string",
                "format": "uri"
              },
              "mesh": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "shouldRemesh": {
                "type": "boolean",
                "default": false
              },
              "enablePbr": {
                "type": "boolean",
                "default": true
              },
              "operation": {
                "enum": [
                  "texGen"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "hunyuan3D"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "HunyuanVdeoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "cfgScale",
              "engine",
              "height",
              "width"
            ],
            "type": "object",
            "properties": {
              "cfgScale": {
                "maximum": 100,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 4
              },
              "fps": {
                "type": "integer",
                "format": "int32",
                "default": 25
              },
              "duration": {
                "maximum": 30,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 5
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "steps": {
                "maximum": 50,
                "minimum": 10,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "width": {
                "type": "integer",
                "format": "int32"
              },
              "height": {
                "type": "integer",
                "format": "int32"
              },
              "loras": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VideoGenInputLora"
                }
              },
              "checkpointModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "engine": {
                "enum": [
                  "hunyuan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Ideogram45CreateFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Ideogram45FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "quality": {
                "enum": [
                  "low",
                  "medium",
                  "high"
                ],
                "type": "string",
                "default": "medium"
              },
              "imageSize": {
                "enum": [
                  "square_hd",
                  "square",
                  "portrait_4_3",
                  "portrait_16_9",
                  "landscape_4_3",
                  "landscape_16_9"
                ],
                "type": "string",
                "default": "square_hd"
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": true
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "ideogram45"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Ideogram45EditFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Ideogram45FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "quality": {
                "enum": [
                  "very_low",
                  "low",
                  "medium",
                  "high"
                ],
                "type": "string",
                "default": "medium"
              },
              "imageSize": {
                "enum": [
                  "auto",
                  "square_hd",
                  "square",
                  "portrait_4_3",
                  "portrait_16_9",
                  "landscape_4_3",
                  "landscape_16_9"
                ],
                "type": "string",
                "default": "auto"
              },
              "images": {
                "maxItems": 5,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                },
                "description": "The first image is the source; the remaining images are references."
              },
              "mask": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Black edits, white preserves. Must match the source dimensions and contain both regions.",
                "format": "source-image"
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "editPrecision": {
                "enum": [
                  "regular",
                  "high"
                ],
                "type": "string",
                "default": "regular"
              },
              "model": {
                "enum": [
                  "ideogram45"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Ideogram45FalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 1,
                "type": "string"
              },
              "quantity": {
                "maximum": 8,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "quality": {
                "type": "string",
                "default": "medium"
              },
              "imageSize": {
                "type": "string"
              },
              "width": {
                "maximum": 16384,
                "minimum": 256,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Custom dimensions override imageSize. Set width and height together.",
                "format": "int32"
              },
              "height": {
                "maximum": 16384,
                "minimum": 256,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "model": {
                "enum": [
                  "ideogram45"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Ideogram45CreateFalImageGenInput",
                "editImage": "#/components/schemas/Ideogram45EditFalImageGenInput"
              }
            }
          }
        ]
      },
      "Ideogram4AIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "defaultSteps": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "ideogram4"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ImageBackgroundRemovalFormat": {
        "enum": [
          "png",
          "webp"
        ],
        "type": "string"
      },
      "ImageBackgroundRemovalInput": {
        "required": [
          "image"
        ],
        "type": "object",
        "properties": {
          "image": {
            "type": "string",
            "description": "Either A URL, A DataURL or a Base64 string",
            "format": "source-image"
          },
          "format": {
            "description": "The output image format. Defaults to PNG, which preserves transparency.",
            "default": "png",
            "$ref": "#/components/schemas/ImageBackgroundRemovalFormat"
          }
        },
        "additionalProperties": false
      },
      "ImageBackgroundRemovalOutput": {
        "type": "object",
        "properties": {
          "image": {
            "$ref": "#/components/schemas/ImageBlob"
          }
        },
        "additionalProperties": false
      },
      "ImageBackgroundRemovalStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/ImageBackgroundRemovalInput"
              },
              "output": {
                "$ref": "#/components/schemas/ImageBackgroundRemovalOutput"
              },
              "$type": {
                "enum": [
                  "imageBackgroundRemoval"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Removes the background from an image using BiRefNet."
      },
      "ImageBackgroundRemovalStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the ImageBackgroundRemovalStep step.",
                "$ref": "#/components/schemas/ImageBackgroundRemovalInput"
              },
              "$type": {
                "enum": [
                  "imageBackgroundRemoval"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Removes the background from an image using BiRefNet."
      },
      "ImageBlob": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Blob"
          },
          {
            "required": [
              "type"
            ],
            "type": "object",
            "properties": {
              "width": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "height": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "previewUrl": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Gets a url that can be used to preview a resized version of the image.",
                "format": "uri"
              },
              "previewUrlExpiresAt": {
                "type": [
                  "null",
                  "string"
                ],
                "format": "date-time"
              },
              "type": {
                "enum": [
                  "image"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ImageGenInput": {
        "required": [
          "engine"
        ],
        "type": "object",
        "properties": {
          "engine": {
            "type": "string"
          },
          "outputFormat": {
            "default": "jpeg",
            "$ref": "#/components/schemas/ImageGenOutputFormat"
          },
          "imageMetadata": {
            "type": [
              "null",
              "string"
            ],
            "description": "External metadata that will be stored with the image"
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "engine",
          "mapping": {
            "openai": "#/components/schemas/OpenApiImageGenInput",
            "flux1-kontext": "#/components/schemas/Flux1KontextImageGenInput",
            "flux1-pro": "#/components/schemas/Flux1ProFamilyImageGenInput",
            "flux2": "#/components/schemas/Flux2ImageGenInput",
            "google": "#/components/schemas/GoogleImageGenInput",
            "wan": "#/components/schemas/WanImageGenInput",
            "gemini": "#/components/schemas/GeminiImageGenInput",
            "sdcpp": "#/components/schemas/SdCppImageGenInput",
            "comfy": "#/components/schemas/ComfyImageGenInput",
            "seedream": "#/components/schemas/SeedreamImageGenInput",
            "grok": "#/components/schemas/GrokImageGenInput",
            "fal": "#/components/schemas/FalImageGenInput",
            "qwen": "#/components/schemas/QwenApiImageGenInput",
            "krea": "#/components/schemas/KreaImageGenInput",
            "krea3": "#/components/schemas/Krea3ImageGenInput"
          }
        }
      },
      "ImageGenInputLora": {
        "required": [
          "air"
        ],
        "type": "object",
        "properties": {
          "air": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": "string"
          },
          "strength": {
            "maximum": 4,
            "minimum": 0,
            "type": "number",
            "format": "double",
            "default": 1
          }
        },
        "additionalProperties": false
      },
      "ImageGenOutput": {
        "required": [
          "images"
        ],
        "type": "object",
        "properties": {
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageBlob"
            }
          },
          "errors": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "ImageGenOutputFormat": {
        "enum": [
          "jpeg",
          "png",
          "webP"
        ],
        "type": "string"
      },
      "ImageGenStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/ImageGenInput"
              },
              "output": {
                "$ref": "#/components/schemas/ImageGenOutput"
              },
              "$type": {
                "enum": [
                  "imageGen"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Image Generation"
      },
      "ImageGenStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the ImageGenStep step.",
                "$ref": "#/components/schemas/ImageGenInput"
              },
              "$type": {
                "enum": [
                  "imageGen"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Image Generation"
      },
      "ImageJobControlNet": {
        "required": [
          "endStep",
          "preprocessor",
          "startStep",
          "weight"
        ],
        "type": "object",
        "properties": {
          "preprocessor": {
            "$ref": "#/components/schemas/ImageTransformer"
          },
          "weight": {
            "type": "number",
            "format": "double"
          },
          "startStep": {
            "type": "number",
            "format": "double"
          },
          "endStep": {
            "type": "number",
            "format": "double"
          },
          "image": {
            "type": [
              "null",
              "string"
            ],
            "description": "The preprocessed control image. Accepts an AIR URN, a URL, or a base64 data URL; the\norchestrator processes it into a stored blob before the job is dispatched.",
            "format": "source-image"
          },
          "mask": {
            "type": [
              "null",
              "string"
            ],
            "description": "The inpaint mask image. Required when the preprocessor is Inpaint.",
            "format": "source-image"
          }
        },
        "additionalProperties": false
      },
      "ImageJobNetworkParams": {
        "type": "object",
        "properties": {
          "strength": {
            "type": [
              "null",
              "number"
            ],
            "description": "In case of Lora and LoCon, set the strength of the network",
            "format": "double"
          },
          "triggerWord": {
            "type": [
              "null",
              "string"
            ],
            "description": "In case of a TextualInversion, set the trigger word of the network"
          },
          "type": {
            "type": [
              "null",
              "string"
            ],
            "description": "A legacy type set by the consumer"
          }
        },
        "additionalProperties": false
      },
      "ImageOutputFormat": {
        "required": [
          "format",
          "hideMetadata"
        ],
        "type": "object",
        "properties": {
          "format": {
            "type": "string"
          },
          "hideMetadata": {
            "type": "boolean",
            "description": "Strips metadata such as EXIF from the output. Defaults to false; some encoders (e.g. JPEG) may still emit minimal metadata."
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "format",
          "mapping": {
            "jpeg": "#/components/schemas/JpegOutputFormat",
            "png": "#/components/schemas/PngOutputFormat",
            "webp": "#/components/schemas/WebpOutputFormat",
            "gif": "#/components/schemas/GifOutputFormat",
            "avif": "#/components/schemas/AvifOutputFormat"
          }
        }
      },
      "ImageResouceTrainingModerationStatus": {
        "enum": [
          "evaluating",
          "underReview",
          "approved",
          "rejected"
        ],
        "type": "string"
      },
      "ImageResourceTrainingInput": {
        "required": [
          "engine",
          "model",
          "trainingData",
          "trainingDataImagesCount"
        ],
        "type": "object",
        "properties": {
          "engine": {
            "type": "string"
          },
          "model": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": "string"
          },
          "trainingData": {
            "type": "string",
            "format": "uri"
          },
          "trainingDataImagesCount": {
            "type": "integer",
            "description": "The number of images embedded in this training data. This is used to calculate the cost of training.",
            "format": "int32"
          },
          "loraName": {
            "type": "string",
            "default": "my-lora"
          },
          "samplePrompts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "negativePrompt": {
            "type": [
              "null",
              "string"
            ],
            "description": "An optional negative prompt that will get applied when generating samples"
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "engine",
          "mapping": {
            "kohya": "#/components/schemas/KohyaImageResourceTrainingInput",
            "flux-dev-fast": "#/components/schemas/FluxDevFastImageResourceTrainingInput",
            "musubi": "#/components/schemas/MusubiImageResourceTrainingInput",
            "flux2-dev": "#/components/schemas/Flux2DevImageResourceTrainingInput",
            "flux2-dev-edit": "#/components/schemas/Flux2DevEditImageResourceTrainingInput"
          }
        }
      },
      "ImageResourceTrainingOutput": {
        "required": [
          "epochs",
          "moderationStatus",
          "sampleImagesPrompts"
        ],
        "type": "object",
        "properties": {
          "moderationStatus": {
            "description": "The status of age classification",
            "$ref": "#/components/schemas/ImageResouceTrainingModerationStatus"
          },
          "epochs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EpochResult"
            }
          },
          "sampleImagesPrompts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sampleInputImages": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "storedAsAssets": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "True when the blobs are stored as (deprecated) assets, which need a different retrieval mechanism."
          },
          "eta": {
            "type": [
              "null",
              "number"
            ],
            "description": "Get an estimate in minutes on how long the work is expected to take",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "ImageResourceTrainingStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/ImageResourceTrainingInput"
              },
              "output": {
                "$ref": "#/components/schemas/ImageResourceTrainingOutput"
              },
              "$type": {
                "enum": [
                  "imageResourceTraining"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "LORA Training"
      },
      "ImageResourceTrainingStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the ImageResourceTrainingStep step.",
                "$ref": "#/components/schemas/ImageResourceTrainingInput"
              },
              "$type": {
                "enum": [
                  "imageResourceTraining"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "LORA Training"
      },
      "ImageToSvgInput": {
        "required": [
          "engine",
          "image"
        ],
        "type": "object",
        "properties": {
          "engine": {
            "type": "string"
          },
          "image": {
            "type": "string",
            "description": "Either A URL, A DataURL or a Base64 string",
            "format": "source-image"
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "engine",
          "mapping": {
            "comfy": "#/components/schemas/ComfyImageToSvgInput"
          }
        }
      },
      "ImageToSvgOutput": {
        "required": [
          "svg"
        ],
        "type": "object",
        "properties": {
          "svg": {
            "$ref": "#/components/schemas/Blob"
          }
        },
        "additionalProperties": false
      },
      "ImageToSvgStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/ImageToSvgInput"
              },
              "output": {
                "$ref": "#/components/schemas/ImageToSvgOutput"
              },
              "$type": {
                "enum": [
                  "imageToSvg"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Converts a raster image to an SVG using a local StarVector or OmniSVG model."
      },
      "ImageToSvgStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the ImageToSvgStep step.",
                "$ref": "#/components/schemas/ImageToSvgInput"
              },
              "$type": {
                "enum": [
                  "imageToSvg"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Converts a raster image to an SVG using a local StarVector or OmniSVG model."
      },
      "ImageTransform": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "resize": "#/components/schemas/ResizeTransform",
            "blur": "#/components/schemas/BlurTransform",
            "watermark": "#/components/schemas/WatermarkTransform"
          }
        }
      },
      "ImageTransformer": {
        "enum": [
          "canny",
          "mlsd",
          "depthZoe",
          "depthAnything",
          "depthAnythingV2",
          "zoeDepthAnything",
          "zoeDepth",
          "midasDepth",
          "leresDepth",
          "metric3dDepth",
          "softedgePidinet",
          "hed",
          "teed",
          "midasNormal",
          "baeNormal",
          "dsineNormal",
          "metric3dNormal",
          "lineartRealistic",
          "lineartStandard",
          "lineartAnime",
          "lineartManga",
          "anyline",
          "scribble",
          "scribbleXdog",
          "scribblePidinet",
          "fakeScribble",
          "openpose",
          "dwpose",
          "oneformerCoco",
          "oneformerAde20k",
          "uniformer",
          "shuffle",
          "tile",
          "gray",
          "rembg",
          "inpaint"
        ],
        "type": "string"
      },
      "ImageUploadOutput": {
        "required": [
          "blob"
        ],
        "type": "object",
        "properties": {
          "blob": {
            "$ref": "#/components/schemas/Blob"
          }
        },
        "additionalProperties": false
      },
      "ImageUploadStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "type": "string"
              },
              "output": {
                "$ref": "#/components/schemas/ImageUploadOutput"
              },
              "$type": {
                "enum": [
                  "imageUpload"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Image upload"
      },
      "ImageUploadStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Input for the ImageUploadStep step."
              },
              "$type": {
                "enum": [
                  "imageUpload"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Image upload"
      },
      "ImageUpscalerInput": {
        "required": [
          "image"
        ],
        "type": "object",
        "properties": {
          "image": {
            "type": "string",
            "description": "Either A URL, A DataURL or a Base64 string",
            "format": "source-image"
          },
          "model": {
            "type": [
              "null",
              "string"
            ]
          },
          "numberOfRepeats": {
            "maximum": 3,
            "minimum": 1,
            "type": "integer",
            "description": "Number of times to repeat the upscale operation (1-3). Each repeat doubles the resolution.",
            "format": "int32",
            "default": 1
          }
        },
        "additionalProperties": false
      },
      "ImageUpscalerOutput": {
        "required": [
          "blob"
        ],
        "type": "object",
        "properties": {
          "blob": {
            "$ref": "#/components/schemas/ImageBlob"
          }
        },
        "additionalProperties": false
      },
      "ImageUpscalerStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/ImageUpscalerInput"
              },
              "output": {
                "$ref": "#/components/schemas/ImageUpscalerOutput"
              },
              "$type": {
                "enum": [
                  "imageUpscaler"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ImageUpscalerStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the ImageUpscalerStep step.",
                "$ref": "#/components/schemas/ImageUpscalerInput"
              },
              "$type": {
                "enum": [
                  "imageUpscaler"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Imagen4ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GoogleImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "prompt": {
                "maxLength": 1000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 1000,
                "minLength": 0,
                "type": "string",
                "default": ""
              },
              "aspectRatio": {
                "enum": [
                  "1:1",
                  "16:9",
                  "9:16",
                  "3:4",
                  "4:3"
                ],
                "type": "string",
                "default": "1:1"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "model": {
                "enum": [
                  "imagen4"
                ],
                "type": "string"
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "engine": {
                "enum": [
                  "google"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "JobSupport": {
        "enum": [
          "unsupported",
          "unavailable",
          "available"
        ],
        "type": "string"
      },
      "JointAgeClassificationResult": {
        "required": [
          "detections"
        ],
        "type": "object",
        "properties": {
          "detections": {
            "type": "array",
            "items": {
              "description": "Represents one photo-or-anime age estimate for a detected person.",
              "$ref": "#/components/schemas/JointAgeDetection"
            }
          },
          "status": {
            "type": [
              "null",
              "string"
            ]
          },
          "ran": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "childDetected": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "minorDetected": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "oodDetected": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "error": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false,
        "description": "Represents joint face-and-body apparent-age results for photo and anime content."
      },
      "JointAgeDetection": {
        "required": [
          "ageBand",
          "animeProbability",
          "apparentAge",
          "boundingBox",
          "domain",
          "isChild",
          "isMinor",
          "isOod",
          "oodProbability",
          "ordinalCutpointProbabilities",
          "personDetected",
          "personDetectionConfidence",
          "under13Probability",
          "under18Probability"
        ],
        "type": "object",
        "properties": {
          "boundingBox": {
            "$ref": "#/components/schemas/BoundingBox"
          },
          "personDetected": {
            "type": "boolean"
          },
          "personDetectionConfidence": {
            "type": "number",
            "format": "double"
          },
          "faceBoundingBox": {
            "$ref": "#/components/schemas/BoundingBox"
          },
          "faceDetectionConfidence": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "domain": {
            "type": "string"
          },
          "animeProbability": {
            "type": "number",
            "format": "double"
          },
          "apparentAge": {
            "type": "number",
            "format": "double"
          },
          "ageBand": {
            "type": "string"
          },
          "under13Probability": {
            "type": "number",
            "format": "double"
          },
          "under18Probability": {
            "type": "number",
            "format": "double"
          },
          "oodProbability": {
            "type": "number",
            "format": "double"
          },
          "ordinalCutpointProbabilities": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "isChild": {
            "type": "boolean"
          },
          "isMinor": {
            "type": "boolean"
          },
          "isOod": {
            "type": "boolean"
          },
          "warning": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false,
        "description": "Represents one photo-or-anime age estimate for a detected person."
      },
      "JpegOutputFormat": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageOutputFormat"
          },
          {
            "required": [
              "format"
            ],
            "type": "object",
            "properties": {
              "quality": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 85
              },
              "format": {
                "enum": [
                  "jpeg"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "JsonPatchDocument": {
        "type": "array",
        "items": {
          "$ref": "#/components/schemas/JsonPatchOperation"
        },
        "description": "Array of operations to perform"
      },
      "JsonPatchOperation": {
        "required": [
          "op",
          "path"
        ],
        "type": "object",
        "properties": {
          "op": {
            "enum": [
              "add",
              "remove",
              "replace",
              "move",
              "copy",
              "test"
            ],
            "type": "string",
            "description": "The operation type. Allowed values: 'add', 'remove', 'replace', 'move', 'copy', 'test'."
          },
          "path": {
            "type": "string",
            "description": "The JSON Pointer path to the property in the target document where the operation is to be applied."
          },
          "from": {
            "type": "string",
            "description": "Should be a path, required when using move, copy"
          },
          "value": {
            "type": "null",
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "number"
              },
              {
                "type": "boolean"
              },
              {
                "type": "object"
              },
              {
                "type": "array"
              }
            ],
            "description": "The value to apply for 'add', 'replace', or 'test' operations. Not required for 'remove', 'move', or 'copy'."
          }
        },
        "description": "Describes a single operation in a JSON Patch document. Includes the operation type, the target property path, and the value to be used."
      },
      "KlingCameraControl": {
        "type": "object",
        "properties": {
          "config": {
            "$ref": "#/components/schemas/KlingCameraControlConfig"
          }
        },
        "additionalProperties": false
      },
      "KlingCameraControlConfig": {
        "type": "object",
        "properties": {
          "horizontal": {
            "maximum": 10,
            "minimum": -10,
            "type": [
              "null",
              "number"
            ],
            "description": "Translation along the x-axis; negative moves left, positive right.",
            "format": "double"
          },
          "vertical": {
            "maximum": 10,
            "minimum": -10,
            "type": [
              "null",
              "number"
            ],
            "description": "Translation along the y-axis; negative moves down, positive up.",
            "format": "double"
          },
          "pan": {
            "maximum": 10,
            "minimum": -10,
            "type": [
              "null",
              "number"
            ],
            "description": "Rotation around the y-axis; negative turns left, positive right.",
            "format": "double"
          },
          "tilt": {
            "maximum": 10,
            "minimum": -10,
            "type": [
              "null",
              "number"
            ],
            "description": "Rotation around the x-axis; negative tilts down, positive up.",
            "format": "double"
          },
          "roll": {
            "maximum": 10,
            "minimum": -10,
            "type": [
              "null",
              "number"
            ],
            "description": "Rotation around the z-axis; negative is counterclockwise, positive clockwise.",
            "format": "double"
          },
          "zoom": {
            "maximum": 10,
            "minimum": -10,
            "type": [
              "null",
              "number"
            ],
            "description": "Focal length change; negative narrows the field of view, positive widens it.",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "KlingMode": {
        "enum": [
          "standard",
          "professional"
        ],
        "type": "string"
      },
      "KlingModel": {
        "enum": [
          "v1",
          "v1.5",
          "v1.6",
          "v2",
          "v2.5-turbo"
        ],
        "type": "string"
      },
      "KlingV3ElementInput": {
        "type": "object",
        "properties": {
          "frontalImage": {
            "type": [
              "null",
              "string"
            ],
            "description": "Either A URL, A DataURL or a Base64 string",
            "format": "source-image"
          },
          "referenceImages": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Either A URL, A DataURL or a Base64 string",
              "format": "source-image"
            }
          },
          "videoUrl": {
            "type": [
              "null",
              "string"
            ],
            "format": "uri"
          }
        },
        "additionalProperties": false
      },
      "KlingV3MultiPrompt": {
        "required": [
          "prompt"
        ],
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string"
          },
          "duration": {
            "type": "integer",
            "format": "int32",
            "default": 5
          }
        },
        "additionalProperties": false
      },
      "KlingV3Operation": {
        "enum": [
          "text-to-video",
          "image-to-video",
          "reference-to-video",
          "video-to-video-edit",
          "video-to-video-reference"
        ],
        "type": "string"
      },
      "KlingV3VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "default": "text-to-video",
                "$ref": "#/components/schemas/KlingV3Operation"
              },
              "mode": {
                "default": "standard",
                "$ref": "#/components/schemas/KlingMode"
              },
              "duration": {
                "maximum": 15,
                "minimum": 3,
                "type": "integer",
                "format": "int32",
                "default": 5
              },
              "aspectRatio": {
                "default": "16:9",
                "$ref": "#/components/schemas/KlingVideoGenAspectRatio"
              },
              "sourceImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "endImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "videoUrl": {
                "type": [
                  "null",
                  "string"
                ],
                "format": "uri"
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "elements": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/KlingV3ElementInput"
                }
              },
              "generateAudio": {
                "type": "boolean",
                "default": false
              },
              "voiceIds": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "type": "string"
                }
              },
              "keepSourceAudio": {
                "type": "boolean",
                "default": true
              },
              "engine": {
                "enum": [
                  "kling-v3"
                ],
                "type": "string"
              },
              "multiPrompt": {
                "type": [
                  "null",
                  "array"
                ],
                "items": {
                  "$ref": "#/components/schemas/KlingV3MultiPrompt"
                }
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "KlingVideoGenAspectRatio": {
        "enum": [
          "16:9",
          "9:16",
          "1:1"
        ],
        "type": "string"
      },
      "KlingVideoGenDuration": {
        "enum": [
          "5",
          "10"
        ],
        "type": "string"
      },
      "KlingVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "cfgScale",
              "engine"
            ],
            "type": "object",
            "properties": {
              "model": {
                "default": "v1.6",
                "$ref": "#/components/schemas/KlingModel"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "cfgScale": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.5
              },
              "mode": {
                "default": "standard",
                "$ref": "#/components/schemas/KlingMode"
              },
              "aspectRatio": {
                "default": "16:9",
                "$ref": "#/components/schemas/KlingVideoGenAspectRatio"
              },
              "duration": {
                "default": "5",
                "$ref": "#/components/schemas/KlingVideoGenDuration"
              },
              "cameraControl": {
                "$ref": "#/components/schemas/KlingCameraControl"
              },
              "sourceImageUrl": {
                "type": [
                  "null",
                  "string"
                ],
                "format": "uri"
              },
              "sourceImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "engine": {
                "enum": [
                  "kling"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "KohyaImageResourceTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageResourceTrainingInput"
          },
          {
            "required": [
              "engine"
            ],
            "type": "object",
            "properties": {
              "maxTrainEpochs": {
                "maximum": 20,
                "minimum": 0,
                "type": "integer",
                "description": "An epoch is one set of learning. By default, we will save a maximum of 20 epochs (evenly distributed), and they are all available for download.",
                "format": "int32",
                "default": 5
              },
              "numRepeats": {
                "maximum": 5000,
                "minimum": 1,
                "type": "integer",
                "description": "Num Repeats defines how many times each individual image gets put into VRAM. As opposed to batch size, which is how many images are placed into VRAM at once.",
                "format": "int32",
                "default": 8
              },
              "trainBatchSize": {
                "maximum": 9,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Batch size is the number of images that will be placed into VRAM at once. A batch size of 2 will train two images at a time, simultaneously.",
                "format": "int32"
              },
              "resolution": {
                "maximum": 1024,
                "minimum": 512,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Specify the maximum resolution of training images. If the training images exceed the resolution specified here, they will be scaled down to this resolution",
                "format": "int32"
              },
              "enableBucket": {
                "type": "boolean",
                "description": "Sorts images into buckets by size for the purposes of training. If your training images are all the same size, you can turn this option off, but leaving it on has no effect.",
                "default": true
              },
              "shuffleCaption": {
                "type": "boolean",
                "description": "Randomly changes the order of your tags during training. The intent of shuffling is to improve learning. If you are using captions (sentences), this option has no meaning.",
                "default": false
              },
              "keepTokens": {
                "maximum": 3,
                "minimum": 0,
                "type": "integer",
                "description": "Keeps this many leading tags in place when shuffling captions. Does nothing when Shuffle Tags is off.",
                "format": "int32",
                "default": 0
              },
              "clipSkip": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "description": "Determines which layer's vector output will be used. There are 12 layers, and setting the skip will select \"xth from the end\" of the total layers. For anime, we use 2. For everything else, 1.",
                "format": "int32",
                "default": 1
              },
              "flipAugmentation": {
                "type": "boolean",
                "description": "If this option is turned on, the image will be horizontally flipped randomly. It can learn left and right angles, which is useful when you want to learn symmetrical people and objects.",
                "default": false
              },
              "unetLR": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "description": "Sets the learning rate for U-Net. This is the learning rate when performing additional learning on each attention block (and other blocks depending on the setting) in U-Net",
                "format": "double",
                "default": 0.00005
              },
              "textEncoderLR": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "description": "Sets the learning rate for the text encoder. The effect of additional training on text encoders affects the entire U-Net.",
                "format": "double",
                "default": 0.00005
              },
              "lrScheduler": {
                "enum": [
                  "constant",
                  "cosine",
                  "cosine_with_restarts",
                  "linear"
                ],
                "type": [
                  "null",
                  "string"
                ],
                "description": "You can change the learning rate in the middle of learning. A scheduler is a setting for how to change the learning rate."
              },
              "lrSchedulerNumCycles": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "description": "This option specifies how many cycles the scheduler runs during training. It is only used when \"cosine_with_restarts\" or \"polynomial\" is used as the scheduler.",
                "format": "int32",
                "default": 3
              },
              "minSnrGamma": {
                "maximum": 20,
                "minimum": 0,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Compensates for unstable learning across noise strengths by suppressing large deviations when training images carry little noise.",
                "format": "int32"
              },
              "networkDim": {
                "maximum": 256,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "The larger the Dim setting, the more learning information can be stored, but the possibility of learning unnecessary information other than the learning target increases. A larger Dim also increases LoRA file size.",
                "format": "int32"
              },
              "networkAlpha": {
                "maximum": 256,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Scales the stored LoRA weights relative to Dim: alpha 16 with dim 32 applies the learning rate at half strength;\nequal values leave it unchanged.",
                "format": "int32"
              },
              "noiseOffset": {
                "maximum": 1,
                "minimum": 0,
                "type": [
                  "null",
                  "number"
                ],
                "description": "Adds noise to training images. 0 adds no noise at all. A value of 1 adds strong noise.",
                "format": "double"
              },
              "optimizerType": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Optimizer that updates the weights during training; \"AdamW8bit\" is the common choice, \"Adafactor\" for SDXL."
              },
              "targetSteps": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32",
                "readOnly": true
              },
              "engine": {
                "enum": [
                  "kohya"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Krea2AIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "defaultSteps": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "krea2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Krea2CreateFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Krea2FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "krea2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Krea2FalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "imageStyleReferences",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 5000,
                "minLength": 1,
                "type": "string"
              },
              "size": {
                "enum": [
                  "medium",
                  "large"
                ],
                "type": "string",
                "default": "medium"
              },
              "aspectRatio": {
                "enum": [
                  "1:1",
                  "4:3",
                  "3:2",
                  "16:9",
                  "2.35:1",
                  "4:5",
                  "2:3",
                  "9:16"
                ],
                "type": "string",
                "default": "1:1"
              },
              "creativity": {
                "enum": [
                  "raw",
                  "low",
                  "medium",
                  "high"
                ],
                "type": "string",
                "default": "medium"
              },
              "quantity": {
                "maximum": 10,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "imageStyleReferences": {
                "maxItems": 10,
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Krea2StyleReference"
                }
              },
              "model": {
                "enum": [
                  "krea2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Krea2CreateFalImageGenInput"
              }
            }
          }
        ]
      },
      "Krea2StyleReference": {
        "required": [
          "imageUrl"
        ],
        "type": "object",
        "properties": {
          "imageUrl": {
            "minLength": 1,
            "type": "string"
          },
          "strength": {
            "maximum": 2,
            "minimum": -2,
            "type": "number",
            "format": "double",
            "default": 1
          }
        },
        "additionalProperties": false
      },
      "Krea3ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "prompt": {
                "maxLength": 5000,
                "minLength": 1,
                "type": "string"
              },
              "thinkingMode": {
                "enum": [
                  "instant",
                  "medium",
                  "ultra"
                ],
                "type": "string",
                "default": "instant"
              },
              "images": {
                "maxItems": 6,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                },
                "description": "Omit for text-to-image, or provide up to six images to edit."
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "resolution": {
                "enum": [
                  "1k",
                  "2k"
                ],
                "type": "string",
                "default": "2k"
              },
              "aspectRatio": {
                "enum": [
                  null,
                  "1:1",
                  "4:5",
                  "3:4",
                  "2:3",
                  "9:16",
                  "5:4",
                  "4:3",
                  "3:2",
                  "16:9",
                  "21:9"
                ],
                "type": [
                  "null",
                  "string"
                ],
                "description": "Omit to let Krea choose, e.g. to follow the reference images."
              },
              "engine": {
                "enum": [
                  "krea3"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Krea 3 generation and editing at 1K or 2K."
      },
      "KreaCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/KreaImageGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "image": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "strength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "description": "Denoising strength for image-to-image; ignored without `image`.",
                "format": "double",
                "default": 0.99
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "krea"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Text-to-image, or image-to-image when `image` is supplied."
      },
      "KreaImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageGenInput"
          },
          {
            "required": [
              "engine",
              "imageStyleReferences",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createImage"
              },
              "prompt": {
                "maxLength": 5000,
                "minLength": 1,
                "type": "string"
              },
              "model": {
                "enum": [
                  "krea2-medium",
                  "krea2-large",
                  "krea2-medium-turbo"
                ],
                "type": "string",
                "default": "krea2-medium"
              },
              "aspectRatio": {
                "enum": [
                  "1:1",
                  "4:3",
                  "3:2",
                  "16:9",
                  "2.35:1",
                  "4:5",
                  "2:3",
                  "9:16"
                ],
                "type": "string",
                "default": "1:1"
              },
              "creativity": {
                "enum": [
                  "raw",
                  "low",
                  "medium",
                  "high"
                ],
                "type": "string",
                "description": "How much Krea expands the prompt: `raw` renders only what was written.",
                "default": "medium"
              },
              "quantity": {
                "maximum": 10,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "intensity": {
                "maximum": 100,
                "minimum": -100,
                "type": "integer",
                "description": "K2 intensity slider.",
                "format": "int32",
                "default": 0
              },
              "complexity": {
                "maximum": 100,
                "minimum": -100,
                "type": "integer",
                "description": "K2 complexity slider.",
                "format": "int32",
                "default": 0
              },
              "movement": {
                "maximum": 100,
                "minimum": -100,
                "type": "integer",
                "description": "K2 movement slider.",
                "format": "int32",
                "default": 0
              },
              "imageStyleReferences": {
                "maxItems": 10,
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/Krea2StyleReference"
                }
              },
              "engine": {
                "enum": [
                  "krea"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/KreaCreateImageGenInput"
              }
            }
          }
        ],
        "description": "Krea 2 served by Krea's own API. Distinct from `fal`/`krea2` (the same models via FAL) and\nfrom the `comfy`/`krea2` ecosystem, which runs the open weights on our own workers."
      },
      "LeresBoost": {
        "enum": [
          "disable",
          "enable"
        ],
        "type": "string"
      },
      "LightricksAspectRatio": {
        "enum": [
          "1:1",
          "16:9",
          "9:16",
          "3:2",
          "2:3"
        ],
        "type": "string"
      },
      "LightricksVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "cfgScale",
              "engine"
            ],
            "type": "object",
            "properties": {
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "cfgScale": {
                "maximum": 100,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 4
              },
              "fps": {
                "type": "integer",
                "format": "int32",
                "default": 25
              },
              "duration": {
                "maximum": 30,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 5
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "steps": {
                "maximum": 50,
                "minimum": 10,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "aspectRatio": {
                "$ref": "#/components/schemas/LightricksAspectRatio"
              },
              "sourceImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": true
              },
              "engine": {
                "enum": [
                  "lightricks"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "LiveQwen3BaseTTSInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LiveQwen3TextToSpeechInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation",
              "refAudioUrl"
            ],
            "type": "object",
            "properties": {
              "refAudioUrl": {
                "type": "string",
                "description": "Reference audio AIR URN or external URL for voice cloning.\nAccepts AIR URNs (existing resources) or HTTP(S) URLs.",
                "format": "uri"
              },
              "refText": {
                "maxLength": 1000,
                "type": [
                  "null",
                  "string"
                ],
                "description": "Transcript of the reference audio.\nRequired unless XVectorOnlyMode is true."
              },
              "xVectorOnlyMode": {
                "type": "boolean",
                "description": "If true, clones from the speaker embedding alone and ignores refText.\nDefaults to true on live: in-context mode has been seen generating to the token cap on short sentences.",
                "default": true
              },
              "operation": {
                "enum": [
                  "base"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen3"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "vllm-omni"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Qwen3 Base: speaks in a voice cloned from `refAudioUrl`, like `textToSpeech`'s `base` operation."
      },
      "LiveQwen3CustomVoiceTTSInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LiveQwen3TextToSpeechInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation",
              "speaker"
            ],
            "type": "object",
            "properties": {
              "speaker": {
                "enum": [
                  "aiden",
                  "dylan",
                  "eric",
                  "ono_anna",
                  "ryan",
                  "serena",
                  "sohee",
                  "uncle_fu",
                  "vivian"
                ],
                "type": "string",
                "description": "Built-in speaker name."
              },
              "instruct": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Optional style instruction (e.g., \"speak slowly and clearly\")."
              },
              "operation": {
                "enum": [
                  "customVoice"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen3"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "vllm-omni"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "LiveQwen3TextToSpeechInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LiveVllmOmniTextToSpeechInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "maxNewTokens": {
                "maximum": 2048,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Token cap per sentence.",
                "format": "int32"
              },
              "ecosystem": {
                "enum": [
                  "qwen3"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "vllm-omni"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "base": "#/components/schemas/LiveQwen3BaseTTSInput",
                "customVoice": "#/components/schemas/LiveQwen3CustomVoiceTTSInput"
              }
            }
          }
        ]
      },
      "LiveTextToSpeechInput": {
        "required": [
          "engine"
        ],
        "type": "object",
        "properties": {
          "engine": {
            "type": "string"
          },
          "text": {
            "type": [
              "null",
              "string"
            ],
            "description": "Spoken before any appended text."
          },
          "language": {
            "type": [
              "null",
              "string"
            ],
            "description": "Target language (e.g., \"English\", \"Chinese\"). Defaults to \"Auto\"."
          },
          "format": {
            "enum": [
              "pcm",
              "ogg"
            ],
            "type": "string",
            "description": "`pcm` streams raw s16le 24 kHz mono for the lowest latency; `ogg` streams Opus.",
            "default": "pcm"
          },
          "maxCharacters": {
            "maximum": 50000,
            "minimum": 1,
            "type": "integer",
            "description": "The session ends once this many characters have been spoken. The upfront balance check covers this much text.",
            "format": "int32",
            "default": 5000
          },
          "idleTimeoutSeconds": {
            "maximum": 600,
            "minimum": 2,
            "type": "integer",
            "description": "The input is treated as closed when no text arrives for this many seconds.",
            "format": "int32",
            "default": 30
          }
        },
        "additionalProperties": false,
        "description": "Mirrors `textToSpeech` inputs, but only for voices proven to stream with low first-audio latency.",
        "discriminator": {
          "propertyName": "engine",
          "mapping": {
            "vllm-omni": "#/components/schemas/LiveVllmOmniTextToSpeechInput"
          }
        }
      },
      "LiveTextToSpeechOutput": {
        "required": [
          "audioSeconds",
          "audioUrl",
          "characters",
          "inputUrl",
          "inputUrlExpiresAt"
        ],
        "type": "object",
        "properties": {
          "inputUrl": {
            "type": "string",
            "description": "POST UTF-8 text here in chunks numbered `?seq=0,1,…`, with `final=true` on the last.\nText is spoken a sentence at a time; the final chunk flushes whatever is left.",
            "format": "uri"
          },
          "inputUrlExpiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "audioUrl": {
            "type": "string",
            "description": "One continuous audio stream for the whole session, in the requested format.",
            "format": "uri"
          },
          "characters": {
            "type": "integer",
            "description": "Characters spoken so far; the session is billed on this.",
            "format": "int32"
          },
          "audioSeconds": {
            "type": "number",
            "format": "double"
          },
          "socketUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "One WebSocket in place of `inputUrl` and `audioUrl`, avoiding a request per text chunk.",
            "format": "uri"
          }
        },
        "additionalProperties": false
      },
      "LiveTextToSpeechStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Mirrors `textToSpeech` inputs, but only for voices proven to stream with low first-audio latency.",
                "$ref": "#/components/schemas/LiveTextToSpeechInput"
              },
              "output": {
                "$ref": "#/components/schemas/LiveTextToSpeechOutput"
              },
              "$type": {
                "enum": [
                  "liveTextToSpeech"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Live text to speech"
      },
      "LiveTextToSpeechStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the LiveTextToSpeechStep step.",
                "$ref": "#/components/schemas/LiveTextToSpeechInput"
              },
              "$type": {
                "enum": [
                  "liveTextToSpeech"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Live text to speech"
      },
      "LiveTranscriptionInput": {
        "type": "object",
        "properties": {
          "language": {
            "type": [
              "null",
              "string"
            ],
            "description": "Language of the speech (e.g., \"en\", \"zh\"). Send it: without it the model assumes English and invents English text for other languages."
          },
          "context": {
            "type": [
              "null",
              "string"
            ],
            "description": "Optional context prompt to improve transcription accuracy."
          },
          "maxDurationSeconds": {
            "maximum": 600,
            "minimum": 1,
            "type": "integer",
            "description": "The session ends after this many seconds of audio, even if the input is still open.\nThe upfront balance check covers this much audio.",
            "format": "int32",
            "default": 120
          },
          "idleTimeoutSeconds": {
            "maximum": 60,
            "minimum": 2,
            "type": "integer",
            "description": "The input is treated as closed when no audio arrives for this many seconds, so a client that\ndisappears does not hold the session open.",
            "format": "int32",
            "default": 10
          },
          "turnDetection": {
            "type": "boolean",
            "description": "Sends a `turn` event shortly after each pause in speech with the probability that the\nspeaker has finished, so a voice agent can answer sooner than a fixed silence timeout.",
            "default": true
          }
        },
        "additionalProperties": false
      },
      "LiveTranscriptionOutput": {
        "required": [
          "audioSeconds",
          "inputUrl",
          "inputUrlExpiresAt",
          "transcriptUrl"
        ],
        "type": "object",
        "properties": {
          "inputUrl": {
            "type": "string",
            "description": "POST raw PCM (s16le, 16 kHz, mono) here in chunks numbered `?seq=0,1,…`, with `final=true` on the last.",
            "format": "uri"
          },
          "inputUrlExpiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "transcriptUrl": {
            "type": "string",
            "description": "NDJSON transcript events: `partial` replaces the open segment's text, `final` commits it,\nand `done` ends the stream with the whole transcript.",
            "format": "uri"
          },
          "text": {
            "type": [
              "null",
              "string"
            ],
            "description": "The whole transcript, once the session has ended."
          },
          "audioSeconds": {
            "type": "number",
            "description": "Seconds of audio received so far; the session is billed on this.",
            "format": "double"
          },
          "socketUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "One WebSocket in place of `inputUrl` and `transcriptUrl`, avoiding a request per audio chunk.",
            "format": "uri"
          }
        },
        "additionalProperties": false
      },
      "LiveTranscriptionStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/LiveTranscriptionInput"
              },
              "output": {
                "$ref": "#/components/schemas/LiveTranscriptionOutput"
              },
              "$type": {
                "enum": [
                  "liveTranscription"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Live transcription"
      },
      "LiveTranscriptionStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the LiveTranscriptionStep step.",
                "$ref": "#/components/schemas/LiveTranscriptionInput"
              },
              "$type": {
                "enum": [
                  "liveTranscription"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Live transcription"
      },
      "LiveVllmOmniTextToSpeechInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/LiveTextToSpeechInput"
          },
          {
            "required": [
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "ecosystem": {
                "type": "string"
              },
              "engine": {
                "enum": [
                  "vllm-omni"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "ecosystem",
              "mapping": {
                "qwen3": "#/components/schemas/LiveQwen3TextToSpeechInput"
              }
            }
          }
        ]
      },
      "LoadingResourceAvailability": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ResourceAvailability"
          },
          {
            "required": [
              "progress",
              "status",
              "workers"
            ],
            "type": "object",
            "properties": {
              "progress": {
                "type": "number",
                "format": "double"
              },
              "workers": {
                "type": "integer",
                "format": "int32"
              },
              "startedAt": {
                "type": [
                  "null",
                  "string"
                ],
                "format": "date-time"
              },
              "lastProgressAt": {
                "type": [
                  "null",
                  "string"
                ],
                "format": "date-time"
              },
              "etaSeconds": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "lane": {
                "$ref": "#/components/schemas/Priority"
              },
              "bytesPerSecond": {
                "type": [
                  "null",
                  "number"
                ],
                "description": "Inferred from reported progress over elapsed time; the worker's byte counters never leave it.",
                "format": "double"
              },
              "rateLimitBytesPerSecond": {
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Per-stream ceiling the lane applies to this download. Null when uncapped; boosting to High lifts it.",
                "format": "int64"
              },
              "status": {
                "enum": [
                  "loading"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Transferring. No queue position — it is no longer waiting."
      },
      "Ltx23AIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "ecosystem",
              "engine",
              "storageBuzzPerEpoch"
            ],
            "type": "object",
            "properties": {
              "defaultSteps": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "storageBuzzPerEpoch": {
                "type": "number",
                "format": "double",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "ltx23"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Ltx25AIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "ecosystem",
              "engine",
              "storageBuzzPerEpoch"
            ],
            "type": "object",
            "properties": {
              "defaultSteps": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "storageBuzzPerEpoch": {
                "type": "number",
                "format": "double",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "ltx25"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Ltx2AIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "ecosystem",
              "engine",
              "storageBuzzPerEpoch"
            ],
            "type": "object",
            "properties": {
              "defaultSteps": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "storageBuzzPerEpoch": {
                "type": "number",
                "format": "double",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "ltx2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MageFlowAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "defaultSteps": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "mageflow"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MaiImageCreateFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MaiImageFalImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "maiImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MaiImageEditFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MaiImageFalImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 4,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "maiImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MaiImageFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 5000,
                "minLength": 3,
                "type": "string"
              },
              "aspectRatio": {
                "enum": [
                  "auto",
                  "21:9",
                  "16:9",
                  "3:2",
                  "4:3",
                  "5:4",
                  "1:1",
                  "4:5",
                  "3:4",
                  "2:3",
                  "9:16"
                ],
                "type": "string",
                "default": "auto"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "model": {
                "enum": [
                  "maiImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/MaiImageCreateFalImageGenInput",
                "editImage": "#/components/schemas/MaiImageEditFalImageGenInput"
              }
            }
          }
        ]
      },
      "MediaCanvas": {
        "required": [
          "height",
          "width"
        ],
        "type": "object",
        "properties": {
          "width": {
            "type": "integer",
            "description": "Output width in pixels.",
            "format": "int32"
          },
          "height": {
            "type": "integer",
            "description": "Output height in pixels.",
            "format": "int32"
          },
          "fps": {
            "type": "integer",
            "format": "int32",
            "default": 30
          },
          "background": {
            "type": "string",
            "description": "Hex background colour (e.g. `\"#000000\"`) painted where no element covers the canvas. An 8-digit\n`\"#RRGGBBAA\"` sets the alpha, which needs an alpha-capable output container (webp).",
            "default": "#000000"
          }
        },
        "additionalProperties": false,
        "description": "Output canvas geometry. Set this to produce a video composition; leave it null for an\nall-audio mixdown."
      },
      "MediaCaptioningInput": {
        "required": [
          "mediaUrl"
        ],
        "type": "object",
        "properties": {
          "model": {
            "enum": [
              "joy-caption",
              "ideogram4"
            ],
            "type": "string",
            "description": "Captioning model and output contract. Use `ideogram4` for structured\nIdeogram 4 JSON captions with normalized bounding boxes.",
            "default": "joy-caption"
          },
          "mediaUrl": {
            "type": "string",
            "description": "The URL of the media to caption (single image or video).",
            "format": "uri"
          },
          "temperature": {
            "type": "number",
            "description": "Sampling temperature for caption generation. Ideogram 4 uses the Qwen model's\nfixed sampling defaults to match AI Toolkit.",
            "format": "double",
            "default": 0.5
          },
          "maxNewTokens": {
            "type": "integer",
            "description": "Maximum number of tokens to generate. Ideogram 4 enforces a 3072-token floor.",
            "format": "int32",
            "default": 300
          },
          "customInstructions": {
            "type": [
              "null",
              "string"
            ],
            "description": "Optional extra instructions appended to the captioning prompt to steer\ntone, structure, or formatting. Leave unset for the default caption."
          }
        },
        "additionalProperties": false
      },
      "MediaCaptioningOutput": {
        "required": [
          "caption"
        ],
        "type": "object",
        "properties": {
          "caption": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "MediaCaptioningStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/MediaCaptioningInput"
              },
              "output": {
                "$ref": "#/components/schemas/MediaCaptioningOutput"
              },
              "$type": {
                "enum": [
                  "mediaCaptioning"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Media Captioning"
      },
      "MediaCaptioningStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the MediaCaptioningStep step.",
                "$ref": "#/components/schemas/MediaCaptioningInput"
              },
              "$type": {
                "enum": [
                  "mediaCaptioning"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Media Captioning"
      },
      "MediaContainer": {
        "enum": [
          "auto",
          "mp4",
          "webm",
          "ogg",
          "mp3",
          "webp"
        ],
        "type": "string"
      },
      "MediaFit": {
        "enum": [
          "contain",
          "cover",
          "stretch"
        ],
        "type": "string",
        "description": "How a video element is fitted into the output canvas when its aspect ratio differs."
      },
      "MediaHashInput": {
        "required": [
          "hashTypes",
          "mediaUrl"
        ],
        "type": "object",
        "properties": {
          "mediaUrl": {
            "type": "string",
            "description": "The URL of the media to hash (image or video).",
            "format": "uri"
          },
          "hashTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MediaHashType"
            }
          }
        },
        "additionalProperties": false
      },
      "MediaHashOutput": {
        "required": [
          "hashes"
        ],
        "type": "object",
        "properties": {
          "hashes": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The generated hashes, keyed by hash type (e.g., \"perceptual\" -> \"12345678\")."
          }
        },
        "additionalProperties": false
      },
      "MediaHashStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/MediaHashInput"
              },
              "output": {
                "$ref": "#/components/schemas/MediaHashOutput"
              },
              "$type": {
                "enum": [
                  "mediaHash"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "MediaHash"
      },
      "MediaHashStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the MediaHashStep step.",
                "$ref": "#/components/schemas/MediaHashInput"
              },
              "$type": {
                "enum": [
                  "mediaHash"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "MediaHash"
      },
      "MediaHashType": {
        "enum": [
          "perceptual",
          "perceptualDct",
          "perceptualDct256"
        ],
        "type": "string"
      },
      "MediaLayout": {
        "type": "object",
        "properties": {
          "zOrder": {
            "type": "integer",
            "description": "Stacking order. Higher values draw on top; ties are broken by element index.",
            "format": "int32",
            "default": 0
          },
          "x": {
            "type": "integer",
            "description": "X offset, in pixels, of the element's top-left corner on the canvas.",
            "format": "int32",
            "default": 0
          },
          "y": {
            "type": "integer",
            "description": "Y offset, in pixels, of the element's top-left corner on the canvas.",
            "format": "int32",
            "default": 0
          },
          "scale": {
            "type": "number",
            "description": "Uniform scale applied to the element before placement. `1.0` keeps the fitted size.",
            "format": "float",
            "default": 1
          },
          "fit": {
            "description": "How a video element is fitted into the output canvas when its aspect ratio differs.",
            "default": "contain",
            "$ref": "#/components/schemas/MediaFit"
          }
        },
        "additionalProperties": false,
        "description": "Spatial placement of a video element on the output canvas. Ignored for audio elements and\nfor all-audio compositions. Exactly one layout per element."
      },
      "MediaOutputType": {
        "enum": [
          "audio",
          "video"
        ],
        "type": "string",
        "description": "The kind of output a composition produces. When left unspecified on the input, it is derived\nfrom the elements: video if any element is video (or a canvas is supplied), otherwise audio."
      },
      "MediaRatingInput": {
        "required": [
          "includeAgeClassification",
          "includeAIRecognition",
          "includeAnimeBodyAgeClassification",
          "includeAnimeRecognition",
          "includeBodyAgeClassification",
          "includeFaceRecognition",
          "includeHumanRecognition",
          "includeJointAgeClassification"
        ],
        "type": "object",
        "properties": {
          "image": {
            "type": [
              "null",
              "string"
            ],
            "description": "The image to rate. URLs are imported into blob storage before the job is queued so the worker can pre-fetch it.",
            "format": "source-image"
          },
          "includeAgeClassification": {
            "type": "boolean",
            "description": "Include conditional age-classification details for R-or-higher content in the results.\nThe top-level CSAM signal is evaluated regardless of this setting."
          },
          "includeFaceRecognition": {
            "type": "boolean",
            "description": "Include face recognition and similarity analysis in the results"
          },
          "includeAIRecognition": {
            "type": "boolean",
            "description": "Include AI vs real image detection in the results"
          },
          "includeAnimeRecognition": {
            "type": "boolean",
            "description": "Include anime vs real image detection in the results"
          },
          "includeHumanRecognition": {
            "type": "boolean",
            "description": "Include human vs non-human detection in the results"
          },
          "includeBodyAgeClassification": {
            "type": "boolean",
            "description": "Include body-only apparent-age and child-risk classification in the results."
          },
          "includeAnimeBodyAgeClassification": {
            "type": "boolean",
            "description": "Include anime apparent-age and child-risk classification in the results."
          },
          "includeJointAgeClassification": {
            "type": "boolean",
            "description": "Include joint face-and-body apparent-age classification for photo and anime content."
          }
        },
        "additionalProperties": false
      },
      "MediaRatingOutput": {
        "required": [
          "isBlocked",
          "nsfwLevel"
        ],
        "type": "object",
        "properties": {
          "nsfwLevel": {
            "$ref": "#/components/schemas/NSFWLevel"
          },
          "blockedReason": {
            "type": [
              "null",
              "string"
            ]
          },
          "isBlocked": {
            "type": "boolean"
          },
          "labels": {
            "uniqueItems": true,
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Detected content labels (e.g., \"Animal\", \"Child\", etc.)."
          },
          "ageClassification": {
            "$ref": "#/components/schemas/AgeClassificationResult"
          },
          "faceRecognition": {
            "$ref": "#/components/schemas/FaceRecognitionResult"
          },
          "aiRecognition": {
            "description": "Represents AI vs real image recognition results.",
            "$ref": "#/components/schemas/AIRecognitionResult"
          },
          "animeRecognition": {
            "description": "Represents anime vs real image recognition results.",
            "$ref": "#/components/schemas/AnimeRecognitionResult"
          },
          "csam": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Potential CSAM signal from conditional age classification on R-or-higher content.\nNull means the image was below R or age classification failed."
          },
          "humanRecognition": {
            "description": "Represents human vs non-human image recognition results.",
            "$ref": "#/components/schemas/HumanRecognitionResult"
          },
          "bodyAgeClassification": {
            "description": "Body-only apparent-age and child-risk results (if requested).",
            "$ref": "#/components/schemas/BodyAgeClassificationResult"
          },
          "animeBodyAgeClassification": {
            "description": "Anime apparent-age and child-risk results (if requested).",
            "$ref": "#/components/schemas/AnimeBodyAgeClassificationResult"
          },
          "jointAgeClassification": {
            "description": "Joint face-and-body apparent-age results for photo and anime content (if requested).",
            "$ref": "#/components/schemas/JointAgeClassificationResult"
          }
        },
        "additionalProperties": false
      },
      "MediaRatingStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/MediaRatingInput"
              },
              "output": {
                "$ref": "#/components/schemas/MediaRatingOutput"
              },
              "$type": {
                "enum": [
                  "mediaRating"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "MediaRating"
      },
      "MediaRatingStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the MediaRatingStep step.",
                "$ref": "#/components/schemas/MediaRatingInput"
              },
              "$type": {
                "enum": [
                  "mediaRating"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "MediaRating"
      },
      "MediaTransformer": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "description": "Per-element transformer applied to a media element before it is composited; transformers run in array order.",
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "fadeIn": "#/components/schemas/FadeInTransformer",
            "fadeOut": "#/components/schemas/FadeOutTransformer",
            "volume": "#/components/schemas/VolumeTransformer",
            "backgroundRemoval": "#/components/schemas/BackgroundRemovalTransformer"
          }
        }
      },
      "MergeField": {
        "required": [
          "$ref",
          "includeIndex",
          "path",
          "reduce"
        ],
        "type": "object",
        "properties": {
          "$ref": {
            "type": "string",
            "description": "The name of the step to read from, or `$arguments` for the workflow's arguments."
          },
          "path": {
            "type": "string",
            "description": "The path to the values, e.g. `output.steps[*].output.nsfwLevel`. `[*]` selects the rest of the path\nfrom every item of a list; nested `[*]` flatten into one list."
          },
          "reduce": {
            "description": "How a merge field combines its values. Null values are skipped, except by `any` and `all`, which count them as false.",
            "$ref": "#/components/schemas/MergeReducer"
          },
          "by": {
            "type": [
              "null",
              "string"
            ],
            "description": "For `group`: the property of each item to group by."
          },
          "sortBy": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "integer",
              "format": "int32"
            },
            "description": "For `top` and `group`: the properties to rank items by, in order, each 1 (ascending) or -1 (descending)."
          },
          "includeIndex": {
            "type": "boolean",
            "description": "For `max`, `min`, `top` and `push`: wrap each result as `{ value, index }`, where index is\nthe position of its source item in the first `[*]` of the path."
          }
        },
        "additionalProperties": false,
        "description": "One field of a merge: where its values come from and how they are combined."
      },
      "MergeInput": {
        "required": [
          "fields",
          "onMissing"
        ],
        "type": "object",
        "properties": {
          "onMissing": {
            "description": "What to do when a source item selected by a `[*]` has no output, e.g. a repeat iteration that failed.",
            "$ref": "#/components/schemas/MergeMissingBehavior"
          },
          "fields": {
            "type": "object",
            "additionalProperties": {
              "description": "One field of a merge: where its values come from and how they are combined.",
              "$ref": "#/components/schemas/MergeField"
            },
            "description": "The fields of the merged result, keyed by the name each appears under in the output."
          }
        },
        "additionalProperties": false
      },
      "MergeMissingBehavior": {
        "enum": [
          "fail",
          "partial"
        ],
        "type": "string",
        "description": "How a merge treats a source item that has no output."
      },
      "MergeOutput": {
        "required": [
          "failedCount",
          "fields",
          "mergedCount",
          "sourceCount"
        ],
        "type": "object",
        "properties": {
          "fields": {
            "type": "object",
            "additionalProperties": {},
            "description": "The merged values, keyed by the field names of the input. Their shape follows the requested reducers."
          },
          "sourceCount": {
            "type": "integer",
            "description": "The number of source items selected by the first `[*]` of the fields' paths.",
            "format": "int32"
          },
          "mergedCount": {
            "type": "integer",
            "description": "The number of source items whose values were merged.",
            "format": "int32"
          },
          "failedCount": {
            "type": "integer",
            "description": "The number of source items left out because they had no output.",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "MergeReducer": {
        "enum": [
          "max",
          "min",
          "sum",
          "avg",
          "count",
          "any",
          "all",
          "first",
          "last",
          "push",
          "addToSet",
          "top",
          "group"
        ],
        "type": "string",
        "description": "How a merge field combines its values. Null values are skipped, except by `any` and `all`, which count them as false."
      },
      "MergeStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/MergeInput"
              },
              "output": {
                "$ref": "#/components/schemas/MergeOutput"
              },
              "$type": {
                "enum": [
                  "merge"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Merge"
      },
      "MergeStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the MergeStep step.",
                "$ref": "#/components/schemas/MergeInput"
              },
              "$type": {
                "enum": [
                  "merge"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Merge"
      },
      "MeshyFalPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FalPolyGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "version"
            ],
            "type": "object",
            "properties": {
              "version": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "v6"
              },
              "targetPolycount": {
                "maximum": 300000,
                "minimum": 100,
                "type": "integer",
                "format": "int32",
                "default": 30000
              },
              "topology": {
                "enum": [
                  "quad",
                  "triangle"
                ],
                "type": "string",
                "default": "triangle"
              },
              "symmetryMode": {
                "enum": [
                  "off",
                  "auto",
                  "on"
                ],
                "type": "string",
                "default": "auto"
              },
              "shouldRemesh": {
                "type": "boolean",
                "default": true
              },
              "enablePbr": {
                "type": "boolean",
                "default": false
              },
              "texturePrompt": {
                "maxLength": 600,
                "type": [
                  "null",
                  "string"
                ]
              },
              "enableRigging": {
                "type": "boolean",
                "default": false
              },
              "enableAnimation": {
                "type": "boolean",
                "default": false
              },
              "model": {
                "enum": [
                  "meshy"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "version",
              "mapping": {
                "v6": "#/components/schemas/MeshyV6FalPolyGenInput",
                "v7": "#/components/schemas/MeshyV7FalPolyGenInput",
                "v7.1": "#/components/schemas/MeshyV71FalPolyGenInput"
              }
            }
          }
        ],
        "description": "Meshy 3D generation via FAL. Payloads without a version deserialize as v6."
      },
      "MeshyImageTo3DFalPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MeshyV6FalPolyGenInput"
          },
          {
            "required": [
              "engine",
              "imageUrl",
              "model",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "imageUrl": {
                "minLength": 1,
                "type": "string"
              },
              "shouldTexture": {
                "type": "boolean",
                "default": true
              },
              "operation": {
                "enum": [
                  "imageTo3D"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v6"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "meshy"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MeshyTextTo3DFalPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MeshyV6FalPolyGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "prompt",
              "version"
            ],
            "type": "object",
            "properties": {
              "prompt": {
                "maxLength": 600,
                "minLength": 1,
                "type": "string"
              },
              "mode": {
                "enum": [
                  "preview",
                  "full"
                ],
                "type": "string",
                "default": "full"
              },
              "enablePromptExpansion": {
                "type": "boolean",
                "default": false
              },
              "operation": {
                "enum": [
                  "textTo3D"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v6"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "meshy"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MeshyV6FalPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MeshyFalPolyGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "version": {
                "enum": [
                  "v6"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "meshy"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "textTo3D": "#/components/schemas/MeshyTextTo3DFalPolyGenInput",
                "imageTo3D": "#/components/schemas/MeshyImageTo3DFalPolyGenInput"
              }
            }
          }
        ],
        "description": "FAL endpoints: fal-ai/meshy/v6/{text-to-3d,image-to-3d}"
      },
      "MeshyV71FalPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MeshyFalPolyGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "targetPolycount": {
                "maximum": 300000,
                "minimum": 100,
                "type": "integer",
                "description": "Defaults to 4,000 for Smart Topology, otherwise 30,000.",
                "format": "int32"
              },
              "poseMode": {
                "enum": [
                  "none",
                  "a-pose",
                  "t-pose"
                ],
                "type": "string",
                "default": "none"
              },
              "textureImageUrl": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "riggingHeightMeters": {
                "maximum": 100,
                "minimum": 0.01,
                "type": "number",
                "format": "double",
                "default": 1.7
              },
              "animationActionId": {
                "maximum": 696,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 92
              },
              "version": {
                "enum": [
                  "v7.1"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "meshy"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "textTo3D": "#/components/schemas/MeshyV71TextTo3DFalPolyGenInput",
                "imageTo3D": "#/components/schemas/MeshyV71ImageTo3DFalPolyGenInput",
                "multiImageTo3D": "#/components/schemas/MeshyV71MultiImageTo3DFalPolyGenInput"
              }
            }
          }
        ]
      },
      "MeshyV71ImageTo3DFalPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MeshyV71FalPolyGenInput"
          },
          {
            "required": [
              "engine",
              "imageUrl",
              "model",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "imageUrl": {
                "minLength": 1,
                "type": "string"
              },
              "shouldTexture": {
                "type": "boolean",
                "default": true
              },
              "modelType": {
                "enum": [
                  "standard",
                  "smart-topology"
                ],
                "type": "string",
                "default": "standard"
              },
              "geometryResolution": {
                "enum": [
                  "standard",
                  "2k",
                  "4k"
                ],
                "type": "string",
                "description": "2K and 4K require modelType \"standard\".",
                "default": "standard"
              },
              "operation": {
                "enum": [
                  "imageTo3D"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v7.1"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "meshy"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MeshyV71MultiImageTo3DFalPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MeshyV71FalPolyGenInput"
          },
          {
            "required": [
              "engine",
              "imageUrls",
              "model",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "imageUrls": {
                "maxItems": 4,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "shouldTexture": {
                "type": "boolean",
                "default": true
              },
              "geometryResolution": {
                "enum": [
                  "standard",
                  "2k"
                ],
                "type": "string",
                "default": "standard"
              },
              "operation": {
                "enum": [
                  "multiImageTo3D"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v7.1"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "meshy"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MeshyV71TextTo3DFalPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MeshyV71FalPolyGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "prompt",
              "version"
            ],
            "type": "object",
            "properties": {
              "prompt": {
                "maxLength": 600,
                "minLength": 1,
                "type": "string"
              },
              "mode": {
                "enum": [
                  "preview",
                  "full"
                ],
                "type": "string",
                "default": "full"
              },
              "modelType": {
                "enum": [
                  "standard",
                  "smart-topology"
                ],
                "type": "string",
                "default": "standard"
              },
              "geometryResolution": {
                "enum": [
                  "standard",
                  "2k",
                  "4k"
                ],
                "type": "string",
                "description": "2K and 4K require modelType \"standard\".",
                "default": "standard"
              },
              "seed": {
                "maximum": 2147483647,
                "minimum": 0,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "enablePromptExpansion": {
                "type": "boolean",
                "default": false
              },
              "operation": {
                "enum": [
                  "textTo3D"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v7.1"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "meshy"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MeshyV7FalPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MeshyFalPolyGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "shouldTexture": {
                "type": "boolean",
                "default": true
              },
              "poseMode": {
                "enum": [
                  "none",
                  "a-pose",
                  "t-pose"
                ],
                "type": "string",
                "description": "Pose to generate the character in. \"none\" lets Meshy pick.",
                "default": "none"
              },
              "textureImageUrl": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "2D image guiding the texturing process."
              },
              "riggingHeightMeters": {
                "maximum": 100,
                "minimum": 0.01,
                "type": "number",
                "description": "Approximate character height in meters. Only used when enableRigging is set.",
                "format": "double",
                "default": 1.7
              },
              "animationActionId": {
                "maximum": 696,
                "minimum": 0,
                "type": "integer",
                "description": "Animation preset from Meshy's library (0 is \"Idle\"); see https://docs.meshy.ai/en/api/animation-library.\nOnly used when `enableAnimation` is set.",
                "format": "int32",
                "default": 92
              },
              "version": {
                "enum": [
                  "v7"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "meshy"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "imageTo3D": "#/components/schemas/MeshyV7ImageTo3DFalPolyGenInput",
                "multiImageTo3D": "#/components/schemas/MeshyV7MultiImageTo3DFalPolyGenInput"
              }
            }
          }
        ],
        "description": "Meshy v7. FAL endpoints: meshy/v7/{image-to-3d,multi-image-to-3d}"
      },
      "MeshyV7ImageTo3DFalPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MeshyV7FalPolyGenInput"
          },
          {
            "required": [
              "engine",
              "imageUrl",
              "model",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "imageUrl": {
                "minLength": 1,
                "type": "string"
              },
              "ultraMode": {
                "type": "boolean",
                "description": "Higher-fidelity geometry with finer surface detail.",
                "default": false
              },
              "modelType": {
                "enum": [
                  "standard",
                  "lowpoly"
                ],
                "type": "string",
                "description": "\"lowpoly\" makes Meshy ignore the remesh controls (topology, targetPolycount, shouldRemesh).",
                "default": "standard"
              },
              "operation": {
                "enum": [
                  "imageTo3D"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v7"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "meshy"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MeshyV7MultiImageTo3DFalPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MeshyV7FalPolyGenInput"
          },
          {
            "required": [
              "engine",
              "imageUrls",
              "model",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "imageUrls": {
                "maxItems": 4,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "1–4 views of the same object. Meshy has no ultra or lowpoly mode on this operation."
              },
              "operation": {
                "enum": [
                  "multiImageTo3D"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v7"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "meshy"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Metric3dBackbone": {
        "enum": [
          "vit-small",
          "vit-large",
          "vit-giant2"
        ],
        "type": "string"
      },
      "MetricsResponse": {
        "required": [
          "asOf",
          "canceledRate",
          "requests",
          "userErrorRate",
          "window"
        ],
        "type": "object",
        "properties": {
          "window": {
            "type": "string",
            "description": "The window these cover: 1h, 24h or 7d."
          },
          "asOf": {
            "type": "string",
            "description": "When this was computed. Served stale while a refresh runs.",
            "format": "date-time"
          },
          "requests": {
            "type": "integer",
            "description": "Requests that reached a final state in the window, cancellations included.",
            "format": "int64"
          },
          "successRate": {
            "type": [
              "null",
              "number"
            ],
            "description": "Succeeded over non-canceled requests, 0..1. Null when everything in the window was\ncanceled — which is not the same as a success rate of zero.",
            "format": "double"
          },
          "canceledRate": {
            "type": "number",
            "description": "Fraction canceled by callers. Reported apart from success: cancelling is not a failure.",
            "format": "double"
          },
          "userErrorRate": {
            "type": "number",
            "description": "Fraction that failed on the user's input rather than the service, most often a provider content-policy\nrejection. Kept out of the success rate so refusing disallowed requests does not mark a service unhealthy.",
            "format": "double"
          },
          "costBuzz": {
            "description": "What callers actually paid per request, over succeeded requests only. Not a unit price and not comparable\nbetween services; use `estimate` for an exact quote.",
            "$ref": "#/components/schemas/PercentilesResponse"
          },
          "latencySeconds": {
            "description": "Null for services that never create a job to time, such as imageUpload.",
            "$ref": "#/components/schemas/PercentilesResponse"
          }
        },
        "additionalProperties": false
      },
      "MingAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "defaultSteps": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "ming"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MiniMaxH3AIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "ecosystem",
              "engine",
              "storageBuzzPerEpoch"
            ],
            "type": "object",
            "properties": {
              "defaultSteps": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "storageBuzzPerEpoch": {
                "type": "number",
                "format": "double",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "minimaxh3"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MiniMaxH3MaxImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MiniMaxH3MaxVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "firstFrameImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Optional first frame. If omitted, the last frame sets the canvas. With neither, FAL generates from text at 16:9.",
                "format": "source-image"
              },
              "lastFrameImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "targetAudio": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "HTTP(S) URL of a soundtrack, at least 2 seconds and at most 15 MB. Requires duration >= 2.",
                "format": "uri"
              },
              "operation": {
                "enum": [
                  "imageToVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "minimax-h3-max"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MiniMaxH3MaxReferenceToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MiniMaxH3MaxVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "aspectRatio": {
                "enum": [
                  "adaptive",
                  "21:9",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "type": "string",
                "default": "adaptive"
              },
              "referenceImages": {
                "maxItems": 9,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "referenceVideos": {
                "maxItems": 3,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uri"
                },
                "description": "HTTP(S) clips, each 2-15 seconds, combined at most 15 seconds."
              },
              "referenceAudios": {
                "maxItems": 3,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uri"
                },
                "description": "HTTP(S) audio clips, each 2-15 seconds, combined at most 15 seconds."
              },
              "firstFrameImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "lastFrameImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "middleFrameImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Requires first and last frames, middleFrameTime, and 480P or 768P.",
                "format": "source-image"
              },
              "middleFrameTime": {
                "type": [
                  "null",
                  "number"
                ],
                "description": "Seconds from the start, rounded to 24 fps. Must fall strictly inside the requested duration.",
                "format": "double"
              },
              "operation": {
                "enum": [
                  "referenceToVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "minimax-h3-max"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Max only. Up to 9 images, 3 videos and 3 audio clips, at most 12 combined. Reference charges share a 4096-token allowance."
      },
      "MiniMaxH3MaxTextToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MiniMaxH3MaxVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "aspectRatio": {
                "enum": [
                  "21:9",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "type": "string",
                "default": "16:9"
              },
              "targetAudio": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "HTTP(S) URL of a soundtrack, at least 2 seconds and at most 15 MB. Requires duration >= 2.",
                "format": "uri"
              },
              "operation": {
                "enum": [
                  "textToVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "minimax-h3-max"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MiniMaxH3MaxVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "textToVideo"
              },
              "model": {
                "enum": [
                  "max",
                  "turbo"
                ],
                "type": "string",
                "default": "max"
              },
              "duration": {
                "maximum": 15,
                "minimum": 0.92,
                "type": "number",
                "description": "Requested seconds. FAL may return up to about 0.7 additional seconds.",
                "format": "double",
                "default": 5
              },
              "resolution": {
                "enum": [
                  "480P",
                  "768P",
                  "1080P"
                ],
                "type": "string",
                "default": "768P"
              },
              "promptExpansionMode": {
                "enum": [
                  "disabled",
                  "balanced",
                  "quality"
                ],
                "type": "string",
                "default": "balanced"
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "enableSafetyChecker": {
                "type": "boolean",
                "default": true
              },
              "engine": {
                "enum": [
                  "minimax-h3-max"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "textToVideo": "#/components/schemas/MiniMaxH3MaxTextToVideoInput",
                "imageToVideo": "#/components/schemas/MiniMaxH3MaxImageToVideoInput",
                "referenceToVideo": "#/components/schemas/MiniMaxH3MaxReferenceToVideoInput"
              }
            }
          }
        ],
        "description": "MiniMax H3 Max and H3 Max Turbo core generation through FAL."
      },
      "MiniMaxH3VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "aspectRatio",
              "duration",
              "engine",
              "resolution"
            ],
            "type": "object",
            "properties": {
              "aspectRatio": {
                "enum": [
                  "adaptive",
                  "21:9",
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16"
                ],
                "type": "string"
              },
              "duration": {
                "maximum": 15,
                "minimum": 5,
                "type": "integer",
                "format": "int32"
              },
              "resolution": {
                "enum": [
                  "2K"
                ],
                "type": "string"
              },
              "firstFrameImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "lastFrameImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "referenceImages": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "referenceVideos": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "referenceAudios": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "watermark": {
                "type": "boolean",
                "default": false
              },
              "referenceVideoSeconds": {
                "type": "integer",
                "description": "Measured total duration of `referenceVideos`, filled in during initialization; MiniMax bills uploaded\nreference video at the output per-second rate, so it must be known before the estimate is charged.",
                "format": "int32"
              },
              "engine": {
                "enum": [
                  "minimax-h3"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MiniMaxMusic3Input": {
        "required": [
          "lyrics",
          "prompt",
          "seed"
        ],
        "type": "object",
        "properties": {
          "prompt": {
            "type": "string",
            "description": "What the track should sound like, as a structured description. For best results use Global\nMetadata, Vocal Details, and Arrangement sections. The words to sing go in lyrics."
          },
          "lyrics": {
            "type": "string",
            "description": "Lyrics with section markers such as [Intro], [Verse], [Chorus], and [Outro]."
          },
          "seed": {
            "type": "integer",
            "format": "int32"
          },
          "maxDuration": {
            "maximum": 360,
            "minimum": 0.03999999910593033,
            "type": "number",
            "description": "Maximum generated song duration in seconds. The model may end the song earlier when\nthe requested lyric structure is complete.",
            "format": "float",
            "default": 120
          },
          "steps": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer",
            "format": "int32",
            "default": 30
          },
          "cfgScale": {
            "maximum": 100,
            "minimum": 0,
            "type": "number",
            "description": "Classifier-free guidance scale used by both text encoding and sampling.",
            "format": "float",
            "default": 1.7
          },
          "topK": {
            "maximum": 16384,
            "minimum": 1,
            "type": "integer",
            "description": "Top-k sampling limit used by the MiniMax music text encoder.",
            "format": "int32",
            "default": 50
          },
          "diffusionModel": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": [
              "null",
              "string"
            ]
          },
          "textEncoder": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": [
              "null",
              "string"
            ]
          },
          "vae": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": [
              "null",
              "string"
            ]
          },
          "loras": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "description": "Optional LoRAs to apply to both the diffusion model and MiniMax text encoder.\nCompatibility with the selected base resources is the caller's responsibility."
          }
        },
        "additionalProperties": false
      },
      "MiniMaxMusic3Output": {
        "required": [
          "blob"
        ],
        "type": "object",
        "properties": {
          "blob": {
            "$ref": "#/components/schemas/AudioBlob"
          }
        },
        "additionalProperties": false
      },
      "MiniMaxMusic3Step": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/MiniMaxMusic3Input"
              },
              "output": {
                "$ref": "#/components/schemas/MiniMaxMusic3Output"
              },
              "$type": {
                "enum": [
                  "miniMaxMusic3"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate a complete song from a structured caption and lyrics with MiniMax Music 3."
      },
      "MiniMaxMusic3StepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the MiniMaxMusic3Step step.",
                "$ref": "#/components/schemas/MiniMaxMusic3Input"
              },
              "$type": {
                "enum": [
                  "miniMaxMusic3"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate a complete song from a structured caption and lyrics with MiniMax Music 3."
      },
      "MiniMaxVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine"
            ],
            "type": "object",
            "properties": {
              "model": {
                "default": "hailou",
                "$ref": "#/components/schemas/MiniMaxVideoGenModel"
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": true
              },
              "engine": {
                "enum": [
                  "minimax"
                ],
                "type": "string"
              },
              "sourceImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MiniMaxVideoGenModel": {
        "enum": [
          "hailou"
        ],
        "type": "string"
      },
      "MochiVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine",
              "seed"
            ],
            "type": "object",
            "properties": {
              "seed": {
                "maximum": 2147483647,
                "minimum": -1,
                "type": "integer",
                "format": "int64"
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": true
              },
              "engine": {
                "enum": [
                  "mochi"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ModalitiesResponse": {
        "required": [
          "input",
          "output"
        ],
        "type": "object",
        "properties": {
          "input": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "output": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "additionalProperties": false
      },
      "Model3DBlob": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Blob"
          },
          {
            "required": [
              "format",
              "type"
            ],
            "type": "object",
            "properties": {
              "format": {
                "type": "string",
                "description": "File format of the 3D model (e.g. \"glb\", \"fbx\", \"obj\", \"usdz\")."
              },
              "type": {
                "enum": [
                  "model3d"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Model3DPreviewCameraPose": {
        "type": "object",
        "properties": {
          "name": {
            "type": [
              "null",
              "string"
            ]
          },
          "yaw": {
            "type": "number",
            "format": "double",
            "default": 0
          },
          "pitch": {
            "type": "number",
            "format": "double",
            "default": 0
          },
          "distance": {
            "type": "number",
            "format": "double",
            "default": 2.8
          },
          "fov": {
            "type": "number",
            "format": "double",
            "default": 45
          }
        },
        "additionalProperties": false
      },
      "Model3DPreviewInput": {
        "required": [
          "cameraPoses",
          "model"
        ],
        "type": "object",
        "properties": {
          "model": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": "string"
          },
          "width": {
            "maximum": 4096,
            "minimum": 256,
            "type": "integer",
            "format": "int32",
            "default": 1024
          },
          "height": {
            "maximum": 4096,
            "minimum": 256,
            "type": "integer",
            "format": "int32",
            "default": 1024
          },
          "outputFormat": {
            "default": "png",
            "$ref": "#/components/schemas/ImageGenOutputFormat"
          },
          "cameraPoses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Model3DPreviewCameraPose"
            }
          },
          "format": {
            "type": [
              "null",
              "string"
            ]
          },
          "background": {
            "pattern": "^#[0-9a-fA-F]{6}$",
            "type": "string",
            "default": "#D9D9D9"
          }
        },
        "additionalProperties": false
      },
      "Model3DPreviewOutput": {
        "required": [
          "images"
        ],
        "type": "object",
        "properties": {
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageBlob"
            }
          }
        },
        "additionalProperties": false
      },
      "Model3DPreviewStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/Model3DPreviewInput"
              },
              "output": {
                "$ref": "#/components/schemas/Model3DPreviewOutput"
              },
              "$type": {
                "enum": [
                  "model3DPreview"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "3D model preview"
      },
      "Model3DPreviewStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the Model3DPreviewStep step.",
                "$ref": "#/components/schemas/Model3DPreviewInput"
              },
              "$type": {
                "enum": [
                  "model3DPreview"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "3D model preview"
      },
      "ModelHashInput": {
        "required": [
          "model"
        ],
        "type": "object",
        "properties": {
          "model": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ModelHashOutput": {
        "type": "object",
        "properties": {
          "sha256": {
            "type": [
              "null",
              "string"
            ],
            "description": "SHA256 hash of the full file."
          },
          "autoV1": {
            "type": [
              "null",
              "string"
            ],
            "description": "AutoV1 short hash (8 chars of SHA256 over a 64 KB block starting at 1 MB)."
          },
          "autoV2": {
            "type": [
              "null",
              "string"
            ],
            "description": "AutoV2 short hash (first 10 chars of SHA256)."
          },
          "autoV3": {
            "type": [
              "null",
              "string"
            ],
            "description": "AutoV3 hash (SHA256 of the file with safetensors header metadata stripped)."
          },
          "blake3": {
            "type": [
              "null",
              "string"
            ],
            "description": "Blake3 hash of the full file."
          },
          "crc32": {
            "type": [
              "null",
              "string"
            ],
            "description": "CRC32 of the full file."
          }
        },
        "additionalProperties": false
      },
      "ModelHashStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/ModelHashInput"
              },
              "output": {
                "$ref": "#/components/schemas/ModelHashOutput"
              },
              "$type": {
                "enum": [
                  "modelHash"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "ModelHash"
      },
      "ModelHashStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the ModelHashStep step.",
                "$ref": "#/components/schemas/ModelHashInput"
              },
              "$type": {
                "enum": [
                  "modelHash"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "ModelHash"
      },
      "ModelParseMetadataInput": {
        "required": [
          "model"
        ],
        "type": "object",
        "properties": {
          "model": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ModelParseMetadataOutput": {
        "type": "object",
        "properties": {
          "metadata": {
            "type": [
              "null",
              "string"
            ],
            "description": "The safetensors header's `__metadata__` object as a JSON string; null when the model is not safetensors,\nthe header could not be parsed, or there is no `__metadata__`."
          }
        },
        "additionalProperties": false
      },
      "ModelParseMetadataStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/ModelParseMetadataInput"
              },
              "output": {
                "$ref": "#/components/schemas/ModelParseMetadataOutput"
              },
              "$type": {
                "enum": [
                  "modelParseMetadata"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "ModelParseMetadata"
      },
      "ModelParseMetadataStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the ModelParseMetadataStep step.",
                "$ref": "#/components/schemas/ModelParseMetadataInput"
              },
              "$type": {
                "enum": [
                  "modelParseMetadata"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "ModelParseMetadata"
      },
      "MossImageAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "ecosystem",
              "engine",
              "modelVariant"
            ],
            "type": "object",
            "properties": {
              "modelVariant": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "sft"
              },
              "defaultSteps": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "mossImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "modelVariant",
              "mapping": {
                "base": "#/components/schemas/MossImageBaseAIToolkitTrainingInput",
                "sft": "#/components/schemas/MossImageSftAIToolkitTrainingInput"
              }
            }
          }
        ]
      },
      "MossImageBaseAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MossImageAIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "modelVariant"
            ],
            "type": "object",
            "properties": {
              "modelVariant": {
                "enum": [
                  "base"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "mossImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MossImageSftAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MossImageAIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "modelVariant"
            ],
            "type": "object",
            "properties": {
              "modelVariant": {
                "enum": [
                  "sft"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "mossImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MuseImageCreateFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MuseImageFalImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "museImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MuseImageEditFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MuseImageFalImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 10,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "museImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "MuseImageFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 4000,
                "minLength": 1,
                "type": "string"
              },
              "aspectRatio": {
                "enum": [
                  "auto",
                  "21:9",
                  "16:9",
                  "4:3",
                  "3:2",
                  "1:1",
                  "2:3",
                  "3:4",
                  "9:16",
                  "9:21"
                ],
                "type": "string",
                "default": "auto"
              },
              "quantity": {
                "maximum": 10,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "model": {
                "enum": [
                  "museImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/MuseImageCreateFalImageGenInput",
                "editImage": "#/components/schemas/MuseImageEditFalImageGenInput"
              }
            }
          }
        ]
      },
      "MusubiImageResourceTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageResourceTrainingInput"
          },
          {
            "required": [
              "engine"
            ],
            "type": "object",
            "properties": {
              "epochs": {
                "maximum": 20,
                "minimum": 0,
                "type": "integer",
                "description": "Number of training epochs. An epoch is one complete pass through the training dataset.\nMaximum of 20 epochs can be specified.",
                "format": "int32",
                "default": 5
              },
              "engine": {
                "enum": [
                  "musubi"
                ],
                "type": "string"
              },
              "resolution": {
                "maximum": 1024,
                "minimum": 512,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Specify the maximum resolution of training images. If the training images exceed the resolution specified here, they will be scaled down to this resolution",
                "format": "int32"
              },
              "enableBucket": {
                "type": "boolean",
                "description": "Sorts images into buckets by size for the purposes of training. If your training images are all the same size, you can turn this option off, but leaving it on has no effect.",
                "default": true
              },
              "unetLR": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "description": "Sets the learning rate for U-Net. This is the learning rate when performing additional learning on each attention block (and other blocks depending on the setting) in U-Net",
                "format": "double",
                "default": 0.00005
              },
              "lrScheduler": {
                "enum": [
                  "constant",
                  "cosine",
                  "cosine_with_restarts",
                  "linear"
                ],
                "type": [
                  "null",
                  "string"
                ],
                "description": "You can change the learning rate in the middle of learning. A scheduler is a setting for how to change the learning rate."
              },
              "lrSchedulerNumCycles": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "description": "This option specifies how many cycles the scheduler runs during training. It is only used when \"cosine_with_restarts\" or \"polynomial\" is used as the scheduler.",
                "format": "int32",
                "default": 3
              },
              "networkDim": {
                "maximum": 256,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "The larger the Dim setting, the more learning information can be stored, but the possibility of learning unnecessary information other than the learning target increases. A larger Dim also increases LoRA file size.",
                "format": "int32"
              },
              "networkAlpha": {
                "maximum": 256,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Scales the stored LoRA weights relative to Dim: alpha 16 with dim 32 applies the learning rate at half strength;\nequal values leave it unchanged.",
                "format": "int32"
              },
              "optimizerType": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Optimizer that updates the weights during training; \"AdamW8bit\" is the common choice, \"Adafactor\" for SDXL."
              },
              "targetSteps": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32",
                "readOnly": true
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "NSFWLevel": {
        "enum": [
          "pg",
          "pg13",
          "r",
          "x",
          "xxx",
          "na"
        ],
        "type": "string"
      },
      "NanoBanana21ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GoogleImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "prompt": {
                "maxLength": 50000,
                "minLength": 0,
                "type": "string"
              },
              "aspectRatio": {
                "enum": [
                  "21:9",
                  "16:9",
                  "3:2",
                  "4:3",
                  "5:4",
                  "1:1",
                  "4:5",
                  "3:4",
                  "2:3",
                  "9:16",
                  "1:4",
                  "4:1",
                  "1:8",
                  "8:1",
                  "9:21"
                ],
                "type": "string",
                "default": "1:1"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "model": {
                "enum": [
                  "nano-banana-2.1"
                ],
                "type": "string"
              },
              "resolution": {
                "enum": [
                  "1K",
                  "2K",
                  "4K"
                ],
                "type": "string",
                "default": "1K"
              },
              "images": {
                "maxItems": 14,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "engine": {
                "enum": [
                  "google"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "NanoBanana2ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GoogleImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "prompt": {
                "maxLength": 50000,
                "minLength": 0,
                "type": "string"
              },
              "aspectRatio": {
                "enum": [
                  "21:9",
                  "16:9",
                  "3:2",
                  "4:3",
                  "5:4",
                  "1:1",
                  "4:5",
                  "3:4",
                  "2:3",
                  "9:16"
                ],
                "type": "string",
                "default": "1:1"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "model": {
                "enum": [
                  "nano-banana-2"
                ],
                "type": "string"
              },
              "resolution": {
                "enum": [
                  "1K",
                  "2K",
                  "4K"
                ],
                "type": "string",
                "default": "1K"
              },
              "images": {
                "maxItems": 10,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "enableWebSearch": {
                "type": "boolean",
                "default": false
              },
              "enableGoogleSearch": {
                "type": "boolean",
                "default": false
              },
              "engine": {
                "enum": [
                  "google"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "NanoBanana2LiteImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GoogleImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "prompt": {
                "maxLength": 50000,
                "minLength": 0,
                "type": "string"
              },
              "aspectRatio": {
                "enum": [
                  "21:9",
                  "16:9",
                  "3:2",
                  "4:3",
                  "5:4",
                  "1:1",
                  "4:5",
                  "3:4",
                  "2:3",
                  "9:16"
                ],
                "type": "string",
                "default": "1:1"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "model": {
                "enum": [
                  "nano-banana-2-lite"
                ],
                "type": "string"
              },
              "images": {
                "maxItems": 10,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "engine": {
                "enum": [
                  "google"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "NanoBananaProImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/GoogleImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "prompt": {
                "maxLength": 50000,
                "minLength": 0,
                "type": "string"
              },
              "aspectRatio": {
                "enum": [
                  "21:9",
                  "16:9",
                  "3:2",
                  "4:3",
                  "5:4",
                  "1:1",
                  "4:5",
                  "3:4",
                  "2:3",
                  "9:16"
                ],
                "type": "string",
                "default": "1:1"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "model": {
                "enum": [
                  "nano-banana-pro"
                ],
                "type": "string"
              },
              "resolution": {
                "enum": [
                  "1K",
                  "2K",
                  "4K"
                ],
                "type": "string",
                "default": "1K"
              },
              "images": {
                "maxItems": 10,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "engine": {
                "enum": [
                  "google"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OmniSvgImageToSvgInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageToSvgInput"
          },
          {
            "required": [
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "model": {
                "enum": [
                  "omnisvg-4b",
                  "omnisvg-8b"
                ],
                "type": "string",
                "default": "omnisvg-4b"
              },
              "maxLength": {
                "maximum": 2048,
                "minimum": 256,
                "type": "integer",
                "format": "int32",
                "default": 1536
              },
              "seed": {
                "maximum": 2147483647,
                "minimum": 0,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "topP": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.9
              },
              "topK": {
                "maximum": 1000,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 50
              },
              "temperature": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.3
              },
              "repetitionPenalty": {
                "maximum": 10,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1.05
              },
              "prompt": {
                "maxLength": 1000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "ecosystem": {
                "enum": [
                  "omnisvg"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OmniVoiceTextToSpeechInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VllmOmniTextToSpeechInput"
          },
          {
            "required": [
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "refAudioUrl": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Reference audio AIR URN or external URL for voice cloning.",
                "format": "uri"
              },
              "refText": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Transcript of the reference audio."
              },
              "instruct": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Optional voice/style instruction."
              },
              "ecosystem": {
                "enum": [
                  "omnivoice"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "vllm-omni"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OpenAIDallE2CreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenAIDallE2ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "background": {
                "enum": [
                  "auto",
                  "transparent",
                  "opaque"
                ],
                "type": "string",
                "default": "auto"
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "dall-e-2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OpenAIDallE2EditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenAIDallE2ImageGenInput"
          },
          {
            "required": [
              "engine",
              "image",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "mask": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "dall-e-2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OpenAIDallE2ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenApiImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "prompt",
              "size"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 1000,
                "minLength": 0,
                "type": "string"
              },
              "size": {
                "enum": [
                  "256x256",
                  "512x512",
                  "1024x1024"
                ],
                "type": "string"
              },
              "quantity": {
                "maximum": 10,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "model": {
                "enum": [
                  "dall-e-2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/OpenAIDallE2CreateImageGenInput",
                "editImage": "#/components/schemas/OpenAIDallE2EditImageInput"
              }
            }
          }
        ]
      },
      "OpenAIDallE3CreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenAIDallE3ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "background": {
                "enum": [
                  "auto",
                  "transparent",
                  "opaque"
                ],
                "type": "string",
                "default": "auto"
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "dall-e-3"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OpenAIDallE3ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenApiImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "prompt",
              "size"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 4000,
                "minLength": 0,
                "type": "string"
              },
              "size": {
                "enum": [
                  "1024x1024",
                  "1792x1024",
                  "1024x1792"
                ],
                "type": "string"
              },
              "style": {
                "enum": [
                  "natural",
                  "vivid"
                ],
                "type": "string",
                "default": "vivid"
              },
              "quality": {
                "enum": [
                  "auto",
                  "hd",
                  "standard"
                ],
                "type": "string",
                "default": "auto"
              },
              "model": {
                "enum": [
                  "dall-e-3"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/OpenAIDallE3CreateImageGenInput"
              }
            }
          }
        ]
      },
      "OpenAIGpt15CreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenAIGpt15ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "gpt-image-1.5"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OpenAIGpt15EditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenAIGpt15ImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "inputFidelity": {
                "enum": [
                  "low",
                  "high"
                ],
                "type": "string",
                "default": "high"
              },
              "size": {
                "enum": [
                  "auto",
                  "1024x1024",
                  "1536x1024",
                  "1024x1536"
                ],
                "type": "string",
                "default": "auto"
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "gpt-image-1.5"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OpenAIGpt15ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenApiImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 32000,
                "minLength": 0,
                "type": "string"
              },
              "size": {
                "enum": [
                  "1024x1024",
                  "1536x1024",
                  "1024x1536"
                ],
                "type": "string",
                "default": "1024x1024"
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "background": {
                "enum": [
                  "auto",
                  "transparent",
                  "opaque"
                ],
                "type": "string",
                "default": "auto"
              },
              "quality": {
                "enum": [
                  "low",
                  "medium",
                  "high"
                ],
                "type": "string",
                "default": "high"
              },
              "model": {
                "enum": [
                  "gpt-image-1.5"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/OpenAIGpt15CreateImageInput",
                "editImage": "#/components/schemas/OpenAIGpt15EditImageInput"
              }
            }
          }
        ]
      },
      "OpenAIGpt1CreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenAIGpt1ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "gpt-image-1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OpenAIGpt1EditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenAIGpt1ImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "mask": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "gpt-image-1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OpenAIGpt1ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenApiImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 32000,
                "minLength": 0,
                "type": "string"
              },
              "size": {
                "enum": [
                  "1024x1024",
                  "1536x1024",
                  "1024x1536"
                ],
                "type": "string",
                "default": "1024x1024"
              },
              "quantity": {
                "maximum": 10,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "background": {
                "enum": [
                  "auto",
                  "transparent",
                  "opaque"
                ],
                "type": "string",
                "default": "opaque"
              },
              "quality": {
                "enum": [
                  "auto",
                  "high",
                  "medium",
                  "low"
                ],
                "type": [
                  "null",
                  "string"
                ],
                "default": "auto"
              },
              "model": {
                "enum": [
                  "gpt-image-1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/OpenAIGpt1CreateImageInput",
                "editImage": "#/components/schemas/OpenAIGpt1EditImageInput"
              }
            }
          }
        ]
      },
      "OpenAIGpt25FlareCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenAIGpt25FlareImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "gpt-image-2.5-flare"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OpenAIGpt25FlareEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenAIGpt25FlareImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "mask": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "width": {
                "type": [
                  "null",
                  "integer"
                ],
                "description": "When null, fal infers output size from the input images (image_size: \"auto\").\nBoth Width and Height must be set together, or both null.",
                "format": "int32"
              },
              "height": {
                "type": [
                  "null",
                  "integer"
                ],
                "description": "When null, fal infers output size from the input images (image_size: \"auto\").\nBoth Width and Height must be set together, or both null.",
                "format": "int32"
              },
              "model": {
                "enum": [
                  "gpt-image-2.5-flare"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OpenAIGpt25FlareImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenApiImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 32000,
                "minLength": 0,
                "type": "string"
              },
              "width": {
                "maximum": 3840,
                "minimum": 256,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 3840,
                "minimum": 256,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32",
                "default": 1024
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "quality": {
                "enum": [
                  "low",
                  "medium",
                  "high",
                  "xhigh",
                  "max"
                ],
                "type": "string",
                "default": "high"
              },
              "model": {
                "enum": [
                  "gpt-image-2.5-flare"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/OpenAIGpt25FlareCreateImageInput",
                "editImage": "#/components/schemas/OpenAIGpt25FlareEditImageInput"
              }
            }
          }
        ],
        "description": "GPT-Image-2.5 \"flare\": the faster of the two variants.\nFAL endpoints: openai/gpt-image-2.5/flare/text-to-image[/edit]"
      },
      "OpenAIGpt25SunburstCreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenAIGpt25SunburstImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "gpt-image-2.5-sunburst"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OpenAIGpt25SunburstEditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenAIGpt25SunburstImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "mask": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "width": {
                "type": [
                  "null",
                  "integer"
                ],
                "description": "When null, fal infers output size from the input images (image_size: \"auto\").\nBoth Width and Height must be set together, or both null.",
                "format": "int32"
              },
              "height": {
                "type": [
                  "null",
                  "integer"
                ],
                "description": "When null, fal infers output size from the input images (image_size: \"auto\").\nBoth Width and Height must be set together, or both null.",
                "format": "int32"
              },
              "model": {
                "enum": [
                  "gpt-image-2.5-sunburst"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OpenAIGpt25SunburstImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenApiImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 32000,
                "minLength": 0,
                "type": "string"
              },
              "width": {
                "maximum": 3840,
                "minimum": 256,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 3840,
                "minimum": 256,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32",
                "default": 1024
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "quality": {
                "enum": [
                  "low",
                  "medium",
                  "high",
                  "xhigh",
                  "max"
                ],
                "type": "string",
                "default": "high"
              },
              "model": {
                "enum": [
                  "gpt-image-2.5-sunburst"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/OpenAIGpt25SunburstCreateImageInput",
                "editImage": "#/components/schemas/OpenAIGpt25SunburstEditImageInput"
              }
            }
          }
        ],
        "description": "GPT-Image-2.5 \"sunburst\": higher fidelity on intricate detail, slower.\nFAL endpoints: openai/gpt-image-2.5/sunburst/text-to-image[/edit]"
      },
      "OpenAIGpt2CreateImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenAIGpt2ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "gpt-image-2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OpenAIGpt2EditImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenAIGpt2ImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "mask": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "width": {
                "type": [
                  "null",
                  "integer"
                ],
                "description": "When null, fal infers the output size from the input images (image_size: \"auto\").\nWidth and Height must be set together, or both null.",
                "format": "int32"
              },
              "height": {
                "type": [
                  "null",
                  "integer"
                ],
                "description": "When null, fal infers the output size from the input images (image_size: \"auto\").\nWidth and Height must be set together, or both null.",
                "format": "int32"
              },
              "model": {
                "enum": [
                  "gpt-image-2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "OpenAIGpt2ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OpenApiImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 32000,
                "minLength": 0,
                "type": "string"
              },
              "width": {
                "maximum": 3840,
                "minimum": 256,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 3840,
                "minimum": 256,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32",
                "default": 1024
              },
              "quantity": {
                "maximum": 4,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "quality": {
                "enum": [
                  "low",
                  "medium",
                  "high"
                ],
                "type": "string",
                "default": "high"
              },
              "model": {
                "enum": [
                  "gpt-image-2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/OpenAIGpt2CreateImageInput",
                "editImage": "#/components/schemas/OpenAIGpt2EditImageInput"
              }
            }
          }
        ]
      },
      "OpenApiImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "prompt": {
                "type": "string"
              },
              "engine": {
                "enum": [
                  "openai"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "gpt-image-1": "#/components/schemas/OpenAIGpt1ImageGenInput",
                "gpt-image-1.5": "#/components/schemas/OpenAIGpt15ImageGenInput",
                "gpt-image-2": "#/components/schemas/OpenAIGpt2ImageGenInput",
                "gpt-image-2.5-flare": "#/components/schemas/OpenAIGpt25FlareImageGenInput",
                "gpt-image-2.5-sunburst": "#/components/schemas/OpenAIGpt25SunburstImageGenInput",
                "dall-e-2": "#/components/schemas/OpenAIDallE2ImageGenInput",
                "dall-e-3": "#/components/schemas/OpenAIDallE3ImageGenInput"
              }
            }
          }
        ]
      },
      "OutputFormat": {
        "enum": [
          "png",
          "jpeg",
          "webP"
        ],
        "type": "string"
      },
      "PaginatedResponseOfServiceResponse": {
        "required": [
          "items",
          "limit",
          "offset",
          "totalCount"
        ],
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "description": "A service we offer.",
              "$ref": "#/components/schemas/ServiceResponse"
            }
          },
          "totalCount": {
            "type": "integer",
            "format": "int32"
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PercentilesResponse": {
        "required": [
          "p50",
          "p80",
          "p95"
        ],
        "type": "object",
        "properties": {
          "p50": {
            "type": "number",
            "format": "double"
          },
          "p80": {
            "type": "number",
            "format": "double"
          },
          "p95": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "PngOutputFormat": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageOutputFormat"
          },
          {
            "required": [
              "format"
            ],
            "type": "object",
            "properties": {
              "format": {
                "enum": [
                  "png"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PolyGenInput": {
        "required": [
          "engine"
        ],
        "type": "object",
        "properties": {
          "engine": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "engine",
          "mapping": {
            "comfy": "#/components/schemas/ComfyPolyGenInput",
            "fal": "#/components/schemas/FalPolyGenInput",
            "unirig": "#/components/schemas/UniRigPolyGenInput"
          }
        }
      },
      "PolyGenOutput": {
        "type": "object",
        "properties": {
          "model": {
            "description": "Generated 3D model in GLB format. Null when the engine only produces FBX (Tripo with quad enabled).",
            "$ref": "#/components/schemas/Model3DBlob"
          },
          "fbxModel": {
            "description": "Generated 3D model in FBX format, when the engine produces one.",
            "$ref": "#/components/schemas/Model3DBlob"
          },
          "thumbnail": {
            "description": "Preview thumbnail image of the generated model, when the engine produces one.",
            "$ref": "#/components/schemas/ImageBlob"
          },
          "riggedModel": {
            "description": "Rigged character in GLB format, when rigging is enabled.",
            "$ref": "#/components/schemas/Model3DBlob"
          },
          "riggedFbxModel": {
            "description": "Rigged character in FBX format, when rigging is enabled.",
            "$ref": "#/components/schemas/Model3DBlob"
          },
          "animatedModel": {
            "description": "Animated 3D model in GLB format, when animation is enabled.",
            "$ref": "#/components/schemas/Model3DBlob"
          },
          "animatedFbxModel": {
            "description": "Animated 3D model in FBX format, when animation is enabled.",
            "$ref": "#/components/schemas/Model3DBlob"
          },
          "basicAnimations": {
            "description": "Basic walking and running animations, when rigging is enabled.",
            "$ref": "#/components/schemas/BasicAnimationsBlobs"
          }
        },
        "additionalProperties": false
      },
      "PolyGenStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/PolyGenInput"
              },
              "output": {
                "$ref": "#/components/schemas/PolyGenOutput"
              },
              "$type": {
                "enum": [
                  "polyGen"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "3D model generation"
      },
      "PolyGenStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the PolyGenStep step.",
                "$ref": "#/components/schemas/PolyGenInput"
              },
              "$type": {
                "enum": [
                  "polyGen"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "3D model generation"
      },
      "PrepareResourceInput": {
        "required": [
          "resource"
        ],
        "type": "object",
        "properties": {
          "resource": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "PrepareResourceOutput": {
        "type": "object",
        "properties": {
          "resource": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": [
              "null",
              "string"
            ]
          },
          "preparedAt": {
            "type": [
              "null",
              "string"
            ],
            "description": "When the resource became available. Null while the step has not completed.",
            "format": "date-time"
          },
          "provider": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "PreprocessImageAnimalPoseInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "bboxDetector": {
                "default": "yolox_l.torchscript.pt",
                "$ref": "#/components/schemas/AnimalPoseBboxDetector"
              },
              "poseEstimator": {
                "default": "rtmpose-m_ap10k_256_bs5.torchscript.pt",
                "$ref": "#/components/schemas/AnimalPoseEstimator"
              },
              "kind": {
                "enum": [
                  "animal-pose"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageAnimeLineartInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "kind": {
                "enum": [
                  "lineart-anime"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageAnylineInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "mergeWithLineart": {
                "default": "lineart_standard",
                "$ref": "#/components/schemas/AnylineMergeWith"
              },
              "lineartLowerBound": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0
              },
              "lineartUpperBound": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "objectMinSize": {
                "maximum": 1000,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 36
              },
              "objectConnectivity": {
                "maximum": 10,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "kind": {
                "enum": [
                  "anyline"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageBaeNormalInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "kind": {
                "enum": [
                  "bae-normal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageBinaryInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "binThreshold": {
                "maximum": 255,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 100
              },
              "kind": {
                "enum": [
                  "binary"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageCannyInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "lowThreshold": {
                "maximum": 255,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 100
              },
              "highThreshold": {
                "maximum": 255,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 200
              },
              "kind": {
                "enum": [
                  "canny"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageColorInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "kind": {
                "enum": [
                  "color"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageDensePoseInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "model": {
                "default": "densepose_r50_fpn_dl.torchscript",
                "$ref": "#/components/schemas/DensePoseModel"
              },
              "colormap": {
                "default": "Viridis (MagicAnimate)",
                "$ref": "#/components/schemas/DensePoseColormap"
              },
              "kind": {
                "enum": [
                  "densepose"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageDepthAnythingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "checkpoint": {
                "default": "depth_anything_vitl14.pth",
                "$ref": "#/components/schemas/DepthAnythingCheckpoint"
              },
              "kind": {
                "enum": [
                  "depth-anything"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageDepthAnythingV2Input": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "checkpoint": {
                "default": "depth_anything_v2_vitl.pth",
                "$ref": "#/components/schemas/DepthAnythingV2Checkpoint"
              },
              "kind": {
                "enum": [
                  "depth-anything-v2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageDsineNormalInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "fov": {
                "maximum": 365,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 60
              },
              "iterations": {
                "maximum": 20,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 5
              },
              "kind": {
                "enum": [
                  "dsine-normal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageDwPoseInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "detectHand": {
                "type": "boolean",
                "default": true
              },
              "detectBody": {
                "type": "boolean",
                "default": true
              },
              "detectFace": {
                "type": "boolean",
                "default": true
              },
              "bboxDetector": {
                "default": "yolox_l.onnx",
                "$ref": "#/components/schemas/DwPoseBboxDetector"
              },
              "poseEstimator": {
                "default": "dw-ll_ucoco_384_bs5.torchscript.pt",
                "$ref": "#/components/schemas/DwPoseEstimator"
              },
              "kind": {
                "enum": [
                  "dwpose"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageFakeScribbleInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "safe": {
                "default": "enable",
                "$ref": "#/components/schemas/SafeMode"
              },
              "kind": {
                "enum": [
                  "fake-scribble"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageHedInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "safe": {
                "default": "enable",
                "$ref": "#/components/schemas/SafeMode"
              },
              "kind": {
                "enum": [
                  "hed"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageInput": {
        "required": [
          "image",
          "kind",
          "preprocessorType"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "image": {
            "type": "string",
            "description": "Either A URL, A DataURL or a Base64 string",
            "format": "source-image"
          },
          "resolution": {
            "maximum": 4096,
            "minimum": 64,
            "type": "integer",
            "format": "int32",
            "default": 512
          },
          "preprocessorType": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "kind",
          "mapping": {
            "canny": "#/components/schemas/PreprocessImageCannyInput",
            "binary": "#/components/schemas/PreprocessImageBinaryInput",
            "mlsd": "#/components/schemas/PreprocessImageMlsdInput",
            "depth-anything": "#/components/schemas/PreprocessImageDepthAnythingInput",
            "depth-anything-v2": "#/components/schemas/PreprocessImageDepthAnythingV2Input",
            "zoe-depth-anything": "#/components/schemas/PreprocessImageZoeDepthAnythingInput",
            "zoe-depth": "#/components/schemas/PreprocessImageZoeDepthInput",
            "midas-depth": "#/components/schemas/PreprocessImageMidasDepthInput",
            "leres-depth": "#/components/schemas/PreprocessImageLeresDepthInput",
            "metric3d-depth": "#/components/schemas/PreprocessImageMetric3dDepthInput",
            "midas-normal": "#/components/schemas/PreprocessImageMidasNormalInput",
            "bae-normal": "#/components/schemas/PreprocessImageBaeNormalInput",
            "dsine-normal": "#/components/schemas/PreprocessImageDsineNormalInput",
            "metric3d-normal": "#/components/schemas/PreprocessImageMetric3dNormalInput",
            "hed": "#/components/schemas/PreprocessImageHedInput",
            "pidinet": "#/components/schemas/PreprocessImagePidinetInput",
            "teed": "#/components/schemas/PreprocessImageTeedInput",
            "fake-scribble": "#/components/schemas/PreprocessImageFakeScribbleInput",
            "lineart-realistic": "#/components/schemas/PreprocessImageRealisticLineartInput",
            "lineart-standard": "#/components/schemas/PreprocessImageStandardLineartInput",
            "lineart-anime": "#/components/schemas/PreprocessImageAnimeLineartInput",
            "lineart-manga": "#/components/schemas/PreprocessImageMangaLineartInput",
            "anyline": "#/components/schemas/PreprocessImageAnylineInput",
            "scribble": "#/components/schemas/PreprocessImageScribbleInput",
            "scribble-xdog": "#/components/schemas/PreprocessImageScribbleXdogInput",
            "scribble-pidinet": "#/components/schemas/PreprocessImageScribblePidinetInput",
            "openpose": "#/components/schemas/PreprocessImageOpenPoseInput",
            "dwpose": "#/components/schemas/PreprocessImageDwPoseInput",
            "sdpose": "#/components/schemas/PreprocessImageSdPoseInput",
            "animal-pose": "#/components/schemas/PreprocessImageAnimalPoseInput",
            "densepose": "#/components/schemas/PreprocessImageDensePoseInput",
            "mediapipe-face": "#/components/schemas/PreprocessImageMediaPipeFaceInput",
            "oneformer-coco": "#/components/schemas/PreprocessImageOneFormerCocoInput",
            "oneformer-ade20k": "#/components/schemas/PreprocessImageOneFormerAde20kInput",
            "uniformer": "#/components/schemas/PreprocessImageUniFormerInput",
            "color": "#/components/schemas/PreprocessImageColorInput",
            "shuffle": "#/components/schemas/PreprocessImageShuffleInput",
            "tile": "#/components/schemas/PreprocessImageTileInput"
          }
        }
      },
      "PreprocessImageLeresDepthInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "removeNearest": {
                "maximum": 100,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0
              },
              "removeBackground": {
                "maximum": 100,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0
              },
              "boost": {
                "default": "disable",
                "$ref": "#/components/schemas/LeresBoost"
              },
              "kind": {
                "enum": [
                  "leres-depth"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageMangaLineartInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "kind": {
                "enum": [
                  "lineart-manga"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageMediaPipeFaceInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "maxFaces": {
                "maximum": 50,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 10
              },
              "minConfidence": {
                "maximum": 1,
                "minimum": 0.1,
                "type": "number",
                "format": "double",
                "default": 0.5
              },
              "kind": {
                "enum": [
                  "mediapipe-face"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageMetric3dDepthInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "backbone": {
                "default": "vit-small",
                "$ref": "#/components/schemas/Metric3dBackbone"
              },
              "fx": {
                "maximum": 4096,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1000
              },
              "fy": {
                "maximum": 4096,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1000
              },
              "kind": {
                "enum": [
                  "metric3d-depth"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageMetric3dNormalInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "backbone": {
                "default": "vit-small",
                "$ref": "#/components/schemas/Metric3dBackbone"
              },
              "fx": {
                "maximum": 4096,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1000
              },
              "fy": {
                "maximum": 4096,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1000
              },
              "kind": {
                "enum": [
                  "metric3d-normal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageMidasDepthInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "a": {
                "maximum": 15.71,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 6.28
              },
              "backgroundThreshold": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.1
              },
              "kind": {
                "enum": [
                  "midas-depth"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageMidasNormalInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "a": {
                "maximum": 15.71,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 6.28
              },
              "backgroundThreshold": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.1
              },
              "kind": {
                "enum": [
                  "midas-normal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageMlsdInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "scoreThreshold": {
                "maximum": 2,
                "minimum": 0.01,
                "type": "number",
                "format": "double",
                "default": 0.1
              },
              "distanceThreshold": {
                "maximum": 20,
                "minimum": 0.01,
                "type": "number",
                "format": "double",
                "default": 0.1
              },
              "kind": {
                "enum": [
                  "mlsd"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageOneFormerAde20kInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "kind": {
                "enum": [
                  "oneformer-ade20k"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageOneFormerCocoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "kind": {
                "enum": [
                  "oneformer-coco"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageOpenPoseInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "detectHand": {
                "type": "boolean",
                "default": true
              },
              "detectBody": {
                "type": "boolean",
                "default": true
              },
              "detectFace": {
                "type": "boolean",
                "default": false
              },
              "kind": {
                "enum": [
                  "openpose"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageOutput": {
        "required": [
          "blob"
        ],
        "type": "object",
        "properties": {
          "blob": {
            "$ref": "#/components/schemas/ImageBlob"
          }
        },
        "additionalProperties": false
      },
      "PreprocessImagePidinetInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "safe": {
                "default": "enable",
                "$ref": "#/components/schemas/SafeMode"
              },
              "kind": {
                "enum": [
                  "pidinet"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageRealisticLineartInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "coarse": {
                "default": "disable",
                "$ref": "#/components/schemas/CoarseMode"
              },
              "kind": {
                "enum": [
                  "lineart-realistic"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageScribbleInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "kind": {
                "enum": [
                  "scribble"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageScribblePidinetInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "safe": {
                "default": "enable",
                "$ref": "#/components/schemas/SafeMode"
              },
              "kind": {
                "enum": [
                  "scribble-pidinet"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageScribbleXdogInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "threshold": {
                "maximum": 64,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 32
              },
              "kind": {
                "enum": [
                  "scribble-xdog"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageSdPoseInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "detectHand": {
                "type": "boolean",
                "default": true
              },
              "detectBody": {
                "type": "boolean",
                "default": true
              },
              "detectFace": {
                "type": "boolean",
                "default": true
              },
              "kind": {
                "enum": [
                  "sdpose"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageShuffleInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "seed": {
                "maximum": 2147483647,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 0
              },
              "kind": {
                "enum": [
                  "shuffle"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageStandardLineartInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "gaussianSigma": {
                "maximum": 100,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 6
              },
              "intensityThreshold": {
                "maximum": 16,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 8
              },
              "kind": {
                "enum": [
                  "lineart-standard"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/PreprocessImageInput"
              },
              "output": {
                "$ref": "#/components/schemas/PreprocessImageOutput"
              },
              "$type": {
                "enum": [
                  "preprocessImage"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the PreprocessImageStep step.",
                "$ref": "#/components/schemas/PreprocessImageInput"
              },
              "$type": {
                "enum": [
                  "preprocessImage"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageTeedInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "safeSteps": {
                "maximum": 10,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 2
              },
              "kind": {
                "enum": [
                  "teed"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageTileInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "pyrUpIterations": {
                "maximum": 10,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 3
              },
              "kind": {
                "enum": [
                  "tile"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageUniFormerInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "kind": {
                "enum": [
                  "uniformer"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageZoeDepthAnythingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "environment": {
                "default": "indoor",
                "$ref": "#/components/schemas/ZoeDepthEnvironment"
              },
              "kind": {
                "enum": [
                  "zoe-depth-anything"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessImageZoeDepthInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessImageInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "kind": {
                "enum": [
                  "zoe-depth"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessVideoCannyInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessVideoInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "lowThreshold": {
                "maximum": 255,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 100
              },
              "highThreshold": {
                "maximum": 255,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 200
              },
              "kind": {
                "enum": [
                  "canny"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessVideoDepthAnythingV2Input": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessVideoInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "checkpoint": {
                "default": "depth_anything_v2_vitl.pth",
                "$ref": "#/components/schemas/DepthAnythingV2Checkpoint"
              },
              "kind": {
                "enum": [
                  "depth-anything-v2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessVideoDwPoseInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessVideoInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "detectHand": {
                "type": "boolean",
                "default": true
              },
              "detectBody": {
                "type": "boolean",
                "default": true
              },
              "detectFace": {
                "type": "boolean",
                "default": true
              },
              "bboxDetector": {
                "default": "yolox_l.onnx",
                "$ref": "#/components/schemas/DwPoseBboxDetector"
              },
              "poseEstimator": {
                "default": "dw-ll_ucoco_384_bs5.torchscript.pt",
                "$ref": "#/components/schemas/DwPoseEstimator"
              },
              "kind": {
                "enum": [
                  "dwpose"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessVideoGrayInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessVideoInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "kind": {
                "enum": [
                  "gray"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessVideoHedInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessVideoInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "safe": {
                "default": "enable",
                "$ref": "#/components/schemas/SafeMode"
              },
              "kind": {
                "enum": [
                  "hed"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessVideoInput": {
        "required": [
          "kind",
          "preprocessorType",
          "video"
        ],
        "type": "object",
        "properties": {
          "kind": {
            "type": "string"
          },
          "video": {
            "type": "string",
            "format": "uri"
          },
          "resolution": {
            "maximum": 4096,
            "minimum": 64,
            "type": "integer",
            "description": "The target resolution of the video's shorter edge.",
            "format": "int32",
            "default": 512
          },
          "preprocessorType": {
            "type": "string",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "kind",
          "mapping": {
            "canny": "#/components/schemas/PreprocessVideoCannyInput",
            "mlsd": "#/components/schemas/PreprocessVideoMlsdInput",
            "depth-anything-v2": "#/components/schemas/PreprocessVideoDepthAnythingV2Input",
            "hed": "#/components/schemas/PreprocessVideoHedInput",
            "dwpose": "#/components/schemas/PreprocessVideoDwPoseInput",
            "sdpose": "#/components/schemas/PreprocessVideoSdPoseInput",
            "scribble": "#/components/schemas/PreprocessVideoScribbleInput",
            "gray": "#/components/schemas/PreprocessVideoGrayInput",
            "layout": "#/components/schemas/PreprocessVideoLayoutInput"
          }
        }
      },
      "PreprocessVideoLayoutInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessVideoInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "threshold": {
                "type": "number",
                "format": "double",
                "default": 0.5
              },
              "className": {
                "type": "string",
                "description": "A COCO class name, or \"all\" to keep every detected class.",
                "default": "all"
              },
              "maxDetections": {
                "type": "integer",
                "format": "int32",
                "default": 10
              },
              "kind": {
                "enum": [
                  "layout"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessVideoMlsdInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessVideoInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "scoreThreshold": {
                "maximum": 2,
                "minimum": 0.01,
                "type": "number",
                "format": "double",
                "default": 0.1
              },
              "distanceThreshold": {
                "maximum": 20,
                "minimum": 0.01,
                "type": "number",
                "format": "double",
                "default": 0.1
              },
              "kind": {
                "enum": [
                  "mlsd"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessVideoOutput": {
        "required": [
          "blob"
        ],
        "type": "object",
        "properties": {
          "blob": {
            "$ref": "#/components/schemas/VideoBlob"
          }
        },
        "additionalProperties": false
      },
      "PreprocessVideoScribbleInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessVideoInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "threshold": {
                "maximum": 64,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 32
              },
              "kind": {
                "enum": [
                  "scribble"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessVideoSdPoseInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PreprocessVideoInput"
          },
          {
            "required": [
              "kind"
            ],
            "type": "object",
            "properties": {
              "detectHand": {
                "type": "boolean",
                "default": true
              },
              "detectBody": {
                "type": "boolean",
                "default": true
              },
              "detectFace": {
                "type": "boolean",
                "default": true
              },
              "kind": {
                "enum": [
                  "sdpose"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessVideoStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/PreprocessVideoInput"
              },
              "output": {
                "$ref": "#/components/schemas/PreprocessVideoOutput"
              },
              "$type": {
                "enum": [
                  "preprocessVideo"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "PreprocessVideoStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the PreprocessVideoStep step.",
                "$ref": "#/components/schemas/PreprocessVideoInput"
              },
              "$type": {
                "enum": [
                  "preprocessVideo"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Priority": {
        "enum": [
          "high",
          "normal",
          "low",
          "idle"
        ],
        "type": "string"
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "null",
              "string"
            ]
          },
          "title": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "detail": {
            "type": [
              "null",
              "string"
            ]
          },
          "instance": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": {}
      },
      "PromptEnhancementInput": {
        "required": [
          "ecosystem",
          "prompt"
        ],
        "type": "object",
        "properties": {
          "ecosystem": {
            "minLength": 1,
            "type": "string",
            "description": "The target ecosystem (e.g., \"sd1\", \"sdxl\", \"flux\", \"ltx2\")."
          },
          "prompt": {
            "minLength": 1,
            "type": "string"
          },
          "negativePrompt": {
            "type": [
              "null",
              "string"
            ]
          },
          "temperature": {
            "maximum": 1,
            "minimum": 0,
            "type": [
              "null",
              "number"
            ],
            "description": "LLM temperature for enhancement creativity (0.0–1.0). Defaults to 0.7.",
            "format": "double"
          },
          "instruction": {
            "type": [
              "null",
              "string"
            ],
            "description": "Optional instruction to guide how the prompt is enhanced (e.g., \"expand to 77 tokens\", \"keep it under 20 words\")."
          },
          "images": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string",
              "description": "Either A URL, A DataURL or a Base64 string",
              "format": "source-image"
            },
            "description": "Reference images (URLs, data URIs, raw base64 or AIR strings) the model considers for subject, style, lighting and\ncomposition. Requires the ecosystem's prompt-analysis model to be vision-capable; non-VLM models silently ignore them."
          }
        },
        "additionalProperties": false
      },
      "PromptEnhancementOutput": {
        "required": [
          "enhancedPrompt",
          "issues",
          "recommendations"
        ],
        "type": "object",
        "properties": {
          "issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PromptIssue"
            }
          },
          "recommendations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "enhancedPrompt": {
            "type": "string"
          },
          "enhancedNegativePrompt": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "PromptEnhancementStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/PromptEnhancementInput"
              },
              "output": {
                "$ref": "#/components/schemas/PromptEnhancementOutput"
              },
              "$type": {
                "enum": [
                  "promptEnhancement"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "PromptEnhancement"
      },
      "PromptEnhancementStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the PromptEnhancementStep step.",
                "$ref": "#/components/schemas/PromptEnhancementInput"
              },
              "$type": {
                "enum": [
                  "promptEnhancement"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "PromptEnhancement"
      },
      "PromptIssue": {
        "required": [
          "description"
        ],
        "type": "object",
        "properties": {
          "description": {
            "type": "string"
          },
          "severity": {
            "type": [
              "null",
              "string"
            ],
            "description": "Severity level: \"info\", \"warning\", or \"error\"."
          }
        },
        "additionalProperties": false
      },
      "PromptModerationInput": {
        "required": [
          "positivePrompt"
        ],
        "type": "object",
        "properties": {
          "positivePrompt": {
            "type": "string",
            "description": "Original positive prompt, preserved without normalization. Empty is allowed."
          },
          "negativePrompt": {
            "type": [
              "null",
              "string"
            ],
            "description": "Original negative prompt; omitted/null is equivalent to an empty string."
          }
        },
        "additionalProperties": false
      },
      "PromptModerationLabelResult": {
        "required": [
          "abstained",
          "flagged",
          "label",
          "score",
          "threshold",
          "unknownProbability"
        ],
        "type": "object",
        "properties": {
          "label": {
            "type": "string"
          },
          "score": {
            "type": "number",
            "description": "P(yes) + 0.5 P(unknown), after the saved temperature calibration.",
            "format": "double"
          },
          "threshold": {
            "type": "number",
            "format": "double"
          },
          "flagged": {
            "type": "boolean"
          },
          "unknownProbability": {
            "type": "number",
            "format": "double"
          },
          "abstained": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "PromptModerationOutput": {
        "required": [
          "model",
          "policyVersion",
          "results"
        ],
        "type": "object",
        "properties": {
          "model": {
            "type": "string"
          },
          "policyVersion": {
            "type": "string"
          },
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PromptModerationLabelResult"
            }
          }
        },
        "additionalProperties": false
      },
      "PromptModerationStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/PromptModerationInput"
              },
              "output": {
                "$ref": "#/components/schemas/PromptModerationOutput"
              },
              "$type": {
                "enum": [
                  "promptModeration"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "PromptModeration"
      },
      "PromptModerationStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the PromptModerationStep step.",
                "$ref": "#/components/schemas/PromptModerationInput"
              },
              "$type": {
                "enum": [
                  "promptModeration"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "PromptModeration"
      },
      "QueuedResourceAvailability": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ResourceAvailability"
          },
          {
            "required": [
              "lane",
              "queuePosition",
              "status"
            ],
            "type": "object",
            "properties": {
              "queuePosition": {
                "type": "integer",
                "format": "int32"
              },
              "lane": {
                "$ref": "#/components/schemas/Priority"
              },
              "etaSeconds": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "boostedEtaSeconds": {
                "type": [
                  "null",
                  "integer"
                ],
                "description": "What `etaSeconds` would become in the High lane. Null when already High.",
                "format": "int32"
              },
              "rateLimitBytesPerSecond": {
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Per-stream ceiling the lane applies to this download. Null when uncapped; boosting to High lifts it.",
                "format": "int64"
              },
              "status": {
                "enum": [
                  "queued"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Waiting in a download lane. No progress or speed — nothing is transferring yet."
      },
      "Qwen20bCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Qwen20bImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "version": {
                "enum": [
                  "latest",
                  "2509",
                  "2512"
                ],
                "type": "string",
                "default": "latest"
              },
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "20b"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Qwen20bEditImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Qwen20bImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "height",
              "images",
              "model",
              "operation",
              "width"
            ],
            "type": "object",
            "properties": {
              "version": {
                "enum": [
                  "latest",
                  "2509",
                  "2511"
                ],
                "type": "string",
                "default": "latest"
              },
              "images": {
                "maxItems": 10,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "width": {
                "maximum": 2048,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "height": {
                "maximum": 2048,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "20b"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Qwen20bImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/QwenImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampleMethod": {
                "default": "euler",
                "$ref": "#/components/schemas/SdCppSampleMethod"
              },
              "schedule": {
                "default": "simple",
                "$ref": "#/components/schemas/SdCppSchedule"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 2.5
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "model": {
                "enum": [
                  "20b"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Qwen20bCreateImageGenInput",
                "editImage": "#/components/schemas/Qwen20bEditImageGenInput",
                "createVariant": "#/components/schemas/Qwen20bVariantImageGenInput"
              }
            }
          }
        ]
      },
      "Qwen20bVariantImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Qwen20bImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "height",
              "image",
              "model",
              "operation",
              "width"
            ],
            "type": "object",
            "properties": {
              "version": {
                "enum": [
                  "latest",
                  "2509",
                  "2512"
                ],
                "type": "string",
                "default": "latest"
              },
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "strength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.7
              },
              "width": {
                "maximum": 2048,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "height": {
                "maximum": 2048,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "operation": {
                "enum": [
                  "createVariant"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "20b"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Qwen21AIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "defaultSteps": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "qwen21"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Qwen2CreateFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Qwen2FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "qwen2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Qwen2EditFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Qwen2FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 3,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "qwen2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Qwen2FalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "minLength": 1,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 500,
                "type": [
                  "null",
                  "string"
                ]
              },
              "quantity": {
                "maximum": 10,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "imageSize": {
                "enum": [
                  "square_hd",
                  "square",
                  "portrait_4_3",
                  "portrait_16_9",
                  "landscape_4_3",
                  "landscape_16_9"
                ],
                "type": "string",
                "default": "square_hd"
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": true
              },
              "model": {
                "enum": [
                  "qwen2"
                ],
                "type": "string"
              },
              "enableSafetyChecker": {
                "type": "boolean",
                "default": false
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Qwen2CreateFalImageGenInput",
                "proCreateImage": "#/components/schemas/Qwen2ProCreateFalImageGenInput",
                "editImage": "#/components/schemas/Qwen2EditFalImageGenInput",
                "proEditImage": "#/components/schemas/Qwen2ProEditFalImageGenInput"
              }
            }
          }
        ]
      },
      "Qwen2ProCreateFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Qwen2FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "proCreateImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "qwen2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Qwen2ProEditFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Qwen2FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 3,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "proEditImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "qwen2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Qwen3BaseTTSInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Qwen3TextToSpeechInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation",
              "xVectorOnlyMode"
            ],
            "type": "object",
            "properties": {
              "refAudioUrl": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Reference audio AIR URN or external URL for voice cloning.\nAccepts AIR URNs (existing resources) or HTTP(S) URLs.",
                "format": "uri"
              },
              "refText": {
                "maxLength": 1000,
                "type": [
                  "null",
                  "string"
                ],
                "description": "Transcript of the reference audio.\nRequired for Base mode unless XVectorOnlyMode is true."
              },
              "xVectorOnlyMode": {
                "type": "boolean",
                "description": "If true, uses only speaker embedding (ref_text not required)."
              },
              "operation": {
                "enum": [
                  "base"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen3"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "vllm-omni"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Qwen3CustomVoiceTTSInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Qwen3TextToSpeechInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation",
              "speaker"
            ],
            "type": "object",
            "properties": {
              "speaker": {
                "enum": [
                  "aiden",
                  "dylan",
                  "eric",
                  "ono_anna",
                  "ryan",
                  "serena",
                  "sohee",
                  "uncle_fu",
                  "vivian"
                ],
                "type": "string",
                "description": "Built-in speaker name for CustomVoice mode."
              },
              "instruct": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Optional style instruction (e.g., \"speak slowly and clearly\")."
              },
              "operation": {
                "enum": [
                  "customVoice"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen3"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "vllm-omni"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Qwen3TextToSpeechInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VllmOmniTextToSpeechInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "maxNewTokens": {
                "maximum": 2048,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "ecosystem": {
                "enum": [
                  "qwen3"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "vllm-omni"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "base": "#/components/schemas/Qwen3BaseTTSInput",
                "customVoice": "#/components/schemas/Qwen3CustomVoiceTTSInput",
                "voiceDesign": "#/components/schemas/Qwen3VoiceDesignTTSInput"
              }
            }
          }
        ]
      },
      "Qwen3VoiceDesignTTSInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Qwen3TextToSpeechInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "instruct",
              "operation"
            ],
            "type": "object",
            "properties": {
              "instruct": {
                "type": "string",
                "description": "Natural-language description of the desired voice\n(e.g., \"a calm middle-aged male narrator with a slight British accent\")."
              },
              "operation": {
                "enum": [
                  "voiceDesign"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen3"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "vllm-omni"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "QwenAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "version": {
                "enum": [
                  "latest",
                  "2509",
                  "2512"
                ],
                "type": "string",
                "default": "latest"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "QwenApiCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/QwenApiImageGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "model": {
                "enum": [
                  "3.0-pro",
                  "2.0-pro",
                  "2.0",
                  "max",
                  "plus"
                ],
                "type": "string",
                "default": "2.0"
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "QwenApiEditImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/QwenApiImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "operation"
            ],
            "type": "object",
            "properties": {
              "model": {
                "enum": [
                  "3.0-pro",
                  "2.0-pro",
                  "2.0",
                  "edit-max",
                  "edit-plus",
                  "edit"
                ],
                "type": "string",
                "default": "2.0"
              },
              "images": {
                "maxItems": 3,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                },
                "description": "Reference images. DashScope numbers them by input order — prompts refer to them as \"Image 1\", \"Image 2\", \"Image 3\"."
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "QwenApiImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageGenInput"
          },
          {
            "required": [
              "engine",
              "height",
              "operation",
              "prompt",
              "width"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createImage"
              },
              "prompt": {
                "maxLength": 5000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 500,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "quantity": {
                "maximum": 6,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "width": {
                "maximum": 2048,
                "minimum": 0,
                "type": "integer",
                "format": "int32"
              },
              "height": {
                "maximum": 2048,
                "minimum": 0,
                "type": "integer",
                "format": "int32"
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": true
              },
              "engine": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "watermark": {
                "type": "boolean",
                "default": false
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/QwenApiCreateImageGenInput",
                "editImage": "#/components/schemas/QwenApiEditImageGenInput"
              }
            }
          }
        ],
        "description": "Qwen image models hosted by Alibaba Model Studio (DashScope). Distinct from the `sdcpp`/`qwen`\necosystem, which runs Qwen-Image 20B on our own workers."
      },
      "QwenImageBenchInput": {
        "required": [
          "dimensions",
          "items"
        ],
        "type": "object",
        "properties": {
          "items": {
            "minItems": 1,
            "type": "array",
            "items": {
              "description": "A single generated image and the prompt it should be judged against.",
              "$ref": "#/components/schemas/QwenImageBenchItem"
            },
            "description": "Prompt/image pairs to score. Each item is evaluated independently."
          },
          "model": {
            "type": "string",
            "default": "urn:air:qwen3:repository:huggingface:Civitai/Qwen-Image-Bench-AutoRound-AWQ-INT4@main.tar"
          },
          "maxTokens": {
            "maximum": 128000,
            "minimum": 1,
            "type": "integer",
            "format": "int32",
            "default": 2048
          },
          "seed": {
            "type": "integer",
            "description": "Deterministic seed. The model card recommends 42.",
            "format": "int64",
            "default": 42
          },
          "dimensions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Top-level benchmark dimensions to evaluate. Leave empty to evaluate all dimensions."
          }
        },
        "additionalProperties": false
      },
      "QwenImageBenchItem": {
        "required": [
          "id",
          "image",
          "prompt"
        ],
        "type": "object",
        "properties": {
          "id": {
            "minLength": 1,
            "type": "string",
            "description": "Stable caller-provided identifier used as the output key."
          },
          "prompt": {
            "minLength": 1,
            "type": "string"
          },
          "image": {
            "type": "string",
            "description": "Either A URL, A DataURL or a Base64 string",
            "format": "source-image"
          }
        },
        "additionalProperties": false,
        "description": "A single generated image and the prompt it should be judged against."
      },
      "QwenImageBenchItemResult": {
        "required": [
          "errors",
          "fieldScores",
          "scores"
        ],
        "type": "object",
        "properties": {
          "fieldScores": {
            "type": "object",
            "additionalProperties": {
              "type": [
                "null",
                "number"
              ],
              "format": "double"
            },
            "description": "Top-level benchmark dimension scores, mapped to the benchmark 0/60/100 scale."
          },
          "totalScore": {
            "type": [
              "null",
              "number"
            ],
            "description": "Average of the available top-level field scores.",
            "format": "double"
          },
          "scores": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QwenImageBenchScoreNode"
            }
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Parse errors keyed by benchmark dimension."
          },
          "error": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false
      },
      "QwenImageBenchOutput": {
        "required": [
          "results"
        ],
        "type": "object",
        "properties": {
          "results": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/QwenImageBenchItemResult"
            },
            "description": "Results keyed by the caller-provided item id."
          }
        },
        "additionalProperties": false
      },
      "QwenImageBenchScoreNode": {
        "required": [
          "children",
          "name"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "score": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/QwenImageBenchScoreNode"
            }
          }
        },
        "additionalProperties": false
      },
      "QwenImageBenchStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/QwenImageBenchInput"
              },
              "output": {
                "$ref": "#/components/schemas/QwenImageBenchOutput"
              },
              "$type": {
                "enum": [
                  "qwenImageBench"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Qwen Image Bench"
      },
      "QwenImageBenchStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the QwenImageBenchStep step.",
                "$ref": "#/components/schemas/QwenImageBenchInput"
              },
              "$type": {
                "enum": [
                  "qwenImageBench"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Qwen Image Bench"
      },
      "QwenImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SdCppImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "qwen"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "20b": "#/components/schemas/Qwen20bImageGenInput"
              }
            }
          }
        ]
      },
      "RepeatForClause": {
        "required": [
          "$ref",
          "as",
          "path"
        ],
        "type": "object",
        "properties": {
          "$ref": {
            "type": "string",
            "description": "The dynamic assignment reference to the array to iterate over (e.g., \"$stepName\")."
          },
          "path": {
            "type": "string",
            "description": "The path to the array property in the referenced step's output (e.g., \"output.frames\")."
          },
          "as": {
            "type": "string",
            "description": "The variable name to use when referencing the current iteration item in template steps (e.g., \"frame\")."
          }
        },
        "additionalProperties": false
      },
      "RepeatInput": {
        "required": [
          "for",
          "template"
        ],
        "type": "object",
        "properties": {
          "for": {
            "description": "The \"for\" clause that specifies what array to iterate over and how to reference items.",
            "$ref": "#/components/schemas/RepeatForClause"
          },
          "template": {
            "description": "The template of the workflow step to execute for each item in the iteration.",
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          }
        },
        "additionalProperties": false
      },
      "RepeatOutput": {
        "required": [
          "steps"
        ],
        "type": "object",
        "properties": {
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowStep"
            }
          }
        },
        "additionalProperties": false
      },
      "ResizeTransform": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageTransform"
          },
          {
            "required": [
              "type"
            ],
            "type": "object",
            "properties": {
              "targetWidth": {
                "maximum": 4096,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Target width in pixels. Height is calculated to maintain aspect ratio.",
                "format": "int32"
              },
              "type": {
                "enum": [
                  "resize"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Resizes an image to a target width while maintaining aspect ratio."
      },
      "ResourceAvailability": {
        "required": [
          "status"
        ],
        "type": "object",
        "properties": {
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "status",
          "mapping": {
            "unsupported": "#/components/schemas/UnsupportedResourceAvailability",
            "unavailable": "#/components/schemas/UnavailableResourceAvailability",
            "queued": "#/components/schemas/QueuedResourceAvailability",
            "loading": "#/components/schemas/LoadingResourceAvailability",
            "available": "#/components/schemas/AvailableResourceAvailability"
          }
        }
      },
      "ResourceFee": {
        "required": [
          "amount",
          "settlementCurrency",
          "type"
        ],
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          },
          "type": {
            "$ref": "#/components/schemas/ResourceFeeType"
          },
          "settlementCurrency": {
            "$ref": "#/components/schemas/SettlementCurrency"
          },
          "recipientModelVersionId": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ResourceFeeType": {
        "enum": [
          "perImageBuzz"
        ],
        "type": "string"
      },
      "ResourceInfo": {
        "required": [
          "air",
          "canGenerate",
          "checkPermission",
          "downloadUrls",
          "fileFormat",
          "hashes",
          "hasMatureContentRestriction",
          "hasNSFWContentRestriction",
          "size"
        ],
        "type": "object",
        "properties": {
          "air": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": "string"
          },
          "size": {
            "type": "integer",
            "description": "In bytes.",
            "format": "int64"
          },
          "hashes": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "downloadUrls": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "resourceName": {
            "type": [
              "null",
              "string"
            ]
          },
          "versionName": {
            "type": [
              "null",
              "string"
            ]
          },
          "invalidateAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "earlyAccessEndsAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "checkPermission": {
            "type": "boolean",
            "description": "Whether permission is required to use this resource."
          },
          "canGenerate": {
            "type": "boolean"
          },
          "freeTrialLimit": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Per-user limit on uses while the resource is in early access.",
            "format": "int32"
          },
          "requiresAuthorization": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "fileFormat": {
            "$ref": "#/components/schemas/FileFormat"
          },
          "hasMatureContentRestriction": {
            "type": "boolean",
            "description": "Generations using this resource are forced to not produce mature content."
          },
          "popularityRank": {
            "type": [
              "null",
              "number"
            ],
            "description": "0-1.",
            "format": "double"
          },
          "isFeatured": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "publishedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "hasNSFWContentRestriction": {
            "type": "boolean",
            "description": "NSFW covers X and XXX, whereas mature content also includes R."
          },
          "fee": {
            "description": "License fee charged per use.",
            "$ref": "#/components/schemas/ResourceFee"
          },
          "payoutEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "False makes the resource ineligible for compensation."
          },
          "fees": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/ResourceFee"
            },
            "description": "The full licensing-fee breakdown; each entry settles to its own recipient"
          },
          "userId": {
            "type": [
              "null",
              "integer"
            ],
            "description": "The owner of this resource, stamped onto compensation records at flush time so\nattribution follows ownership transfers instead of being resolved retroactively.",
            "format": "int32"
          },
          "availability": {
            "description": "Whether this resource can be generated with right now, across the whole fleet.",
            "$ref": "#/components/schemas/ResourceAvailability"
          },
          "isPromoted": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Promoted resources download in the High lane for free, whatever lane the job asked for."
          },
          "evictable": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "When false, workers keep the cluster's last copy of this resource rather than evicting it."
          },
          "tipsEnabled": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Unlike payoutEnabled, a licensing fee does not disqualify the resource from tips."
          }
        },
        "additionalProperties": false
      },
      "ResourceView": {
        "enum": [
          "queue",
          "loaded"
        ],
        "type": "string",
        "description": "A projection of the resource collection. There is no view that lists every known resource — resources\nare addressed by AIR and only materialise once something asks for them."
      },
      "ReveCreateFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ReveFalImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "reve"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ReveEditFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ReveFalImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "maxItems": 8,
                "minItems": 1,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                },
                "description": "Address these from the prompt as <frame>N</frame>, 0-based."
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "reve"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ReveFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 4000,
                "minLength": 1,
                "type": "string"
              },
              "aspectRatio": {
                "enum": [
                  "auto",
                  "4:1",
                  "3:1",
                  "21:9",
                  "2:1",
                  "17:9",
                  "16:9",
                  "3:2",
                  "4:3",
                  "5:4",
                  "1:1",
                  "4:5",
                  "3:4",
                  "2:3",
                  "9:16",
                  "1:2",
                  "1:3",
                  "1:4"
                ],
                "type": "string",
                "default": "auto"
              },
              "quantity": {
                "maximum": 10,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "model": {
                "enum": [
                  "reve"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ReveCreateFalImageGenInput",
                "editImage": "#/components/schemas/ReveEditFalImageGenInput"
              }
            }
          }
        ]
      },
      "SD1AIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "maxBatchSize"
            ],
            "type": "object",
            "properties": {
              "minSnrGamma": {
                "maximum": 20,
                "minimum": 0,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Compensates for the varying noise strength applied to training images, suppressing large jumps when images have little noise.",
                "format": "int32"
              },
              "model": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string",
                "default": "urn:air:sd1:checkpoint:civitai:127227@139180"
              },
              "maxBatchSize": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "sd1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 4,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Defaults to 1; raise it up to 4 for this ecosystem to train faster at the cost of more GPU memory.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "SafeMode": {
        "enum": [
          "enable",
          "disable"
        ],
        "type": "string"
      },
      "Scheduler": {
        "enum": [
          "eulerA",
          "euler",
          "lms",
          "heun",
          "dpM2",
          "dpM2A",
          "dpM2SA",
          "dpM2M",
          "dpmsde",
          "dpmFast",
          "dpmAdaptive",
          "lmsKarras",
          "dpM2Karras",
          "dpM2AKarras",
          "dpM2SAKarras",
          "dpM2MKarras",
          "dpmsdeKarras",
          "ddim",
          "plms",
          "uniPC",
          "undefined",
          "lcm",
          "ddpm",
          "deis",
          "dpM3MSDE"
        ],
        "type": "string"
      },
      "Sd1CreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Sd1ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 512
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 512
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "sd1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Sd1ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SdCppImageGenInput"
          },
          {
            "required": [
              "checkpointModel",
              "ecosystem",
              "engine",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampleMethod": {
                "default": "euler",
                "$ref": "#/components/schemas/SdCppSampleMethod"
              },
              "schedule": {
                "default": "discrete",
                "$ref": "#/components/schemas/SdCppSchedule"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 7
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "checkpointModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "sd1"
                ],
                "type": "string"
              },
              "vaeModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "embeddings": {
                "type": "array",
                "items": {
                  "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                  "type": "string"
                }
              },
              "clipSkip": {
                "type": "integer",
                "format": "int32",
                "default": 2
              },
              "uCache": {
                "default": "off",
                "$ref": "#/components/schemas/SdCppUCacheMode"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Sd1CreateImageGenInput",
                "createVariant": "#/components/schemas/Sd1VariantImageGenInput"
              }
            }
          }
        ]
      },
      "Sd1VariantImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Sd1ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "image",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 512
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 512
              },
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "strength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.7
              },
              "operation": {
                "enum": [
                  "createVariant"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "sd1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "SdCppImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "ecosystem": {
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "ecosystem",
              "mapping": {
                "qwen": "#/components/schemas/QwenImageGenInput",
                "zImage": "#/components/schemas/ZImageImageGenInput",
                "anima": "#/components/schemas/AnimaImageGenInput",
                "sd1": "#/components/schemas/Sd1ImageGenInput",
                "sdxl": "#/components/schemas/SdxlImageGenInput",
                "flux1": "#/components/schemas/Flux1SdCppImageGenInput",
                "flux2Dev": "#/components/schemas/Flux2DevSdCppImageGenInput",
                "flux2Klein": "#/components/schemas/Flux2KleinSdCppImageGenInput"
              }
            }
          }
        ]
      },
      "SdCppSampleMethod": {
        "enum": [
          "euler",
          "heun",
          "dpm2",
          "dpm++2s_a",
          "dpm++2m",
          "dpm++2mv2",
          "ipndm",
          "ipndm_v",
          "ddim_trailing",
          "euler_a",
          "lcm",
          "res_multistep",
          "res_2s",
          "tcd",
          "er_sde"
        ],
        "type": "string"
      },
      "SdCppSchedule": {
        "enum": [
          "simple",
          "discrete",
          "karras",
          "exponential",
          "ays",
          "bong_tangent",
          "gits",
          "sgm_uniform",
          "smoothstep",
          "kl_optimal",
          "lcm"
        ],
        "type": "string"
      },
      "SdCppUCacheMode": {
        "enum": [
          "off",
          "normal"
        ],
        "type": "string"
      },
      "SdxlAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "maxBatchSize"
            ],
            "type": "object",
            "properties": {
              "minSnrGamma": {
                "maximum": 20,
                "minimum": 0,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Compensates for the varying noise strength applied to training images, suppressing large jumps when images have little noise.",
                "format": "int32"
              },
              "model": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string",
                "default": "urn:air:sdxl:checkpoint:civitai:101055@128078"
              },
              "maxBatchSize": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "sdxl"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 4,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Defaults to 1; raise it up to 4 for this ecosystem to train faster at the cost of more GPU memory.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "SdxlCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SdxlImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "sdxl"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "SdxlImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SdCppImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampleMethod": {
                "default": "euler",
                "$ref": "#/components/schemas/SdCppSampleMethod"
              },
              "schedule": {
                "default": "discrete",
                "$ref": "#/components/schemas/SdCppSchedule"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 7
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "checkpointModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string",
                "default": "urn:air:sdxl:checkpoint:civitai:101055@128078"
              },
              "ecosystem": {
                "enum": [
                  "sdxl"
                ],
                "type": "string"
              },
              "vaeModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "embeddings": {
                "type": "array",
                "items": {
                  "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                  "type": "string"
                }
              },
              "clipSkip": {
                "type": "integer",
                "format": "int32",
                "default": 2
              },
              "uCache": {
                "default": "off",
                "$ref": "#/components/schemas/SdCppUCacheMode"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/SdxlCreateImageGenInput",
                "createVariant": "#/components/schemas/SdxlVariantImageGenInput"
              }
            }
          }
        ]
      },
      "SdxlVariantImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SdxlImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "image",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "strength": {
                "maximum": 1,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 0.7
              },
              "operation": {
                "enum": [
                  "createVariant"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "sdxl"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "SeedanceModel": {
        "enum": [
          "v2",
          "v2-fast",
          "v2-mini",
          "v2.5"
        ],
        "type": "string"
      },
      "SeedanceVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "aspectRatio",
              "duration",
              "engine",
              "resolution"
            ],
            "type": "object",
            "properties": {
              "model": {
                "default": "v2",
                "$ref": "#/components/schemas/SeedanceModel"
              },
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4",
                  "21:9",
                  "adaptive"
                ],
                "type": "string"
              },
              "duration": {
                "enum": [
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15,
                  16,
                  17,
                  18,
                  19,
                  20,
                  21,
                  22,
                  23,
                  24,
                  25,
                  26,
                  27,
                  28,
                  29,
                  30
                ],
                "type": "integer",
                "format": "int32"
              },
              "generateAudio": {
                "type": "boolean",
                "default": true
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "resolution": {
                "enum": [
                  "480p",
                  "720p",
                  "1080p"
                ],
                "type": "string"
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "referenceVideos": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "referenceAudios": {
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uri"
                }
              },
              "engine": {
                "enum": [
                  "seedance"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "SeedreamImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageGenInput"
          },
          {
            "required": [
              "engine",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "prompt": {
                "minLength": 1,
                "type": "string"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "width": {
                "maximum": 4096,
                "minimum": 256,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 4096,
                "minimum": 256,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "guidanceScale": {
                "maximum": 20,
                "minimum": 1,
                "type": "number",
                "description": "Model/provider guidance strength. This is not a portable classifier-free guidance scale.",
                "format": "double",
                "default": 2.5
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "enableSafetyChecker": {
                "type": "boolean",
                "default": false
              },
              "version": {
                "default": "v4.5",
                "$ref": "#/components/schemas/SeedreamVersion"
              },
              "images": {
                "maxItems": 10,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "engine": {
                "enum": [
                  "seedream"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "SeedreamVersion": {
        "enum": [
          "v3",
          "v4",
          "v4.5",
          "v5.0-lite",
          "v5.0-pro"
        ],
        "type": "string"
      },
      "ServiceHistory": {
        "required": [
          "buckets",
          "interval"
        ],
        "type": "object",
        "properties": {
          "interval": {
            "type": "string",
            "description": "The bucket size the series is grouped by: 5m, 1h or 1d."
          },
          "buckets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BucketResponse"
            },
            "description": "Newest bucket first. Each spans one `interval`."
          }
        },
        "additionalProperties": false
      },
      "ServiceResponse": {
        "required": [
          "category",
          "id",
          "parameters",
          "status",
          "tags"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Variable-depth path, e.g. \"image/flux2/klein/createImage/9b\". Opaque: read\n`parameters` rather than splitting this on \"/\", as the depth and the meaning of\neach segment differ per engine."
          },
          "category": {
            "type": "string",
            "description": "The id's first segment."
          },
          "parameters": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "The id decomposed, e.g. { engine: flux2, model: klein, operation: createImage }."
          },
          "step": {
            "type": [
              "null",
              "string"
            ],
            "description": "The workflow step $type this service is reached through."
          },
          "submit": {
            "type": [
              "null",
              "string"
            ],
            "description": "Where to submit this service."
          },
          "estimate": {
            "type": [
              "null",
              "string"
            ],
            "description": "Returns the exact cost of a given input without running it."
          },
          "name": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "strengths": {
            "type": [
              "null",
              "string"
            ]
          },
          "weaknesses": {
            "type": [
              "null",
              "string"
            ]
          },
          "releasedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "modalities": {
            "description": "What this consumes and produces. Independent of `category`, and null for\nservices with no meaningful modality.",
            "$ref": "#/components/schemas/ModalitiesResponse"
          },
          "status": {
            "description": "Health over the requested window. Always present: a service with no traffic reports\n\"unknown\" rather than nothing, so callers never have to distinguish absent from healthy.",
            "$ref": "#/components/schemas/ServiceStatus"
          },
          "metrics": {
            "description": "Null when nothing ran in the window.",
            "$ref": "#/components/schemas/MetricsResponse"
          },
          "history": {
            "description": "The metric time series over the window. Only present when a single service is requested —\nthe list omits it to stay cheap.",
            "$ref": "#/components/schemas/ServiceHistory"
          }
        },
        "additionalProperties": false,
        "description": "A service we offer."
      },
      "ServiceStatus": {
        "enum": [
          "unknown",
          "available",
          "degraded",
          "unavailable"
        ],
        "type": "string"
      },
      "SettlementCurrency": {
        "enum": [
          "buzz",
          "cash"
        ],
        "type": "string"
      },
      "ShadowRemoval": {
        "enum": [
          "off",
          "gentle",
          "aggressive"
        ],
        "type": "string",
        "description": "How aggressively background removal also strips soft drop shadows the strict color match misses."
      },
      "SoniloAudioGenInput": {
        "required": [
          "operation",
          "prompt"
        ],
        "type": "object",
        "properties": {
          "operation": {
            "type": [
              "null",
              "string"
            ],
            "default": "music"
          },
          "prompt": {
            "maxLength": 2000,
            "type": "string"
          }
        },
        "additionalProperties": false,
        "description": "Text-to-audio via Sonilo; `operation` picks music or a standalone sound effect.",
        "discriminator": {
          "propertyName": "operation",
          "mapping": {
            "music": "#/components/schemas/SoniloMusicInput",
            "soundEffect": "#/components/schemas/SoniloSoundEffectInput"
          }
        }
      },
      "SoniloAudioGenOutput": {
        "required": [
          "blob"
        ],
        "type": "object",
        "properties": {
          "blob": {
            "$ref": "#/components/schemas/AudioBlob"
          }
        },
        "additionalProperties": false
      },
      "SoniloAudioGenStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Text-to-audio via Sonilo; `operation` picks music or a standalone sound effect.",
                "$ref": "#/components/schemas/SoniloAudioGenInput"
              },
              "output": {
                "$ref": "#/components/schemas/SoniloAudioGenOutput"
              },
              "$type": {
                "enum": [
                  "soniloAudioGen"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate music or a standalone sound effect from a text prompt with Sonilo."
      },
      "SoniloAudioGenStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the SoniloAudioGenStep step.",
                "$ref": "#/components/schemas/SoniloAudioGenInput"
              },
              "$type": {
                "enum": [
                  "soniloAudioGen"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate music or a standalone sound effect from a text prompt with Sonilo."
      },
      "SoniloMusicInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SoniloAudioGenInput"
          },
          {
            "required": [
              "operation"
            ],
            "type": "object",
            "properties": {
              "duration": {
                "maximum": 360,
                "minimum": 5,
                "type": "integer",
                "description": "Track length in seconds. Sonilo bills a minimum of 10 seconds.",
                "format": "int32",
                "default": 90
              },
              "operation": {
                "enum": [
                  "music"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate a music track. Style, mood, instrumentation, lyrics and tempo are inferred from the prompt."
      },
      "SoniloSoundEffectInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SoniloAudioGenInput"
          },
          {
            "required": [
              "operation"
            ],
            "type": "object",
            "properties": {
              "duration": {
                "maximum": 180,
                "minimum": 0.5,
                "type": "number",
                "description": "Effect length in seconds. Sonilo bills a minimum of 3 seconds.",
                "format": "double",
                "default": 8
              },
              "operation": {
                "enum": [
                  "soundEffect"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate a standalone sound effect, e.g. \"heavy wooden door creaking open in a stone hallway\"."
      },
      "Sora2ImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SoraVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "image-to-video"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sora"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "FAL endpoints fal-ai/sora-2/image-to-video and fal-ai/sora-2/image-to-video/pro"
      },
      "Sora2TextToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SoraVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "text-to-video"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sora"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "FAL endpoints fal-ai/sora-2/text-to-video and fal-ai/sora-2/text-to-video/pro"
      },
      "SoraVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "text-to-video"
              },
              "duration": {
                "maximum": 12,
                "minimum": 4,
                "type": "integer",
                "format": "int32",
                "default": 4
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "resolution": {
                "enum": [
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "720p"
              },
              "aspectRatio": {
                "enum": [
                  "auto",
                  "16:9",
                  "9:16"
                ],
                "type": "string",
                "default": "auto"
              },
              "usePro": {
                "type": "boolean",
                "default": false
              },
              "engine": {
                "enum": [
                  "sora"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "text-to-video": "#/components/schemas/Sora2TextToVideoInput",
                "image-to-video": "#/components/schemas/Sora2ImageToVideoInput"
              }
            }
          }
        ],
        "description": "Retired: OpenAI shut down the Sora 2 API on 2026-09-24 and new requests are rejected."
      },
      "StarVectorImageToSvgInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageToSvgInput"
          },
          {
            "required": [
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "model": {
                "enum": [
                  "starvector-1b",
                  "starvector-8b"
                ],
                "type": "string",
                "default": "starvector-1b"
              },
              "precision": {
                "enum": [
                  "fp16",
                  "bf16"
                ],
                "type": "string",
                "default": "fp16"
              },
              "maxLength": {
                "maximum": 16000,
                "minimum": 100,
                "type": "integer",
                "format": "int32",
                "default": 4000
              },
              "ecosystem": {
                "enum": [
                  "starvector"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "StreamingBlobAppendResponse": {
        "required": [
          "nextSequence"
        ],
        "type": "object",
        "properties": {
          "nextSequence": {
            "type": "integer",
            "description": "The sequence number the blob expects next.",
            "format": "int64"
          }
        },
        "additionalProperties": false
      },
      "SystemMessage": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChatCompletionMessage"
          },
          {
            "required": [
              "content",
              "role"
            ],
            "type": "object",
            "properties": {
              "content": {
                "type": "string",
                "description": "The system message content (text only)."
              },
              "name": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "role": {
                "enum": [
                  "system"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "A system message that sets the behavior of the assistant."
      },
      "TextToImageInput": {
        "required": [
          "cfgScale",
          "prompt",
          "seed"
        ],
        "type": "object",
        "properties": {
          "quantity": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer",
            "description": "The number of batches to run.",
            "format": "int32",
            "default": 1
          },
          "batchSize": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer",
            "format": "int32",
            "default": 1
          },
          "model": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": "string",
            "default": "urn:air:sd1:checkpoint:civitai:4384@128713"
          },
          "additionalNetworks": {
            "type": "object",
            "additionalProperties": {
              "$ref": "#/components/schemas/ImageJobNetworkParams"
            },
            "description": "Additional networks keyed by their AIR."
          },
          "controlNets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageJobControlNet"
            }
          },
          "prompt": {
            "type": "string"
          },
          "negativePrompt": {
            "type": [
              "null",
              "string"
            ]
          },
          "scheduler": {
            "default": "eulerA",
            "$ref": "#/components/schemas/Scheduler"
          },
          "steps": {
            "maximum": 150,
            "minimum": 1,
            "type": "integer",
            "format": "int32",
            "default": 30
          },
          "cfgScale": {
            "maximum": 30,
            "minimum": 1,
            "type": "number",
            "format": "double",
            "default": 7.5
          },
          "width": {
            "maximum": 4084,
            "minimum": 64,
            "type": "integer",
            "format": "int32",
            "default": 512
          },
          "height": {
            "maximum": 4084,
            "minimum": 64,
            "type": "integer",
            "format": "int32",
            "default": 512
          },
          "seed": {
            "maximum": 4294967295,
            "minimum": 0,
            "type": "integer",
            "description": "The seed to use in image generation. Defaults to a random value if left unpopulated.",
            "format": "int64"
          },
          "clipSkip": {
            "type": "integer",
            "format": "int32",
            "default": 2
          },
          "imageMetadata": {
            "type": [
              "null",
              "string"
            ],
            "description": "External metadata that will be stored with the image"
          },
          "engine": {
            "type": [
              "null",
              "string"
            ]
          },
          "outputFormat": {
            "description": "The format in which to output images, Png and WebP may charge an additional cost",
            "default": "jpeg",
            "$ref": "#/components/schemas/OutputFormat"
          },
          "sourceImage": {
            "type": [
              "null",
              "string"
            ],
            "description": "An optional source image to trigger img-to-img",
            "format": "source-image"
          },
          "sourceImageDenoiseStrenght": {
            "type": "number",
            "description": "The strength/denoise factor for img2img (0.0-1.0). Lower values preserve more of the source image.",
            "format": "double",
            "default": 0.8
          }
        },
        "additionalProperties": false
      },
      "TextToImageOutput": {
        "required": [
          "images"
        ],
        "type": "object",
        "properties": {
          "images": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageBlob"
            }
          }
        },
        "additionalProperties": false
      },
      "TextToImageStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/TextToImageInput"
              },
              "output": {
                "$ref": "#/components/schemas/TextToImageOutput"
              },
              "$type": {
                "enum": [
                  "textToImage"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "TextToImage"
      },
      "TextToImageStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the TextToImageStep step.",
                "$ref": "#/components/schemas/TextToImageInput"
              },
              "$type": {
                "enum": [
                  "textToImage"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "TextToImage"
      },
      "TextToSpeechInput": {
        "required": [
          "engine",
          "text"
        ],
        "type": "object",
        "properties": {
          "engine": {
            "type": [
              "null",
              "string"
            ],
            "default": "custom"
          },
          "text": {
            "type": "string"
          },
          "language": {
            "type": [
              "null",
              "string"
            ],
            "description": "Target language (e.g., \"English\", \"Chinese\"). Defaults to \"Auto\"."
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "engine",
          "mapping": {
            "custom": "#/components/schemas/CustomTextToSpeechInput",
            "vllm-omni": "#/components/schemas/VllmOmniTextToSpeechInput"
          }
        }
      },
      "TextToSpeechOutput": {
        "required": [
          "audioBlob"
        ],
        "type": "object",
        "properties": {
          "audioBlob": {
            "$ref": "#/components/schemas/AudioBlob"
          },
          "modelType": {
            "type": [
              "null",
              "string"
            ],
            "description": "Whether the TTS used \"base\" (voice cloning) or \"custom_voice\" (built-in speaker) mode."
          },
          "speaker": {
            "type": [
              "null",
              "string"
            ],
            "description": "The speaker name used (set for CustomVoice mode, null for Base mode)."
          }
        },
        "additionalProperties": false
      },
      "TextToSpeechStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/TextToSpeechInput"
              },
              "output": {
                "$ref": "#/components/schemas/TextToSpeechOutput"
              },
              "$type": {
                "enum": [
                  "textToSpeech"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Text-to-Speech"
      },
      "TextToSpeechStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the TextToSpeechStep step.",
                "$ref": "#/components/schemas/TextToSpeechInput"
              },
              "$type": {
                "enum": [
                  "textToSpeech"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Text-to-Speech"
      },
      "ToolMessage": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChatCompletionMessage"
          },
          {
            "required": [
              "content",
              "role",
              "tool_call_id"
            ],
            "type": "object",
            "properties": {
              "content": {
                "type": "string"
              },
              "tool_call_id": {
                "type": "string"
              },
              "role": {
                "enum": [
                  "tool"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "A tool result message sent back after executing a tool call."
      },
      "TraceMode": {
        "enum": [
          "none",
          "logs",
          "binary"
        ],
        "type": "string",
        "description": "How much of a custom-comfy job's ComfyUI `/ws` activity to record to a\nstreaming blob the consumer can tail live."
      },
      "TrainingData": {
        "required": [
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "zip": "#/components/schemas/ZipTrainingData",
            "blobs": "#/components/schemas/BlobsTrainingData"
          }
        }
      },
      "TrainingInput": {
        "required": [
          "engine",
          "trainingData",
          "usesStepPricing"
        ],
        "type": "object",
        "properties": {
          "engine": {
            "type": "string"
          },
          "trainingData": {
            "$ref": "#/components/schemas/TrainingData"
          },
          "samples": {
            "description": "Sample generation configuration for preview outputs during training",
            "$ref": "#/components/schemas/TrainingInputSamples"
          },
          "usesStepPricing": {
            "type": "boolean",
            "description": "Whether this run uses step-based pricing rather than the legacy flat per-epoch price.",
            "readOnly": true
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "engine",
          "mapping": {
            "ai-toolkit": "#/components/schemas/AIToolkitTrainingInput",
            "comfy": "#/components/schemas/ComfyTrainingInput"
          }
        }
      },
      "TrainingInputSamples": {
        "type": "object",
        "properties": {
          "prompts": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "A selection of sample prompts to generate preview outputs during training."
          },
          "negativePrompt": {
            "type": [
              "null",
              "string"
            ]
          },
          "sourceImages": {
            "type": "array",
            "items": {
              "type": "string",
              "description": "Either A URL, A DataURL or a Base64 string",
              "format": "source-image"
            },
            "description": "Source images for edit-LoRA sample generation, passed as reference images when rendering samples."
          },
          "cfgScale": {
            "type": [
              "null",
              "number"
            ],
            "description": "CFG (guidance) scale for sample generation. When unset, each ecosystem uses its own default.",
            "format": "double"
          },
          "strength": {
            "type": [
              "null",
              "number"
            ],
            "description": "Strength of the trained LoRA when generating samples. Defaults to 1.0 when unset.",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "TrainingModerationStatus": {
        "enum": [
          "evaluating",
          "underReview",
          "approved",
          "rejected"
        ],
        "type": "string"
      },
      "TrainingOutput": {
        "required": [
          "epochs",
          "moderationStatus"
        ],
        "type": "object",
        "properties": {
          "moderationStatus": {
            "$ref": "#/components/schemas/TrainingModerationStatus"
          },
          "epochs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TrainingOutputEpochResult"
            },
            "description": "Every epoch of the run in epoch order, from the start of the step. Epochs that are still pending or\ntraining carry a model with `available: false` and no samples yet."
          }
        },
        "additionalProperties": false
      },
      "TrainingOutputEpochResult": {
        "required": [
          "epochNumber",
          "model",
          "samples"
        ],
        "type": "object",
        "properties": {
          "epochNumber": {
            "type": "integer",
            "description": "The epoch number (1-based)",
            "format": "int32"
          },
          "model": {
            "description": "The trained model blob for this epoch. `available` is false (and there is no URL) while the\nepoch is still pending or training.",
            "$ref": "#/components/schemas/Blob"
          },
          "samples": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Blob"
            },
            "description": "Sample outputs (images/videos/audio) generated with this epoch's model"
          },
          "traceUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "Live trace of this epoch's job when the input requested `trace`: plain text for `logs`, NDJSON for `events` (each line has unix-ms `t`, `type`, `epoch`).\n404 until the worker writes its first line, chunked while the job runs; null for epochs served from an existing checkpoint.",
            "format": "uri"
          }
        },
        "additionalProperties": false
      },
      "TrainingStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/TrainingInput"
              },
              "output": {
                "$ref": "#/components/schemas/TrainingOutput"
              },
              "$type": {
                "enum": [
                  "training"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Training"
      },
      "TrainingStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the TrainingStep step.",
                "$ref": "#/components/schemas/TrainingInput"
              },
              "$type": {
                "enum": [
                  "training"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Training"
      },
      "TrainingTraceMode": {
        "enum": [
          "none",
          "logs",
          "events"
        ],
        "type": "string",
        "description": "What an epoch job records to its live trace stream (`output.epochs[].traceUrl`), which the consumer can tail\nwhile the job runs."
      },
      "TransactionInfo": {
        "required": [
          "accountType",
          "amount",
          "type"
        ],
        "type": "object",
        "properties": {
          "type": {
            "$ref": "#/components/schemas/TransactionType"
          },
          "amount": {
            "maximum": 2147483647,
            "minimum": 0,
            "type": "integer",
            "format": "int32"
          },
          "id": {
            "type": [
              "null",
              "string"
            ]
          },
          "accountType": {
            "$ref": "#/components/schemas/BuzzClientAccount"
          }
        },
        "additionalProperties": false
      },
      "TransactionSummary": {
        "required": [
          "list"
        ],
        "type": "object",
        "properties": {
          "list": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionInfo"
            }
          },
          "insufficientBuzz": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Returned with whatif requests to indicate whether the user has insufficient buzz to run the workflow."
          }
        },
        "additionalProperties": false
      },
      "TransactionType": {
        "enum": [
          "debit",
          "credit"
        ],
        "type": "string"
      },
      "TranscodeInput": {
        "required": [
          "sourceUrl",
          "width"
        ],
        "type": "object",
        "properties": {
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "containerFormat": {
            "default": "mp4",
            "$ref": "#/components/schemas/ContainerFormat"
          },
          "width": {
            "type": "integer",
            "format": "int32"
          },
          "destinationUrl": {
            "type": [
              "null",
              "string"
            ],
            "format": "uri"
          },
          "public": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Serves the result at a stable unsigned url. Privileged callers only: nothing gates a read of\nit, so a block decided after the fact cannot take it back."
          },
          "hideMetadata": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Removes the source's container tags and chapters; the video and audio streams are untouched."
          },
          "maxDuration": {
            "maximum": 86400,
            "minimum": 0.1,
            "type": [
              "null",
              "number"
            ],
            "description": "Cuts the output after this many seconds.",
            "format": "double"
          },
          "watermark": {
            "description": "An image repeated across the whole output, burned into every frame.",
            "$ref": "#/components/schemas/Watermark"
          }
        },
        "additionalProperties": false
      },
      "TranscodeOutput": {
        "required": [
          "available",
          "id",
          "jobId"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Gets the id of the blob that contains the media."
          },
          "available": {
            "type": "boolean"
          },
          "url": {
            "type": [
              "null",
              "string"
            ],
            "format": "uri"
          },
          "urlExpiresAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "jobId": {
            "type": "string"
          },
          "tier": {
            "type": [
              "null",
              "string"
            ],
            "description": "Deprecated: use `publicUrl` to tell a public blob. Storage tier holding the blob; null when none\nwas declared."
          },
          "publicUrl": {
            "type": [
              "null",
              "string"
            ],
            "description": "The durable, unsigned url of a blob requested public, which a CDN can cache. May 404 until the workflow that\nproduces it completes; `url` waits instead.",
            "format": "uri"
          }
        },
        "additionalProperties": false
      },
      "TranscodeStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/TranscodeInput"
              },
              "output": {
                "$ref": "#/components/schemas/TranscodeOutput"
              },
              "$type": {
                "enum": [
                  "transcode"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Transcoding"
      },
      "TranscodeStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the TranscodeStep step.",
                "$ref": "#/components/schemas/TranscodeInput"
              },
              "$type": {
                "enum": [
                  "transcode"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Transcoding"
      },
      "TranscriptionInput": {
        "required": [
          "mediaUrl"
        ],
        "type": "object",
        "properties": {
          "mediaUrl": {
            "type": "string",
            "format": "uri"
          },
          "language": {
            "type": [
              "null",
              "string"
            ],
            "description": "Optional language hint (e.g., \"en\", \"zh\") to guide transcription."
          },
          "context": {
            "type": [
              "null",
              "string"
            ],
            "description": "Optional context prompt to improve transcription accuracy."
          },
          "returnTimeStamps": {
            "type": "boolean",
            "default": true
          }
        },
        "additionalProperties": false
      },
      "TranscriptionOutput": {
        "required": [
          "elapsedSeconds",
          "language",
          "text",
          "timeStamps"
        ],
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "language": {
            "type": "string",
            "description": "The detected language of the audio."
          },
          "timeStamps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TranscriptionTimeStamp"
            },
            "description": "Word-level timestamps (if requested)."
          },
          "elapsedSeconds": {
            "type": "number",
            "format": "double"
          },
          "hasAudio": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "False when the media has no audio track; null when the worker did not check."
          }
        },
        "additionalProperties": false
      },
      "TranscriptionStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/TranscriptionInput"
              },
              "output": {
                "$ref": "#/components/schemas/TranscriptionOutput"
              },
              "$type": {
                "enum": [
                  "transcription"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Transcription"
      },
      "TranscriptionStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the TranscriptionStep step.",
                "$ref": "#/components/schemas/TranscriptionInput"
              },
              "$type": {
                "enum": [
                  "transcription"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Transcription"
      },
      "TranscriptionTimeStamp": {
        "required": [
          "endTime",
          "startTime",
          "text"
        ],
        "type": "object",
        "properties": {
          "text": {
            "type": "string"
          },
          "startTime": {
            "type": "number",
            "format": "double"
          },
          "endTime": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Trellis2ComfyPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyPolyGenInput"
          },
          {
            "required": [
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "imageTo3D"
              },
              "modelVersion": {
                "enum": [
                  "pixal3D",
                  "trellis2"
                ],
                "type": "string",
                "default": "pixal3D"
              },
              "modelAir": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "structureSteps": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 12
              },
              "shapeSteps": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "upsampleSteps": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 12
              },
              "textureSteps": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 12
              },
              "structureCfg": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 7.5
              },
              "shapeCfg": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 7.5
              },
              "textureCfg": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "targetResolution": {
                "maximum": 2048,
                "minimum": 1024,
                "enum": [
                  1024,
                  1152,
                  1280,
                  1408,
                  1536,
                  1664,
                  1792,
                  1920,
                  2048
                ],
                "type": "integer",
                "format": "int32",
                "default": 1536
              },
              "shouldRemesh": {
                "type": "boolean",
                "default": true
              },
              "remeshResolution": {
                "maximum": 2048,
                "minimum": 32,
                "type": "integer",
                "format": "int32",
                "default": 768
              },
              "targetFaceCount": {
                "maximum": 50000000,
                "minimum": 1000,
                "type": "integer",
                "format": "int32",
                "default": 700000
              },
              "textureResolution": {
                "maximum": 8192,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 2048
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "model": {
                "enum": [
                  "trellis2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "imageTo3D": "#/components/schemas/Trellis2ImageTo3DComfyPolyGenInput",
                "shapeGen": "#/components/schemas/Trellis2ShapeGenComfyPolyGenInput",
                "texGen": "#/components/schemas/Trellis2TexGenComfyPolyGenInput"
              }
            }
          }
        ]
      },
      "Trellis2ImageTo3DComfyPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Trellis2ComfyPolyGenInput"
          },
          {
            "required": [
              "engine",
              "imageUrl",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "imageUrl": {
                "type": "string",
                "format": "uri"
              },
              "shouldTexture": {
                "type": "boolean",
                "default": true
              },
              "enablePbr": {
                "type": "boolean",
                "default": true
              },
              "operation": {
                "enum": [
                  "imageTo3D"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "trellis2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Trellis2ShapeGenComfyPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Trellis2ComfyPolyGenInput"
          },
          {
            "required": [
              "engine",
              "imageUrl",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "imageUrl": {
                "type": "string",
                "format": "uri"
              },
              "operation": {
                "enum": [
                  "shapeGen"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "trellis2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Trellis2TexGenComfyPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Trellis2ComfyPolyGenInput"
          },
          {
            "required": [
              "engine",
              "imageUrl",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "imageUrl": {
                "type": "string",
                "format": "uri"
              },
              "enablePbr": {
                "type": "boolean",
                "default": true
              },
              "operation": {
                "enum": [
                  "texGen"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "trellis2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "TripoFalPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/FalPolyGenInput"
          },
          {
            "required": [
              "engine",
              "imageUrl",
              "model"
            ],
            "type": "object",
            "properties": {
              "imageUrl": {
                "minLength": 1,
                "type": "string"
              },
              "texture": {
                "enum": [
                  "no",
                  "standard",
                  "HD"
                ],
                "type": "string",
                "default": "standard"
              },
              "pbr": {
                "type": "boolean",
                "default": false
              },
              "faceLimit": {
                "maximum": 500000,
                "minimum": 1000,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "autoSize": {
                "type": "boolean",
                "default": false
              },
              "quad": {
                "type": "boolean",
                "description": "Quad topology. Forces the mesh output to FBX instead of GLB.",
                "default": false
              },
              "textureAlignment": {
                "enum": [
                  "original_image",
                  "geometry"
                ],
                "type": "string",
                "default": "original_image"
              },
              "orientation": {
                "enum": [
                  "default",
                  "align_image"
                ],
                "type": "string",
                "default": "default"
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "textureSeed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "model": {
                "enum": [
                  "tripo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "TryOnUInput": {
        "required": [
          "cropSubject",
          "garmentUrl",
          "maskSubject",
          "seed",
          "subjectUrl"
        ],
        "type": "object",
        "properties": {
          "subjectUrl": {
            "type": "string",
            "format": "uri"
          },
          "garmentUrl": {
            "type": "string",
            "format": "uri"
          },
          "subjectMaskUrl": {
            "type": [
              "null",
              "string"
            ],
            "format": "uri"
          },
          "subjectMaskBlobKey": {
            "type": [
              "null",
              "string"
            ]
          },
          "garmentDescription": {
            "type": [
              "null",
              "string"
            ]
          },
          "maskSubject": {
            "type": "boolean"
          },
          "cropSubject": {
            "type": "boolean"
          },
          "steps": {
            "maximum": 150,
            "minimum": 1,
            "type": "integer",
            "format": "int32",
            "default": 30
          },
          "seed": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "TryOnUOutput": {
        "required": [
          "blob"
        ],
        "type": "object",
        "properties": {
          "blob": {
            "$ref": "#/components/schemas/Blob"
          }
        },
        "additionalProperties": false
      },
      "UnavailableResourceAvailability": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ResourceAvailability"
          },
          {
            "required": [
              "status"
            ],
            "type": "object",
            "properties": {
              "status": {
                "enum": [
                  "unavailable"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Eligible, but nothing is pulling it. A resource waiting in a download lane reports\n`QueuedResourceAvailability` instead."
      },
      "UniRigPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PolyGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "rig"
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "engine": {
                "enum": [
                  "unirig"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "rig": "#/components/schemas/UniRigRigPolyGenInput"
              }
            }
          }
        ]
      },
      "UniRigRigPolyGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/UniRigPolyGenInput"
          },
          {
            "required": [
              "engine",
              "mesh",
              "operation"
            ],
            "type": "object",
            "properties": {
              "mesh": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "heightMeters": {
                "maximum": 100,
                "minimum": 0.01,
                "type": [
                  "null",
                  "number"
                ],
                "format": "double"
              },
              "skeleton": {
                "enum": [
                  "mixamo",
                  "generic"
                ],
                "type": "string",
                "default": "mixamo"
              },
              "operation": {
                "enum": [
                  "rig"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "unirig"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "UnsupportedResourceAvailability": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ResourceAvailability"
          },
          {
            "required": [
              "status"
            ],
            "type": "object",
            "properties": {
              "status": {
                "enum": [
                  "unsupported"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "UpdateWorkflowRequest": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/UpdateWorkflowStatus"
          },
          "metadata": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {}
          },
          "tags": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            }
          },
          "allowMatureContent": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Set to true to remove the mature content restriction on the workflow."
          },
          "downloadPriority": {
            "description": "Raise the download priority for resources this workflow needs but the fleet does not hold.\nOnly High may be requested, and it carries a Buzz charge for each cold\nresource above the free size threshold.",
            "$ref": "#/components/schemas/Priority"
          }
        },
        "additionalProperties": false
      },
      "UpdateWorkflowStatus": {
        "enum": [
          "canceled"
        ],
        "type": "string"
      },
      "UpdateWorkflowStepRequest": {
        "required": [
          "metadata"
        ],
        "type": "object",
        "properties": {
          "metadata": {
            "type": "object",
            "additionalProperties": {}
          }
        },
        "additionalProperties": false
      },
      "UserMessage": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ChatCompletionMessage"
          },
          {
            "required": [
              "content",
              "role"
            ],
            "type": "object",
            "properties": {
              "content": {
                "type": "array",
                "items": {
                  "description": "Accepts both camelCase (`imageUrl`) and snake_case (`image_url`) type discriminators.",
                  "$ref": "#/components/schemas/ChatCompletionContentPart"
                },
                "description": "A string or an array of content parts; a plain string is accepted as a single text part."
              },
              "name": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "role": {
                "enum": [
                  "user"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "A user message that can contain text and/or images."
      },
      "VTracerImageToSvgInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComfyImageToSvgInput"
          },
          {
            "required": [
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "hierarchical": {
                "enum": [
                  "stacked",
                  "cutout"
                ],
                "type": "string",
                "default": "stacked"
              },
              "mode": {
                "enum": [
                  "spline",
                  "polygon",
                  "none"
                ],
                "type": "string",
                "default": "spline"
              },
              "filterSpeckle": {
                "maximum": 100,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 8
              },
              "colorPrecision": {
                "maximum": 10,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 6
              },
              "layerDifference": {
                "maximum": 256,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 24
              },
              "cornerThreshold": {
                "maximum": 180,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 65
              },
              "lengthThreshold": {
                "maximum": 10,
                "minimum": 3.5,
                "type": "number",
                "format": "double",
                "default": 5
              },
              "maxIterations": {
                "maximum": 70,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 10
              },
              "spliceThreshold": {
                "maximum": 180,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 50
              },
              "pathPrecision": {
                "maximum": 10,
                "minimum": 0,
                "type": "integer",
                "format": "int32",
                "default": 2
              },
              "ecosystem": {
                "enum": [
                  "vtracer"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ValidationProblemDetails": {
        "required": [
          "errors"
        ],
        "type": "object",
        "properties": {
          "type": {
            "type": [
              "null",
              "string"
            ]
          },
          "title": {
            "type": [
              "null",
              "string"
            ]
          },
          "status": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "detail": {
            "type": [
              "null",
              "string"
            ]
          },
          "instance": {
            "type": [
              "null",
              "string"
            ]
          },
          "errors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        },
        "additionalProperties": {}
      },
      "ValueTupleOfDoubleAndDouble": {
        "type": "object",
        "additionalProperties": false
      },
      "ValueTupleOfStringAndInt32": {
        "type": "object",
        "additionalProperties": false
      },
      "Veo3AspectRatio": {
        "enum": [
          "16:9",
          "9:16",
          "1:1"
        ],
        "type": "string"
      },
      "Veo3GenerationMode": {
        "enum": [
          "standard",
          "fast",
          "lite"
        ],
        "type": "string"
      },
      "Veo3Version": {
        "enum": [
          "3.0",
          "3.1"
        ],
        "type": "string",
        "description": "Google retired the Veo 3.0 endpoints on 2026-08-28; requests with `3.0` are rejected with 400. Use `3.1`."
      },
      "Veo3VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine",
              "generateAudio"
            ],
            "type": "object",
            "properties": {
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": true
              },
              "engine": {
                "enum": [
                  "veo3"
                ],
                "type": "string"
              },
              "aspectRatio": {
                "default": "16:9",
                "$ref": "#/components/schemas/Veo3AspectRatio"
              },
              "duration": {
                "enum": [
                  4,
                  6,
                  8
                ],
                "type": "integer",
                "format": "int32",
                "default": 8
              },
              "generateAudio": {
                "type": "boolean"
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "fastMode": {
                "type": "boolean",
                "default": false
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "version": {
                "description": "Google retired the Veo 3.0 endpoints on 2026-08-28; requests with `3.0` are rejected with 400. Use `3.1`.",
                "default": "3.1",
                "$ref": "#/components/schemas/Veo3Version"
              },
              "mode": {
                "$ref": "#/components/schemas/Veo3GenerationMode"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "VideoBackgroundRemovalInput": {
        "required": [
          "video"
        ],
        "type": "object",
        "properties": {
          "video": {
            "type": "string",
            "format": "uri"
          },
          "foregroundPoints": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/VideoBackgroundRemovalPoint"
            }
          },
          "backgroundPoints": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/VideoBackgroundRemovalPoint"
            }
          },
          "maskExpansion": {
            "maximum": 32,
            "minimum": -32,
            "type": "integer",
            "format": "int32",
            "default": 0
          },
          "maskFeather": {
            "maximum": 32,
            "minimum": 0,
            "type": "number",
            "format": "double",
            "default": 2
          }
        },
        "additionalProperties": false
      },
      "VideoBackgroundRemovalOutput": {
        "type": "object",
        "properties": {
          "video": {
            "$ref": "#/components/schemas/VideoBlob"
          }
        },
        "additionalProperties": false
      },
      "VideoBackgroundRemovalPoint": {
        "required": [
          "x",
          "y"
        ],
        "type": "object",
        "properties": {
          "x": {
            "maximum": 1,
            "minimum": 0,
            "type": "number",
            "format": "double"
          },
          "y": {
            "maximum": 1,
            "minimum": 0,
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "VideoBackgroundRemovalStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/VideoBackgroundRemovalInput"
              },
              "output": {
                "$ref": "#/components/schemas/VideoBackgroundRemovalOutput"
              },
              "$type": {
                "enum": [
                  "videoBackgroundRemoval"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Tracks a prompted foreground object across a video and returns a lossless animated WebP with transparency."
      },
      "VideoBackgroundRemovalStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the VideoBackgroundRemovalStep step.",
                "$ref": "#/components/schemas/VideoBackgroundRemovalInput"
              },
              "$type": {
                "enum": [
                  "videoBackgroundRemoval"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Tracks a prompted foreground object across a video and returns a lossless animated WebP with transparency."
      },
      "VideoBlob": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Blob"
          },
          {
            "required": [
              "type"
            ],
            "type": "object",
            "properties": {
              "width": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "height": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "duration": {
                "type": [
                  "null",
                  "number"
                ],
                "description": "In seconds",
                "format": "float"
              },
              "type": {
                "enum": [
                  "video"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "VideoComposeMediaOutput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ComposeMediaOutput"
          },
          {
            "required": [
              "type",
              "videoBlob"
            ],
            "type": "object",
            "properties": {
              "videoBlob": {
                "$ref": "#/components/schemas/VideoBlob"
              },
              "type": {
                "enum": [
                  "video"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "A video composition produced when any element is video, or video output was requested."
      },
      "VideoEnhancementInput": {
        "required": [
          "sourceUrl"
        ],
        "type": "object",
        "properties": {
          "sourceUrl": {
            "type": "string",
            "format": "uri"
          },
          "upscaler": {
            "$ref": "#/components/schemas/VideoEnhancementInputUpscalerOptions"
          },
          "interpolation": {
            "$ref": "#/components/schemas/VideoEnhancementInputInterpolationOptions"
          }
        },
        "additionalProperties": false
      },
      "VideoEnhancementInputInterpolationOptions": {
        "required": [
          "multiplier"
        ],
        "type": "object",
        "properties": {
          "multiplier": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "VideoEnhancementInputUpscalerOptions": {
        "required": [
          "height",
          "width"
        ],
        "type": "object",
        "properties": {
          "model": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": [
              "null",
              "string"
            ]
          },
          "width": {
            "type": "integer",
            "format": "int32"
          },
          "height": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "VideoEnhancementOutput": {
        "type": "object",
        "properties": {
          "video": {
            "$ref": "#/components/schemas/VideoBlob"
          }
        },
        "additionalProperties": false
      },
      "VideoEnhancementStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/VideoEnhancementInput"
              },
              "output": {
                "$ref": "#/components/schemas/VideoEnhancementOutput"
              },
              "$type": {
                "enum": [
                  "videoEnhancement"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Upscale videos and/or interpolate frames"
      },
      "VideoEnhancementStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the VideoEnhancementStep step.",
                "$ref": "#/components/schemas/VideoEnhancementInput"
              },
              "$type": {
                "enum": [
                  "videoEnhancement"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Upscale videos and/or interpolate frames"
      },
      "VideoFrameExtractionInput": {
        "required": [
          "videoUrl"
        ],
        "type": "object",
        "properties": {
          "videoUrl": {
            "type": "string",
            "format": "uri"
          },
          "frameRate": {
            "type": "number",
            "description": "Frames per second to extract.",
            "format": "double",
            "default": 1
          },
          "uniqueThreshold": {
            "type": "number",
            "description": "Similarity (0.0 to 1.0) above which a frame counts as a duplicate and is dropped.",
            "format": "double",
            "default": 0.9
          },
          "maxFrames": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Maximum number of unique frames to extract; null extracts all.",
            "format": "int32"
          },
          "startTime": {
            "type": "number",
            "description": "Seconds into the video to start extracting from.",
            "format": "double",
            "default": 0
          },
          "public": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Serves the frames at stable unsigned urls. Privileged callers only: nothing gates a read of\none, so a block decided after the fact cannot take it back."
          }
        },
        "additionalProperties": false
      },
      "VideoFrameExtractionOutput": {
        "required": [
          "frames",
          "totalFramesExtracted"
        ],
        "type": "object",
        "properties": {
          "frames": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImageBlob"
            }
          },
          "totalFramesExtracted": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "VideoFrameExtractionStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/VideoFrameExtractionInput"
              },
              "output": {
                "$ref": "#/components/schemas/VideoFrameExtractionOutput"
              },
              "$type": {
                "enum": [
                  "videoFrameExtraction"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Video Frame Extraction"
      },
      "VideoFrameExtractionStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the VideoFrameExtractionStep step.",
                "$ref": "#/components/schemas/VideoFrameExtractionInput"
              },
              "$type": {
                "enum": [
                  "videoFrameExtraction"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Video Frame Extraction"
      },
      "VideoGenInput": {
        "required": [
          "engine",
          "prompt"
        ],
        "type": "object",
        "properties": {
          "engine": {
            "type": "string"
          },
          "prompt": {
            "type": "string"
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "engine",
          "mapping": {
            "haiper": "#/components/schemas/HaiperVideoGenInput",
            "mochi": "#/components/schemas/MochiVideoGenInput",
            "kling": "#/components/schemas/KlingVideoGenInput",
            "minimax": "#/components/schemas/MiniMaxVideoGenInput",
            "lightricks": "#/components/schemas/LightricksVideoGenInput",
            "ltx2": "#/components/schemas/ComfyLtx2VideoGenInput",
            "ltx2.3": "#/components/schemas/ComfyLtx23VideoGenInput",
            "ltx2.5": "#/components/schemas/ComfyLtx25VideoGenInput",
            "hunyuan": "#/components/schemas/HunyuanVdeoGenInput",
            "wan": "#/components/schemas/WanVideoGenInput",
            "vidu": "#/components/schemas/ViduVideoGenInput",
            "vidu-q3": "#/components/schemas/ViduQ3VideoGenInput",
            "vidu-q4": "#/components/schemas/ViduQ4VideoGenInput",
            "veo3": "#/components/schemas/Veo3VideoGenInput",
            "gemini-omni": "#/components/schemas/GeminiOmniVideoGenInput",
            "sora": "#/components/schemas/SoraVideoGenInput",
            "kling-v3": "#/components/schemas/KlingV3VideoGenInput",
            "grok": "#/components/schemas/GrokVideoGenInput",
            "seedance": "#/components/schemas/SeedanceVideoGenInput",
            "happyHorse": "#/components/schemas/HappyHorseVideoGenInput",
            "heygen": "#/components/schemas/HeyGenVideoGenInput",
            "minimax-h3-max": "#/components/schemas/MiniMaxH3MaxVideoGenInput",
            "minimax-h3": "#/components/schemas/MiniMaxH3VideoGenInput",
            "minimax-h3-comfy": "#/components/schemas/ComfyMiniMaxH3VideoGenInput",
            "flux": "#/components/schemas/Flux3VideoGenInput"
          }
        }
      },
      "VideoGenInputLora": {
        "required": [
          "air",
          "strength"
        ],
        "type": "object",
        "properties": {
          "air": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": "string"
          },
          "strength": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "VideoGenOutput": {
        "type": "object",
        "properties": {
          "video": {
            "$ref": "#/components/schemas/VideoBlob"
          },
          "additionalVideos": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/VideoBlob"
            },
            "description": "Extra videos when Quantity > 1, produced by engines that batch multiple videos in one job (e.g. LTX 2.3);\n`video` is always the primary slot. Null/empty for single-output engines."
          },
          "draftCache": {
            "description": "Encrypted draft cache produced by a FLUX-3 draft generation. Pass its url as the draftCache\ninput of a later draftEnhance step to re-render the draft at full quality.",
            "$ref": "#/components/schemas/Blob"
          }
        },
        "additionalProperties": false
      },
      "VideoGenStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/VideoGenInput"
              },
              "output": {
                "$ref": "#/components/schemas/VideoGenOutput"
              },
              "$type": {
                "enum": [
                  "videoGen"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Video generation"
      },
      "VideoGenStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the VideoGenStep step.",
                "$ref": "#/components/schemas/VideoGenInput"
              },
              "$type": {
                "enum": [
                  "videoGen"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Video generation"
      },
      "VideoInterpolationInput": {
        "required": [
          "video"
        ],
        "type": "object",
        "properties": {
          "video": {
            "type": "string",
            "format": "uri"
          },
          "interpolationFactor": {
            "maximum": 3,
            "minimum": 2,
            "type": "integer",
            "format": "int32",
            "default": 2
          },
          "model": {
            "type": "string",
            "default": "VFIMamba"
          }
        },
        "additionalProperties": false
      },
      "VideoInterpolationOutput": {
        "type": "object",
        "properties": {
          "video": {
            "$ref": "#/components/schemas/VideoBlob"
          }
        },
        "additionalProperties": false
      },
      "VideoInterpolationStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/VideoInterpolationInput"
              },
              "output": {
                "$ref": "#/components/schemas/VideoInterpolationOutput"
              },
              "$type": {
                "enum": [
                  "videoInterpolation"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Interpolate videos using VFI Mamba"
      },
      "VideoInterpolationStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the VideoInterpolationStep step.",
                "$ref": "#/components/schemas/VideoInterpolationInput"
              },
              "$type": {
                "enum": [
                  "videoInterpolation"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Interpolate videos using VFI Mamba"
      },
      "VideoMetadataInput": {
        "required": [
          "video"
        ],
        "type": "object",
        "properties": {
          "video": {
            "type": "string",
            "format": "uri"
          }
        },
        "additionalProperties": false
      },
      "VideoMetadataOutput": {
        "required": [
          "duration",
          "fps",
          "height",
          "width"
        ],
        "type": "object",
        "properties": {
          "width": {
            "type": "integer",
            "format": "int32"
          },
          "height": {
            "type": "integer",
            "format": "int32"
          },
          "fps": {
            "type": "number",
            "format": "double"
          },
          "duration": {
            "type": "string",
            "format": "date-span"
          }
        },
        "additionalProperties": false
      },
      "VideoMetadataStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/VideoMetadataInput"
              },
              "output": {
                "$ref": "#/components/schemas/VideoMetadataOutput"
              },
              "$type": {
                "enum": [
                  "videoMetadata"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Extract metadata from videos including width, height, FPS, and duration"
      },
      "VideoMetadataStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the VideoMetadataStep step.",
                "$ref": "#/components/schemas/VideoMetadataInput"
              },
              "$type": {
                "enum": [
                  "videoMetadata"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Extract metadata from videos including width, height, FPS, and duration"
      },
      "VideoUpscalerInput": {
        "required": [
          "video"
        ],
        "type": "object",
        "properties": {
          "video": {
            "type": "string",
            "format": "uri"
          },
          "scaleFactor": {
            "maximum": 4,
            "minimum": 2,
            "type": "integer",
            "format": "int32",
            "default": 2
          }
        },
        "additionalProperties": false
      },
      "VideoUpscalerOutput": {
        "type": "object",
        "properties": {
          "video": {
            "$ref": "#/components/schemas/VideoBlob"
          }
        },
        "additionalProperties": false
      },
      "VideoUpscalerStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/VideoUpscalerInput"
              },
              "output": {
                "$ref": "#/components/schemas/VideoUpscalerOutput"
              },
              "$type": {
                "enum": [
                  "videoUpscaler"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Upscale videos using FlashVSR"
      },
      "VideoUpscalerStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the VideoUpscalerStep step.",
                "$ref": "#/components/schemas/VideoUpscalerInput"
              },
              "$type": {
                "enum": [
                  "videoUpscaler"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Upscale videos using FlashVSR"
      },
      "ViduQ3VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine"
            ],
            "type": "object",
            "properties": {
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "duration": {
                "maximum": 16,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 5
              },
              "resolution": {
                "enum": [
                  "360p",
                  "540p",
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "720p"
              },
              "turbo": {
                "type": "boolean",
                "default": false
              },
              "generateAudio": {
                "type": "boolean",
                "default": true
              },
              "engine": {
                "enum": [
                  "vidu-q3"
                ],
                "type": "string"
              },
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4"
                ],
                "type": [
                  "null",
                  "string"
                ]
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ViduQ4ImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ViduQ4VideoGenInput"
          },
          {
            "required": [
              "engine",
              "image",
              "operation"
            ],
            "type": "object",
            "properties": {
              "image": {
                "type": "string",
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "operation": {
                "enum": [
                  "imageToVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "vidu-q4"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Animate one starting frame. Use an empty prompt for animation without text instructions. Audio is generated by the provider."
      },
      "ViduQ4ReferenceToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ViduQ4VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "referenceImages": {
                "maxItems": 12,
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "referenceAudios": {
                "maxItems": 3,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uri"
                },
                "description": "Up to three MP3 clips, each 3–12 seconds and at most 50 MB, as HTTP(S) URLs or base64 audio/mpeg data URIs."
              },
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16",
                  "4:3",
                  "3:4",
                  "1:1"
                ],
                "type": "string",
                "default": "16:9"
              },
              "generateAudio": {
                "type": "boolean",
                "default": false
              },
              "operation": {
                "enum": [
                  "referenceToVideo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "vidu-q4"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Refer to images as [@reference_image_1] and voices as [reference_audio_1], using their array positions."
      },
      "ViduQ4VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "imageToVideo"
              },
              "duration": {
                "maximum": 16,
                "minimum": 3,
                "type": "integer",
                "format": "int32",
                "default": 5
              },
              "resolution": {
                "enum": [
                  "540p",
                  "720p",
                  "1080p",
                  "2K",
                  "4K"
                ],
                "type": "string",
                "default": "720p"
              },
              "seed": {
                "maximum": 2147483647,
                "minimum": 0,
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "engine": {
                "enum": [
                  "vidu-q4"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "imageToVideo": "#/components/schemas/ViduQ4ImageToVideoInput",
                "referenceToVideo": "#/components/schemas/ViduQ4ReferenceToVideoInput"
              }
            }
          }
        ]
      },
      "ViduVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "engine"
            ],
            "type": "object",
            "properties": {
              "enhancePrompt": {
                "type": "boolean",
                "default": true
              },
              "engine": {
                "enum": [
                  "vidu"
                ],
                "type": "string"
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "sourceImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "style": {
                "default": "general",
                "$ref": "#/components/schemas/ViduVideoGenStyle"
              },
              "duration": {
                "enum": [
                  4,
                  8
                ],
                "type": "integer",
                "format": "int32",
                "default": 4
              },
              "endSourceImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "model": {
                "default": "default",
                "$ref": "#/components/schemas/ViduVideoGenModel"
              },
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1"
                ],
                "type": [
                  "null",
                  "string"
                ]
              },
              "movementAmplitude": {
                "enum": [
                  "auto",
                  "small",
                  "medium",
                  "large"
                ],
                "type": [
                  "null",
                  "string"
                ]
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "enableBackgroundMusic": {
                "type": "boolean",
                "default": false
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ViduVideoGenModel": {
        "enum": [
          "default",
          "q1",
          "q3",
          "q4"
        ],
        "type": "string"
      },
      "ViduVideoGenStyle": {
        "enum": [
          "general",
          "anime"
        ],
        "type": "string"
      },
      "VllmOmniTextToSpeechInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TextToSpeechInput"
          },
          {
            "required": [
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "ecosystem": {
                "type": "string"
              },
              "engine": {
                "enum": [
                  "vllm-omni"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "ecosystem",
              "mapping": {
                "qwen3": "#/components/schemas/Qwen3TextToSpeechInput",
                "omnivoice": "#/components/schemas/OmniVoiceTextToSpeechInput"
              }
            }
          }
        ]
      },
      "VolumeTransformer": {
        "allOf": [
          {
            "$ref": "#/components/schemas/MediaTransformer"
          },
          {
            "required": [
              "db",
              "type"
            ],
            "type": "object",
            "properties": {
              "db": {
                "type": "number",
                "format": "float"
              },
              "type": {
                "enum": [
                  "volume"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Adjusts the element's audio gain in decibels. `0` is unity gain; negative values\nattenuate. No-op for elements with no audio stream."
      },
      "WDTaggingInput": {
        "required": [
          "mediaUrl"
        ],
        "type": "object",
        "properties": {
          "model": {
            "type": [
              "null",
              "string"
            ],
            "description": "The model to use for tagging. Tagging always runs with \"cl-tagger.v2\"; any other model, including the\ndefault \"wd14-vit.v1\", is deprecated and produces a warning."
          },
          "mediaUrl": {
            "type": "string",
            "format": "uri"
          },
          "threshold": {
            "type": [
              "null",
              "number"
            ],
            "description": "Optional threshold for tag confidence filtering. Tags below this threshold will be excluded.\nThe tagger never returns tags scoring below its own minimum, so lower values have no effect.",
            "format": "double"
          },
          "prompt": {
            "type": [
              "null",
              "string"
            ],
            "description": "Ignored; kept for compatibility."
          }
        },
        "additionalProperties": false
      },
      "WDTaggingOutput": {
        "required": [
          "tags"
        ],
        "type": "object",
        "properties": {
          "tags": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "description": "The detected tags with their confidence scores."
          },
          "rating": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "description": "The content rating scores (general, sensitive, questionable, explicit)."
          }
        },
        "additionalProperties": false
      },
      "WDTaggingStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/WDTaggingInput"
              },
              "output": {
                "$ref": "#/components/schemas/WDTaggingOutput"
              },
              "$type": {
                "enum": [
                  "wdTagging"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "WDTagging"
      },
      "WDTaggingStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the WDTaggingStep step.",
                "$ref": "#/components/schemas/WDTaggingInput"
              },
              "$type": {
                "enum": [
                  "wdTagging"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "WDTagging"
      },
      "Wan21CivitaiVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan21VideoGenInput"
          },
          {
            "required": [
              "engine",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "width": {
                "type": "integer",
                "format": "int32",
                "default": 480
              },
              "height": {
                "type": "integer",
                "format": "int32",
                "default": 480
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "provider": {
                "enum": [
                  "civitai"
                ],
                "type": "string"
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "version": {
                "enum": [
                  "v2.1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan21FalVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan21VideoGenInput"
          },
          {
            "required": [
              "engine",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "aspectRatio": {
                "enum": [
                  "1:1",
                  "16:9",
                  "9:16"
                ],
                "type": "string",
                "default": "16:9"
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": false
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan21VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WanVideoGenInput"
          },
          {
            "required": [
              "engine",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "provider": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "civitai"
              },
              "sourceImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "version": {
                "enum": [
                  "v2.1"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "provider",
              "mapping": {
                "civitai": "#/components/schemas/Wan21CivitaiVideoGenInput",
                "fal": "#/components/schemas/Wan21FalVideoGenInput"
              }
            }
          }
        ]
      },
      "Wan225bFalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan225bImageGenInput"
          },
          {
            "required": [
              "engine",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.2-5b"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan225bFalImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan225bFalVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "image-to-video"
                ],
                "type": "string"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.2-5b"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan225bFalTextToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan225bFalVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "text-to-video"
                ],
                "type": "string"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.2-5b"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan225bFalVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan225bVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "text-to-video"
              },
              "resolution": {
                "enum": [
                  "480p",
                  "580p",
                  "720p"
                ],
                "type": "string",
                "default": "720p"
              },
              "aspectRatio": {
                "enum": [
                  "1:1",
                  "16:9",
                  "9:16",
                  "auto"
                ],
                "type": "string",
                "default": "16:9"
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": false
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "useDistill": {
                "type": "boolean",
                "default": false
              },
              "useFastWan": {
                "type": "boolean",
                "default": false
              },
              "interpolatorModel": {
                "enum": [
                  "none",
                  "film",
                  "rife"
                ],
                "type": "string",
                "default": "film"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "enableSafetyChecker": {
                "type": "boolean",
                "default": false
              },
              "numInferenceSteps": {
                "maximum": 50,
                "minimum": 2,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "version": {
                "enum": [
                  "v2.2-5b"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "text-to-video": "#/components/schemas/Wan225bFalTextToVideoInput",
                "image-to-video": "#/components/schemas/Wan225bFalImageToVideoInput"
              }
            }
          }
        ]
      },
      "Wan225bImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WanImageGenInput"
          },
          {
            "required": [
              "engine",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "provider": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "fal"
              },
              "steps": {
                "maximum": 50,
                "minimum": 2,
                "type": "integer",
                "format": "int32",
                "default": 40
              },
              "shift": {
                "maximum": 10,
                "minimum": 1,
                "type": "number",
                "format": "double",
                "default": 2
              },
              "version": {
                "enum": [
                  "v2.2-5b"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "provider",
              "mapping": {
                "fal": "#/components/schemas/Wan225bFalImageGenInput"
              }
            }
          }
        ]
      },
      "Wan225bVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WanVideoGenInput"
          },
          {
            "required": [
              "engine",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "provider": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "fal"
              },
              "version": {
                "enum": [
                  "v2.2-5b"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "provider",
              "mapping": {
                "fal": "#/components/schemas/Wan225bFalVideoGenInput"
              }
            }
          }
        ]
      },
      "Wan22ComfyVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan22VideoGenInput"
          },
          {
            "required": [
              "engine",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "sourceImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1280
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 720
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": [
                  "null",
                  "string"
                ]
              },
              "provider": {
                "enum": [
                  "comfy"
                ],
                "type": "string"
              },
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampler": {
                "enum": [
                  "euler",
                  "euler_ancestral",
                  "heun",
                  "heunpp2",
                  "dpm_2",
                  "dpm_2_ancestral",
                  "lms",
                  "dpm_fast",
                  "dpm_adaptive",
                  "dpmpp_2s_ancestral",
                  "dpmpp_sde",
                  "dpmpp_2m",
                  "dpmpp_2m_sde",
                  "dpmpp_3m_sde",
                  "ddpm",
                  "lcm",
                  "uni_pc",
                  "uni_pc_bh2"
                ],
                "type": "string",
                "default": "euler"
              },
              "scheduler": {
                "enum": [
                  "normal",
                  "karras",
                  "exponential",
                  "sgm_uniform",
                  "simple",
                  "ddim_uniform",
                  "beta"
                ],
                "type": "string",
                "default": "simple"
              },
              "shift": {
                "maximum": 20,
                "minimum": 1,
                "type": "number",
                "format": "double",
                "default": 8
              },
              "version": {
                "enum": [
                  "v2.2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan22FalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan22ImageGenInput"
          },
          {
            "required": [
              "engine",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "acceleration": {
                "enum": [
                  "none",
                  "fast",
                  "faster"
                ],
                "type": "string",
                "default": "none"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan22FalImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan22FalVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "image-to-video"
                ],
                "type": "string"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan22FalTextToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan22FalVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "text-to-video"
                ],
                "type": "string"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan22FalVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan22VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "text-to-video"
              },
              "resolution": {
                "enum": [
                  "480p",
                  "720p"
                ],
                "type": "string",
                "default": "720p"
              },
              "aspectRatio": {
                "enum": [
                  "1:1",
                  "16:9",
                  "9:16",
                  "4:3",
                  "3:4",
                  "4:5",
                  "5:4"
                ],
                "type": "string",
                "default": "16:9"
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": false
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "shift": {
                "maximum": 10,
                "minimum": 1,
                "type": "number",
                "format": "double",
                "default": 5
              },
              "interpolatorModel": {
                "enum": [
                  "film",
                  "rife"
                ],
                "type": "string",
                "default": "film"
              },
              "useTurbo": {
                "type": "boolean",
                "default": false
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "enableSafetyChecker": {
                "type": "boolean",
                "default": false
              },
              "version": {
                "enum": [
                  "v2.2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "text-to-video": "#/components/schemas/Wan22FalTextToVideoInput",
                "image-to-video": "#/components/schemas/Wan22FalImageToVideoInput"
              }
            }
          }
        ]
      },
      "Wan22ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WanImageGenInput"
          },
          {
            "required": [
              "engine",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "provider": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "fal"
              },
              "steps": {
                "maximum": 40,
                "minimum": 2,
                "type": "integer",
                "format": "int32",
                "default": 27
              },
              "version": {
                "enum": [
                  "v2.2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "provider",
              "mapping": {
                "fal": "#/components/schemas/Wan22FalImageGenInput"
              }
            }
          }
        ]
      },
      "Wan22VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WanVideoGenInput"
          },
          {
            "required": [
              "engine",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "provider": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "fal"
              },
              "version": {
                "enum": [
                  "v2.2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "provider",
              "mapping": {
                "fal": "#/components/schemas/Wan22FalVideoGenInput",
                "comfy": "#/components/schemas/Wan22ComfyVideoGenInput"
              }
            }
          }
        ]
      },
      "Wan25FalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan25ImageGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "text-to-image"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.5"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "text-to-image": "#/components/schemas/Wan25FalTextToImageInput",
                "image-to-image": "#/components/schemas/Wan25FalImageToImageInput"
              }
            }
          }
        ]
      },
      "Wan25FalImageToImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan25FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "image-to-image"
                ],
                "type": "string"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.5"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan25FalImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan25FalVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "image-to-video"
                ],
                "type": "string"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.5"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan25FalTextToImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan25FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "text-to-image"
                ],
                "type": "string"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.5"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan25FalTextToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan25FalVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "text-to-video"
                ],
                "type": "string"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.5"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan25FalVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan25VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "text-to-video"
              },
              "resolution": {
                "enum": [
                  "480p",
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "1080p"
              },
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1"
                ],
                "type": "string",
                "default": "16:9"
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": true
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "version": {
                "enum": [
                  "v2.5"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "text-to-video": "#/components/schemas/Wan25FalTextToVideoInput",
                "image-to-video": "#/components/schemas/Wan25FalImageToVideoInput"
              }
            }
          }
        ]
      },
      "Wan25ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WanImageGenInput"
          },
          {
            "required": [
              "engine",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "provider": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "fal"
              },
              "version": {
                "enum": [
                  "v2.5"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "provider",
              "mapping": {
                "fal": "#/components/schemas/Wan25FalImageGenInput"
              }
            }
          }
        ]
      },
      "Wan25VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WanVideoGenInput"
          },
          {
            "required": [
              "engine",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "provider": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "fal"
              },
              "version": {
                "enum": [
                  "v2.5"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "provider",
              "mapping": {
                "fal": "#/components/schemas/Wan25FalVideoGenInput"
              }
            }
          }
        ]
      },
      "Wan26FalImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan26FalVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                }
              },
              "operation": {
                "enum": [
                  "image-to-video"
                ],
                "type": "string"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.6"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan26FalReferenceToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan26FalVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "referenceVideoUrls": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Reference videos for subject consistency (1-3 videos with minimum 16 FPS)\nUse @Video1, @Video2, @Video3 in the prompt to reference these subjects"
              },
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4"
                ],
                "type": "string",
                "default": "16:9"
              },
              "duration": {
                "maximum": 10,
                "minimum": 5,
                "type": "integer",
                "description": "Duration for reference-to-video is limited to 5 or 10 seconds",
                "format": "int32",
                "default": 5
              },
              "operation": {
                "enum": [
                  "reference-to-video"
                ],
                "type": "string"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.6"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan26FalTextToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan26FalVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4"
                ],
                "type": "string",
                "default": "16:9"
              },
              "operation": {
                "enum": [
                  "text-to-video"
                ],
                "type": "string"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.6"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan26FalVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan26VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "text-to-video"
              },
              "resolution": {
                "enum": [
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "1080p"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": true
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "multiShots": {
                "type": "boolean",
                "default": false
              },
              "enableSafetyChecker": {
                "type": "boolean",
                "default": false
              },
              "audioUrl": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "URL of audio file for background music (3-30 seconds, up to 15 MB)\nSupported for text-to-video and image-to-video only"
              },
              "version": {
                "enum": [
                  "v2.6"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "text-to-video": "#/components/schemas/Wan26FalTextToVideoInput",
                "image-to-video": "#/components/schemas/Wan26FalImageToVideoInput",
                "reference-to-video": "#/components/schemas/Wan26FalReferenceToVideoInput"
              }
            }
          }
        ]
      },
      "Wan26VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WanVideoGenInput"
          },
          {
            "required": [
              "engine",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "provider": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "fal"
              },
              "version": {
                "enum": [
                  "v2.6"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "provider",
              "mapping": {
                "fal": "#/components/schemas/Wan26FalVideoGenInput"
              }
            }
          }
        ]
      },
      "Wan27FalEditVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan27FalVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version",
              "videoUrl"
            ],
            "type": "object",
            "properties": {
              "videoUrl": {
                "minLength": 1,
                "type": "string",
                "description": "URL of the input video to edit (MP4/MOV, 2-10s, max 100 MB)"
              },
              "referenceImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4"
                ],
                "type": [
                  "null",
                  "string"
                ],
                "description": "Aspect ratio of the generated video. If not provided, uses the input video's aspect ratio."
              },
              "audioSetting": {
                "enum": [
                  "auto",
                  "origin"
                ],
                "type": "string",
                "description": "Audio handling: \"auto\" or \"origin\" (keep original audio)",
                "default": "auto"
              },
              "operation": {
                "enum": [
                  "edit-video"
                ],
                "type": "string"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.7"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan27FalImageEditInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan27FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "images",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "images": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                },
                "description": "Reference images for editing (1-4 images required)"
              },
              "operation": {
                "enum": [
                  "editImage"
                ],
                "type": "string"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.7"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan27FalImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan27ImageGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "createImage"
              },
              "usePro": {
                "type": "boolean",
                "default": false
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.7"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/Wan27FalTextToImageInput",
                "editImage": "#/components/schemas/Wan27FalImageEditInput"
              }
            }
          }
        ]
      },
      "Wan27FalImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan27FalVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "startImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "endImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Last frame image for first-and-last-frame-to-video",
                "format": "source-image"
              },
              "videoUrl": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "URL of a video clip to continue from (MP4/MOV, 2-10s, max 100 MB)"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": true
              },
              "operation": {
                "enum": [
                  "image-to-video"
                ],
                "type": "string"
              },
              "audioUrl": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "URL of audio file (WAV/MP3, 3-30 seconds, up to 15 MB)"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.7"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan27FalReferenceToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan27FalVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "referenceImages": {
                "type": "array",
                "items": {
                  "type": "string",
                  "description": "Either A URL, A DataURL or a Base64 string",
                  "format": "source-image"
                },
                "description": "Reference images for character/object appearance (max 20 MB each)"
              },
              "referenceVideoUrls": {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "description": "Reference videos for character/object appearance and motion (max 100 MB each)\nUse @Video1, @Video2, @Video3 in the prompt to reference subjects"
              },
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4"
                ],
                "type": "string",
                "default": "16:9"
              },
              "multiShots": {
                "type": "boolean",
                "default": false
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "operation": {
                "enum": [
                  "reference-to-video"
                ],
                "type": "string"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.7"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan27FalTextToImageInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan27FalImageGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.7"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan27FalTextToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan27FalVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4"
                ],
                "type": "string",
                "default": "16:9"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": true
              },
              "operation": {
                "enum": [
                  "text-to-video"
                ],
                "type": "string"
              },
              "audioUrl": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "URL of audio file (WAV/MP3, 3-30 seconds, up to 15 MB)"
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.7"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan27FalVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan27VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "text-to-video"
              },
              "resolution": {
                "enum": [
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "1080p"
              },
              "enableSafetyChecker": {
                "type": "boolean",
                "default": false
              },
              "provider": {
                "enum": [
                  "fal"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v2.7"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "text-to-video": "#/components/schemas/Wan27FalTextToVideoInput",
                "image-to-video": "#/components/schemas/Wan27FalImageToVideoInput",
                "reference-to-video": "#/components/schemas/Wan27FalReferenceToVideoInput",
                "edit-video": "#/components/schemas/Wan27FalEditVideoInput"
              }
            }
          }
        ]
      },
      "Wan27ImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WanImageGenInput"
          },
          {
            "required": [
              "engine",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "provider": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "fal"
              },
              "version": {
                "enum": [
                  "v2.7"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "provider",
              "mapping": {
                "fal": "#/components/schemas/Wan27FalImageGenInput"
              }
            }
          }
        ]
      },
      "Wan27VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WanVideoGenInput"
          },
          {
            "required": [
              "engine",
              "provider",
              "version"
            ],
            "type": "object",
            "properties": {
              "provider": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "fal"
              },
              "version": {
                "enum": [
                  "v2.7"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "provider",
              "mapping": {
                "fal": "#/components/schemas/Wan27FalVideoGenInput"
              }
            }
          }
        ]
      },
      "Wan30ImageToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan30VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "startImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Either A URL, A DataURL or a Base64 string",
                "format": "source-image"
              },
              "endImage": {
                "type": [
                  "null",
                  "string"
                ],
                "description": "Constrains the last frame, for loops and transitions.",
                "format": "source-image"
              },
              "operation": {
                "enum": [
                  "image-to-video"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v3.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan30TextToVideoInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Wan30VideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "aspectRatio": {
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1",
                  "4:3",
                  "3:4"
                ],
                "type": "string",
                "default": "16:9"
              },
              "operation": {
                "enum": [
                  "text-to-video"
                ],
                "type": "string"
              },
              "version": {
                "enum": [
                  "v3.0"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Wan30VideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WanVideoGenInput"
          },
          {
            "required": [
              "engine",
              "operation",
              "version"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "text-to-video"
              },
              "resolution": {
                "enum": [
                  "480p",
                  "720p",
                  "1080p"
                ],
                "type": "string",
                "default": "1080p"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "enhancePrompt": {
                "type": "boolean",
                "description": "Prompt rewriting. Disabling saves 20-60s of latency but may reduce generation quality —\nfollow Alibaba's prompting guide when turning it off.",
                "default": true
              },
              "version": {
                "enum": [
                  "v3.0"
                ],
                "type": "string"
              },
              "usePrime": {
                "type": "boolean",
                "description": "Run on wan3.0-video-prime: same output quality, lower latency, higher price.",
                "default": false
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "text-to-video": "#/components/schemas/Wan30TextToVideoInput",
                "image-to-video": "#/components/schemas/Wan30ImageToVideoInput"
              }
            }
          }
        ]
      },
      "WanImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageGenInput"
          },
          {
            "required": [
              "engine",
              "prompt",
              "version"
            ],
            "type": "object",
            "properties": {
              "version": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "v2.2"
              },
              "prompt": {
                "minLength": 1,
                "type": "string"
              },
              "negativePrompt": {
                "type": [
                  "null",
                  "string"
                ]
              },
              "cfgScale": {
                "maximum": 10,
                "minimum": 1,
                "type": "number",
                "format": "double",
                "default": 3.5
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "quantity": {
                "maximum": 10,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "imageSize": {
                "type": "string",
                "default": "square_hd"
              },
              "enhancePrompt": {
                "type": "boolean",
                "default": false
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              },
              "enableSafetyChecker": {
                "type": "boolean",
                "default": false
              },
              "loras": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ImageGenInputLora"
                }
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "version",
              "mapping": {
                "v2.2": "#/components/schemas/Wan22ImageGenInput",
                "v2.2-5b": "#/components/schemas/Wan225bImageGenInput",
                "v2.5": "#/components/schemas/Wan25ImageGenInput",
                "v2.7": "#/components/schemas/Wan27ImageGenInput"
              }
            }
          }
        ]
      },
      "WanVideoGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/VideoGenInput"
          },
          {
            "required": [
              "cfgScale",
              "engine",
              "version"
            ],
            "type": "object",
            "properties": {
              "version": {
                "type": [
                  "null",
                  "string"
                ],
                "default": "v2.1"
              },
              "cfgScale": {
                "maximum": 100,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 4
              },
              "fps": {
                "type": "integer",
                "format": "int32",
                "default": 24
              },
              "engine": {
                "enum": [
                  "wan"
                ],
                "type": "string"
              },
              "duration": {
                "maximum": 30,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 5
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int32"
              },
              "steps": {
                "maximum": 50,
                "minimum": 10,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "loras": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/VideoGenInputLora"
                }
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "version",
              "mapping": {
                "v2.1": "#/components/schemas/Wan21VideoGenInput",
                "v2.2": "#/components/schemas/Wan22VideoGenInput",
                "v2.2-5b": "#/components/schemas/Wan225bVideoGenInput",
                "v2.5": "#/components/schemas/Wan25VideoGenInput",
                "v2.6": "#/components/schemas/Wan26VideoGenInput",
                "v2.7": "#/components/schemas/Wan27VideoGenInput",
                "v3.0": "#/components/schemas/Wan30VideoGenInput"
              }
            }
          }
        ]
      },
      "Watermark": {
        "required": [
          "image"
        ],
        "type": "object",
        "properties": {
          "image": {
            "type": "string",
            "description": "The tile, typically a PNG with transparency. It is imported and moderated like any other input image.",
            "format": "source-image"
          },
          "opacity": {
            "maximum": 1,
            "minimum": 0,
            "type": "number",
            "format": "float",
            "default": 0.3
          },
          "scale": {
            "maximum": 1,
            "minimum": 0.01,
            "type": "number",
            "description": "Width of one tile as a fraction of the output width.",
            "format": "float",
            "default": 0.25
          },
          "angle": {
            "maximum": 90,
            "minimum": -90,
            "type": "number",
            "description": "Counter-clockwise rotation of the tiled pattern, in degrees.",
            "format": "float",
            "default": 0
          }
        },
        "additionalProperties": false,
        "description": "An image repeated across the whole output, burned into every frame."
      },
      "WatermarkTransform": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageTransform"
          },
          {
            "required": [
              "type",
              "watermark"
            ],
            "type": "object",
            "properties": {
              "watermark": {
                "description": "An image repeated across the whole output, burned into every frame.",
                "$ref": "#/components/schemas/Watermark"
              },
              "type": {
                "enum": [
                  "watermark"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "WebScrapeInput": {
        "required": [
          "formats",
          "url"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri"
          },
          "formats": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The formats to return the page content in (e.g. \"markdown\", \"html\", \"links\")."
          }
        },
        "additionalProperties": false
      },
      "WebScrapeOutput": {
        "type": "object",
        "properties": {
          "markdown": {
            "type": [
              "null",
              "string"
            ],
            "description": "The page content as markdown, when requested."
          },
          "html": {
            "type": [
              "null",
              "string"
            ],
            "description": "The page content as HTML, when requested."
          },
          "links": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "The links found on the page, when requested."
          },
          "title": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ]
          },
          "statusCode": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "WebScrapeStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/WebScrapeInput"
              },
              "output": {
                "$ref": "#/components/schemas/WebScrapeOutput"
              },
              "$type": {
                "enum": [
                  "webScrape"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "WebScrape"
      },
      "WebScrapeStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the WebScrapeStep step.",
                "$ref": "#/components/schemas/WebScrapeInput"
              },
              "$type": {
                "enum": [
                  "webScrape"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "WebScrape"
      },
      "WebSearchInput": {
        "required": [
          "limit",
          "query"
        ],
        "type": "object",
        "properties": {
          "query": {
            "type": "string"
          },
          "limit": {
            "type": "integer",
            "description": "The maximum number of results to return (1-10).",
            "format": "int32"
          },
          "scrapeFormats": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Optional formats to scrape each result page in (e.g. [\"markdown\"]). When omitted,\nonly titles, URLs and descriptions are returned."
          }
        },
        "additionalProperties": false
      },
      "WebSearchOutput": {
        "required": [
          "results"
        ],
        "type": "object",
        "properties": {
          "results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WebSearchResult"
            },
            "description": "The search results, in relevance order."
          }
        },
        "additionalProperties": false
      },
      "WebSearchResult": {
        "required": [
          "url"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string"
          },
          "title": {
            "type": [
              "null",
              "string"
            ]
          },
          "description": {
            "type": [
              "null",
              "string"
            ],
            "description": "The search engine's snippet/description for the result."
          },
          "markdown": {
            "type": [
              "null",
              "string"
            ],
            "description": "The result page content as markdown. Only present when the step input requested\nscraping via `scrapeFormats`."
          }
        },
        "additionalProperties": false
      },
      "WebSearchStep": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "$ref": "#/components/schemas/WebSearchInput"
              },
              "output": {
                "$ref": "#/components/schemas/WebSearchOutput"
              },
              "$type": {
                "enum": [
                  "webSearch"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "WebSearch"
      },
      "WebSearchStepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the WebSearchStep step.",
                "$ref": "#/components/schemas/WebSearchInput"
              },
              "$type": {
                "enum": [
                  "webSearch"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "WebSearch"
      },
      "WebpOutputFormat": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ImageOutputFormat"
          },
          {
            "required": [
              "format"
            ],
            "type": "object",
            "properties": {
              "quality": {
                "maximum": 100,
                "minimum": 1,
                "type": "integer",
                "description": "Quality setting for WebP compression (1-100). Only applies when Lossless is false.",
                "format": "int32",
                "default": 85
              },
              "lossless": {
                "type": "boolean",
                "default": false
              },
              "maxFrames": {
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Maximum number of frames to include in the output. Set to 1 to extract only the first frame from animated images.\nWhen null, all frames are preserved.",
                "format": "int32"
              },
              "format": {
                "enum": [
                  "webp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "Workflow": {
        "required": [
          "arguments",
          "callbacks",
          "cost",
          "createdAt",
          "currencies",
          "forceRefunded",
          "metadata",
          "status",
          "steps",
          "tags",
          "tier",
          "tips",
          "upgradeMode"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "null",
              "string"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "transactions": {
            "$ref": "#/components/schemas/TransactionSummary"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {}
          },
          "status": {
            "$ref": "#/components/schemas/WorkflowStatus"
          },
          "startedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "completedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Indexed for searching; at most 10 per workflow."
          },
          "arguments": {
            "type": "object",
            "additionalProperties": {}
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowStep"
            },
            "readOnly": true
          },
          "callbacks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowCallback"
            }
          },
          "tips": {
            "description": "Optional tips for either civitai or the creators involved in this workflow.",
            "$ref": "#/components/schemas/WorkflowTips"
          },
          "cost": {
            "description": "Get a summary of the actual cost consumed by this workflow.\nOn dry-run requests, this will contain the estimated cost.",
            "$ref": "#/components/schemas/WorkflowCost"
          },
          "nsfwLevel": {
            "description": "An optional limit in what content is safe to return",
            "$ref": "#/components/schemas/NSFWLevel"
          },
          "experimental": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Opts the workflow in to new features or behaviours that are not yet stable."
          },
          "allowMatureContent": {
            "type": [
              "null",
              "boolean"
            ]
          },
          "upgradeMode": {
            "description": "Specifies how a workflow should be upgraded when mature content is detected and green or blue buzz was used for payment.",
            "$ref": "#/components/schemas/WorkflowUpgradeMode"
          },
          "currencies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuzzClientAccount"
            }
          },
          "forceRefunded": {
            "type": "boolean",
            "description": "Whether this workflow has been force-refunded.\nPrevents re-charging if the workflow is recovered."
          },
          "ephemeral": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Not retained: nothing remains once the workflow reaches a terminal state."
          },
          "externalId": {
            "type": [
              "null",
              "string"
            ],
            "description": "Client-supplied idempotency key, stored as `\"{userId}-{clientValue}\"`, so it is unique per user."
          },
          "lostBlobsRefund": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Net buzz refunded for deliverable blobs lost during a past storage incident. Null = not checked (most workflows), 0 = intact;\na value > 0 also prevents re-charging on recovery.",
            "format": "int32"
          },
          "deletedAt": {
            "type": [
              "null",
              "string"
            ],
            "description": "Soft delete: consumer reads treat the workflow as gone.",
            "format": "date-time"
          },
          "downloadPriority": {
            "description": "Download lane for resources this workflow needs but the fleet does not hold. Resolved from\nmembership at submission unless the consumer paid to pin it to High.",
            "$ref": "#/components/schemas/Priority"
          },
          "tier": {
            "description": "How a workflow is paid for.",
            "$ref": "#/components/schemas/WorkflowTier"
          },
          "fund": {
            "type": [
              "null",
              "string"
            ],
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "WorkflowCallback": {
        "required": [
          "type",
          "url"
        ],
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri"
          },
          "type": {
            "type": "array",
            "items": {
              "enum": [
                "workflow:*",
                "workflow:unassigned",
                "workflow:preparing",
                "workflow:scheduled",
                "workflow:processing",
                "workflow:succeeded",
                "workflow:failed",
                "workflow:expired",
                "workflow:canceled",
                "step:*",
                "step:unassigned",
                "step:preparing",
                "step:scheduled",
                "step:processing",
                "step:succeeded",
                "step:failed",
                "step:expired",
                "step:canceled",
                "job:*",
                "job:unassigned",
                "job:preparing",
                "job:scheduled",
                "job:processing",
                "job:succeeded",
                "job:failed",
                "job:expired",
                "job:canceled"
              ],
              "type": "string",
              "example": "workflow:succeeded"
            }
          },
          "detailed": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Whether to include detailed output (step/workflow results) in the callback payload."
          }
        },
        "additionalProperties": false
      },
      "WorkflowCost": {
        "required": [
          "base",
          "tips",
          "total"
        ],
        "type": "object",
        "properties": {
          "base": {
            "type": "integer",
            "description": "The base cost of this request, excluding any tips",
            "format": "int32"
          },
          "factors": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "fixed": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "integer",
              "format": "int32"
            },
            "description": "A fixed set of cost additions for this request"
          },
          "tips": {
            "$ref": "#/components/schemas/WorkflowCostTips"
          },
          "fees": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "description": "Per-resource licensing fees keyed by resource AIR; the user is charged the sum and each entry is settled to its resource's recipient."
          },
          "variable": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "When true the price is a cap that may settle lower: a post-billed step is charged at its maximum up front and\nthe difference refunded once the provider reports actual work."
          },
          "total": {
            "type": "integer",
            "description": "The total cost of this request, including tips",
            "format": "int32",
            "readOnly": true
          }
        },
        "additionalProperties": false
      },
      "WorkflowCostTips": {
        "required": [
          "civitai",
          "creators"
        ],
        "type": "object",
        "properties": {
          "civitai": {
            "type": "integer",
            "format": "int32"
          },
          "creators": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "WorkflowEvent": {
        "required": [
          "$type",
          "status",
          "timestamp",
          "workflowId"
        ],
        "type": "object",
        "properties": {
          "workflowId": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/WorkflowStatus"
          },
          "timestamp": {
            "type": "string",
            "format": "date-time"
          },
          "$type": {
            "type": "string",
            "readOnly": true
          },
          "details": {
            "description": "Only present when the callback requests detailed events.",
            "$ref": "#/components/schemas/WorkflowEventDetails"
          }
        },
        "additionalProperties": false
      },
      "WorkflowEventDetails": {
        "required": [
          "createdAt",
          "steps"
        ],
        "type": "object",
        "properties": {
          "metadata": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {}
          },
          "arguments": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {}
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "completedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "startedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowEventStepDetails"
            }
          }
        },
        "additionalProperties": false,
        "description": "Detailed information about a workflow included in webhook callbacks when detailed mode is enabled."
      },
      "WorkflowEventStepDetails": {
        "required": [
          "name",
          "status"
        ],
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/WorkflowStatus"
          },
          "startedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "completedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "metadata": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {}
          },
          "input": {},
          "output": {},
          "cost": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "WorkflowStatus": {
        "enum": [
          "unassigned",
          "preparing",
          "scheduled",
          "processing",
          "succeeded",
          "failed",
          "expired",
          "canceled"
        ],
        "type": "string"
      },
      "WorkflowStep": {
        "required": [
          "$type",
          "metadata",
          "name",
          "priority",
          "status"
        ],
        "type": "object",
        "properties": {
          "$type": {
            "type": "string"
          },
          "name": {
            "type": "string",
            "description": "The name of the workflow step. Used to allow steps to refer to one another."
          },
          "priority": {
            "$ref": "#/components/schemas/Priority"
          },
          "timeout": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-span"
          },
          "retries": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "status": {
            "$ref": "#/components/schemas/WorkflowStatus"
          },
          "startedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "completedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": {}
          },
          "estimatedProgressRate": {
            "type": [
              "null",
              "number"
            ],
            "description": "Estimated progress of this step, or null when there is no estimate (including once the step reaches a final status).",
            "format": "double"
          },
          "preparation": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "description": "One resource a step is waiting on. A queued resource reports a position and no progress; one that\nis transferring reports the reverse.",
              "$ref": "#/components/schemas/WorkflowStepPreparationResource"
            },
            "description": "Every resource download this step is waiting on, the one holding it back first. Only set while\nthe step is preparing."
          },
          "queuePosition": {
            "description": "The step's queue position, aggregated across its jobs (worst support, fewest preceding jobs,\nearliest estimated start, latest estimated completion). Null once the step starts processing.",
            "$ref": "#/components/schemas/WorkflowStepQueuePosition"
          },
          "warnings": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "description": "A non-fatal notice about a workflow step, e.g. a requested model that is scheduled for retirement.",
              "$ref": "#/components/schemas/WorkflowStepWarning"
            },
            "description": "Non-fatal warnings about this step, such as a requested model that is scheduled for retirement.\nOmitted when there are none."
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "$type",
          "mapping": {
            "aceStepAudio": "#/components/schemas/AceStepAudioStep",
            "audioCaptioning": "#/components/schemas/AudioCaptioningStep",
            "audioModeration": "#/components/schemas/AudioModerationStep",
            "blobArchive": "#/components/schemas/BlobArchiveStep",
            "chatCompletion": "#/components/schemas/ChatCompletionStep",
            "comfy": "#/components/schemas/ComfyStep",
            "comfyNodepackSnapshot": "#/components/schemas/ComfyNodepackSnapshotStep",
            "composeMedia": "#/components/schemas/ComposeMediaStep",
            "convertImage": "#/components/schemas/ConvertImageStep",
            "customComfy": "#/components/schemas/CustomComfyStep",
            "imageBackgroundRemoval": "#/components/schemas/ImageBackgroundRemovalStep",
            "imageGen": "#/components/schemas/ImageGenStep",
            "imageResourceTraining": "#/components/schemas/ImageResourceTrainingStep",
            "imageToSvg": "#/components/schemas/ImageToSvgStep",
            "imageUpload": "#/components/schemas/ImageUploadStep",
            "imageUpscaler": "#/components/schemas/ImageUpscalerStep",
            "liveTextToSpeech": "#/components/schemas/LiveTextToSpeechStep",
            "liveTranscription": "#/components/schemas/LiveTranscriptionStep",
            "mediaCaptioning": "#/components/schemas/MediaCaptioningStep",
            "mediaHash": "#/components/schemas/MediaHashStep",
            "mediaRating": "#/components/schemas/MediaRatingStep",
            "merge": "#/components/schemas/MergeStep",
            "miniMaxMusic3": "#/components/schemas/MiniMaxMusic3Step",
            "model3DPreview": "#/components/schemas/Model3DPreviewStep",
            "modelHash": "#/components/schemas/ModelHashStep",
            "modelParseMetadata": "#/components/schemas/ModelParseMetadataStep",
            "polyGen": "#/components/schemas/PolyGenStep",
            "preprocessImage": "#/components/schemas/PreprocessImageStep",
            "preprocessVideo": "#/components/schemas/PreprocessVideoStep",
            "promptEnhancement": "#/components/schemas/PromptEnhancementStep",
            "promptModeration": "#/components/schemas/PromptModerationStep",
            "qwenImageBench": "#/components/schemas/QwenImageBenchStep",
            "soniloAudioGen": "#/components/schemas/SoniloAudioGenStep",
            "textToImage": "#/components/schemas/TextToImageStep",
            "textToSpeech": "#/components/schemas/TextToSpeechStep",
            "training": "#/components/schemas/TrainingStep",
            "transcode": "#/components/schemas/TranscodeStep",
            "transcription": "#/components/schemas/TranscriptionStep",
            "videoBackgroundRemoval": "#/components/schemas/VideoBackgroundRemovalStep",
            "videoEnhancement": "#/components/schemas/VideoEnhancementStep",
            "videoFrameExtraction": "#/components/schemas/VideoFrameExtractionStep",
            "videoGen": "#/components/schemas/VideoGenStep",
            "videoInterpolation": "#/components/schemas/VideoInterpolationStep",
            "videoMetadata": "#/components/schemas/VideoMetadataStep",
            "videoUpscaler": "#/components/schemas/VideoUpscalerStep",
            "wdTagging": "#/components/schemas/WDTaggingStep",
            "webScrape": "#/components/schemas/WebScrapeStep",
            "webSearch": "#/components/schemas/WebSearchStep",
            "yuE2": "#/components/schemas/YuE2Step"
          }
        }
      },
      "WorkflowStepEvent": {
        "required": [
          "$type",
          "name",
          "status",
          "workflowId"
        ],
        "type": "object",
        "properties": {
          "workflowId": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/WorkflowStatus"
          },
          "$type": {
            "type": "string",
            "readOnly": true
          },
          "details": {
            "description": "Only present when the callback requests detailed events.",
            "$ref": "#/components/schemas/WorkflowStepEventDetails"
          },
          "preparation": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "description": "One resource a step is waiting on. A queued resource reports a position and no progress; one that\nis transferring reports the reverse.",
              "$ref": "#/components/schemas/WorkflowStepPreparationResource"
            },
            "description": "Every resource download this step is waiting on, gating resource first. Only set while preparing."
          }
        },
        "additionalProperties": false
      },
      "WorkflowStepEventDetails": {
        "required": [
          "retries"
        ],
        "type": "object",
        "properties": {
          "startedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "completedAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "estimatedProgressRate": {
            "type": [
              "null",
              "number"
            ],
            "description": "Estimated progress rate of the step (0.0 to 1.0)",
            "format": "double"
          },
          "retries": {
            "type": "integer",
            "format": "int32"
          },
          "metadata": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {}
          },
          "input": {},
          "output": {},
          "preparation": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "description": "One resource a step is waiting on. A queued resource reports a position and no progress; one that\nis transferring reports the reverse.",
              "$ref": "#/components/schemas/WorkflowStepPreparationResource"
            },
            "description": "Every resource download this step is waiting on, gating resource first. Only set while preparing."
          }
        },
        "additionalProperties": false,
        "description": "Detailed information about a workflow step included in webhook callbacks when detailed mode is enabled."
      },
      "WorkflowStepJobEvent": {
        "required": [
          "$type",
          "jobId",
          "status",
          "stepName",
          "workflowId"
        ],
        "type": "object",
        "properties": {
          "workflowId": {
            "type": "string"
          },
          "stepName": {
            "type": "string"
          },
          "jobId": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/WorkflowStatus"
          },
          "$type": {
            "type": "string",
            "readOnly": true
          },
          "progress": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "reason": {
            "type": [
              "null",
              "string"
            ]
          },
          "blockedReason": {
            "type": [
              "null",
              "string"
            ]
          },
          "matureContent": {
            "type": [
              "null",
              "boolean"
            ]
          }
        },
        "additionalProperties": false
      },
      "WorkflowStepPreparationResource": {
        "required": [
          "lane",
          "resource",
          "sizeBytes"
        ],
        "type": "object",
        "properties": {
          "resource": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": "string"
          },
          "sizeBytes": {
            "type": "integer",
            "format": "int64"
          },
          "lane": {
            "$ref": "#/components/schemas/Priority"
          },
          "queuePosition": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "progress": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "bytesPerSecond": {
            "type": [
              "null",
              "number"
            ],
            "format": "double"
          },
          "etaSeconds": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "boostedEtaSeconds": {
            "type": [
              "null",
              "integer"
            ],
            "description": "What `etaSeconds` would become in the High lane. Null when already High.",
            "format": "int32"
          },
          "rateLimitBytesPerSecond": {
            "type": [
              "null",
              "integer"
            ],
            "description": "Per-stream ceiling the lane applies to this download. Null when uncapped; boosting to High lifts it.",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "One resource a step is waiting on. A queued resource reports a position and no progress; one that\nis transferring reports the reverse."
      },
      "WorkflowStepQueuePosition": {
        "required": [
          "support"
        ],
        "type": "object",
        "properties": {
          "support": {
            "$ref": "#/components/schemas/JobSupport"
          },
          "precedingJobs": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "estimatedStartAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          },
          "estimatedCompleteAt": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "WorkflowStepTemplate": {
        "required": [
          "$type"
        ],
        "type": "object",
        "properties": {
          "$type": {
            "type": "string"
          },
          "name": {
            "type": [
              "null",
              "string"
            ],
            "description": "The name of the workflow step. Used to allow steps to refer to one another."
          },
          "priority": {
            "$ref": "#/components/schemas/Priority"
          },
          "timeout": {
            "type": [
              "null",
              "string"
            ],
            "format": "date-span"
          },
          "retries": {
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "metadata": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {}
          }
        },
        "additionalProperties": false,
        "discriminator": {
          "propertyName": "$type",
          "mapping": {
            "aceStepAudio": "#/components/schemas/AceStepAudioStepTemplate",
            "audioCaptioning": "#/components/schemas/AudioCaptioningStepTemplate",
            "audioModeration": "#/components/schemas/AudioModerationStepTemplate",
            "blobArchive": "#/components/schemas/BlobArchiveStepTemplate",
            "chatCompletion": "#/components/schemas/ChatCompletionStepTemplate",
            "comfy": "#/components/schemas/ComfyStepTemplate",
            "comfyNodepackSnapshot": "#/components/schemas/ComfyNodepackSnapshotStepTemplate",
            "composeMedia": "#/components/schemas/ComposeMediaStepTemplate",
            "convertImage": "#/components/schemas/ConvertImageStepTemplate",
            "customComfy": "#/components/schemas/CustomComfyStepTemplate",
            "imageBackgroundRemoval": "#/components/schemas/ImageBackgroundRemovalStepTemplate",
            "imageGen": "#/components/schemas/ImageGenStepTemplate",
            "imageResourceTraining": "#/components/schemas/ImageResourceTrainingStepTemplate",
            "imageToSvg": "#/components/schemas/ImageToSvgStepTemplate",
            "imageUpload": "#/components/schemas/ImageUploadStepTemplate",
            "imageUpscaler": "#/components/schemas/ImageUpscalerStepTemplate",
            "liveTextToSpeech": "#/components/schemas/LiveTextToSpeechStepTemplate",
            "liveTranscription": "#/components/schemas/LiveTranscriptionStepTemplate",
            "mediaCaptioning": "#/components/schemas/MediaCaptioningStepTemplate",
            "mediaHash": "#/components/schemas/MediaHashStepTemplate",
            "mediaRating": "#/components/schemas/MediaRatingStepTemplate",
            "merge": "#/components/schemas/MergeStepTemplate",
            "miniMaxMusic3": "#/components/schemas/MiniMaxMusic3StepTemplate",
            "model3DPreview": "#/components/schemas/Model3DPreviewStepTemplate",
            "modelHash": "#/components/schemas/ModelHashStepTemplate",
            "modelParseMetadata": "#/components/schemas/ModelParseMetadataStepTemplate",
            "polyGen": "#/components/schemas/PolyGenStepTemplate",
            "preprocessImage": "#/components/schemas/PreprocessImageStepTemplate",
            "preprocessVideo": "#/components/schemas/PreprocessVideoStepTemplate",
            "promptEnhancement": "#/components/schemas/PromptEnhancementStepTemplate",
            "promptModeration": "#/components/schemas/PromptModerationStepTemplate",
            "qwenImageBench": "#/components/schemas/QwenImageBenchStepTemplate",
            "soniloAudioGen": "#/components/schemas/SoniloAudioGenStepTemplate",
            "textToImage": "#/components/schemas/TextToImageStepTemplate",
            "textToSpeech": "#/components/schemas/TextToSpeechStepTemplate",
            "training": "#/components/schemas/TrainingStepTemplate",
            "transcode": "#/components/schemas/TranscodeStepTemplate",
            "transcription": "#/components/schemas/TranscriptionStepTemplate",
            "videoBackgroundRemoval": "#/components/schemas/VideoBackgroundRemovalStepTemplate",
            "videoEnhancement": "#/components/schemas/VideoEnhancementStepTemplate",
            "videoFrameExtraction": "#/components/schemas/VideoFrameExtractionStepTemplate",
            "videoGen": "#/components/schemas/VideoGenStepTemplate",
            "videoInterpolation": "#/components/schemas/VideoInterpolationStepTemplate",
            "videoMetadata": "#/components/schemas/VideoMetadataStepTemplate",
            "videoUpscaler": "#/components/schemas/VideoUpscalerStepTemplate",
            "wdTagging": "#/components/schemas/WDTaggingStepTemplate",
            "webScrape": "#/components/schemas/WebScrapeStepTemplate",
            "webSearch": "#/components/schemas/WebSearchStepTemplate",
            "yuE2": "#/components/schemas/YuE2StepTemplate"
          }
        }
      },
      "WorkflowStepWarning": {
        "required": [
          "code",
          "message"
        ],
        "type": "object",
        "properties": {
          "code": {
            "$ref": "#/components/schemas/WorkflowStepWarningCode"
          },
          "message": {
            "type": "string"
          },
          "deprecatedAt": {
            "type": [
              "null",
              "string"
            ],
            "description": "When the deprecation was announced, if applicable.",
            "format": "date-time"
          },
          "retiresAt": {
            "type": [
              "null",
              "string"
            ],
            "description": "When requests relying on the deprecated behavior start being rejected, if applicable.",
            "format": "date-time"
          },
          "replacement": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false,
        "description": "A non-fatal notice about a workflow step, e.g. a requested model that is scheduled for retirement."
      },
      "WorkflowStepWarningCode": {
        "enum": [
          "modelDeprecated",
          "fieldDeprecated"
        ],
        "type": "string"
      },
      "WorkflowTemplate": {
        "required": [
          "currencies",
          "steps"
        ],
        "type": "object",
        "properties": {
          "metadata": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {}
          },
          "tags": {
            "maxItems": 10,
            "uniqueItems": true,
            "type": [
              "null",
              "array"
            ],
            "items": {
              "type": "string"
            },
            "description": "Indexed for searching. At most 10 tags, each at most 200 characters."
          },
          "steps": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WorkflowStepTemplate"
            }
          },
          "callbacks": {
            "type": [
              "null",
              "array"
            ],
            "items": {
              "$ref": "#/components/schemas/WorkflowCallback"
            }
          },
          "tips": {
            "description": "Optional tips for either civitai or the creators involved in this workflow.",
            "$ref": "#/components/schemas/WorkflowTips"
          },
          "arguments": {
            "type": [
              "null",
              "object"
            ],
            "additionalProperties": {}
          },
          "nsfwLevel": {
            "description": "An optional limit in what content is safe to return",
            "$ref": "#/components/schemas/NSFWLevel"
          },
          "downloadPriority": {
            "description": "Download urgency for resources the fleet does not hold; omit to derive it from membership.\nOnly High may be requested, and it carries a Buzz charge per cold resource above the free size threshold.",
            "$ref": "#/components/schemas/Priority"
          },
          "tier": {
            "description": "Run this workflow on the free tier. Only steps using a model offered on the free tier are\naccepted; they cost no Buzz, count against a per-user quota and run behind all paid work.",
            "default": "paid",
            "$ref": "#/components/schemas/WorkflowTier"
          },
          "experimental": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Opts the workflow in to new features or behaviours that are not yet stable."
          },
          "allowMatureContent": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "When false, no content marked as mature is returned; additional payment options are available for such workflows."
          },
          "upgradeMode": {
            "description": "Specifies how a workflow should be upgraded when mature content is detected and green or blue buzz was used for payment.",
            "default": "automatic",
            "$ref": "#/components/schemas/WorkflowUpgradeMode"
          },
          "currencies": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BuzzClientAccount"
            },
            "description": "Limit the currencies that can be used to pay for this workflow."
          },
          "fund": {
            "type": [
              "null",
              "string"
            ],
            "description": "Bill this workflow to a fund (see `POST /v2/consumer/funds`) instead of the caller's Buzz. Implies the paid tier;\n`currencies` then limits which of the fund's currencies are spent.",
            "format": "uuid"
          },
          "ephemeral": {
            "type": [
              "null",
              "boolean"
            ],
            "description": "Never persisted: results are available only via callbacks or the synchronous `wait` parameter, and GET returns 404 once terminal.\nRequires at least one callback or `wait > 0` on submission."
          },
          "externalId": {
            "maxLength": 128,
            "minLength": 1,
            "pattern": "^[A-Za-z0-9_-]+$",
            "type": [
              "null",
              "string"
            ],
            "description": "Idempotency key: if a workflow with the same `(userId, externalId)` exists (including from a prior `whatif=true` request),\nit is returned instead of creating a new one. Max 128 chars, `[A-Za-z0-9_-]+`."
          }
        },
        "additionalProperties": false
      },
      "WorkflowTier": {
        "enum": [
          "paid",
          "free"
        ],
        "type": "string",
        "description": "How a workflow is paid for."
      },
      "WorkflowTips": {
        "required": [
          "civitai",
          "creators"
        ],
        "type": "object",
        "properties": {
          "civitai": {
            "maximum": 2,
            "minimum": 0,
            "type": "number",
            "description": "The rate of tipping that should be allocated to civitai",
            "format": "double"
          },
          "creators": {
            "maximum": 2,
            "minimum": 0,
            "type": "number",
            "description": "The rate of tipping that should be allocated to creators involved in this workflow",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "WorkflowUpgradeMode": {
        "enum": [
          "manual",
          "automatic"
        ],
        "type": "string",
        "description": "Specifies how a workflow should be upgraded when mature content is detected and green or blue buzz was used for payment."
      },
      "WorkflowWaitUntil": {
        "enum": [
          "completion",
          "change"
        ],
        "type": "string",
        "description": "What a held read of a workflow waits for before it returns."
      },
      "YuE2AIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "defaultSteps",
              "ecosystem",
              "engine"
            ],
            "type": "object",
            "properties": {
              "samplesOverrides": {
                "type": "array",
                "items": {
                  "description": "Optional overrides aligned with Samples.Prompts.",
                  "$ref": "#/components/schemas/YuE2SampleOverride"
                }
              },
              "defaultSteps": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "yue2"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 1,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Fixed at 1 for this ecosystem.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "YuE2 music LoRA training. Audio captions contain style followed by [Lyrics] and lyrics."
      },
      "YuE2Input": {
        "required": [
          "loras",
          "lyrics",
          "mode",
          "seed",
          "style"
        ],
        "type": "object",
        "properties": {
          "style": {
            "minLength": 1,
            "type": "string",
            "description": "Musical style, instrumentation, mood, tempo, and vocal description."
          },
          "lyrics": {
            "minLength": 1,
            "type": "string",
            "description": "Lyrics with section markers such as [verse] and [chorus]."
          },
          "seed": {
            "type": "integer",
            "format": "int32"
          },
          "maxDuration": {
            "maximum": 360,
            "minimum": 0.03999999910593033,
            "type": "number",
            "description": "Maximum song duration in seconds; generation can stop earlier.",
            "format": "float",
            "default": 120
          },
          "steps": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer",
            "description": "Diffusion steps using the upstream dpm_2 / sgm_uniform sampler.",
            "format": "int32",
            "default": 32
          },
          "mode": {
            "minLength": 1,
            "pattern": "^(full|melody|off)$",
            "type": "string",
            "description": "Score planning: full (melody and chords), melody, or off.",
            "default": "full"
          },
          "abc": {
            "type": [
              "null",
              "string"
            ],
            "description": "Optional ABC score to use instead of generating a score. Ignored in off mode."
          },
          "checkpointModel": {
            "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
            "type": [
              "null",
              "string"
            ],
            "description": "Optional YuE2 checkpoint override containing the model, text encoder, and audio VAE."
          },
          "loras": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "description": "Optional LoRAs for both YuE2 experts."
          }
        },
        "additionalProperties": false,
        "description": "YuE2 text-to-music generation with optional ABC score planning."
      },
      "YuE2Output": {
        "required": [
          "blob"
        ],
        "type": "object",
        "properties": {
          "blob": {
            "$ref": "#/components/schemas/AudioBlob"
          }
        },
        "additionalProperties": false
      },
      "YuE2SampleOverride": {
        "type": "object",
        "properties": {
          "lyrics": {
            "type": [
              "null",
              "string"
            ]
          },
          "duration": {
            "maximum": 360,
            "minimum": 0.03999999910593033,
            "type": [
              "null",
              "number"
            ],
            "format": "float"
          },
          "steps": {
            "maximum": 100,
            "minimum": 1,
            "type": [
              "null",
              "integer"
            ],
            "format": "int32"
          },
          "mode": {
            "pattern": "^(full|melody|off)$",
            "type": [
              "null",
              "string"
            ]
          },
          "abc": {
            "type": [
              "null",
              "string"
            ]
          }
        },
        "additionalProperties": false,
        "description": "Optional overrides aligned with Samples.Prompts."
      },
      "YuE2Step": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStep"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "YuE2 text-to-music generation with optional ABC score planning.",
                "$ref": "#/components/schemas/YuE2Input"
              },
              "output": {
                "$ref": "#/components/schemas/YuE2Output"
              },
              "$type": {
                "enum": [
                  "yuE2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate a song from style and lyrics with YuE2."
      },
      "YuE2StepTemplate": {
        "allOf": [
          {
            "$ref": "#/components/schemas/WorkflowStepTemplate"
          },
          {
            "required": [
              "$type",
              "input"
            ],
            "type": "object",
            "properties": {
              "input": {
                "description": "Input for the YuE2Step step.",
                "$ref": "#/components/schemas/YuE2Input"
              },
              "$type": {
                "enum": [
                  "yuE2"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Generate a song from style and lyrics with YuE2."
      },
      "ZImageBaseAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "maxBatchSize"
            ],
            "type": "object",
            "properties": {
              "maxBatchSize": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "zimagebase"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 2,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Defaults to 1; raise it up to 2 for this ecosystem to train faster at the cost of more GPU memory.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ZImageBaseCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ZImageBaseImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "base"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "zImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ZImageBaseImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ZImageImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampleMethod": {
                "default": "euler",
                "$ref": "#/components/schemas/SdCppSampleMethod"
              },
              "schedule": {
                "default": "simple",
                "$ref": "#/components/schemas/SdCppSchedule"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 20
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 4
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "controlNets": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ImageJobControlNet"
                }
              },
              "model": {
                "enum": [
                  "base"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "zImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ZImageBaseCreateImageGenInput"
              }
            }
          }
        ]
      },
      "ZImageImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/SdCppImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model"
            ],
            "type": "object",
            "properties": {
              "model": {
                "type": "string"
              },
              "diffusionModel": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "zImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "model",
              "mapping": {
                "turbo": "#/components/schemas/ZImageTurboImageGenInput",
                "base": "#/components/schemas/ZImageBaseImageGenInput"
              }
            }
          }
        ]
      },
      "ZImageTurboAIToolkitTrainingInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/AIToolkitTrainingInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "maxBatchSize"
            ],
            "type": "object",
            "properties": {
              "maxBatchSize": {
                "type": "integer",
                "format": "int32",
                "readOnly": true
              },
              "ecosystem": {
                "enum": [
                  "zimageturbo"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "ai-toolkit"
                ],
                "type": "string"
              },
              "batchSize": {
                "maximum": 2,
                "minimum": 1,
                "type": [
                  "null",
                  "integer"
                ],
                "description": "Training batch size. Defaults to 1; raise it up to 2 for this ecosystem to train faster at the cost of more GPU memory.",
                "default": 1
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ZImageTurboCreateImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ZImageTurboImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation"
            ],
            "type": "object",
            "properties": {
              "width": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "height": {
                "maximum": 2048,
                "minimum": 64,
                "type": "integer",
                "format": "int32",
                "default": 1024
              },
              "operation": {
                "enum": [
                  "createImage"
                ],
                "type": "string"
              },
              "model": {
                "enum": [
                  "turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "zImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ZImageTurboImageGenInput": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ZImageImageGenInput"
          },
          {
            "required": [
              "ecosystem",
              "engine",
              "model",
              "operation",
              "prompt"
            ],
            "type": "object",
            "properties": {
              "operation": {
                "type": "string"
              },
              "prompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": "string"
              },
              "negativePrompt": {
                "maxLength": 10000,
                "minLength": 0,
                "type": [
                  "null",
                  "string"
                ]
              },
              "sampleMethod": {
                "default": "euler",
                "$ref": "#/components/schemas/SdCppSampleMethod"
              },
              "schedule": {
                "default": "simple",
                "$ref": "#/components/schemas/SdCppSchedule"
              },
              "steps": {
                "maximum": 150,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 9
              },
              "cfgScale": {
                "maximum": 30,
                "minimum": 0,
                "type": "number",
                "format": "double",
                "default": 1
              },
              "seed": {
                "type": [
                  "null",
                  "integer"
                ],
                "format": "int64"
              },
              "quantity": {
                "maximum": 12,
                "minimum": 1,
                "type": "integer",
                "format": "int32",
                "default": 1
              },
              "loras": {
                "type": "object",
                "additionalProperties": {
                  "type": "number",
                  "format": "double"
                }
              },
              "controlNets": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ImageJobControlNet"
                }
              },
              "model": {
                "enum": [
                  "turbo"
                ],
                "type": "string"
              },
              "ecosystem": {
                "enum": [
                  "zImage"
                ],
                "type": "string"
              },
              "engine": {
                "enum": [
                  "sdcpp"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false,
            "discriminator": {
              "propertyName": "operation",
              "mapping": {
                "createImage": "#/components/schemas/ZImageTurboCreateImageGenInput"
              }
            }
          }
        ]
      },
      "ZipTrainingData": {
        "allOf": [
          {
            "$ref": "#/components/schemas/TrainingData"
          },
          {
            "required": [
              "count",
              "sourceUrl",
              "type"
            ],
            "type": "object",
            "properties": {
              "sourceUrl": {
                "pattern": "^(?:urn:)?(?:air:)?(?:(?<ecosystem>[a-zA-Z0-9_\\-\\/]+):)?(?:(?<type>[a-zA-Z0-9_\\-\\/]+):)?(?<source>[a-zA-Z0-9_\\-\\/]+):(?<id>[a-zA-Z0-9_\\-\\/\\.]+)(?:@(?<version>[a-zA-Z0-9_\\-\\/.=,%+:]+))?(?:\\.(?<format>[a-zA-Z0-9_\\-]+))?$",
                "type": "string"
              },
              "count": {
                "type": "integer",
                "description": "The number of images/frames/items in this training data",
                "format": "int32"
              },
              "type": {
                "enum": [
                  "zip"
                ],
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        ]
      },
      "ZoeDepthEnvironment": {
        "enum": [
          "indoor",
          "outdoor"
        ],
        "type": "string"
      }
    },
    "securitySchemes": {
      "ApiKey": {
        "type": "http",
        "description": "Copy valid authorization token into field",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {}
  ],
  "tags": [
    {
      "name": "Blobs"
    },
    {
      "name": "Free tier"
    },
    {
      "name": "Funds"
    },
    {
      "name": "Recipes"
    },
    {
      "name": "Resources"
    },
    {
      "name": "Services"
    },
    {
      "name": "StreamingBlobs"
    },
    {
      "name": "Workflows"
    },
    {
      "name": "WorkflowSteps"
    }
  ]
}