{
  "openapi": "3.0.1",
  "info": {
    "title": "Dezgo",
    "description": "🪄 Provides easy & fast access to advanced AI models.",
    "version": "v1"
  },
  "servers": [
    {
      "url": "https://api.dezgo.com/",
      "description": "API Endpoint"
    }
  ],
  "paths": {
    "/account": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Get general account data",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DezgoAccount"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DezgoAccount"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DezgoAccount"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ]
      }
    },
    "/account/info": { },
    "/account/file": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Access job data (input and output records).\r\nJob data is retained for 30 days after the job is completed, after which it is deleted.",
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "the file ID to fetch",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success"
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Account"
        ],
        "summary": "Request the deletion of a user's file.",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FileRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FileRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FileRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ]
      }
    },
    "/account/tx": {
      "post": {
        "tags": [
          "Account"
        ],
        "summary": "Get the history of all transactional records associated with the account",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TxFilter"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TxFilter"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TxFilter"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DezgoEntry"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DezgoEntry"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DezgoEntry"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ]
      }
    },
    "/account/tx/last": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "Returns the latest entry in the user's ledger. This can be used to get the current balance.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DezgoEntry"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DezgoEntry"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DezgoEntry"
                }
              }
            }
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ]
      }
    },
    "/account/key": {
      "get": {
        "tags": [
          "Account"
        ],
        "summary": "List all active API keys",
        "parameters": [
          {
            "name": "label",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DezgoApiKey"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DezgoApiKey"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/DezgoApiKey"
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ]
      },
      "put": {
        "tags": [
          "Account"
        ],
        "summary": "Renews a Dezgo API key for a specified number of days",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DezgoApiKey"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DezgoApiKey"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DezgoApiKey"
                }
              }
            }
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ]
      },
      "delete": {
        "tags": [
          "Account"
        ],
        "summary": "Delete a Dezgo API key",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ApiKeyRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Empty"
                }
              }
            }
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ]
      }
    },
    "/info": {
      "get": {
        "tags": [
          "Dezgo"
        ],
        "summary": "Get information about the Dezgo API (such as available models).",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DezgoInfo"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DezgoInfo"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DezgoInfo"
                }
              }
            }
          }
        }
      }
    },
    "/text2image": {
      "post": {
        "tags": [
          "Image gen: StableDiffusion 1"
        ],
        "summary": "Generate an image from a text description",
        "description": "\n\nThe result is returned as \"image/png\".\n\nThe following parameters influence the request cost: `width`, `height`, `steps`, `upscale`, `lora1`, `lora2`, `lora3`, `lora4`\n(see the \"Pricing\" section for more details)\n\nLicense: CreativeML Open RAIL-M (https://dezgo.com/license.txt)\n\r\n\r\n**Global Constraints:**\r\n- Auto resolution: if not provided, fields `width` and `height` are automatically set to the model's native resolution.\r\n",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "prompt"
                ],
                "type": "object",
                "properties": {
                  "width": {
                    "maximum": 1024,
                    "minimum": 320,
                    "type": "integer",
                    "description": "The image width in pixels.\n\nMust be divisible by 8 (auto-adjusted to the lowest multiple)\r\n\r\n**Constraints:**\r\n- Range: `320 ▶ 1024`\r\n",
                    "format": "int64"
                  },
                  "height": {
                    "maximum": 1024,
                    "minimum": 320,
                    "type": "integer",
                    "description": "The image height in pixels.\n\nMust be divisible by 8 (auto-adjusted to the lowest multiple)\r\n\r\n**Constraints:**\r\n- Range: `320 ▶ 1024`\r\n",
                    "format": "int64"
                  },
                  "prompt": {
                    "type": "string",
                    "description": "Describe how the final image should look like\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": "an astronaut riding a horse, digital art, epic lighting, highly-detailed masterpiece trending HQ"
                  },
                  "model": {
                    "enum": [
                      "0001softrealistic_v187",
                      "absolute_reality_1",
                      "absolute_reality_1_6",
                      "absolute_reality_1_8_1",
                      "abyss_orange_mix_2",
                      "analog_diffusion",
                      "analogmadness_7",
                      "anylora",
                      "anything_3_0",
                      "anything_4_0",
                      "anything_5_0",
                      "art_universe_v8",
                      "arthemy_comics_gt_beta",
                      "basil_mix",
                      "blood_orange_mix",
                      "cyberrealistic_1_3",
                      "cyberrealistic_3_1",
                      "cyberrealistic_3_3",
                      "dark_sushi_mix_v2_25d",
                      "deliberate",
                      "deliberate_2",
                      "dh_classicanime",
                      "disco_diffusion_style",
                      "double_exposure_diffusion",
                      "dreamix_1",
                      "dreamshaper",
                      "dreamshaper_5",
                      "dreamshaper_6",
                      "dreamshaper_7",
                      "dreamshaper_8",
                      "duchaiten_anime",
                      "duchaiten_darkside",
                      "duchaiten_dreamworld",
                      "eimis_anime_diffusion_1",
                      "ely_orange_mix",
                      "emoji_diffusion",
                      "epic_diffusion_1",
                      "epic_diffusion_1_1",
                      "foto_assisted_diffusion",
                      "furrytoonmix",
                      "future_diffusion",
                      "ghostmix_v2",
                      "hasdx",
                      "icbinp",
                      "icbinp_seco",
                      "iconsmi_appiconsmodelforsd",
                      "indigo_furry_mix_v120_hybrid",
                      "inkpunk_diffusion",
                      "juggernaut_reborn",
                      "kidsmix",
                      "lowpoly_world",
                      "nightmareshaper",
                      "openjourney",
                      "openjourney_2",
                      "openniji",
                      "paint_journey_2_768px",
                      "papercut",
                      "pastel_mix",
                      "portrait_plus",
                      "realcartoon3d_13",
                      "realcartoonanime_10",
                      "realdream_12",
                      "realistic_vision_1_3",
                      "realistic_vision_5_1",
                      "redshift_diffusion",
                      "redshift_diffusion_768px",
                      "rpg_5",
                      "something_2",
                      "stable_diffusion_fluidart",
                      "stable_diffusion_papercut",
                      "stable_diffusion_voxelart",
                      "stablediffusion_1_4",
                      "stablediffusion_1_5",
                      "stablediffusion_2_0_512px",
                      "stablediffusion_2_0_768px",
                      "stablediffusion_2_1_512px",
                      "stablediffusion_2_1_768px",
                      "steampunk_diffusion",
                      "synthwavepunk_v2",
                      "texture_diffusion",
                      "toonify_2",
                      "trinart_2_0",
                      "tshirt_diffusion",
                      "vectorartz_diffusion",
                      "vintedois_diffusion_v0_1",
                      "vox_2",
                      "waifudiffusion_1_3",
                      "waifudiffusion_1_4",
                      "yesmix_4"
                    ],
                    "type": "string",
                    "description": "The AI used to generate the image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `0001softrealistic_v187`\r\n  - `absolute_reality_1`\r\n  - `absolute_reality_1_6`\r\n  - `absolute_reality_1_8_1`\r\n  - `abyss_orange_mix_2`\r\n  - `analog_diffusion`\r\n  - `analogmadness_7`\r\n  - `anylora`\r\n  - `anything_3_0`\r\n  - `anything_4_0`\r\n  - `anything_5_0`\r\n  - `art_universe_v8`\r\n  - `arthemy_comics_gt_beta`\r\n  - `basil_mix`\r\n  - `blood_orange_mix`\r\n  - `cyberrealistic_1_3`\r\n  - `cyberrealistic_3_1`\r\n  - `cyberrealistic_3_3`\r\n  - `dark_sushi_mix_v2_25d`\r\n  - `deliberate`\r\n  - `deliberate_2`\r\n  - `dh_classicanime`\r\n  - `disco_diffusion_style`\r\n  - `double_exposure_diffusion`\r\n  - `dreamix_1`\r\n  - `dreamshaper`\r\n  - `dreamshaper_5`\r\n  - `dreamshaper_6`\r\n  - `dreamshaper_7`\r\n  - `dreamshaper_8`\r\n  - `duchaiten_anime`\r\n  - `duchaiten_darkside`\r\n  - `duchaiten_dreamworld`\r\n  - `eimis_anime_diffusion_1`\r\n  - `ely_orange_mix`\r\n  - `emoji_diffusion`\r\n  - `epic_diffusion_1`\r\n  - `epic_diffusion_1_1`\r\n  - `foto_assisted_diffusion`\r\n  - `furrytoonmix`\r\n  - `future_diffusion`\r\n  - `ghostmix_v2`\r\n  - `hasdx`\r\n  - `icbinp`\r\n  - `icbinp_seco`\r\n  - `iconsmi_appiconsmodelforsd`\r\n  - `indigo_furry_mix_v120_hybrid`\r\n  - `inkpunk_diffusion`\r\n  - `juggernaut_reborn`\r\n  - `kidsmix`\r\n  - `lowpoly_world`\r\n  - `nightmareshaper`\r\n  - `openjourney`\r\n  - `openjourney_2`\r\n  - `openniji`\r\n  - `paint_journey_2_768px`\r\n  - `papercut`\r\n  - `pastel_mix`\r\n  - `portrait_plus`\r\n  - `realcartoon3d_13`\r\n  - `realcartoonanime_10`\r\n  - `realdream_12`\r\n  - `realistic_vision_1_3`\r\n  - `realistic_vision_5_1`\r\n  - `redshift_diffusion`\r\n  - `redshift_diffusion_768px`\r\n  - `rpg_5`\r\n  - `something_2`\r\n  - `stable_diffusion_fluidart`\r\n  - `stable_diffusion_papercut`\r\n  - `stable_diffusion_voxelart`\r\n  - `stablediffusion_1_4`\r\n  - `stablediffusion_1_5`\r\n  - `stablediffusion_2_0_512px`\r\n  - `stablediffusion_2_0_768px`\r\n  - `stablediffusion_2_1_512px`\r\n  - `stablediffusion_2_1_768px`\r\n  - `steampunk_diffusion`\r\n  - `synthwavepunk_v2`\r\n  - `texture_diffusion`\r\n  - `toonify_2`\r\n  - `trinart_2_0`\r\n  - `tshirt_diffusion`\r\n  - `vectorartz_diffusion`\r\n  - `vintedois_diffusion_v0_1`\r\n  - `vox_2`\r\n  - `waifudiffusion_1_3`\r\n  - `waifudiffusion_1_4`\r\n  - `yesmix_4`\r\n",
                    "format": "string",
                    "default": "realdream_12"
                  },
                  "negative_prompt": {
                    "type": "string",
                    "description": "Describe what you DON'T want in the generated image\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": "ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, blurry, bad anatomy, blurred, watermark, grainy, signature, cut off, draft"
                  },
                  "guidance": {
                    "maximum": 20,
                    "minimum": -20,
                    "type": "number",
                    "description": "Adjusts how much the AI tries to fit the prompt (higher = stricter, lower = more freedom). The sweet spot is between 6-10, extreme values may produce more artifacts.\r\n\r\n**Constraints:**\r\n- Range: `-20 ▶ 20`\r\n",
                    "format": "float",
                    "default": "7"
                  },
                  "steps": {
                    "maximum": 150,
                    "minimum": 10,
                    "type": "integer",
                    "description": "Number of sampling steps. More steps = more details but also longer computation time.\n\nMore steps may improve quality under some circumstances and refine details, but it will take longer and be more expensive.\nFewer will result in lower quality images but is quicker and cheaper to process.\r\n\r\n**Constraints:**\r\n- Range: `10 ▶ 150`\r\n",
                    "format": "int64",
                    "default": "30"
                  },
                  "sampler": {
                    "enum": [
                      "ddim",
                      "dpm",
                      "dpm_single",
                      "dpmpp_2m_karras",
                      "euler",
                      "euler_a",
                      "k_lms",
                      "pndm"
                    ],
                    "type": "string",
                    "description": "Defines the sampling method used to generate the image.\n\nThe best sampler for low step counts tends to be `dpmpp_2m_karras`.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `ddim`\r\n  - `dpm`\r\n  - `dpm_single`\r\n  - `dpmpp_2m_karras`\r\n  - `euler`\r\n  - `euler_a`\r\n  - `k_lms`\r\n  - `pndm`\r\n",
                    "format": "string",
                    "default": "dpmpp_2m_karras"
                  },
                  "seed": {
                    "maximum": 4294967295,
                    "minimum": 0,
                    "type": "number",
                    "description": "Unique image seed number. If not provided, the image will be random.\n\nAn unsigned 32-bit integer seed used to control the generator randomness.\nReusing the same seed with the same parameters will produce the same image.\nReusing the same seed with slightly different parameters tends to produce variations of the same composition ;\nyou can use this to experiment with the impact of different parameters.\n\nIf you instructed the API to choose a random seed, it can be retrieved from the response header `x-input-seed`\r\n\r\n**Constraints:**\r\n- Range: `0 ▶ 4294967295`\r\n",
                    "format": "uint32"
                  },
                  "upscale": {
                    "maximum": 2,
                    "minimum": 1,
                    "type": "integer",
                    "description": "Upscale the image by this factor using the Real-ESRGAN model. Currently only a factor of 2 is supported.\r\n\r\n**Constraints:**\r\n- Range: `1 ▶ 2`\r\n",
                    "format": "int64",
                    "default": "1"
                  },
                  "lora1": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 170MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SD 1.5\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora1_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  },
                  "lora2": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 170MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SD 1.5\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora2_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  },
                  "lora3": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 170MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SD 1.5\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora3_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  },
                  "lora4": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 170MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SD 1.5\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora4_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  },
                  "format": {
                    "enum": [
                      "jpg",
                      "png",
                      "webp"
                    ],
                    "type": "string",
                    "description": "The encoding format of the generated image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `jpg`\r\n  - `png`\r\n  - `webp`\r\n",
                    "format": "string",
                    "default": "png"
                  }
                }
              },
              "encoding": {
                "width": {
                  "style": "form"
                },
                "height": {
                  "style": "form"
                },
                "prompt": {
                  "style": "form"
                },
                "model": {
                  "style": "form"
                },
                "negative_prompt": {
                  "style": "form"
                },
                "guidance": {
                  "style": "form"
                },
                "steps": {
                  "style": "form"
                },
                "sampler": {
                  "style": "form"
                },
                "seed": {
                  "style": "form"
                },
                "upscale": {
                  "style": "form"
                },
                "lora1": {
                  "style": "form"
                },
                "lora1_strength": {
                  "style": "form"
                },
                "lora2": {
                  "style": "form"
                },
                "lora2_strength": {
                  "style": "form"
                },
                "lora3": {
                  "style": "form"
                },
                "lora3_strength": {
                  "style": "form"
                },
                "lora4": {
                  "style": "form"
                },
                "lora4_strength": {
                  "style": "form"
                },
                "format": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request: request is malformed or a parameter couldn't be validated"
          },
          "401": {
            "description": "Unauthorized: you do not have authorization to access this resource. Check if your API key is valid."
          },
          "402": {
            "description": "Payment Required: your balance is insufficient to process this request."
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ],
        "x-dezgo-function": "text2image"
      }
    },
    "/text2image_flux": {
      "post": {
        "tags": [
          "Image gen: Flux"
        ],
        "summary": "Generate stunning images from a text description",
        "description": "\n\nThe result is returned as \"image/png\".\n\nThe following parameters influence the request cost: `steps`, `transparent_background`, `lora1`, `lora2`\n(see the \"Pricing\" section for more details)\n\nLicense: Apache 2 (https://dezgo.com/license.txt)\n\r\n\r\n**Global Constraints:**\r\n- Max resolution: `width*height` must be <= to `2359296` pixels\r\n",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "prompt"
                ],
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "description": "Describe how the final image should look like\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": "high-quality beautiful portrait, detailed face, sparks, photography, epic, cinematic, photorealistic, professional photography"
                  },
                  "width": {
                    "maximum": 1536,
                    "minimum": 512,
                    "type": "integer",
                    "description": "The image width in pixels.\n\nMust be divisible by 8 (auto-adjusted to the lowest multiple)\r\n\r\n**Constraints:**\r\n- Range: `512 ▶ 1536`\r\n",
                    "format": "int64",
                    "default": "1024"
                  },
                  "height": {
                    "maximum": 1536,
                    "minimum": 512,
                    "type": "integer",
                    "description": "The image height in pixels.\n\nMust be divisible by 8 (auto-adjusted to the lowest multiple)\r\n\r\n**Constraints:**\r\n- Range: `512 ▶ 1536`\r\n",
                    "format": "int64",
                    "default": "1024"
                  },
                  "steps": {
                    "maximum": 20,
                    "minimum": 2,
                    "type": "integer",
                    "description": "Number of sampling steps. More steps = more details but also longer computation time.\n\nMore steps may improve quality under some circumstances and refine details, but it will take longer and be more expensive.\nFewer will result in lower quality images but is quicker and cheaper to process.\r\n\r\n**Constraints:**\r\n- Range: `2 ▶ 20`\r\n",
                    "format": "int64",
                    "default": "4"
                  },
                  "seed": {
                    "maximum": 4294967295,
                    "minimum": 0,
                    "type": "number",
                    "description": "Unique image seed number. If not provided, the image will be random.\n\nAn unsigned 32-bit integer seed used to control the generator randomness.\nReusing the same seed with the same parameters will produce the same image.\nReusing the same seed with slightly different parameters tends to produce variations of the same composition ;\nyou can use this to experiment with the impact of different parameters.\n\nIf you instructed the API to choose a random seed, it can be retrieved from the response header `x-input-seed`\r\n\r\n**Constraints:**\r\n- Range: `0 ▶ 4294967295`\r\n",
                    "format": "uint32"
                  },
                  "transparent_background": {
                    "type": "boolean",
                    "description": "Addon to make the background transparent",
                    "format": "boolean",
                    "default": "false"
                  },
                  "format": {
                    "enum": [
                      "jpg",
                      "png",
                      "webp"
                    ],
                    "type": "string",
                    "description": "The encoding format of the generated image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `jpg`\r\n  - `png`\r\n  - `webp`\r\n",
                    "format": "string",
                    "default": "png"
                  },
                  "lora1": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 700MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"Flux.1 S/Flux.1 D\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora1_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  },
                  "lora2": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 700MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"Flux.1 S/Flux.1 D\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora2_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  }
                }
              },
              "encoding": {
                "prompt": {
                  "style": "form"
                },
                "model": {
                  "style": "form"
                },
                "width": {
                  "style": "form"
                },
                "height": {
                  "style": "form"
                },
                "steps": {
                  "style": "form"
                },
                "guidance": {
                  "style": "form"
                },
                "seed": {
                  "style": "form"
                },
                "transparent_background": {
                  "style": "form"
                },
                "format": {
                  "style": "form"
                },
                "lora1": {
                  "style": "form"
                },
                "lora1_strength": {
                  "style": "form"
                },
                "lora2": {
                  "style": "form"
                },
                "lora2_strength": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request: request is malformed or a parameter couldn't be validated"
          },
          "401": {
            "description": "Unauthorized: you do not have authorization to access this resource. Check if your API key is valid."
          },
          "402": {
            "description": "Payment Required: your balance is insufficient to process this request."
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ],
        "x-dezgo-function": "text2image_flux"
      }
    },
    "/text2image_sdxl_lightning": {
      "post": {
        "tags": [
          "Image gen: StableDiffusion XL Lightning"
        ],
        "summary": "Generate high-resolution images from a text description",
        "description": "\n\nThe result is returned as \"image/png\".\n\nThe following parameters influence the request cost: `transparent_background`, `lora1`, `lora2`\n(see the \"Pricing\" section for more details)\n\nLicense: CreativeML Open RAIL-M (https://dezgo.com/license.txt)\n\r\n\r\n**Global Constraints:**\r\n- Auto resolution: if not provided, fields `width` and `height` are automatically set to the model's native resolution.\r\n- Max resolution: `width*height` must be <= to `1060900` pixels\r\n",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "prompt"
                ],
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "description": "Describe how the final image should look like\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": "high-quality beautiful portrait, detailed face, sparks, photography, epic, cinematic"
                  },
                  "model": {
                    "enum": [
                      "dreamshaperxl_lightning_1024px",
                      "envy_starlight_xl_01_lightning_1024px",
                      "juggernautxl_10_hyper",
                      "juggernautxl_9_lightning_1024px",
                      "ponyxl_6_turbo_dpo"
                    ],
                    "type": "string",
                    "description": "Select the model to use\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `dreamshaperxl_lightning_1024px`\r\n  - `envy_starlight_xl_01_lightning_1024px`\r\n  - `juggernautxl_10_hyper`\r\n  - `juggernautxl_9_lightning_1024px`\r\n  - `ponyxl_6_turbo_dpo`\r\n",
                    "format": "string",
                    "default": "juggernautxl_9_lightning_1024px"
                  },
                  "width": {
                    "maximum": 2048,
                    "minimum": 512,
                    "type": "integer",
                    "description": "The image width in pixels.\n\nMust be divisible by 8 (auto-adjusted to the lowest multiple)\r\n\r\n**Constraints:**\r\n- Range: `512 ▶ 2048`\r\n",
                    "format": "int64",
                    "default": "1024"
                  },
                  "height": {
                    "maximum": 2048,
                    "minimum": 512,
                    "type": "integer",
                    "description": "The image height in pixels.\n\nMust be divisible by 8 (auto-adjusted to the lowest multiple)\r\n\r\n**Constraints:**\r\n- Range: `512 ▶ 2048`\r\n",
                    "format": "int64",
                    "default": "1024"
                  },
                  "negative_prompt": {
                    "type": "string",
                    "description": "Describe what you DON'T want in the generated image\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": ""
                  },
                  "guidance": {
                    "maximum": 2,
                    "minimum": 1,
                    "type": "number",
                    "description": "Adjusts how much the AI tries to fit the prompt (higher = stricter, lower = more freedom).\r\n\r\n**Constraints:**\r\n- Range: `1 ▶ 2`\r\n",
                    "format": "float",
                    "default": "2"
                  },
                  "sampler": {
                    "enum": [
                      "auto",
                      "ddim",
                      "dpm",
                      "dpm_single",
                      "dpmpp_2m_karras",
                      "euler",
                      "euler_a",
                      "k_lms",
                      "pndm"
                    ],
                    "type": "string",
                    "description": "Defines the sampling method used to generate the image.\n\nThe best sampler for low step counts tends to be `dpmpp_2m_karras`.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `auto`\r\n  - `ddim`\r\n  - `dpm`\r\n  - `dpm_single`\r\n  - `dpmpp_2m_karras`\r\n  - `euler`\r\n  - `euler_a`\r\n  - `k_lms`\r\n  - `pndm`\r\n",
                    "format": "string",
                    "default": "auto"
                  },
                  "seed": {
                    "maximum": 4294967295,
                    "minimum": 0,
                    "type": "number",
                    "description": "Unique image seed number. If not provided, the image will be random.\n\nAn unsigned 32-bit integer seed used to control the generator randomness.\nReusing the same seed with the same parameters will produce the same image.\nReusing the same seed with slightly different parameters tends to produce variations of the same composition ;\nyou can use this to experiment with the impact of different parameters.\n\nIf you instructed the API to choose a random seed, it can be retrieved from the response header `x-input-seed`\r\n\r\n**Constraints:**\r\n- Range: `0 ▶ 4294967295`\r\n",
                    "format": "uint32"
                  },
                  "transparent_background": {
                    "type": "boolean",
                    "description": "Addon to make the background transparent",
                    "format": "boolean",
                    "default": "false"
                  },
                  "format": {
                    "enum": [
                      "jpg",
                      "png",
                      "webp"
                    ],
                    "type": "string",
                    "description": "The encoding format of the generated image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `jpg`\r\n  - `png`\r\n  - `webp`\r\n",
                    "format": "string",
                    "default": "png"
                  },
                  "lora1": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 700MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SDXL Lightning\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora1_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  },
                  "lora2": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 700MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SDXL Lightning\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora2_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  }
                }
              },
              "encoding": {
                "prompt": {
                  "style": "form"
                },
                "model": {
                  "style": "form"
                },
                "width": {
                  "style": "form"
                },
                "height": {
                  "style": "form"
                },
                "negative_prompt": {
                  "style": "form"
                },
                "steps": {
                  "style": "form"
                },
                "guidance": {
                  "style": "form"
                },
                "sampler": {
                  "style": "form"
                },
                "seed": {
                  "style": "form"
                },
                "transparent_background": {
                  "style": "form"
                },
                "format": {
                  "style": "form"
                },
                "lora1": {
                  "style": "form"
                },
                "lora1_strength": {
                  "style": "form"
                },
                "lora2": {
                  "style": "form"
                },
                "lora2_strength": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request: request is malformed or a parameter couldn't be validated"
          },
          "401": {
            "description": "Unauthorized: you do not have authorization to access this resource. Check if your API key is valid."
          },
          "402": {
            "description": "Payment Required: your balance is insufficient to process this request."
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ],
        "x-dezgo-function": "text2image_sdxl_lightning"
      }
    },
    "/inpainting_sdxl": {
      "post": {
        "tags": [
          "Image gen: StableDiffusion XL"
        ],
        "summary": "Replace part of an image using a mask",
        "description": "\n\n\n\nThe following parameters influence the request cost: `init_image`, `steps`, `upscale`\n(see the \"Pricing\" section for more details)\n\nLicense:  (https://dezgo.com/license.txt)\n\r\n\r\n**Global Constraints:**\r\n- Images must be of the same size: `init_image` and `mask_image`\r\n",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "prompt",
                  "init_image",
                  "mask_image"
                ],
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "description": "Describe how the final image should look like\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": " "
                  },
                  "model": {
                    "enum": [
                      "juggernautxl_x_inpaint_1024px"
                    ],
                    "type": "string",
                    "description": "Select the model to use\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `juggernautxl_x_inpaint_1024px`\r\n",
                    "format": "string",
                    "default": "juggernautxl_x_inpaint_1024px"
                  },
                  "init_image": {
                    "type": "string",
                    "description": "Upload the original image to be modified.\n\nSupports PNG/JPEG files. Dimensions should be divisible by 8. The image is resized automatically if necessary.\r\n\r\n**Constraints:**\r\n- Image size: `8 ▶ 1024` pixels on either side (auto-resized)\r\n",
                    "format": "binary"
                  },
                  "mask_image": {
                    "type": "string",
                    "description": "\n\nA black and white mask that defines the parts of the image to modify.\nShould be the same size as init_image.\n\nWhite pixels = modified ; Black pixels = unchanged\r\n\r\n**Constraints:**\r\n- Image size: `8 ▶ 1024` pixels on either side (auto-resized)\r\n",
                    "format": "binary"
                  },
                  "guidance": {
                    "maximum": 20,
                    "minimum": -20,
                    "type": "number",
                    "description": "Adjusts how much the AI tries to fit the prompt (higher = stricter, lower = more freedom). The sweet spot is between 6-10, extreme values may produce more artifacts.\r\n\r\n**Constraints:**\r\n- Range: `-20 ▶ 20`\r\n",
                    "format": "float",
                    "default": "7"
                  },
                  "steps": {
                    "maximum": 50,
                    "minimum": 10,
                    "type": "integer",
                    "description": "Number of sampling steps. More steps = more details but also longer computation time.\n\nMore steps may improve quality under some circumstances and refine details, but it will take longer and be more expensive.\nFewer will result in lower quality images but is quicker and cheaper to process.\r\n\r\n**Constraints:**\r\n- Range: `10 ▶ 50`\r\n",
                    "format": "int64",
                    "default": "20"
                  },
                  "sampler": {
                    "enum": [
                      "auto",
                      "ddim",
                      "dpm",
                      "dpm_single",
                      "dpmpp_2m_karras",
                      "euler",
                      "euler_a",
                      "k_lms",
                      "pndm"
                    ],
                    "type": "string",
                    "description": "Defines the sampling method used to generate the image.\n\nThe best sampler for low step counts tends to be `dpmpp_2m_karras`.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `auto`\r\n  - `ddim`\r\n  - `dpm`\r\n  - `dpm_single`\r\n  - `dpmpp_2m_karras`\r\n  - `euler`\r\n  - `euler_a`\r\n  - `k_lms`\r\n  - `pndm`\r\n",
                    "format": "string",
                    "default": "auto"
                  },
                  "seed": {
                    "maximum": 4294967295,
                    "minimum": 0,
                    "type": "number",
                    "description": "Unique image seed number. If not provided, the image will be random.\n\nAn unsigned 32-bit integer seed used to control the generator randomness.\nReusing the same seed with the same parameters will produce the same image.\nReusing the same seed with slightly different parameters tends to produce variations of the same composition ;\nyou can use this to experiment with the impact of different parameters.\n\nIf you instructed the API to choose a random seed, it can be retrieved from the response header `x-input-seed`\r\n\r\n**Constraints:**\r\n- Range: `0 ▶ 4294967295`\r\n",
                    "format": "uint32"
                  },
                  "upscale": {
                    "maximum": 2,
                    "minimum": 1,
                    "type": "integer",
                    "description": "Upscale the image by this factor using the Real-ESRGAN model. Currently only a factor of 2 is supported.\r\n\r\n**Constraints:**\r\n- Range: `1 ▶ 2`\r\n",
                    "format": "int64",
                    "default": "1"
                  },
                  "format": {
                    "enum": [
                      "jpg",
                      "png",
                      "webp"
                    ],
                    "type": "string",
                    "description": "The encoding format of the generated image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `jpg`\r\n  - `png`\r\n  - `webp`\r\n",
                    "format": "string",
                    "default": "png"
                  }
                }
              },
              "encoding": {
                "prompt": {
                  "style": "form"
                },
                "model": {
                  "style": "form"
                },
                "init_image": {
                  "style": "form"
                },
                "mask_image": {
                  "style": "form"
                },
                "guidance": {
                  "style": "form"
                },
                "steps": {
                  "style": "form"
                },
                "sampler": {
                  "style": "form"
                },
                "seed": {
                  "style": "form"
                },
                "upscale": {
                  "style": "form"
                },
                "format": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request: request is malformed or a parameter couldn't be validated"
          },
          "401": {
            "description": "Unauthorized: you do not have authorization to access this resource. Check if your API key is valid."
          },
          "402": {
            "description": "Payment Required: your balance is insufficient to process this request."
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ],
        "x-dezgo-function": "inpainting_sdxl"
      }
    },
    "/text2image_sdxl": {
      "post": {
        "tags": [
          "Image gen: StableDiffusion XL"
        ],
        "summary": "Generate high-resolution images from a text description",
        "description": "\n\nThe result is returned as \"image/png\".\n\nThe following parameters influence the request cost: `steps`, `transparent_background`, `lora1`, `lora2`\n(see the \"Pricing\" section for more details)\n\nLicense: CreativeML Open RAIL-M (https://dezgo.com/license.txt)\n\r\n\r\n**Global Constraints:**\r\n- Auto resolution: if not provided, fields `width` and `height` are automatically set to the model's native resolution.\r\n- Max resolution: `width*height` must be <= to `1060900` pixels\r\n",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "prompt"
                ],
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "description": "Describe how the final image should look like\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": "an astronaut riding a horse, digital art, epic lighting, highly-detailed"
                  },
                  "model": {
                    "enum": [
                      "bluepencilxl_1024px",
                      "dreamshaperxl_1024px",
                      "juggernautxl_1024px",
                      "juggernautxl_rundiffusion_8_1024px",
                      "ponyxl_6",
                      "sdxl_1024px",
                      "tshirtdesignredmond_1024px"
                    ],
                    "type": "string",
                    "description": "Select the model to use\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `bluepencilxl_1024px`\r\n  - `dreamshaperxl_1024px`\r\n  - `juggernautxl_1024px`\r\n  - `juggernautxl_rundiffusion_8_1024px`\r\n  - `ponyxl_6`\r\n  - `sdxl_1024px`\r\n  - `tshirtdesignredmond_1024px`\r\n",
                    "format": "string",
                    "default": "juggernautxl_1024px"
                  },
                  "refiner": {
                    "type": "boolean",
                    "description": "Enable the refiner model\n\nThe refiner model is a second model that is used to enhance details in the result. ",
                    "format": "boolean",
                    "default": "false"
                  },
                  "width": {
                    "maximum": 2048,
                    "minimum": 512,
                    "type": "integer",
                    "description": "The image width in pixels.\n\nMust be divisible by 8 (auto-adjusted to the lowest multiple)\r\n\r\n**Constraints:**\r\n- Range: `512 ▶ 2048`\r\n",
                    "format": "int64",
                    "default": "1024"
                  },
                  "height": {
                    "maximum": 2048,
                    "minimum": 512,
                    "type": "integer",
                    "description": "The image height in pixels.\n\nMust be divisible by 8 (auto-adjusted to the lowest multiple)\r\n\r\n**Constraints:**\r\n- Range: `512 ▶ 2048`\r\n",
                    "format": "int64",
                    "default": "1024"
                  },
                  "negative_prompt": {
                    "type": "string",
                    "description": "Describe what you DON'T want in the generated image\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": ""
                  },
                  "guidance": {
                    "maximum": 20,
                    "minimum": -20,
                    "type": "number",
                    "description": "Adjusts how much the AI tries to fit the prompt (higher = stricter, lower = more freedom). The sweet spot is between 6-10, extreme values may produce more artifacts.\r\n\r\n**Constraints:**\r\n- Range: `-20 ▶ 20`\r\n",
                    "format": "float",
                    "default": "7"
                  },
                  "steps": {
                    "maximum": 150,
                    "minimum": 10,
                    "type": "integer",
                    "description": "Number of sampling steps. More steps = more details but also longer computation time.\n\nMore steps may improve quality under some circumstances and refine details, but it will take longer and be more expensive.\nFewer will result in lower quality images but is quicker and cheaper to process.\r\n\r\n**Constraints:**\r\n- Range: `10 ▶ 150`\r\n",
                    "format": "int64",
                    "default": "30"
                  },
                  "sampler": {
                    "enum": [
                      "auto",
                      "ddim",
                      "dpm",
                      "dpm_single",
                      "dpmpp_2m_karras",
                      "euler",
                      "euler_a",
                      "k_lms",
                      "pndm"
                    ],
                    "type": "string",
                    "description": "Defines the sampling method used to generate the image.\n\nThe best sampler for low step counts tends to be `dpmpp_2m_karras`.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `auto`\r\n  - `ddim`\r\n  - `dpm`\r\n  - `dpm_single`\r\n  - `dpmpp_2m_karras`\r\n  - `euler`\r\n  - `euler_a`\r\n  - `k_lms`\r\n  - `pndm`\r\n",
                    "format": "string",
                    "default": "auto"
                  },
                  "seed": {
                    "maximum": 4294967295,
                    "minimum": 0,
                    "type": "number",
                    "description": "Unique image seed number. If not provided, the image will be random.\n\nAn unsigned 32-bit integer seed used to control the generator randomness.\nReusing the same seed with the same parameters will produce the same image.\nReusing the same seed with slightly different parameters tends to produce variations of the same composition ;\nyou can use this to experiment with the impact of different parameters.\n\nIf you instructed the API to choose a random seed, it can be retrieved from the response header `x-input-seed`\r\n\r\n**Constraints:**\r\n- Range: `0 ▶ 4294967295`\r\n",
                    "format": "uint32"
                  },
                  "transparent_background": {
                    "type": "boolean",
                    "description": "Addon to make the background transparent",
                    "format": "boolean",
                    "default": "false"
                  },
                  "format": {
                    "enum": [
                      "jpg",
                      "png",
                      "webp"
                    ],
                    "type": "string",
                    "description": "The encoding format of the generated image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `jpg`\r\n  - `png`\r\n  - `webp`\r\n",
                    "format": "string",
                    "default": "png"
                  },
                  "lora1": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 700MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SDXL 1.0\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora1_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  },
                  "lora2": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 700MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SDXL 1.0\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora2_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  }
                }
              },
              "encoding": {
                "prompt": {
                  "style": "form"
                },
                "model": {
                  "style": "form"
                },
                "refiner": {
                  "style": "form"
                },
                "width": {
                  "style": "form"
                },
                "height": {
                  "style": "form"
                },
                "negative_prompt": {
                  "style": "form"
                },
                "guidance": {
                  "style": "form"
                },
                "steps": {
                  "style": "form"
                },
                "sampler": {
                  "style": "form"
                },
                "seed": {
                  "style": "form"
                },
                "transparent_background": {
                  "style": "form"
                },
                "format": {
                  "style": "form"
                },
                "lora1": {
                  "style": "form"
                },
                "lora1_strength": {
                  "style": "form"
                },
                "lora2": {
                  "style": "form"
                },
                "lora2_strength": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request: request is malformed or a parameter couldn't be validated"
          },
          "401": {
            "description": "Unauthorized: you do not have authorization to access this resource. Check if your API key is valid."
          },
          "402": {
            "description": "Payment Required: your balance is insufficient to process this request."
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ],
        "x-dezgo-function": "text2image_sdxl"
      }
    },
    "/image2image": {
      "post": {
        "tags": [
          "Image gen: StableDiffusion 1"
        ],
        "summary": "Edit an existing image to fit a given text description",
        "description": "\n\n\n\nThe following parameters influence the request cost: `init_image`, `steps`, `upscale`, `lora1`, `lora2`, `lora3`, `lora4`\n(see the \"Pricing\" section for more details)\n\nLicense: CreativeML Open RAIL-M (https://dezgo.com/license.txt)\n",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "prompt",
                  "init_image"
                ],
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "description": "Describe how the final image should look like\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": "an astronaut riding a horse, digital art, epic lighting, highly-detailed masterpiece trending HQ"
                  },
                  "strength": {
                    "maximum": 1,
                    "minimum": 0,
                    "type": "number",
                    "description": "How strongly the original image should be altered (from subtle to drastic changes)\n\nFrom 0.0 to 1.0\r\n\r\n**Constraints:**\r\n- Range: `0 ▶ 1`\r\n",
                    "format": "float",
                    "default": "0.8"
                  },
                  "init_image": {
                    "type": "string",
                    "description": "Upload the original image to be modified.\n\nSupports PNG/JPEG files. Dimensions should be divisible by 8. The image is resized automatically if necessary.\r\n\r\n**Constraints:**\r\n- Image size: `8 ▶ 1024` pixels on either side (auto-resized)\r\n",
                    "format": "binary"
                  },
                  "model": {
                    "enum": [
                      "0001softrealistic_v187",
                      "absolute_reality_1",
                      "absolute_reality_1_6",
                      "absolute_reality_1_8_1",
                      "abyss_orange_mix_2",
                      "analog_diffusion",
                      "analogmadness_7",
                      "anylora",
                      "anything_3_0",
                      "anything_4_0",
                      "anything_5_0",
                      "art_universe_v8",
                      "arthemy_comics_gt_beta",
                      "basil_mix",
                      "blood_orange_mix",
                      "cyberrealistic_1_3",
                      "cyberrealistic_3_1",
                      "cyberrealistic_3_3",
                      "dark_sushi_mix_v2_25d",
                      "deliberate",
                      "deliberate_2",
                      "dh_classicanime",
                      "disco_diffusion_style",
                      "double_exposure_diffusion",
                      "dreamix_1",
                      "dreamshaper",
                      "dreamshaper_5",
                      "dreamshaper_6",
                      "dreamshaper_7",
                      "dreamshaper_8",
                      "duchaiten_anime",
                      "duchaiten_darkside",
                      "duchaiten_dreamworld",
                      "eimis_anime_diffusion_1",
                      "ely_orange_mix",
                      "emoji_diffusion",
                      "epic_diffusion_1",
                      "epic_diffusion_1_1",
                      "foto_assisted_diffusion",
                      "furrytoonmix",
                      "future_diffusion",
                      "ghostmix_v2",
                      "hasdx",
                      "icbinp",
                      "icbinp_seco",
                      "iconsmi_appiconsmodelforsd",
                      "indigo_furry_mix_v120_hybrid",
                      "inkpunk_diffusion",
                      "juggernaut_reborn",
                      "kidsmix",
                      "lowpoly_world",
                      "nightmareshaper",
                      "openjourney",
                      "openjourney_2",
                      "openniji",
                      "paint_journey_2_768px",
                      "papercut",
                      "pastel_mix",
                      "portrait_plus",
                      "realcartoon3d_13",
                      "realcartoonanime_10",
                      "realdream_12",
                      "realistic_vision_1_3",
                      "realistic_vision_5_1",
                      "redshift_diffusion",
                      "redshift_diffusion_768px",
                      "rpg_5",
                      "something_2",
                      "stable_diffusion_fluidart",
                      "stable_diffusion_papercut",
                      "stable_diffusion_voxelart",
                      "stablediffusion_1_4",
                      "stablediffusion_1_5",
                      "stablediffusion_2_0_512px",
                      "stablediffusion_2_0_768px",
                      "stablediffusion_2_1_512px",
                      "stablediffusion_2_1_768px",
                      "steampunk_diffusion",
                      "synthwavepunk_v2",
                      "texture_diffusion",
                      "toonify_2",
                      "trinart_2_0",
                      "tshirt_diffusion",
                      "vectorartz_diffusion",
                      "vintedois_diffusion_v0_1",
                      "vox_2",
                      "waifudiffusion_1_3",
                      "waifudiffusion_1_4",
                      "yesmix_4"
                    ],
                    "type": "string",
                    "description": "The AI used to generate the image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `0001softrealistic_v187`\r\n  - `absolute_reality_1`\r\n  - `absolute_reality_1_6`\r\n  - `absolute_reality_1_8_1`\r\n  - `abyss_orange_mix_2`\r\n  - `analog_diffusion`\r\n  - `analogmadness_7`\r\n  - `anylora`\r\n  - `anything_3_0`\r\n  - `anything_4_0`\r\n  - `anything_5_0`\r\n  - `art_universe_v8`\r\n  - `arthemy_comics_gt_beta`\r\n  - `basil_mix`\r\n  - `blood_orange_mix`\r\n  - `cyberrealistic_1_3`\r\n  - `cyberrealistic_3_1`\r\n  - `cyberrealistic_3_3`\r\n  - `dark_sushi_mix_v2_25d`\r\n  - `deliberate`\r\n  - `deliberate_2`\r\n  - `dh_classicanime`\r\n  - `disco_diffusion_style`\r\n  - `double_exposure_diffusion`\r\n  - `dreamix_1`\r\n  - `dreamshaper`\r\n  - `dreamshaper_5`\r\n  - `dreamshaper_6`\r\n  - `dreamshaper_7`\r\n  - `dreamshaper_8`\r\n  - `duchaiten_anime`\r\n  - `duchaiten_darkside`\r\n  - `duchaiten_dreamworld`\r\n  - `eimis_anime_diffusion_1`\r\n  - `ely_orange_mix`\r\n  - `emoji_diffusion`\r\n  - `epic_diffusion_1`\r\n  - `epic_diffusion_1_1`\r\n  - `foto_assisted_diffusion`\r\n  - `furrytoonmix`\r\n  - `future_diffusion`\r\n  - `ghostmix_v2`\r\n  - `hasdx`\r\n  - `icbinp`\r\n  - `icbinp_seco`\r\n  - `iconsmi_appiconsmodelforsd`\r\n  - `indigo_furry_mix_v120_hybrid`\r\n  - `inkpunk_diffusion`\r\n  - `juggernaut_reborn`\r\n  - `kidsmix`\r\n  - `lowpoly_world`\r\n  - `nightmareshaper`\r\n  - `openjourney`\r\n  - `openjourney_2`\r\n  - `openniji`\r\n  - `paint_journey_2_768px`\r\n  - `papercut`\r\n  - `pastel_mix`\r\n  - `portrait_plus`\r\n  - `realcartoon3d_13`\r\n  - `realcartoonanime_10`\r\n  - `realdream_12`\r\n  - `realistic_vision_1_3`\r\n  - `realistic_vision_5_1`\r\n  - `redshift_diffusion`\r\n  - `redshift_diffusion_768px`\r\n  - `rpg_5`\r\n  - `something_2`\r\n  - `stable_diffusion_fluidart`\r\n  - `stable_diffusion_papercut`\r\n  - `stable_diffusion_voxelart`\r\n  - `stablediffusion_1_4`\r\n  - `stablediffusion_1_5`\r\n  - `stablediffusion_2_0_512px`\r\n  - `stablediffusion_2_0_768px`\r\n  - `stablediffusion_2_1_512px`\r\n  - `stablediffusion_2_1_768px`\r\n  - `steampunk_diffusion`\r\n  - `synthwavepunk_v2`\r\n  - `texture_diffusion`\r\n  - `toonify_2`\r\n  - `trinart_2_0`\r\n  - `tshirt_diffusion`\r\n  - `vectorartz_diffusion`\r\n  - `vintedois_diffusion_v0_1`\r\n  - `vox_2`\r\n  - `waifudiffusion_1_3`\r\n  - `waifudiffusion_1_4`\r\n  - `yesmix_4`\r\n",
                    "format": "string",
                    "default": "realdream_12"
                  },
                  "negative_prompt": {
                    "type": "string",
                    "description": "Describe what you DON'T want in the generated image\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": "ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, blurry, bad anatomy, blurred, watermark, grainy, signature, cut off, draft"
                  },
                  "guidance": {
                    "maximum": 20,
                    "minimum": -20,
                    "type": "number",
                    "description": "Adjusts how much the AI tries to fit the prompt (higher = stricter, lower = more freedom). The sweet spot is between 6-10, extreme values may produce more artifacts.\r\n\r\n**Constraints:**\r\n- Range: `-20 ▶ 20`\r\n",
                    "format": "float",
                    "default": "7"
                  },
                  "steps": {
                    "maximum": 150,
                    "minimum": 10,
                    "type": "integer",
                    "description": "Number of sampling steps. More steps = more details but also longer computation time.\n\nMore steps may improve quality under some circumstances and refine details, but it will take longer and be more expensive.\nFewer will result in lower quality images but is quicker and cheaper to process.\r\n\r\n**Constraints:**\r\n- Range: `10 ▶ 150`\r\n",
                    "format": "int64",
                    "default": "30"
                  },
                  "sampler": {
                    "enum": [
                      "ddim",
                      "dpm",
                      "dpm_single",
                      "dpmpp_2m_karras",
                      "euler",
                      "euler_a",
                      "k_lms",
                      "pndm"
                    ],
                    "type": "string",
                    "description": "Defines the sampling method used to generate the image.\n\nThe best sampler for low step counts tends to be `dpmpp_2m_karras`.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `ddim`\r\n  - `dpm`\r\n  - `dpm_single`\r\n  - `dpmpp_2m_karras`\r\n  - `euler`\r\n  - `euler_a`\r\n  - `k_lms`\r\n  - `pndm`\r\n",
                    "format": "string",
                    "default": "dpmpp_2m_karras"
                  },
                  "seed": {
                    "maximum": 4294967295,
                    "minimum": 0,
                    "type": "number",
                    "description": "Unique image seed number. If not provided, the image will be random.\n\nAn unsigned 32-bit integer seed used to control the generator randomness.\nReusing the same seed with the same parameters will produce the same image.\nReusing the same seed with slightly different parameters tends to produce variations of the same composition ;\nyou can use this to experiment with the impact of different parameters.\n\nIf you instructed the API to choose a random seed, it can be retrieved from the response header `x-input-seed`\r\n\r\n**Constraints:**\r\n- Range: `0 ▶ 4294967295`\r\n",
                    "format": "uint32"
                  },
                  "upscale": {
                    "maximum": 2,
                    "minimum": 1,
                    "type": "integer",
                    "description": "Upscale the image by this factor using the Real-ESRGAN model. Currently only a factor of 2 is supported.\r\n\r\n**Constraints:**\r\n- Range: `1 ▶ 2`\r\n",
                    "format": "int64",
                    "default": "1"
                  },
                  "lora1": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 170MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SD 1.5\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora1_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  },
                  "lora2": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 170MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SD 1.5\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora2_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  },
                  "lora3": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 170MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SD 1.5\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora3_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  },
                  "lora4": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 170MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SD 1.5\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora4_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  },
                  "format": {
                    "enum": [
                      "jpg",
                      "png",
                      "webp"
                    ],
                    "type": "string",
                    "description": "The encoding format of the generated image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `jpg`\r\n  - `png`\r\n  - `webp`\r\n",
                    "format": "string",
                    "default": "png"
                  }
                }
              },
              "encoding": {
                "prompt": {
                  "style": "form"
                },
                "strength": {
                  "style": "form"
                },
                "init_image": {
                  "style": "form"
                },
                "model": {
                  "style": "form"
                },
                "negative_prompt": {
                  "style": "form"
                },
                "guidance": {
                  "style": "form"
                },
                "steps": {
                  "style": "form"
                },
                "sampler": {
                  "style": "form"
                },
                "seed": {
                  "style": "form"
                },
                "upscale": {
                  "style": "form"
                },
                "lora1": {
                  "style": "form"
                },
                "lora1_strength": {
                  "style": "form"
                },
                "lora2": {
                  "style": "form"
                },
                "lora2_strength": {
                  "style": "form"
                },
                "lora3": {
                  "style": "form"
                },
                "lora3_strength": {
                  "style": "form"
                },
                "lora4": {
                  "style": "form"
                },
                "lora4_strength": {
                  "style": "form"
                },
                "format": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request: request is malformed or a parameter couldn't be validated"
          },
          "401": {
            "description": "Unauthorized: you do not have authorization to access this resource. Check if your API key is valid."
          },
          "402": {
            "description": "Payment Required: your balance is insufficient to process this request."
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ],
        "x-dezgo-function": "image2image"
      }
    },
    "/controlnet": {
      "post": {
        "tags": [
          "Image gen: StableDiffusion 1"
        ],
        "summary": "Generate an image from a text description, while matching the structure of a given image",
        "description": "\n\n⚠️ This function costs more credits than the base text2image function due to increased compute requirements (see the pricing page for details).\n\nThe following parameters influence the request cost: `width`, `height`, `steps`, `upscale`, `lora1`, `lora2`, `lora3`, `lora4`\n(see the \"Pricing\" section for more details)\n\nLicense: CreativeML Open RAIL-M (https://dezgo.com/license.txt)\n\r\n\r\n**Global Constraints:**\r\n- Auto resolution: if not provided, fields `width` and `height` are automatically set to the model's native resolution.\r\n",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "prompt",
                  "init_image"
                ],
                "type": "object",
                "properties": {
                  "width": {
                    "maximum": 1024,
                    "minimum": 320,
                    "type": "integer",
                    "description": "The image width in pixels.\n\nMust be divisible by 8 (auto-adjusted to the lowest multiple)\r\n\r\n**Constraints:**\r\n- Range: `320 ▶ 1024`\r\n",
                    "format": "int64"
                  },
                  "height": {
                    "maximum": 1024,
                    "minimum": 320,
                    "type": "integer",
                    "description": "The image height in pixels.\n\nMust be divisible by 8 (auto-adjusted to the lowest multiple)\r\n\r\n**Constraints:**\r\n- Range: `320 ▶ 1024`\r\n",
                    "format": "int64"
                  },
                  "prompt": {
                    "type": "string",
                    "description": "Describe how the final image should look like\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": "an astronaut riding a horse, digital art, epic lighting, highly-detailed masterpiece trending HQ"
                  },
                  "control_model": {
                    "enum": [
                      "canny",
                      "depth",
                      "lineart",
                      "mlsd",
                      "normalbae",
                      "openpose_full",
                      "scribble"
                    ],
                    "type": "string",
                    "description": "What type of structure should be extracted from the control image?\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `canny`\r\n  - `depth`\r\n  - `lineart`\r\n  - `mlsd`\r\n  - `normalbae`\r\n  - `openpose_full`\r\n  - `scribble`\r\n",
                    "format": "string",
                    "default": "canny"
                  },
                  "control_scale": {
                    "maximum": 1,
                    "minimum": 0,
                    "type": "number",
                    "description": "How much should the control image influence the result? 0% = no influence, 100% = full influence.\r\n\r\n**Constraints:**\r\n- Range: `0 ▶ 1`\r\n",
                    "format": "float",
                    "default": "1.0"
                  },
                  "control_preprocess": {
                    "type": "boolean",
                    "description": "Should the control image be preprocessed? If disabled, the control image will be used as-is and is assumed to already be in the correct format.",
                    "format": "boolean",
                    "default": "true"
                  },
                  "init_image": {
                    "type": "string",
                    "description": "Upload the image used to guide the generation\n\nSupports PNG/JPEG files. Dimensions should be divisible by 8. The image is resized automatically if necessary.\r\n\r\n**Constraints:**\r\n- Image size: `8 ▶ 1024` pixels on either side (auto-resized)\r\n",
                    "format": "binary"
                  },
                  "model": {
                    "enum": [
                      "0001softrealistic_v187",
                      "absolute_reality_1",
                      "absolute_reality_1_6",
                      "absolute_reality_1_8_1",
                      "abyss_orange_mix_2",
                      "analog_diffusion",
                      "analogmadness_7",
                      "anylora",
                      "anything_3_0",
                      "anything_4_0",
                      "anything_5_0",
                      "art_universe_v8",
                      "arthemy_comics_gt_beta",
                      "basil_mix",
                      "blood_orange_mix",
                      "cyberrealistic_1_3",
                      "cyberrealistic_3_1",
                      "cyberrealistic_3_3",
                      "dark_sushi_mix_v2_25d",
                      "deliberate",
                      "deliberate_2",
                      "dh_classicanime",
                      "disco_diffusion_style",
                      "double_exposure_diffusion",
                      "dreamix_1",
                      "dreamshaper",
                      "dreamshaper_5",
                      "dreamshaper_6",
                      "dreamshaper_7",
                      "dreamshaper_8",
                      "duchaiten_anime",
                      "duchaiten_darkside",
                      "duchaiten_dreamworld",
                      "eimis_anime_diffusion_1",
                      "ely_orange_mix",
                      "emoji_diffusion",
                      "epic_diffusion_1",
                      "epic_diffusion_1_1",
                      "foto_assisted_diffusion",
                      "furrytoonmix",
                      "ghostmix_v2",
                      "hasdx",
                      "icbinp",
                      "icbinp_seco",
                      "iconsmi_appiconsmodelforsd",
                      "indigo_furry_mix_v120_hybrid",
                      "inkpunk_diffusion",
                      "juggernaut_reborn",
                      "kidsmix",
                      "lowpoly_world",
                      "nightmareshaper",
                      "openjourney",
                      "openjourney_2",
                      "openniji",
                      "paint_journey_2_768px",
                      "papercut",
                      "pastel_mix",
                      "portrait_plus",
                      "realcartoon3d_13",
                      "realcartoonanime_10",
                      "realdream_12",
                      "realistic_vision_1_3",
                      "realistic_vision_5_1",
                      "redshift_diffusion",
                      "rpg_5",
                      "something_2",
                      "stable_diffusion_fluidart",
                      "stable_diffusion_papercut",
                      "stable_diffusion_voxelart",
                      "stablediffusion_1_4",
                      "stablediffusion_1_5",
                      "synthwavepunk_v2",
                      "toonify_2",
                      "trinart_2_0",
                      "tshirt_diffusion",
                      "vectorartz_diffusion",
                      "vintedois_diffusion_v0_1",
                      "vox_2",
                      "waifudiffusion_1_3",
                      "yesmix_4"
                    ],
                    "type": "string",
                    "description": "The AI used to generate the image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `0001softrealistic_v187`\r\n  - `absolute_reality_1`\r\n  - `absolute_reality_1_6`\r\n  - `absolute_reality_1_8_1`\r\n  - `abyss_orange_mix_2`\r\n  - `analog_diffusion`\r\n  - `analogmadness_7`\r\n  - `anylora`\r\n  - `anything_3_0`\r\n  - `anything_4_0`\r\n  - `anything_5_0`\r\n  - `art_universe_v8`\r\n  - `arthemy_comics_gt_beta`\r\n  - `basil_mix`\r\n  - `blood_orange_mix`\r\n  - `cyberrealistic_1_3`\r\n  - `cyberrealistic_3_1`\r\n  - `cyberrealistic_3_3`\r\n  - `dark_sushi_mix_v2_25d`\r\n  - `deliberate`\r\n  - `deliberate_2`\r\n  - `dh_classicanime`\r\n  - `disco_diffusion_style`\r\n  - `double_exposure_diffusion`\r\n  - `dreamix_1`\r\n  - `dreamshaper`\r\n  - `dreamshaper_5`\r\n  - `dreamshaper_6`\r\n  - `dreamshaper_7`\r\n  - `dreamshaper_8`\r\n  - `duchaiten_anime`\r\n  - `duchaiten_darkside`\r\n  - `duchaiten_dreamworld`\r\n  - `eimis_anime_diffusion_1`\r\n  - `ely_orange_mix`\r\n  - `emoji_diffusion`\r\n  - `epic_diffusion_1`\r\n  - `epic_diffusion_1_1`\r\n  - `foto_assisted_diffusion`\r\n  - `furrytoonmix`\r\n  - `ghostmix_v2`\r\n  - `hasdx`\r\n  - `icbinp`\r\n  - `icbinp_seco`\r\n  - `iconsmi_appiconsmodelforsd`\r\n  - `indigo_furry_mix_v120_hybrid`\r\n  - `inkpunk_diffusion`\r\n  - `juggernaut_reborn`\r\n  - `kidsmix`\r\n  - `lowpoly_world`\r\n  - `nightmareshaper`\r\n  - `openjourney`\r\n  - `openjourney_2`\r\n  - `openniji`\r\n  - `paint_journey_2_768px`\r\n  - `papercut`\r\n  - `pastel_mix`\r\n  - `portrait_plus`\r\n  - `realcartoon3d_13`\r\n  - `realcartoonanime_10`\r\n  - `realdream_12`\r\n  - `realistic_vision_1_3`\r\n  - `realistic_vision_5_1`\r\n  - `redshift_diffusion`\r\n  - `rpg_5`\r\n  - `something_2`\r\n  - `stable_diffusion_fluidart`\r\n  - `stable_diffusion_papercut`\r\n  - `stable_diffusion_voxelart`\r\n  - `stablediffusion_1_4`\r\n  - `stablediffusion_1_5`\r\n  - `synthwavepunk_v2`\r\n  - `toonify_2`\r\n  - `trinart_2_0`\r\n  - `tshirt_diffusion`\r\n  - `vectorartz_diffusion`\r\n  - `vintedois_diffusion_v0_1`\r\n  - `vox_2`\r\n  - `waifudiffusion_1_3`\r\n  - `yesmix_4`\r\n",
                    "format": "string",
                    "default": "realdream_12"
                  },
                  "negative_prompt": {
                    "type": "string",
                    "description": "Describe what you DON'T want in the generated image\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": "ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, blurry, bad anatomy, blurred, watermark, grainy, signature, cut off, draft"
                  },
                  "guidance": {
                    "maximum": 20,
                    "minimum": -20,
                    "type": "number",
                    "description": "Adjusts how much the AI tries to fit the prompt (higher = stricter, lower = more freedom). The sweet spot is between 6-10, extreme values may produce more artifacts.\r\n\r\n**Constraints:**\r\n- Range: `-20 ▶ 20`\r\n",
                    "format": "float",
                    "default": "7"
                  },
                  "steps": {
                    "maximum": 150,
                    "minimum": 10,
                    "type": "integer",
                    "description": "Number of sampling steps. More steps = more details but also longer computation time.\n\nMore steps may improve quality under some circumstances and refine details, but it will take longer and be more expensive.\nFewer will result in lower quality images but is quicker and cheaper to process.\r\n\r\n**Constraints:**\r\n- Range: `10 ▶ 150`\r\n",
                    "format": "int64",
                    "default": "20"
                  },
                  "sampler": {
                    "enum": [
                      "ddim",
                      "dpm",
                      "dpm_single",
                      "dpmpp_2m_karras",
                      "euler",
                      "euler_a",
                      "k_lms",
                      "pndm"
                    ],
                    "type": "string",
                    "description": "Defines the sampling method used to generate the image.\n\nThe best sampler for low step counts tends to be `dpmpp_2m_karras`.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `ddim`\r\n  - `dpm`\r\n  - `dpm_single`\r\n  - `dpmpp_2m_karras`\r\n  - `euler`\r\n  - `euler_a`\r\n  - `k_lms`\r\n  - `pndm`\r\n",
                    "format": "string",
                    "default": "dpmpp_2m_karras"
                  },
                  "seed": {
                    "maximum": 4294967295,
                    "minimum": 0,
                    "type": "number",
                    "description": "Unique image seed number. If not provided, the image will be random.\n\nAn unsigned 32-bit integer seed used to control the generator randomness.\nReusing the same seed with the same parameters will produce the same image.\nReusing the same seed with slightly different parameters tends to produce variations of the same composition ;\nyou can use this to experiment with the impact of different parameters.\n\nIf you instructed the API to choose a random seed, it can be retrieved from the response header `x-input-seed`\r\n\r\n**Constraints:**\r\n- Range: `0 ▶ 4294967295`\r\n",
                    "format": "uint32"
                  },
                  "upscale": {
                    "maximum": 2,
                    "minimum": 1,
                    "type": "integer",
                    "description": "Upscale the image by this factor using the Real-ESRGAN model. Currently only a factor of 2 is supported.\r\n\r\n**Constraints:**\r\n- Range: `1 ▶ 2`\r\n",
                    "format": "int64",
                    "default": "1"
                  },
                  "lora1": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 170MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SD 1.5\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora1_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  },
                  "lora2": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 170MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SD 1.5\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora2_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  },
                  "lora3": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 170MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SD 1.5\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora3_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  },
                  "lora4": {
                    "type": "string",
                    "description": "Specify the LoRA model to use (max 170MB). If not specified, no LoRA will be loaded, otherwise must be the SHA256 hash of a model available on CivitAI, the LoRA model will be downloaded and cached on-the-fly.\n\n⚠️ IMPORTANT: only use LoRA models that are compatible with the \"SD 1.5\" architecture family.\nOtherwise the LoRA may have no effect, or produce unexpected results.\n\nYou can use the /info endpoint to get the family of a model.\r\n\r\n**Constraints:**\r\n- The Lora model must exist on CivitAI\r\n",
                    "format": "string"
                  },
                  "lora4_strength": {
                    "maximum": 4,
                    "minimum": -4,
                    "type": "number",
                    "description": "Specify how strongly the LoRA model should affect the result.\n\nThis typically ranges from 0.0 (no effect) to 1.0 (full effect). However, you may go beyond these limits if you want to experiment: from -2.0 to +2.0. Negative values will invert the effect. Values beyond 1.0 will amplify the effect.\r\n\r\n**Constraints:**\r\n- Range: `-4 ▶ 4`\r\n",
                    "format": "float",
                    "default": ".7"
                  },
                  "format": {
                    "enum": [
                      "jpg",
                      "png",
                      "webp"
                    ],
                    "type": "string",
                    "description": "The encoding format of the generated image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `jpg`\r\n  - `png`\r\n  - `webp`\r\n",
                    "format": "string",
                    "default": "png"
                  }
                }
              },
              "encoding": {
                "width": {
                  "style": "form"
                },
                "height": {
                  "style": "form"
                },
                "prompt": {
                  "style": "form"
                },
                "control_model": {
                  "style": "form"
                },
                "control_scale": {
                  "style": "form"
                },
                "control_preprocess": {
                  "style": "form"
                },
                "init_image": {
                  "style": "form"
                },
                "model": {
                  "style": "form"
                },
                "negative_prompt": {
                  "style": "form"
                },
                "guidance": {
                  "style": "form"
                },
                "steps": {
                  "style": "form"
                },
                "sampler": {
                  "style": "form"
                },
                "seed": {
                  "style": "form"
                },
                "upscale": {
                  "style": "form"
                },
                "lora1": {
                  "style": "form"
                },
                "lora1_strength": {
                  "style": "form"
                },
                "lora2": {
                  "style": "form"
                },
                "lora2_strength": {
                  "style": "form"
                },
                "lora3": {
                  "style": "form"
                },
                "lora3_strength": {
                  "style": "form"
                },
                "lora4": {
                  "style": "form"
                },
                "lora4_strength": {
                  "style": "form"
                },
                "format": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request: request is malformed or a parameter couldn't be validated"
          },
          "401": {
            "description": "Unauthorized: you do not have authorization to access this resource. Check if your API key is valid."
          },
          "402": {
            "description": "Payment Required: your balance is insufficient to process this request."
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ],
        "x-dezgo-function": "controlnet"
      }
    },
    "/inpainting": {
      "post": {
        "tags": [
          "Image gen: StableDiffusion 1"
        ],
        "summary": "Modify a part of an image (using a mask) to fit a given text description",
        "description": "\n\n\n\nThe following parameters influence the request cost: `init_image`, `steps`, `upscale`\n(see the \"Pricing\" section for more details)\n\nLicense: CreativeML Open RAIL-M (https://dezgo.com/license.txt)\n\r\n\r\n**Global Constraints:**\r\n- Images must be of the same size: `init_image` and `mask_image`\r\n",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "prompt",
                  "init_image",
                  "mask_image"
                ],
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "description": "Describe how the final image should look like\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": " "
                  },
                  "init_image": {
                    "type": "string",
                    "description": "Upload the original image to be modified.\n\nSupports PNG/JPEG files. Dimensions should be divisible by 8. The image is resized automatically if necessary.\r\n\r\n**Constraints:**\r\n- Image size: `8 ▶ 1024` pixels on either side (auto-resized)\r\n",
                    "format": "binary"
                  },
                  "mask_image": {
                    "type": "string",
                    "description": "\n\nA black and white mask that defines the parts of the image to modify.\nShould be the same size as init_image.\n\nWhite pixels = modified ; Black pixels = unchanged\r\n\r\n**Constraints:**\r\n- Image size: `8 ▶ 1024` pixels on either side (auto-resized)\r\n",
                    "format": "binary"
                  },
                  "model": {
                    "enum": [
                      "absolute_reality_1_8_1_inpaint",
                      "anything_4_5_inpaint",
                      "cyberrealistic_3_3_inpaint",
                      "dreamshaper_8_inpaint",
                      "icbinp_seco_inpaint",
                      "realistic_vision_5_1_inpaint",
                      "stablediffusion_inpaint_1",
                      "stablediffusion_inpaint_2"
                    ],
                    "type": "string",
                    "description": "The AI used to generate the image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `absolute_reality_1_8_1_inpaint`\r\n  - `anything_4_5_inpaint`\r\n  - `cyberrealistic_3_3_inpaint`\r\n  - `dreamshaper_8_inpaint`\r\n  - `icbinp_seco_inpaint`\r\n  - `realistic_vision_5_1_inpaint`\r\n  - `stablediffusion_inpaint_1`\r\n  - `stablediffusion_inpaint_2`\r\n",
                    "format": "string",
                    "default": "dreamshaper_8_inpaint"
                  },
                  "negative_prompt": {
                    "type": "string",
                    "description": "Describe what you DON'T want in the generated image\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": "ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, blurry, bad anatomy, blurred, watermark, grainy, signature, cut off, draft"
                  },
                  "guidance": {
                    "maximum": 20,
                    "minimum": -20,
                    "type": "number",
                    "description": "Adjusts how much the AI tries to fit the prompt (higher = stricter, lower = more freedom). The sweet spot is between 6-10, extreme values may produce more artifacts.\r\n\r\n**Constraints:**\r\n- Range: `-20 ▶ 20`\r\n",
                    "format": "float",
                    "default": "7"
                  },
                  "steps": {
                    "maximum": 150,
                    "minimum": 10,
                    "type": "integer",
                    "description": "Number of sampling steps. More steps = more details but also longer computation time.\n\nMore steps may improve quality under some circumstances and refine details, but it will take longer and be more expensive.\nFewer will result in lower quality images but is quicker and cheaper to process.\r\n\r\n**Constraints:**\r\n- Range: `10 ▶ 150`\r\n",
                    "format": "int64",
                    "default": "30"
                  },
                  "sampler": {
                    "enum": [
                      "ddim",
                      "dpm",
                      "dpm_single",
                      "dpmpp_2m_karras",
                      "euler",
                      "euler_a",
                      "k_lms",
                      "pndm"
                    ],
                    "type": "string",
                    "description": "Defines the sampling method used to generate the image.\n\nThe best sampler for low step counts tends to be `dpmpp_2m_karras`.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `ddim`\r\n  - `dpm`\r\n  - `dpm_single`\r\n  - `dpmpp_2m_karras`\r\n  - `euler`\r\n  - `euler_a`\r\n  - `k_lms`\r\n  - `pndm`\r\n",
                    "format": "string",
                    "default": "euler"
                  },
                  "seed": {
                    "maximum": 4294967295,
                    "minimum": 0,
                    "type": "number",
                    "description": "Unique image seed number. If not provided, the image will be random.\n\nAn unsigned 32-bit integer seed used to control the generator randomness.\nReusing the same seed with the same parameters will produce the same image.\nReusing the same seed with slightly different parameters tends to produce variations of the same composition ;\nyou can use this to experiment with the impact of different parameters.\n\nIf you instructed the API to choose a random seed, it can be retrieved from the response header `x-input-seed`\r\n\r\n**Constraints:**\r\n- Range: `0 ▶ 4294967295`\r\n",
                    "format": "uint32"
                  },
                  "upscale": {
                    "maximum": 2,
                    "minimum": 1,
                    "type": "integer",
                    "description": "Upscale the image by this factor using the Real-ESRGAN model. Currently only a factor of 2 is supported.\r\n\r\n**Constraints:**\r\n- Range: `1 ▶ 2`\r\n",
                    "format": "int64",
                    "default": "1"
                  },
                  "format": {
                    "enum": [
                      "jpg",
                      "png",
                      "webp"
                    ],
                    "type": "string",
                    "description": "The encoding format of the generated image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `jpg`\r\n  - `png`\r\n  - `webp`\r\n",
                    "format": "string",
                    "default": "png"
                  }
                }
              },
              "encoding": {
                "prompt": {
                  "style": "form"
                },
                "init_image": {
                  "style": "form"
                },
                "mask_image": {
                  "style": "form"
                },
                "model": {
                  "style": "form"
                },
                "negative_prompt": {
                  "style": "form"
                },
                "guidance": {
                  "style": "form"
                },
                "steps": {
                  "style": "form"
                },
                "sampler": {
                  "style": "form"
                },
                "seed": {
                  "style": "form"
                },
                "upscale": {
                  "style": "form"
                },
                "format": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request: request is malformed or a parameter couldn't be validated"
          },
          "401": {
            "description": "Unauthorized: you do not have authorization to access this resource. Check if your API key is valid."
          },
          "402": {
            "description": "Payment Required: your balance is insufficient to process this request."
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ],
        "x-dezgo-function": "inpainting"
      }
    },
    "/text-inpainting": {
      "post": {
        "tags": [
          "Image gen: StableDiffusion 1"
        ],
        "summary": "Replace part of an image using two texts: the target and its replacement.",
        "description": "\n\n\n\nThe following parameters influence the request cost: `init_image`, `steps`, `upscale`\n(see the \"Pricing\" section for more details)\n\nLicense: CreativeML Open RAIL-M (https://dezgo.com/license.txt)\n",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "mask_prompt",
                  "prompt",
                  "init_image"
                ],
                "type": "object",
                "properties": {
                  "mask_prompt": {
                    "type": "string",
                    "description": "Describe the object that should be changed\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 255` characters\r\n",
                    "format": "string",
                    "default": ""
                  },
                  "prompt": {
                    "type": "string",
                    "description": "Describe how the final image should look like\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": " "
                  },
                  "init_image": {
                    "type": "string",
                    "description": "Upload the original image to be modified.\n\nSupports PNG/JPEG files. Dimensions should be divisible by 8. The image is resized automatically if necessary.\r\n\r\n**Constraints:**\r\n- Image size: `8 ▶ 1024` pixels on either side (auto-resized)\r\n",
                    "format": "binary"
                  },
                  "model": {
                    "enum": [
                      "absolute_reality_1_8_1_inpaint",
                      "anything_4_5_inpaint",
                      "cyberrealistic_3_3_inpaint",
                      "dreamshaper_8_inpaint",
                      "icbinp_seco_inpaint",
                      "realistic_vision_5_1_inpaint",
                      "stablediffusion_inpaint_1",
                      "stablediffusion_inpaint_2"
                    ],
                    "type": "string",
                    "description": "The AI used to generate the image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `absolute_reality_1_8_1_inpaint`\r\n  - `anything_4_5_inpaint`\r\n  - `cyberrealistic_3_3_inpaint`\r\n  - `dreamshaper_8_inpaint`\r\n  - `icbinp_seco_inpaint`\r\n  - `realistic_vision_5_1_inpaint`\r\n  - `stablediffusion_inpaint_1`\r\n  - `stablediffusion_inpaint_2`\r\n",
                    "format": "string",
                    "default": "dreamshaper_8_inpaint"
                  },
                  "negative_prompt": {
                    "type": "string",
                    "description": "Describe what you DON'T want in the generated image\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": "ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, blurry, bad anatomy, blurred, watermark, grainy, signature, cut off, draft"
                  },
                  "guidance": {
                    "maximum": 20,
                    "minimum": -20,
                    "type": "number",
                    "description": "Adjusts how much the AI tries to fit the prompt (higher = stricter, lower = more freedom). The sweet spot is between 6-10, extreme values may produce more artifacts.\r\n\r\n**Constraints:**\r\n- Range: `-20 ▶ 20`\r\n",
                    "format": "float",
                    "default": "7"
                  },
                  "steps": {
                    "maximum": 150,
                    "minimum": 10,
                    "type": "integer",
                    "description": "Number of sampling steps. More steps = more details but also longer computation time.\n\nMore steps may improve quality under some circumstances and refine details, but it will take longer and be more expensive.\nFewer will result in lower quality images but is quicker and cheaper to process.\r\n\r\n**Constraints:**\r\n- Range: `10 ▶ 150`\r\n",
                    "format": "int64",
                    "default": "30"
                  },
                  "sampler": {
                    "enum": [
                      "ddim",
                      "dpm",
                      "dpm_single",
                      "dpmpp_2m_karras",
                      "euler",
                      "euler_a",
                      "k_lms",
                      "pndm"
                    ],
                    "type": "string",
                    "description": "Defines the sampling method used to generate the image.\n\nThe best sampler for low step counts tends to be `dpmpp_2m_karras`.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `ddim`\r\n  - `dpm`\r\n  - `dpm_single`\r\n  - `dpmpp_2m_karras`\r\n  - `euler`\r\n  - `euler_a`\r\n  - `k_lms`\r\n  - `pndm`\r\n",
                    "format": "string",
                    "default": "euler"
                  },
                  "seed": {
                    "maximum": 4294967295,
                    "minimum": 0,
                    "type": "number",
                    "description": "Unique image seed number. If not provided, the image will be random.\n\nAn unsigned 32-bit integer seed used to control the generator randomness.\nReusing the same seed with the same parameters will produce the same image.\nReusing the same seed with slightly different parameters tends to produce variations of the same composition ;\nyou can use this to experiment with the impact of different parameters.\n\nIf you instructed the API to choose a random seed, it can be retrieved from the response header `x-input-seed`\r\n\r\n**Constraints:**\r\n- Range: `0 ▶ 4294967295`\r\n",
                    "format": "uint32"
                  },
                  "upscale": {
                    "maximum": 2,
                    "minimum": 1,
                    "type": "integer",
                    "description": "Upscale the image by this factor using the Real-ESRGAN model. Currently only a factor of 2 is supported.\r\n\r\n**Constraints:**\r\n- Range: `1 ▶ 2`\r\n",
                    "format": "int64",
                    "default": "1"
                  },
                  "format": {
                    "enum": [
                      "jpg",
                      "png",
                      "webp"
                    ],
                    "type": "string",
                    "description": "The encoding format of the generated image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `jpg`\r\n  - `png`\r\n  - `webp`\r\n",
                    "format": "string",
                    "default": "png"
                  }
                }
              },
              "encoding": {
                "mask_prompt": {
                  "style": "form"
                },
                "prompt": {
                  "style": "form"
                },
                "init_image": {
                  "style": "form"
                },
                "model": {
                  "style": "form"
                },
                "negative_prompt": {
                  "style": "form"
                },
                "guidance": {
                  "style": "form"
                },
                "steps": {
                  "style": "form"
                },
                "sampler": {
                  "style": "form"
                },
                "seed": {
                  "style": "form"
                },
                "upscale": {
                  "style": "form"
                },
                "format": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request: request is malformed or a parameter couldn't be validated"
          },
          "401": {
            "description": "Unauthorized: you do not have authorization to access this resource. Check if your API key is valid."
          },
          "402": {
            "description": "Payment Required: your balance is insufficient to process this request."
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ],
        "x-dezgo-function": "text-inpainting"
      }
    },
    "/edit-image": {
      "post": {
        "tags": [
          "Image gen: StableDiffusion 1"
        ],
        "summary": "Edit an image with text instructions",
        "description": "\n\n\n\nThe following parameters influence the request cost: `init_image`, `steps`, `upscale`\n(see the \"Pricing\" section for more details)\n\nLicense: CreativeML Open RAIL-M (https://dezgo.com/license.txt)\n",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "prompt",
                  "init_image"
                ],
                "type": "object",
                "properties": {
                  "prompt": {
                    "type": "string",
                    "description": "Write a short instruction describing how to edit the image. (ex: \"swap X by Y\", \"add X\", \"what would it look like if it were snowing?\")\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": " "
                  },
                  "init_image": {
                    "type": "string",
                    "description": "Upload the original image to be modified.\n\nSupports PNG/JPEG files. Dimensions should be divisible by 8. The image is resized automatically if necessary.\r\n\r\n**Constraints:**\r\n- Image size: `8 ▶ 1024` pixels on either side (auto-resized)\r\n",
                    "format": "binary"
                  },
                  "image_guidance": {
                    "maximum": 2.5,
                    "minimum": 1,
                    "type": "number",
                    "description": "Adjusts how much the AI tries to retain the content of the original image. Higher values encourages to generate images that are closely linked to the source image, usually at the expense of lower image quality.\r\n\r\n**Constraints:**\r\n- Range: `1 ▶ 2.5`\r\n",
                    "format": "float",
                    "default": "1.3"
                  },
                  "negative_prompt": {
                    "type": "string",
                    "description": "Describe what you DON'T want in the generated image\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 1000` characters\r\n",
                    "format": "string",
                    "default": "ugly, tiling, poorly drawn hands, poorly drawn feet, poorly drawn face, out of frame, extra limbs, disfigured, deformed, body out of frame, blurry, bad anatomy, blurred, watermark, grainy, signature, cut off, draft"
                  },
                  "guidance": {
                    "maximum": 20,
                    "minimum": -20,
                    "type": "number",
                    "description": "Adjusts how much the AI tries to fit the prompt (higher = stricter, lower = more freedom). The sweet spot is between 6-10, extreme values may produce more artifacts.\r\n\r\n**Constraints:**\r\n- Range: `-20 ▶ 20`\r\n",
                    "format": "float",
                    "default": "7"
                  },
                  "steps": {
                    "maximum": 150,
                    "minimum": 10,
                    "type": "integer",
                    "description": "Number of sampling steps. More steps = more details but also longer computation time.\n\nMore steps may improve quality under some circumstances and refine details, but it will take longer and be more expensive.\nFewer will result in lower quality images but is quicker and cheaper to process.\r\n\r\n**Constraints:**\r\n- Range: `10 ▶ 150`\r\n",
                    "format": "int64",
                    "default": "30"
                  },
                  "sampler": {
                    "enum": [
                      "ddim",
                      "dpm",
                      "dpm_single",
                      "dpmpp_2m_karras",
                      "euler",
                      "euler_a",
                      "k_lms",
                      "pndm"
                    ],
                    "type": "string",
                    "description": "Defines the sampling method used to generate the image.\n\nThe best sampler for low step counts tends to be `dpmpp_2m_karras`.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `ddim`\r\n  - `dpm`\r\n  - `dpm_single`\r\n  - `dpmpp_2m_karras`\r\n  - `euler`\r\n  - `euler_a`\r\n  - `k_lms`\r\n  - `pndm`\r\n",
                    "format": "string",
                    "default": "dpmpp_2m_karras"
                  },
                  "seed": {
                    "maximum": 4294967295,
                    "minimum": 0,
                    "type": "number",
                    "description": "Unique image seed number. If not provided, the image will be random.\n\nAn unsigned 32-bit integer seed used to control the generator randomness.\nReusing the same seed with the same parameters will produce the same image.\nReusing the same seed with slightly different parameters tends to produce variations of the same composition ;\nyou can use this to experiment with the impact of different parameters.\n\nIf you instructed the API to choose a random seed, it can be retrieved from the response header `x-input-seed`\r\n\r\n**Constraints:**\r\n- Range: `0 ▶ 4294967295`\r\n",
                    "format": "uint32"
                  },
                  "upscale": {
                    "maximum": 2,
                    "minimum": 1,
                    "type": "integer",
                    "description": "Upscale the image by this factor using the Real-ESRGAN model. Currently only a factor of 2 is supported.\r\n\r\n**Constraints:**\r\n- Range: `1 ▶ 2`\r\n",
                    "format": "int64",
                    "default": "1"
                  },
                  "format": {
                    "enum": [
                      "jpg",
                      "png",
                      "webp"
                    ],
                    "type": "string",
                    "description": "The encoding format of the generated image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `jpg`\r\n  - `png`\r\n  - `webp`\r\n",
                    "format": "string",
                    "default": "png"
                  }
                }
              },
              "encoding": {
                "prompt": {
                  "style": "form"
                },
                "init_image": {
                  "style": "form"
                },
                "image_guidance": {
                  "style": "form"
                },
                "negative_prompt": {
                  "style": "form"
                },
                "guidance": {
                  "style": "form"
                },
                "steps": {
                  "style": "form"
                },
                "sampler": {
                  "style": "form"
                },
                "seed": {
                  "style": "form"
                },
                "upscale": {
                  "style": "form"
                },
                "format": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request: request is malformed or a parameter couldn't be validated"
          },
          "401": {
            "description": "Unauthorized: you do not have authorization to access this resource. Check if your API key is valid."
          },
          "402": {
            "description": "Payment Required: your balance is insufficient to process this request."
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ],
        "x-dezgo-function": "edit-image"
      }
    },
    "/upscale": {
      "post": {
        "tags": [
          "Image processing"
        ],
        "summary": "Upscale an image by a factor of 2",
        "description": "\n\nThis AI attempts to preserve contrasted edges and details as much as possible, producing a sharper image than simple interpolation methods. The result is returned as \"image/png\".\n\nThe following parameters influence the request cost: `image`\n(see the \"Pricing\" section for more details)\n\n",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "image"
                ],
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "description": "The input image\r\n\r\n**Constraints:**\r\n- Image size: `8 ▶ 2048` pixels on either side (auto-resized)\r\n",
                    "format": "binary"
                  },
                  "format": {
                    "enum": [
                      "jpg",
                      "png",
                      "webp"
                    ],
                    "type": "string",
                    "description": "The encoding format of the generated image.\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `jpg`\r\n  - `png`\r\n  - `webp`\r\n",
                    "format": "string",
                    "default": "png"
                  }
                }
              },
              "encoding": {
                "image": {
                  "style": "form"
                },
                "format": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request: request is malformed or a parameter couldn't be validated"
          },
          "401": {
            "description": "Unauthorized: you do not have authorization to access this resource. Check if your API key is valid."
          },
          "402": {
            "description": "Payment Required: your balance is insufficient to process this request."
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ],
        "x-dezgo-function": "upscale"
      }
    },
    "/remove-background": {
      "post": {
        "tags": [
          "Image processing"
        ],
        "summary": "Remove the background from an image",
        "description": "\n\nThis AI attempts to remove the background from an image, replacing it with transparency. The result is returned as \"image/png\".\n\nThe following parameters influence the request cost: `image`\n(see the \"Pricing\" section for more details)\n\nLicense:  (https://dezgo.com/license.txt)\n",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "image"
                ],
                "type": "object",
                "properties": {
                  "image": {
                    "type": "string",
                    "description": "The input image\r\n\r\n**Constraints:**\r\n- Image size: `8 ▶ 2048` pixels on either side (auto-resized)\r\n",
                    "format": "binary"
                  },
                  "mode": {
                    "enum": [
                      "mask",
                      "transparent"
                    ],
                    "type": "string",
                    "description": "What type of output to return\r\n\r\n**Constraints:**\r\n- Enum: The value must match one of the possible options below\r\n  - `mask`\r\n  - `transparent`\r\n",
                    "format": "string",
                    "default": "transparent"
                  }
                }
              },
              "encoding": {
                "image": {
                  "style": "form"
                },
                "mode": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request: request is malformed or a parameter couldn't be validated"
          },
          "401": {
            "description": "Unauthorized: you do not have authorization to access this resource. Check if your API key is valid."
          },
          "402": {
            "description": "Payment Required: your balance is insufficient to process this request."
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ],
        "x-dezgo-function": "remove-background"
      }
    },
    "/text_moderation_simple": {
      "post": {
        "tags": [
          "Moderation"
        ],
        "summary": "Check if the text contains any sensitive content",
        "description": "\n\nThis is a simple, fast & cheap moderation check.\nThis function is ideal for quick, inexpensive checks of user-generated content, especially when other methods are too slow or prohibitively expensive.\n- multiple classes: profanity, offensive, sexual, mean, spam\n- for each class returns a score from 0 to 3 (safe, mild, moderate, severe)\n- handles evasion attempts (different spellings, repeated characters, confusables, spacing, accents, ...)\n\n**Limitations**:\n- english only\n- does not analyze context\n- may not detect niche vocabulary or slang\n\nThe following parameters influence the request cost: `text`\n(see the \"Pricing\" section for more details)\n\n\r\n\r\n**Pricing:**\r\n\r\nPer 100 characters: $0.00001 - Minimum charge: 100 characters.\r\n",
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "required": [
                  "text"
                ],
                "type": "object",
                "properties": {
                  "text": {
                    "type": "string",
                    "description": "The content to analyze\r\n\r\n**Constraints:**\r\n- Text length: `0 ▶ 10000` characters\r\n",
                    "format": "string",
                    "default": ""
                  }
                }
              },
              "encoding": {
                "text": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success"
          },
          "400": {
            "description": "Bad Request: request is malformed or a parameter couldn't be validated"
          },
          "401": {
            "description": "Unauthorized: you do not have authorization to access this resource. Check if your API key is valid."
          },
          "402": {
            "description": "Payment Required: your balance is insufficient to process this request."
          },
          "500": {
            "description": "Internal Server Error"
          }
        },
        "security": [
          {
            "X-Dezgo-Key": [ ]
          }
        ],
        "x-dezgo-function": "text_moderation_simple"
      }
    }
  },
  "components": {
    "schemas": {
      "AccountUserInfo": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "description": "Customer first name",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "description": "Customer last name",
            "nullable": true
          },
          "address": {
            "type": "string",
            "description": "Customer postal address",
            "nullable": true
          },
          "country": {
            "type": "string",
            "description": "Customer country (ISO 3166-1 alpha-2)",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ApiKeyRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "ApiKeyUpdateRequest": {
        "type": "object",
        "properties": {
          "days": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "AuthRedeem": {
        "type": "object",
        "properties": {
          "clientToken": {
            "type": "string",
            "nullable": true
          },
          "magicToken": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "AuthRedeemResult": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string",
            "nullable": true
          },
          "expires": {
            "type": "string",
            "format": "date-time"
          },
          "created": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "AuthResponse": {
        "type": "object",
        "properties": {
          "status": {
            "$ref": "#/components/schemas/MagicRequestStatus"
          }
        },
        "additionalProperties": false
      },
      "CreateKeyRequest": {
        "type": "object",
        "properties": {
          "expirationDays": {
            "type": "integer",
            "description": "if null, the key will never expire ; otherwise, the number of days before the key expires",
            "format": "int32",
            "nullable": true
          },
          "captchaToken": {
            "type": "string",
            "description": "must be a valid captcha token",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Represents a request to create a new API key."
      },
      "DezgoAccount": {
        "type": "object",
        "properties": {
          "_id": {
            "type": "string",
            "description": "Unique account ID.",
            "format": "uuid"
          },
          "timeCreated": {
            "type": "string",
            "description": "When was the account created",
            "format": "date-time"
          },
          "timeUpdated": {
            "type": "string",
            "description": "When was the account last updated",
            "format": "date-time"
          },
          "timeLastLogin": {
            "type": "string",
            "format": "date-time"
          },
          "email": {
            "type": "string",
            "description": "Customer email address (must be UNIQUE per account)\r\nThis one is editable by the user but only after verification.",
            "nullable": true
          },
          "info": {
            "$ref": "#/components/schemas/AccountUserInfo"
          }
        },
        "additionalProperties": false,
        "description": "All information about a user account."
      },
      "DezgoApiKey": {
        "type": "object",
        "properties": {
          "_id": {
            "type": "string",
            "description": "A hash of the API key secret",
            "format": "uuid"
          },
          "accountId": {
            "type": "string",
            "description": "The account ID that this key gives access to",
            "format": "uuid"
          },
          "label": {
            "type": "string",
            "description": "A human-readable label",
            "nullable": true
          },
          "timeCreated": {
            "type": "string",
            "format": "date-time"
          },
          "timeExpires": {
            "type": "string",
            "format": "date-time"
          },
          "truncated": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "An API key provides access to a specific account.\r\nEach account may have multiple API keys.\r\nAnd each API key may have different permissions or expiration dates."
      },
      "DezgoEntry": {
        "type": "object",
        "properties": {
          "_id": {
            "type": "string",
            "description": "The unique identifier for this ledger entry.",
            "format": "uuid"
          },
          "userId": {
            "type": "string",
            "description": "The user's identifier.",
            "format": "uuid"
          },
          "amount": {
            "type": "number",
            "description": "The transaction amount (positive = credit, negative = debit).",
            "format": "double"
          },
          "time": {
            "type": "string",
            "description": "When the transaction occurred.",
            "format": "date-time"
          },
          "type": {
            "type": "string",
            "description": "The transaction's type (ex: \"deposit\", \"job\", ...).",
            "nullable": true
          },
          "meta": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            },
            "description": "Metadata associated with the transaction.",
            "nullable": true
          },
          "credits": {
            "type": "number",
            "description": "Sum of all credits up to and including this entry.",
            "format": "double"
          },
          "debits": {
            "type": "number",
            "description": "Sum of all debits up to and including this entry.",
            "format": "double"
          },
          "balance": {
            "type": "number",
            "description": "Sum of all transaction's amounts up to and including this entry.",
            "format": "double"
          },
          "index": {
            "type": "integer",
            "description": "The transaction's index in the ledger.\r\n0 = the first transaction, 1 = the second transaction, ...",
            "format": "int64"
          }
        },
        "additionalProperties": false,
        "description": "A ledger entry, contains the state of a user's credit account at a particular point in time."
      },
      "DezgoInfo": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "version": {
            "type": "string",
            "nullable": true
          },
          "models": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModelInfo"
            },
            "description": "Information about the available models",
            "nullable": true
          },
          "paymentMethods": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DezgoPaymentMethod"
            },
            "description": "Information about the available payment methods",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "description": "Describe global information about the Dezgo API."
      },
      "DezgoPaymentMethod": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "min": {
            "type": "number",
            "description": "Payment range",
            "format": "double"
          },
          "max": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "Empty": {
        "type": "object",
        "additionalProperties": false,
        "description": "Used as a placeholder for a request that has no parameters."
      },
      "FileRequest": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "FundingRequest": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          }
        },
        "additionalProperties": false
      },
      "FundingResponse": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MagicAuthRequest": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "nullable": true
          },
          "clientTokenHash": {
            "type": "string",
            "nullable": true
          },
          "captchaToken": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MagicRequestStatus": {
        "enum": [
          "ok",
          "invalidEmail",
          "invalidCaptcha",
          "tooManyRequests",
          "invalidClientTokenHash"
        ],
        "type": "string",
        "description": "Status of a magic link request"
      },
      "ModelInfo": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "Unique identifier of the model (used to specify the model in the API)",
            "nullable": true
          },
          "name": {
            "type": "string",
            "description": "Human readable name of the model",
            "nullable": true
          },
          "nativeResolution": {
            "$ref": "#/components/schemas/ModelResolution"
          },
          "triggers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "If set, indicates that the model was trained to react to these specific trigger prompts (for example with Dreambooth finetuning).\r\nPrepend your prompt with one of these triggers to use this model's specific behavior.",
            "nullable": true
          },
          "functions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The set of functions that this model can perform.",
            "nullable": true
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "The categories of the model",
            "nullable": true
          },
          "license": {
            "type": "string",
            "description": "The license of the model",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Human readable description of the model",
            "nullable": true
          },
          "family": {
            "type": "string",
            "description": "The architecture family of the model.\r\nExample: \"sd1\", \"sd2\", \"sdxl\"",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ModelResolution": {
        "type": "object",
        "properties": {
          "width": {
            "type": "integer",
            "format": "int32"
          },
          "height": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      },
      "TxFilter": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "description": "",
            "nullable": true
          },
          "fromTime": {
            "type": "string",
            "description": "",
            "format": "date-time",
            "nullable": true
          },
          "toTime": {
            "type": "string",
            "description": "",
            "format": "date-time",
            "nullable": true
          },
          "fromIndex": {
            "type": "integer",
            "description": "",
            "format": "int64",
            "nullable": true
          },
          "toIndex": {
            "type": "integer",
            "description": "",
            "format": "int64",
            "nullable": true
          },
          "count": {
            "type": "integer",
            "description": "",
            "format": "int32"
          },
          "descending": {
            "type": "boolean",
            "description": ""
          }
        },
        "additionalProperties": false,
        "description": "A query to find a set of transactions."
      }
    },
    "securitySchemes": {
      "X-Dezgo-Key": {
        "type": "apiKey",
        "description": "Dezgo API keys allow you to access account related data and run jobs.",
        "name": "X-Dezgo-Key",
        "in": "header"
      }
    }
  }
}