{
    "openapi": "3.0.0",
    "paths":
        {
            "/":
                {
                    "get":
                        {
                            "operationId": "getApiMetadata",
                            "summary": "Get API metadata",
                            "description": "Retrieve the API version and the list of available routes.",
                            "parameters": [],
                            "responses":
                                {
                                    "200":
                                        {
                                            "description": "",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ApiMetadataResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "429":
                                        {
                                            "description": "Too Many Requests",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "500":
                                        {
                                            "description": "Internal Server Error",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                },
                            "tags": ["API"],
                        },
                },
            "/health":
                {
                    "get":
                        {
                            "operationId": "getHealth",
                            "summary": "Get API Health",
                            "description": "Retrieve the current health status of the API.",
                            "parameters": [],
                            "responses":
                                {
                                    "200":
                                        {
                                            "description": "",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/HealthResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "429":
                                        {
                                            "description": "Too Many Requests",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "500":
                                        {
                                            "description": "Internal Server Error",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                },
                            "tags": ["API"],
                        },
                },
            "/v1/models":
                {
                    "get":
                        {
                            "operationId": "getModels",
                            "summary": "Get models",
                            "description": "Retrieve a list of models that can be used for creating various types of artwork.",
                            "parameters": [],
                            "responses":
                                {
                                    "200":
                                        {
                                            "description": "",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "type": "array",
                                                                    "items":
                                                                        {
                                                                            "type": "string",
                                                                        },
                                                                },
                                                        },
                                                },
                                        },
                                    "401":
                                        {
                                            "description": "Unauthorized",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "403":
                                        {
                                            "description": "Forbidden",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "429":
                                        {
                                            "description": "Too Many Requests",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "500":
                                        {
                                            "description": "Internal Server Error",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                },
                            "tags": ["Models"],
                            "security": [{ "bearer": [] }],
                        },
                },
            "/v1/aspect-ratios":
                {
                    "get":
                        {
                            "operationId": "getAspectRatios",
                            "summary": "Get aspect ratios",
                            "description": "Get a list of aspect ratios, including width and height details, available for creating different types of artwork.",
                            "parameters": [],
                            "responses":
                                {
                                    "200":
                                        {
                                            "description": "",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "type": "array",
                                                                    "items":
                                                                        {
                                                                            "$ref": "#/components/schemas/AspectRatioResponse",
                                                                        },
                                                                },
                                                        },
                                                },
                                        },
                                    "401":
                                        {
                                            "description": "Unauthorized",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "403":
                                        {
                                            "description": "Forbidden",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "429":
                                        {
                                            "description": "Too Many Requests",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "500":
                                        {
                                            "description": "Internal Server Error",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                },
                            "tags": ["Aspect ratios"],
                            "security": [{ "bearer": [] }],
                        },
                },
            "/v1/styles":
                {
                    "get":
                        {
                            "operationId": "getStyles",
                            "summary": "Get styles",
                            "description": "Retrieve a list of styles available for creating various types of artwork, including details on img2img support and associated flags.",
                            "parameters": [],
                            "responses":
                                {
                                    "200":
                                        {
                                            "description": "",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "type": "array",
                                                                    "items":
                                                                        {
                                                                            "$ref": "#/components/schemas/StyleResponse",
                                                                        },
                                                                },
                                                        },
                                                },
                                        },
                                    "401":
                                        {
                                            "description": "Unauthorized",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "403":
                                        {
                                            "description": "Forbidden",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "429":
                                        {
                                            "description": "Too Many Requests",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "500":
                                        {
                                            "description": "Internal Server Error",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                },
                            "tags": ["Styles"],
                            "security": [{ "bearer": [] }],
                        },
                },
            "/v1/artworks":
                {
                    "get":
                        {
                            "operationId": "findAllArtworks",
                            "summary": "Find artworks",
                            "description": "Retrieve a list of artworks with details including ID, type, parameters, duration, results, status, and creation date.",
                            "parameters":
                                [
                                    {
                                        "name": "offset",
                                        "required": false,
                                        "in": "query",
                                        "schema":
                                            {
                                                "minimum": 0,
                                                "default": 0,
                                                "type": "integer",
                                            },
                                    },
                                    {
                                        "name": "limit",
                                        "required": false,
                                        "in": "query",
                                        "schema":
                                            {
                                                "minimum": 1,
                                                "maximum": 500,
                                                "default": 10,
                                                "type": "integer",
                                            },
                                    },
                                ],
                            "responses":
                                {
                                    "200":
                                        {
                                            "description": "List of artworks.",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "type": "array",
                                                                    "items":
                                                                        {
                                                                            "oneOf":
                                                                                [
                                                                                    {
                                                                                        "$ref": "#/components/schemas/Txt2ImgArtworkResponse",
                                                                                    },
                                                                                    {
                                                                                        "$ref": "#/components/schemas/UpscalingArtworkResponse",
                                                                                    },
                                                                                ],
                                                                        },
                                                                },
                                                        },
                                                },
                                        },
                                    "400":
                                        {
                                            "description": "Bad Request",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "401":
                                        {
                                            "description": "Unauthorized",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "403":
                                        {
                                            "description": "Forbidden",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "429":
                                        {
                                            "description": "Too Many Requests",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "500":
                                        {
                                            "description": "Internal Server Error",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                },
                            "tags": ["Artworks"],
                            "security": [{ "bearer": [] }],
                        },
                },
            "/v1/artworks/{id}":
                {
                    "get":
                        {
                            "operationId": "findArtworkById",
                            "summary": "Find artwork by ID",
                            "description": "Retrieve an artworks with details including ID, type, parameters, duration, results, status, and creation date.",
                            "parameters":
                                [
                                    {
                                        "name": "id",
                                        "required": true,
                                        "in": "path",
                                        "schema": { "type": "string" },
                                    },
                                ],
                            "responses":
                                {
                                    "200":
                                        {
                                            "description": "Artwork response.",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "oneOf":
                                                                        [
                                                                            {
                                                                                "$ref": "#/components/schemas/Txt2ImgArtworkResponse",
                                                                            },
                                                                            {
                                                                                "$ref": "#/components/schemas/UpscalingArtworkResponse",
                                                                            },
                                                                        ],
                                                                },
                                                        },
                                                },
                                        },
                                    "400":
                                        {
                                            "description": "Bad Request",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "401":
                                        {
                                            "description": "Unauthorized",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "403":
                                        {
                                            "description": "Forbidden",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "404":
                                        {
                                            "description": "Artwork not found.",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "429":
                                        {
                                            "description": "Too Many Requests",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "500":
                                        {
                                            "description": "Internal Server Error",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                },
                            "tags": ["Artworks"],
                            "security": [{ "bearer": [] }],
                        },
                    "delete":
                        {
                            "operationId": "deleteArtworkById",
                            "summary": "Delete artwork by ID",
                            "description": "Delete an artwork using its ID.",
                            "parameters":
                                [
                                    {
                                        "name": "id",
                                        "required": true,
                                        "in": "path",
                                        "schema": { "type": "string" },
                                    },
                                ],
                            "responses":
                                {
                                    "204": { "description": "" },
                                    "400":
                                        {
                                            "description": "Bad Request",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "401":
                                        {
                                            "description": "Unauthorized",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "403":
                                        {
                                            "description": "Forbidden",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "429":
                                        {
                                            "description": "Too Many Requests",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "500":
                                        {
                                            "description": "Internal Server Error",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                },
                            "tags": ["Artworks"],
                            "security": [{ "bearer": [] }],
                        },
                },
            "/v1/artworks/selena":
                {
                    "post":
                        {
                            "operationId": "createTxt2ImgArtwork",
                            "summary": "Create txt2img artwork",
                            "description": "Generate artwork using text-to-image (txt2img) conversion.",
                            "parameters": [],
                            "requestBody":
                                {
                                    "required": true,
                                    "content":
                                        {
                                            "application/json":
                                                {
                                                    "schema":
                                                        {
                                                            "$ref": "#/components/schemas/CreateTxt2ImgArtworkRequest",
                                                        },
                                                },
                                        },
                                },
                            "responses":
                                {
                                    "201":
                                        {
                                            "description": "Response indicating that the artwork was successfully created.",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/Txt2ImgArtworkResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "400":
                                        {
                                            "description": "Bad Request",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "401":
                                        {
                                            "description": "Unauthorized",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "403":
                                        {
                                            "description": "Forbidden",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "429":
                                        {
                                            "description": "Too Many Requests",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "500":
                                        {
                                            "description": "Internal Server Error",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "504":
                                        {
                                            "description": "Gateway Timeout",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                },
                            "tags": ["Artworks"],
                            "security": [{ "bearer": [] }],
                        },
                },
            "/v1/artworks/upscaling":
                {
                    "post":
                        {
                            "operationId": "createUpscalingArtwork",
                            "summary": "Create upscaling artwork",
                            "description": "Create high-resolution artwork by utilizing upscaling techniques.",
                            "parameters": [],
                            "requestBody":
                                {
                                    "required": true,
                                    "content":
                                        {
                                            "application/json":
                                                {
                                                    "schema":
                                                        {
                                                            "$ref": "#/components/schemas/CreateUpscalingArtworkRequest",
                                                        },
                                                },
                                        },
                                },
                            "responses":
                                {
                                    "201":
                                        {
                                            "description": "Response indicating that the artwork was successfully created.",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/UpscalingArtworkResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "400":
                                        {
                                            "description": "Bad Request",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "401":
                                        {
                                            "description": "Unauthorized",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "403":
                                        {
                                            "description": "Forbidden",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "429":
                                        {
                                            "description": "Too Many Requests",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "500":
                                        {
                                            "description": "Internal Server Error",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                    "504":
                                        {
                                            "description": "Gateway Timeout",
                                            "content":
                                                {
                                                    "application/json":
                                                        {
                                                            "schema":
                                                                {
                                                                    "$ref": "#/components/schemas/ErrorResponse",
                                                                },
                                                        },
                                                },
                                        },
                                },
                            "tags": ["Artworks"],
                            "security": [{ "bearer": [] }],
                        },
                },
        },
    "info":
        {
            "title": "Tengr.ai API",
            "description": "Tengr.ai's Public API allows business users to manage and generate artworks. It supports listing, retrieving, creating, and deleting artworks, as well as advanced image generation capabilities through text-to-image (prompt-based) generation. Users can customize outputs with options like styles, aspect ratios, and models.",
            "version": "1.2.0",
            "contact":
                {
                    "name": "Tengr.ai Support Team",
                    "url": "support@tengrai.com",
                    "email": "support@tengrai.com",
                },
        },
    "tags":
        [
            {
                "name": "API",
                "description": "The API Metadata endpoints provide the current API version, a list of available endpoints with their supported HTTP methods, and the status of the API health.",
            },
            {
                "name": "Artworks",
                "description": "Offers endpoints to create, retrieve (by ID or all), and delete artworks.",
            },
            {
                "name": "Styles",
                "description": "Provides an endpoint to list all available styles.",
            },
            {
                "name": "Aspect ratios",
                "description": "Provides an endpoint to list all available aspect ratios.",
            },
            {
                "name": "Models",
                "description": "Provides an endpoint to list all available models used for artwork creation.",
            },
        ],
    "servers":
        [{ "url": "https://api.tengr.ai", "description": "Tengr.ai API" }],
    "components":
        {
            "securitySchemes":
                {
                    "bearer":
                        {
                            "scheme": "bearer",
                            "bearerFormat": "JWT",
                            "type": "http",
                        },
                },
            "schemas":
                {
                    "ErrorResponse":
                        {
                            "type": "object",
                            "properties":
                                {
                                    "message": { "type": "string" },
                                    "statusCode": { "type": "number" },
                                    "error":
                                        {
                                            "type": "string",
                                            "description": "Available only when the message includes additional error details.",
                                        },
                                },
                            "required": ["message", "statusCode"],
                        },
                    "ApiMetadataResponse":
                        {
                            "type": "object",
                            "properties":
                                {
                                    "version": { "type": "string" },
                                    "routes":
                                        {
                                            "type": "array",
                                            "items":
                                                {
                                                    "type": "object",
                                                    "properties":
                                                        {
                                                            "method":
                                                                {
                                                                    "type": "string",
                                                                    "required": true,
                                                                },
                                                            "path":
                                                                {
                                                                    "type": "string",
                                                                    "required": true,
                                                                },
                                                        },
                                                    "required":
                                                        ["method", "path"],
                                                },
                                        },
                                },
                            "required": ["version", "routes"],
                        },
                    "HealthResponse":
                        {
                            "type": "object",
                            "properties": { "status": { "type": "string" } },
                            "required": ["status"],
                        },
                    "AspectRatioResponse":
                        {
                            "type": "object",
                            "properties":
                                {
                                    "name":
                                        {
                                            "type": "string",
                                            "enum":
                                                [
                                                    "1:1",
                                                    "7:9",
                                                    "2:3",
                                                    "4:7",
                                                    "9:16",
                                                    "9:21",
                                                    "9:7",
                                                    "3:2",
                                                    "7:4",
                                                    "16:9",
                                                    "21:9",
                                                ],
                                        },
                                    "width": { "type": "number" },
                                    "height": { "type": "number" },
                                },
                            "required": ["name", "width", "height"],
                        },
                    "StyleResponse":
                        {
                            "type": "object",
                            "properties":
                                {
                                    "name":
                                        {
                                            "type": "string",
                                            "enum":
                                                [
                                                    "default",
                                                    "portraiture",
                                                    "landscape",
                                                    "photographer",
                                                    "analog",
                                                    "car",
                                                    "food",
                                                    "horror",
                                                    "stained-glass",
                                                    "impasto",
                                                    "abstract-ink",
                                                    "illustration",
                                                    "aquarelle",
                                                    "water-cute",
                                                    "sphericute",
                                                    "fairytale",
                                                    "machinart",
                                                    "isometric",
                                                    "logo",
                                                    "abstractpen",
                                                    "lineart",
                                                    "manga",
                                                    "infiny-weave",
                                                    "infiny-pattern",
                                                    "infiny-flow",
                                                ],
                                        },
                                    "img2img": { "type": "boolean" },
                                    "flag": { "type": "string" },
                                },
                            "required": ["name", "img2img"],
                        },
                    "CreateTxt2ImgArtworkRequest":
                        {
                            "type": "object",
                            "properties":
                                {
                                    "model":
                                        {
                                            "default": "tengrai-20231128-m-d.safetensors",
                                            "type": "string",
                                            "enum":
                                                [
                                                    "tengrai-20231128-m-d.safetensors",
                                                    "tengrai-20240423-m-f.safetensors",
                                                ],
                                        },
                                    "promptMode":
                                        {
                                            "default": "seer",
                                            "type": "string",
                                            "enum": ["seer", "servitor"],
                                        },
                                    "prompt":
                                        {
                                            "default": "cat",
                                            "type": "string",
                                            "description": "Limited to 256 words; additional content will be truncated.",
                                        },
                                    "negativePrompt":
                                        {
                                            "default": "",
                                            "type": "string",
                                            "description": "Limited to 64 words; additional content will be truncated.",
                                        },
                                    "style":
                                        {
                                            "default": "default",
                                            "type": "string",
                                            "enum":
                                                [
                                                    "default",
                                                    "portraiture",
                                                    "landscape",
                                                    "photographer",
                                                    "analog",
                                                    "car",
                                                    "food",
                                                    "horror",
                                                    "stained-glass",
                                                    "impasto",
                                                    "abstract-ink",
                                                    "illustration",
                                                    "aquarelle",
                                                    "water-cute",
                                                    "sphericute",
                                                    "fairytale",
                                                    "machinart",
                                                    "isometric",
                                                    "logo",
                                                    "abstractpen",
                                                    "lineart",
                                                    "manga",
                                                    "infiny-weave",
                                                    "infiny-pattern",
                                                    "infiny-flow",
                                                ],
                                        },
                                    "creativity":
                                        {
                                            "default": 3,
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 5,
                                            "multipleOf": 1,
                                        },
                                    "details":
                                        {
                                            "default": 3,
                                            "type": "integer",
                                            "minimum": 1,
                                            "maximum": 5,
                                            "multipleOf": 1,
                                        },
                                    "aspectRatio":
                                        {
                                            "type": "string",
                                            "enum":
                                                [
                                                    "1:1",
                                                    "7:9",
                                                    "2:3",
                                                    "4:7",
                                                    "9:16",
                                                    "9:21",
                                                    "9:7",
                                                    "3:2",
                                                    "7:4",
                                                    "16:9",
                                                    "21:9",
                                                ],
                                            "example": "1:1",
                                            "description": "Defaults to a 1:1 ratio (1024 × 1024) if width and height are not specified.",
                                        },
                                    "width":
                                        {
                                            "type": "integer",
                                            "minimum": 512,
                                            "maximum": 2048,
                                            "example": 1024,
                                            "description": "Use aspectRatio instead of custom width and height for better quality.\nIf defined, the total area (width × height) must not exceed 1,478,656 pixels (e.g., 1216 × 1216).",
                                        },
                                    "height":
                                        {
                                            "type": "integer",
                                            "minimum": 512,
                                            "maximum": 2048,
                                            "example": 1024,
                                            "description": "Use aspectRatio instead of custom width and height for better quality.\nIf defined, the total area (width × height) must not exceed 1,478,656 pixels (e.g., 1216 × 1216).",
                                        },
                                    "nsfw":
                                        { "default": false, "type": "boolean" },
                                    "transparentBackground":
                                        { "default": false, "type": "boolean" },
                                },
                        },
                    "Txt2ImgArtworkResponse":
                        {
                            "type": "object",
                            "properties":
                                {
                                    "id":
                                        { "type": "string", "format": "uuid" },
                                    "artworkType":
                                        {
                                            "type": "string",
                                            "enum": ["selena"],
                                        },
                                    "parameters":
                                        {
                                            "type": "object",
                                            "properties":
                                                {
                                                    "model":
                                                        {
                                                            "default": "tengrai-20231128-m-d.safetensors",
                                                            "type": "string",
                                                            "enum":
                                                                [
                                                                    "tengrai-20231128-m-d.safetensors",
                                                                    "tengrai-20240423-m-f.safetensors",
                                                                ],
                                                            "required": false,
                                                        },
                                                    "promptMode":
                                                        {
                                                            "default": "seer",
                                                            "type": "string",
                                                            "enum":
                                                                [
                                                                    "seer",
                                                                    "servitor",
                                                                ],
                                                            "required": false,
                                                        },
                                                    "prompt":
                                                        {
                                                            "default": "cat",
                                                            "type": "string",
                                                            "description": "Limited to 256 words; additional content will be truncated.",
                                                            "required": false,
                                                        },
                                                    "negativePrompt":
                                                        {
                                                            "default": "",
                                                            "type": "string",
                                                            "description": "Limited to 64 words; additional content will be truncated.",
                                                            "required": false,
                                                        },
                                                    "style":
                                                        {
                                                            "default": "default",
                                                            "type": "string",
                                                            "enum":
                                                                [
                                                                    "default",
                                                                    "portraiture",
                                                                    "landscape",
                                                                    "photographer",
                                                                    "analog",
                                                                    "car",
                                                                    "food",
                                                                    "horror",
                                                                    "stained-glass",
                                                                    "impasto",
                                                                    "abstract-ink",
                                                                    "illustration",
                                                                    "aquarelle",
                                                                    "water-cute",
                                                                    "sphericute",
                                                                    "fairytale",
                                                                    "machinart",
                                                                    "isometric",
                                                                    "logo",
                                                                    "abstractpen",
                                                                    "lineart",
                                                                    "manga",
                                                                    "infiny-weave",
                                                                    "infiny-pattern",
                                                                    "infiny-flow",
                                                                ],
                                                            "required": false,
                                                        },
                                                    "creativity":
                                                        {
                                                            "default": 3,
                                                            "type": "integer",
                                                            "minimum": 1,
                                                            "maximum": 5,
                                                            "multipleOf": 1,
                                                            "required": false,
                                                        },
                                                    "details":
                                                        {
                                                            "default": 3,
                                                            "type": "integer",
                                                            "minimum": 1,
                                                            "maximum": 5,
                                                            "multipleOf": 1,
                                                            "required": false,
                                                        },
                                                    "aspectRatio":
                                                        {
                                                            "type": "string",
                                                            "enum":
                                                                [
                                                                    "1:1",
                                                                    "7:9",
                                                                    "2:3",
                                                                    "4:7",
                                                                    "9:16",
                                                                    "9:21",
                                                                    "9:7",
                                                                    "3:2",
                                                                    "7:4",
                                                                    "16:9",
                                                                    "21:9",
                                                                ],
                                                            "example": "1:1",
                                                            "description": "Defaults to a 1:1 ratio (1024 × 1024) if width and height are not specified.",
                                                            "required": false,
                                                        },
                                                    "width":
                                                        {
                                                            "type": "integer",
                                                            "minimum": 512,
                                                            "maximum": 2048,
                                                            "example": 1024,
                                                            "description": "Use aspectRatio instead of custom width and height for better quality.\nIf defined, the total area (width × height) must not exceed 1,478,656 pixels (e.g., 1216 × 1216).",
                                                            "required": false,
                                                        },
                                                    "height":
                                                        {
                                                            "type": "integer",
                                                            "minimum": 512,
                                                            "maximum": 2048,
                                                            "example": 1024,
                                                            "description": "Use aspectRatio instead of custom width and height for better quality.\nIf defined, the total area (width × height) must not exceed 1,478,656 pixels (e.g., 1216 × 1216).",
                                                            "required": false,
                                                        },
                                                    "nsfw":
                                                        {
                                                            "default": false,
                                                            "type": "boolean",
                                                            "required": false,
                                                        },
                                                    "transparentBackground":
                                                        {
                                                            "default": false,
                                                            "type": "boolean",
                                                            "required": false,
                                                        },
                                                },
                                        },
                                    "duration": { "type": "number" },
                                    "results":
                                        {
                                            "type": "array",
                                            "items": { "type": "string" },
                                        },
                                    "status":
                                        {
                                            "type": "string",
                                            "enum": ["done", "failed"],
                                        },
                                    "createdAt":
                                        {
                                            "type": "string",
                                            "format": "date-time",
                                        },
                                },
                            "required":
                                [
                                    "id",
                                    "artworkType",
                                    "parameters",
                                    "duration",
                                    "results",
                                    "status",
                                    "createdAt",
                                ],
                        },
                    "CreateUpscalingArtworkRequest":
                        {
                            "type": "object",
                            "properties":
                                {
                                    "imageUrl":
                                        {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "The URL of the image to be upscaled. The image's total area (width × height) must not exceed 1,478,656 pixels (e.g., 1216 × 1216). Accepted image formats: JPEG, JPG, PNG, and WebP.",
                                        },
                                    "scaleFactor":
                                        {
                                            "default": 2,
                                            "type": "integer",
                                            "minimum": 2,
                                            "maximum": 8,
                                        },
                                },
                            "required": ["imageUrl"],
                        },
                    "UpscalingArtworkResponse":
                        {
                            "type": "object",
                            "properties":
                                {
                                    "id":
                                        { "type": "string", "format": "uuid" },
                                    "artworkType":
                                        {
                                            "type": "string",
                                            "enum": ["upscaling_v2"],
                                        },
                                    "parameters":
                                        {
                                            "type": "object",
                                            "properties":
                                                {
                                                    "imageUrl":
                                                        {
                                                            "type": "string",
                                                            "format": "uri",
                                                            "description": "The URL of the image to be upscaled. The image's total area (width × height) must not exceed 1,478,656 pixels (e.g., 1216 × 1216). Accepted image formats: JPEG, JPG, PNG, and WebP.",
                                                            "required": true,
                                                        },
                                                    "scaleFactor":
                                                        {
                                                            "default": 2,
                                                            "type": "integer",
                                                            "minimum": 2,
                                                            "maximum": 8,
                                                            "required": false,
                                                        },
                                                },
                                        },
                                    "duration": { "type": "number" },
                                    "results":
                                        {
                                            "type": "array",
                                            "items": { "type": "string" },
                                        },
                                    "status":
                                        {
                                            "type": "string",
                                            "enum": ["done", "failed"],
                                        },
                                    "createdAt":
                                        {
                                            "type": "string",
                                            "format": "date-time",
                                        },
                                },
                            "required":
                                [
                                    "id",
                                    "artworkType",
                                    "parameters",
                                    "duration",
                                    "results",
                                    "status",
                                    "createdAt",
                                ],
                        },
                },
        },
}
