> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mountsea.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Submit Image Task

> Generates images using the selected model.

**Text-to-image models**: `nano-banana`, `nano-banana-2`, `nano-banana-pro`, `gpt-image-2`

**Image-to-image edit models**: `nano-banana-edit`, `nano-banana-2-edit`, `nano-banana-pro-edit`, `gpt-image-2-edit`

---

**Workflow**
1. `GET /hub/v1/models?capability=image` — browse available models
2. `GET /hub/v1/models/:model` — copy the `example` as your `input`
3. `POST /hub/v1/image` ← you are here
4. `GET /hub/v1/tasks/:task_id` — poll until `ready=true`

---

## Model Reference

> **Tip:** Click **Try it out** → select a model from the dropdown below → the parameter schema auto-populates with an example.

### `nano-banana` — Nano Banana (Google) · `text-to-image`

Gemini 2.5 Flash Image: fast and affordable text-to-image generation.

| Parameter | Type | Req | Default | Values / Range | Description |
|---|---|---|---|---|---|
| `seed` | `integer` |  | – | – | The seed for the random number generator. |
| `prompt` | `string` | ✓ | – | – | The text prompt to generate an image from. |
| `sync_mode` | `boolean` |  | – | – | If True, the media will be returned as a data URI and the output data won't be available in the request history. |
| `num_images` | `integer` |  | `1` | – | The number of images to generate. |
| `aspect_ratio` | `string` |  | `1:1` | `21:9` `16:9` `3:2` `4:3` `5:4` `1:1` `4:5` `3:4` `2:3` `9:16` | The aspect ratio of the generated image. |
| `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | The format of the generated image. |
| `safety_tolerance` | `string` |  | `4` | `1` `2` `3` `4` `5` `6` | The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict. Note: API-only parameter. |
| `limit_generations` | `boolean` |  | – | – | Experimental parameter to limit the number of generations from each round of prompting to 1. Set to True to disregard any instructions in the prompt regarding the number of images to generate. |

<details>
<summary>Example request body</summary>

```json
{
  "model": "nano-banana",
  "input": {
    "prompt": "An action shot of a black lab swimming in an inground suburban swimming pool. The camera is placed meticulously on the water line, dividing the image in half, revealing both the dogs head above water holding a tennis ball in it's mouth, and it's paws paddling underwater.",
    "num_images": 1,
    "aspect_ratio": "1:1",
    "output_format": "png",
    "safety_tolerance": "4"
  }
}
```
</details>

---

### `nano-banana-edit` — Nano Banana Image Edit (Google) · `image-to-image`

Gemini 2.5 Flash Image: image editing with instruction-following.

| Parameter | Type | Req | Default | Values / Range | Description |
|---|---|---|---|---|---|
| `seed` | `integer` |  | – | – | The seed for the random number generator. |
| `prompt` | `string` | ✓ | – | – | The text prompt to generate an image from. |
| `image_urls` | `array` | ✓ | – | – | The URLs of the images to use as a reference for the generation. |
| `num_images` | `integer` |  | `1` | – | The number of images to generate. |
| `aspect_ratio` | `string` |  | `1:1` | `21:9` `16:9` `3:2` `4:3` `5:4` `1:1` `4:5` `3:4` `2:3` `9:16` | The aspect ratio of the generated image. |
| `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | The format of the generated image. |
| `safety_tolerance` | `string` |  | `4` | `1` `2` `3` `4` `5` `6` | The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict. Note: API-only parameter. |

<details>
<summary>Example request body</summary>

```json
{
  "model": "nano-banana-edit",
  "input": {
    "prompt": "Make the character drive along the California coastline",
    "image_urls": [
      "https://example.com/sample-image.jpg"
    ],
    "num_images": 1
  }
}
```
</details>

---

### `nano-banana-2` — Nano Banana 2 (Google) · `text-to-image`

Nano Banana 2 (Gemini 3.1 Flash Image) ??fast text-to-image with resolution tiers.

| Parameter | Type | Req | Default | Values / Range | Description |
|---|---|---|---|---|---|
| `seed` | `integer` |  | – | – | The seed for the random number generator. |
| `prompt` | `string` | ✓ | – | – | The text prompt to generate an image from. |
| `sync_mode` | `boolean` |  | – | – | If True, the media will be returned as a data URI and the output data won't be available in the request history. |
| `num_images` | `integer` |  | `1` | – | The number of images to generate. |
| `resolution` | `string` |  | `1K` | `0.5K` `1K` `2K` `4K` | The resolution of the image to generate. |
| `aspect_ratio` | `string` |  | `auto` | `auto` `21:9` `16:9` `3:2` `4:3` `5:4` `1:1` `4:5` `3:4` `2:3` `9:16` `4:1` `1:4` `8:1` `1:8` | The aspect ratio of the generated image. Supports extreme ratios: 4:1, 1:4, 8:1, 1:8. Use 'auto' to let the model decide based on the prompt. |
| `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | The format of the generated image. |
| `system_prompt` | `string` |  | `` | – | Optional system instruction that steers the model's persona and output style across the request. Leave blank to omit; when provided, it is sent as the system instruction to Gemini (or as a system message on OpenAI-compatible providers). |
| `thinking_level` | `string` |  | – | `minimal` `high` | When set, enables model thinking with the given level ('minimal' or 'high') and includes thoughts in the generation. Omit to disable. |
| `safety_tolerance` | `string` |  | `4` | `1` `2` `3` `4` `5` `6` | The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict. Note: API-only parameter. |
| `enable_web_search` | `boolean` |  | – | – | Enable web search for the image generation task. This will allow the model to use the latest information from the web to generate the image. |
| `limit_generations` | `boolean` |  | `true` | – | Experimental parameter to limit the number of generations from each round of prompting to 1. Set to True to disregard any instructions in the prompt regarding the number of images to generate and ignore any intermediate images generated by the model. This may affect generation quality. |

<details>
<summary>Example request body</summary>

```json
{
  "model": "nano-banana-2",
  "input": {
    "prompt": "An action shot of a black lab swimming in an inground suburban swimming pool. The camera is placed meticulously on the water line, dividing the image in half, revealing both the dogs head above water holding a tennis ball in it's mouth, and it's paws paddling underwater.",
    "num_images": 1,
    "resolution": "1K",
    "aspect_ratio": "auto",
    "output_format": "png",
    "safety_tolerance": "4",
    "limit_generations": true
  }
}
```
</details>

---

### `nano-banana-2-edit` — Nano Banana 2 Image Edit (Google) · `image-to-image`

Nano Banana 2 image editing with resolution tiers.

| Parameter | Type | Req | Default | Values / Range | Description |
|---|---|---|---|---|---|
| `seed` | `integer` |  | – | – | The seed for the random number generator. |
| `prompt` | `string` | ✓ | – | – | The text prompt to generate an image from. |
| `image_urls` | `array` | ✓ | – | – | The URLs of the images to use as a reference for the generation. |
| `num_images` | `integer` |  | `1` | – | The number of images to generate. |
| `resolution` | `string` |  | `1K` | `0.5K` `1K` `2K` `4K` | The resolution of the image to generate. |
| `aspect_ratio` | `string` |  | `auto` | `auto` `21:9` `16:9` `3:2` `4:3` `5:4` `1:1` `4:5` `3:4` `2:3` `9:16` `4:1` `1:4` `8:1` `1:8` | The aspect ratio of the generated image. Supports extreme ratios: 4:1, 1:4, 8:1, 1:8. Use 'auto' to let the model decide based on the prompt. |
| `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | The format of the generated image. |
| `safety_tolerance` | `string` |  | `4` | `1` `2` `3` `4` `5` `6` | The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict. Note: API-only parameter. |

<details>
<summary>Example request body</summary>

```json
{
  "model": "nano-banana-2-edit",
  "input": {
    "prompt": "Add falling snow and a warm golden glow to the scene",
    "image_urls": [
      "https://example.com/sample-image.jpg"
    ],
    "resolution": "1K"
  }
}
```
</details>

---

### `nano-banana-pro` — Nano Banana Pro (Google) · `text-to-image`

Nano Banana Pro (Gemini 3 Pro Image) ??studio-quality text-to-image generation.

| Parameter | Type | Req | Default | Values / Range | Description |
|---|---|---|---|---|---|
| `seed` | `integer` |  | – | – | The seed for the random number generator. |
| `prompt` | `string` | ✓ | – | – | The text prompt to generate an image from. |
| `sync_mode` | `boolean` |  | – | – | If True, the media will be returned as a data URI and the output data won't be available in the request history. |
| `num_images` | `integer` |  | `1` | – | The number of images to generate. |
| `resolution` | `string` |  | `1K` | `1K` `2K` `4K` | The resolution of the image to generate. |
| `aspect_ratio` | `string` |  | `1:1` | `auto` `21:9` `16:9` `3:2` `4:3` `5:4` `1:1` `4:5` `3:4` `2:3` `9:16` | The aspect ratio of the generated image. |
| `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | The format of the generated image. |
| `system_prompt` | `string` |  | `` | – | Optional system instruction that steers the model's persona and output style across the request. Leave blank to omit; when provided, it is sent as the system instruction to Gemini (or as a system message on OpenAI-compatible providers). |
| `safety_tolerance` | `string` |  | `4` | `1` `2` `3` `4` `5` `6` | The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict. Note: API-only parameter. |
| `enable_web_search` | `boolean` |  | – | – | Enable web search for the image generation task. This will allow the model to use the latest information from the web to generate the image. Note: disabled on this platform. |
| `limit_generations` | `boolean` |  | – | – | Experimental parameter to limit the number of generations from each round of prompting to 1. Set to True to disregard any instructions in the prompt regarding the number of images to generate. |

<details>
<summary>Example request body</summary>

```json
{
  "model": "nano-banana-pro",
  "input": {
    "prompt": "An action shot of a black lab swimming in an inground suburban swimming pool. The camera is placed meticulously on the water line, dividing the image in half, revealing both the dogs head above water holding a tennis ball in it's mouth, and it's paws paddling underwater.",
    "num_images": 1,
    "resolution": "1K",
    "aspect_ratio": "1:1",
    "output_format": "png",
    "safety_tolerance": "4"
  }
}
```
</details>

---

### `nano-banana-pro-edit` — Nano Banana Pro Image Edit (Google) · `image-to-image`

Nano Banana Pro studio-quality image editing.

| Parameter | Type | Req | Default | Values / Range | Description |
|---|---|---|---|---|---|
| `seed` | `integer` |  | – | – | The seed for the random number generator. |
| `prompt` | `string` | ✓ | – | – | The text prompt to generate an image from. |
| `image_urls` | `array` | ✓ | – | – | The URLs of the images to use as a reference for the generation. |
| `num_images` | `integer` |  | `1` | – | The number of images to generate. |
| `resolution` | `string` |  | `1K` | `1K` `2K` `4K` | The resolution of the image to generate. |
| `aspect_ratio` | `string` |  | `1:1` | `auto` `21:9` `16:9` `3:2` `4:3` `5:4` `1:1` `4:5` `3:4` `2:3` `9:16` | The aspect ratio of the generated image. |
| `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | The format of the generated image. |
| `safety_tolerance` | `string` |  | `4` | `1` `2` `3` `4` `5` `6` | The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict. Note: API-only parameter. |

<details>
<summary>Example request body</summary>

```json
{
  "model": "nano-banana-pro-edit",
  "input": {
    "prompt": "Remove the background and replace with a dramatic sunset beach scene",
    "image_urls": [
      "https://example.com/sample-image.jpg"
    ],
    "resolution": "1K"
  }
}
```
</details>

---

### `gpt-image-2` — GPT Image 2 (OpenAI) · `text-to-image`

GPT Image 2, OpenAI's latest image model, is capable of creating extremely detailed images with fine typography.

| Parameter | Type | Req | Default | Values / Range | Description |
|---|---|---|---|---|---|
| `prompt` | `string` | ✓ | – | – | The prompt for image generation |
| `quality` | `string` |  | `high` | `auto` `low` `medium` `high` | Quality for the generated image. Use 'auto' to let the model pick the best quality for the prompt. |
| `sync_mode` | `boolean` |  | – | – | If True, the media will be returned as a data URI and the output data won't be available in the request history. |
| `image_size` | `oneOf` |  | `landscape_4_3` | Preset / Custom | The size of the generated image. Use a preset name or a custom {width, height} object. Concrete sizes: both dimensions must be multiples of 16, max edge 3840px, aspect ratio ??3:1, total pixels 655,360??,294,400. |
| `num_images` | `integer` |  | `1` | – | Number of images to generate |
| `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | Output format for the images |

<details>
<summary>Example request body</summary>

```json
{
  "model": "gpt-image-2",
  "input": {
    "prompt": "create a realistic image taken with iphone at these coordinates 41°43′32″N 49°56′49″W 15 April 1912",
    "quality": "high",
    "image_size": "landscape_4_3",
    "num_images": 1,
    "output_format": "png"
  }
}
```
</details>

---

### `gpt-image-2-edit` — GPT Image 2 Edit (OpenAI) · `image-to-image`

GPT Image 2 instruction-following image editing with reasoning.

| Parameter | Type | Req | Default | Values / Range | Description |
|---|---|---|---|---|---|
| `prompt` | `string` | ✓ | – | – | The prompt for image generation |
| `quality` | `string` |  | `high` | `auto` `low` `medium` `high` | Quality for the generated image. Use 'auto' to let the model pick the best quality for the prompt. |
| `mask_url` | `string` |  | – | – | The URL of the mask image to use for the generation. This indicates what part of the image to edit. |
| `sync_mode` | `boolean` |  | – | – | If True, the media will be returned as a data URI and the output data won't be available in the request history. |
| `image_size` | `oneOf` |  | `auto` | Preset / Custom | The size of the generated image. Use 'auto' to infer from input images, a preset name, or a custom {width, height} object. |
| `image_urls` | `array` | ✓ | – | – | The URLs of the images to use as a reference for the generation. |
| `num_images` | `integer` |  | `1` | – | Number of images to generate |
| `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | Output format for the images |

<details>
<summary>Example request body</summary>

```json
{
  "model": "gpt-image-2-edit",
  "input": {
    "prompt": "Add a dramatic rainbow arching across the sky",
    "quality": "high",
    "image_size": "auto",
    "image_urls": [
      "https://example.com/sample-image.jpg"
    ]
  }
}
```
</details>

---




## OpenAPI

````yaml POST /hub/v1/image
openapi: 3.0.0
info:
  title: Hub - Premium AI Gateway (Image / Video / Audio / Transcribe)
  description: >-
    Hub is a unified AI Gateway offering **flagship-quality, production-stable,
    and cheaper-than-official** access to the world's best AI models across
    image, video, audio (music) and transcription capabilities.


    **Why Hub?**

    - 🏆 **Flagship quality** — only official flagship model weights (Veo 3.1,
    Nano Banana Pro, GPT Image 2, Kling v3 Pro, WAN 2.7, Seedance 2.0,
    ElevenLabs Music). No knock-offs, no distillations — same outputs as going
    direct.

    - 🛡️ **Production stable** — multi-region routing, automatic failover,
    transparent retries on transient errors, queue-aware load balancing. Built
    for 24/7 production traffic.

    - 💰 **Cheaper than official** — pay only on `status=completed` (failed
    tasks are free), billed in unified credits at a meaningful discount versus
    going direct to the model provider. No per-provider minimums, no monthly
    subscriptions.


    Each endpoint accepts a `model` + `input` payload — switch models without
    changing the endpoint shape.
  version: 1.0.0
  contact: {}
servers:
  - url: https://api.mountsea.ai
    description: API Gateway
security: []
tags:
  - name: hub
    description: >-
      Model discovery — list and inspect schemas/examples for every available
      model across all capabilities.
  - name: Image
    description: >-
      Image generation & editing models (Nano Banana, GPT Image 2 and edit
      variants).
  - name: Video
    description: >-
      Video generation models — text-to-video, image-to-video, multi-reference,
      first-last frame and edit (Veo 3.1, Kling v3, WAN 2.7, Seedance 2.0).
  - name: Audio
    description: >-
      Audio capabilities — music generation (ElevenLabs Music) and audio/video
      transcription.
  - name: Tasks
    description: Poll the status / result of any submitted Hub task.
paths:
  /hub/v1/image:
    post:
      tags:
        - Image
      summary: Submit an image generation task
      description: >
        Generates images using the selected model.


        **Text-to-image models**: `nano-banana`, `nano-banana-2`,
        `nano-banana-pro`, `gpt-image-2`


        **Image-to-image edit models**: `nano-banana-edit`,
        `nano-banana-2-edit`, `nano-banana-pro-edit`, `gpt-image-2-edit`


        ---


        **Workflow**

        1. `GET /hub/v1/models?capability=image` — browse available models

        2. `GET /hub/v1/models/:model` — copy the `example` as your `input`

        3. `POST /hub/v1/image` ← you are here

        4. `GET /hub/v1/tasks/:task_id` — poll until `ready=true`


        ---


        ## Model Reference


        > **Tip:** Click **Try it out** → select a model from the dropdown below
        → the parameter schema auto-populates with an example.


        ### `nano-banana` — Nano Banana (Google) · `text-to-image`


        Gemini 2.5 Flash Image: fast and affordable text-to-image generation.


        | Parameter | Type | Req | Default | Values / Range | Description |

        |---|---|---|---|---|---|

        | `seed` | `integer` |  | – | – | The seed for the random number
        generator. |

        | `prompt` | `string` | ✓ | – | – | The text prompt to generate an image
        from. |

        | `sync_mode` | `boolean` |  | – | – | If True, the media will be
        returned as a data URI and the output data won't be available in the
        request history. |

        | `num_images` | `integer` |  | `1` | – | The number of images to
        generate. |

        | `aspect_ratio` | `string` |  | `1:1` | `21:9` `16:9` `3:2` `4:3` `5:4`
        `1:1` `4:5` `3:4` `2:3` `9:16` | The aspect ratio of the generated
        image. |

        | `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | The
        format of the generated image. |

        | `safety_tolerance` | `string` |  | `4` | `1` `2` `3` `4` `5` `6` | The
        safety tolerance level for content moderation. 1 is the most strict
        (blocks most content), 6 is the least strict. Note: API-only parameter.
        |

        | `limit_generations` | `boolean` |  | – | – | Experimental parameter to
        limit the number of generations from each round of prompting to 1. Set
        to True to disregard any instructions in the prompt regarding the number
        of images to generate. |


        <details>

        <summary>Example request body</summary>


        ```json

        {
          "model": "nano-banana",
          "input": {
            "prompt": "An action shot of a black lab swimming in an inground suburban swimming pool. The camera is placed meticulously on the water line, dividing the image in half, revealing both the dogs head above water holding a tennis ball in it's mouth, and it's paws paddling underwater.",
            "num_images": 1,
            "aspect_ratio": "1:1",
            "output_format": "png",
            "safety_tolerance": "4"
          }
        }

        ```

        </details>


        ---


        ### `nano-banana-edit` — Nano Banana Image Edit (Google) ·
        `image-to-image`


        Gemini 2.5 Flash Image: image editing with instruction-following.


        | Parameter | Type | Req | Default | Values / Range | Description |

        |---|---|---|---|---|---|

        | `seed` | `integer` |  | – | – | The seed for the random number
        generator. |

        | `prompt` | `string` | ✓ | – | – | The text prompt to generate an image
        from. |

        | `image_urls` | `array` | ✓ | – | – | The URLs of the images to use as
        a reference for the generation. |

        | `num_images` | `integer` |  | `1` | – | The number of images to
        generate. |

        | `aspect_ratio` | `string` |  | `1:1` | `21:9` `16:9` `3:2` `4:3` `5:4`
        `1:1` `4:5` `3:4` `2:3` `9:16` | The aspect ratio of the generated
        image. |

        | `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | The
        format of the generated image. |

        | `safety_tolerance` | `string` |  | `4` | `1` `2` `3` `4` `5` `6` | The
        safety tolerance level for content moderation. 1 is the most strict
        (blocks most content), 6 is the least strict. Note: API-only parameter.
        |


        <details>

        <summary>Example request body</summary>


        ```json

        {
          "model": "nano-banana-edit",
          "input": {
            "prompt": "Make the character drive along the California coastline",
            "image_urls": [
              "https://example.com/sample-image.jpg"
            ],
            "num_images": 1
          }
        }

        ```

        </details>


        ---


        ### `nano-banana-2` — Nano Banana 2 (Google) · `text-to-image`


        Nano Banana 2 (Gemini 3.1 Flash Image) ??fast text-to-image with
        resolution tiers.


        | Parameter | Type | Req | Default | Values / Range | Description |

        |---|---|---|---|---|---|

        | `seed` | `integer` |  | – | – | The seed for the random number
        generator. |

        | `prompt` | `string` | ✓ | – | – | The text prompt to generate an image
        from. |

        | `sync_mode` | `boolean` |  | – | – | If True, the media will be
        returned as a data URI and the output data won't be available in the
        request history. |

        | `num_images` | `integer` |  | `1` | – | The number of images to
        generate. |

        | `resolution` | `string` |  | `1K` | `0.5K` `1K` `2K` `4K` | The
        resolution of the image to generate. |

        | `aspect_ratio` | `string` |  | `auto` | `auto` `21:9` `16:9` `3:2`
        `4:3` `5:4` `1:1` `4:5` `3:4` `2:3` `9:16` `4:1` `1:4` `8:1` `1:8` | The
        aspect ratio of the generated image. Supports extreme ratios: 4:1, 1:4,
        8:1, 1:8. Use 'auto' to let the model decide based on the prompt. |

        | `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | The
        format of the generated image. |

        | `system_prompt` | `string` |  | `` | – | Optional system instruction
        that steers the model's persona and output style across the request.
        Leave blank to omit; when provided, it is sent as the system instruction
        to Gemini (or as a system message on OpenAI-compatible providers). |

        | `thinking_level` | `string` |  | – | `minimal` `high` | When set,
        enables model thinking with the given level ('minimal' or 'high') and
        includes thoughts in the generation. Omit to disable. |

        | `safety_tolerance` | `string` |  | `4` | `1` `2` `3` `4` `5` `6` | The
        safety tolerance level for content moderation. 1 is the most strict
        (blocks most content), 6 is the least strict. Note: API-only parameter.
        |

        | `enable_web_search` | `boolean` |  | – | – | Enable web search for the
        image generation task. This will allow the model to use the latest
        information from the web to generate the image. |

        | `limit_generations` | `boolean` |  | `true` | – | Experimental
        parameter to limit the number of generations from each round of
        prompting to 1. Set to True to disregard any instructions in the prompt
        regarding the number of images to generate and ignore any intermediate
        images generated by the model. This may affect generation quality. |


        <details>

        <summary>Example request body</summary>


        ```json

        {
          "model": "nano-banana-2",
          "input": {
            "prompt": "An action shot of a black lab swimming in an inground suburban swimming pool. The camera is placed meticulously on the water line, dividing the image in half, revealing both the dogs head above water holding a tennis ball in it's mouth, and it's paws paddling underwater.",
            "num_images": 1,
            "resolution": "1K",
            "aspect_ratio": "auto",
            "output_format": "png",
            "safety_tolerance": "4",
            "limit_generations": true
          }
        }

        ```

        </details>


        ---


        ### `nano-banana-2-edit` — Nano Banana 2 Image Edit (Google) ·
        `image-to-image`


        Nano Banana 2 image editing with resolution tiers.


        | Parameter | Type | Req | Default | Values / Range | Description |

        |---|---|---|---|---|---|

        | `seed` | `integer` |  | – | – | The seed for the random number
        generator. |

        | `prompt` | `string` | ✓ | – | – | The text prompt to generate an image
        from. |

        | `image_urls` | `array` | ✓ | – | – | The URLs of the images to use as
        a reference for the generation. |

        | `num_images` | `integer` |  | `1` | – | The number of images to
        generate. |

        | `resolution` | `string` |  | `1K` | `0.5K` `1K` `2K` `4K` | The
        resolution of the image to generate. |

        | `aspect_ratio` | `string` |  | `auto` | `auto` `21:9` `16:9` `3:2`
        `4:3` `5:4` `1:1` `4:5` `3:4` `2:3` `9:16` `4:1` `1:4` `8:1` `1:8` | The
        aspect ratio of the generated image. Supports extreme ratios: 4:1, 1:4,
        8:1, 1:8. Use 'auto' to let the model decide based on the prompt. |

        | `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | The
        format of the generated image. |

        | `safety_tolerance` | `string` |  | `4` | `1` `2` `3` `4` `5` `6` | The
        safety tolerance level for content moderation. 1 is the most strict
        (blocks most content), 6 is the least strict. Note: API-only parameter.
        |


        <details>

        <summary>Example request body</summary>


        ```json

        {
          "model": "nano-banana-2-edit",
          "input": {
            "prompt": "Add falling snow and a warm golden glow to the scene",
            "image_urls": [
              "https://example.com/sample-image.jpg"
            ],
            "resolution": "1K"
          }
        }

        ```

        </details>


        ---


        ### `nano-banana-pro` — Nano Banana Pro (Google) · `text-to-image`


        Nano Banana Pro (Gemini 3 Pro Image) ??studio-quality text-to-image
        generation.


        | Parameter | Type | Req | Default | Values / Range | Description |

        |---|---|---|---|---|---|

        | `seed` | `integer` |  | – | – | The seed for the random number
        generator. |

        | `prompt` | `string` | ✓ | – | – | The text prompt to generate an image
        from. |

        | `sync_mode` | `boolean` |  | – | – | If True, the media will be
        returned as a data URI and the output data won't be available in the
        request history. |

        | `num_images` | `integer` |  | `1` | – | The number of images to
        generate. |

        | `resolution` | `string` |  | `1K` | `1K` `2K` `4K` | The resolution of
        the image to generate. |

        | `aspect_ratio` | `string` |  | `1:1` | `auto` `21:9` `16:9` `3:2`
        `4:3` `5:4` `1:1` `4:5` `3:4` `2:3` `9:16` | The aspect ratio of the
        generated image. |

        | `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | The
        format of the generated image. |

        | `system_prompt` | `string` |  | `` | – | Optional system instruction
        that steers the model's persona and output style across the request.
        Leave blank to omit; when provided, it is sent as the system instruction
        to Gemini (or as a system message on OpenAI-compatible providers). |

        | `safety_tolerance` | `string` |  | `4` | `1` `2` `3` `4` `5` `6` | The
        safety tolerance level for content moderation. 1 is the most strict
        (blocks most content), 6 is the least strict. Note: API-only parameter.
        |

        | `enable_web_search` | `boolean` |  | – | – | Enable web search for the
        image generation task. This will allow the model to use the latest
        information from the web to generate the image. Note: disabled on this
        platform. |

        | `limit_generations` | `boolean` |  | – | – | Experimental parameter to
        limit the number of generations from each round of prompting to 1. Set
        to True to disregard any instructions in the prompt regarding the number
        of images to generate. |


        <details>

        <summary>Example request body</summary>


        ```json

        {
          "model": "nano-banana-pro",
          "input": {
            "prompt": "An action shot of a black lab swimming in an inground suburban swimming pool. The camera is placed meticulously on the water line, dividing the image in half, revealing both the dogs head above water holding a tennis ball in it's mouth, and it's paws paddling underwater.",
            "num_images": 1,
            "resolution": "1K",
            "aspect_ratio": "1:1",
            "output_format": "png",
            "safety_tolerance": "4"
          }
        }

        ```

        </details>


        ---


        ### `nano-banana-pro-edit` — Nano Banana Pro Image Edit (Google) ·
        `image-to-image`


        Nano Banana Pro studio-quality image editing.


        | Parameter | Type | Req | Default | Values / Range | Description |

        |---|---|---|---|---|---|

        | `seed` | `integer` |  | – | – | The seed for the random number
        generator. |

        | `prompt` | `string` | ✓ | – | – | The text prompt to generate an image
        from. |

        | `image_urls` | `array` | ✓ | – | – | The URLs of the images to use as
        a reference for the generation. |

        | `num_images` | `integer` |  | `1` | – | The number of images to
        generate. |

        | `resolution` | `string` |  | `1K` | `1K` `2K` `4K` | The resolution of
        the image to generate. |

        | `aspect_ratio` | `string` |  | `1:1` | `auto` `21:9` `16:9` `3:2`
        `4:3` `5:4` `1:1` `4:5` `3:4` `2:3` `9:16` | The aspect ratio of the
        generated image. |

        | `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | The
        format of the generated image. |

        | `safety_tolerance` | `string` |  | `4` | `1` `2` `3` `4` `5` `6` | The
        safety tolerance level for content moderation. 1 is the most strict
        (blocks most content), 6 is the least strict. Note: API-only parameter.
        |


        <details>

        <summary>Example request body</summary>


        ```json

        {
          "model": "nano-banana-pro-edit",
          "input": {
            "prompt": "Remove the background and replace with a dramatic sunset beach scene",
            "image_urls": [
              "https://example.com/sample-image.jpg"
            ],
            "resolution": "1K"
          }
        }

        ```

        </details>


        ---


        ### `gpt-image-2` — GPT Image 2 (OpenAI) · `text-to-image`


        GPT Image 2, OpenAI's latest image model, is capable of creating
        extremely detailed images with fine typography.


        | Parameter | Type | Req | Default | Values / Range | Description |

        |---|---|---|---|---|---|

        | `prompt` | `string` | ✓ | – | – | The prompt for image generation |

        | `quality` | `string` |  | `high` | `auto` `low` `medium` `high` |
        Quality for the generated image. Use 'auto' to let the model pick the
        best quality for the prompt. |

        | `sync_mode` | `boolean` |  | – | – | If True, the media will be
        returned as a data URI and the output data won't be available in the
        request history. |

        | `image_size` | `oneOf` |  | `landscape_4_3` | Preset / Custom | The
        size of the generated image. Use a preset name or a custom {width,
        height} object. Concrete sizes: both dimensions must be multiples of 16,
        max edge 3840px, aspect ratio ??3:1, total pixels 655,360??,294,400. |

        | `num_images` | `integer` |  | `1` | – | Number of images to generate |

        | `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | Output
        format for the images |


        <details>

        <summary>Example request body</summary>


        ```json

        {
          "model": "gpt-image-2",
          "input": {
            "prompt": "create a realistic image taken with iphone at these coordinates 41°43′32″N 49°56′49″W 15 April 1912",
            "quality": "high",
            "image_size": "landscape_4_3",
            "num_images": 1,
            "output_format": "png"
          }
        }

        ```

        </details>


        ---


        ### `gpt-image-2-edit` — GPT Image 2 Edit (OpenAI) · `image-to-image`


        GPT Image 2 instruction-following image editing with reasoning.


        | Parameter | Type | Req | Default | Values / Range | Description |

        |---|---|---|---|---|---|

        | `prompt` | `string` | ✓ | – | – | The prompt for image generation |

        | `quality` | `string` |  | `high` | `auto` `low` `medium` `high` |
        Quality for the generated image. Use 'auto' to let the model pick the
        best quality for the prompt. |

        | `mask_url` | `string` |  | – | – | The URL of the mask image to use
        for the generation. This indicates what part of the image to edit. |

        | `sync_mode` | `boolean` |  | – | – | If True, the media will be
        returned as a data URI and the output data won't be available in the
        request history. |

        | `image_size` | `oneOf` |  | `auto` | Preset / Custom | The size of the
        generated image. Use 'auto' to infer from input images, a preset name,
        or a custom {width, height} object. |

        | `image_urls` | `array` | ✓ | – | – | The URLs of the images to use as
        a reference for the generation. |

        | `num_images` | `integer` |  | `1` | – | Number of images to generate |

        | `output_format` | `string` |  | `png` | `jpeg` `png` `webp` | Output
        format for the images |


        <details>

        <summary>Example request body</summary>


        ```json

        {
          "model": "gpt-image-2-edit",
          "input": {
            "prompt": "Add a dramatic rainbow arching across the sky",
            "quality": "high",
            "image_size": "auto",
            "image_urls": [
              "https://example.com/sample-image.jpg"
            ]
          }
        }

        ```

        </details>


        ---
      operationId: HubImagePublicController_submitImage
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/NanoBananaRequest'
                - $ref: '#/components/schemas/NanoBananaEditRequest'
                - $ref: '#/components/schemas/NanoBanana2Request'
                - $ref: '#/components/schemas/NanoBanana2EditRequest'
                - $ref: '#/components/schemas/NanoBananaProRequest'
                - $ref: '#/components/schemas/NanoBananaProEditRequest'
                - $ref: '#/components/schemas/GptImage2Request'
                - $ref: '#/components/schemas/GptImage2EditRequest'
              discriminator:
                propertyName: model
                mapping:
                  nano-banana:
                    $ref: '#/components/schemas/NanoBananaRequest'
                  nano-banana-edit:
                    $ref: '#/components/schemas/NanoBananaEditRequest'
                  nano-banana-2:
                    $ref: '#/components/schemas/NanoBanana2Request'
                  nano-banana-2-edit:
                    $ref: '#/components/schemas/NanoBanana2EditRequest'
                  nano-banana-pro:
                    $ref: '#/components/schemas/NanoBananaProRequest'
                  nano-banana-pro-edit:
                    $ref: '#/components/schemas/NanoBananaProEditRequest'
                  gpt-image-2:
                    $ref: '#/components/schemas/GptImage2Request'
                  gpt-image-2-edit:
                    $ref: '#/components/schemas/GptImage2EditRequest'
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitResponseDto'
      security:
        - bearerAuth: []
components:
  schemas:
    NanoBananaRequest:
      type: object
      title: Nano Banana (Google) [text-to-image]
      required:
        - model
        - input
      properties:
        model:
          type: string
          enum:
            - nano-banana
          description: 'Fixed value: `"nano-banana"`'
        input:
          $ref: '#/components/schemas/NanoBananaInput'
      example:
        model: nano-banana
        input:
          prompt: >-
            An action shot of a black lab swimming in an inground suburban
            swimming pool. The camera is placed meticulously on the water line,
            dividing the image in half, revealing both the dogs head above water
            holding a tennis ball in it's mouth, and it's paws paddling
            underwater.
          num_images: 1
          aspect_ratio: '1:1'
          output_format: png
          safety_tolerance: '4'
    NanoBananaEditRequest:
      type: object
      title: Nano Banana Image Edit (Google) [image-to-image]
      required:
        - model
        - input
      properties:
        model:
          type: string
          enum:
            - nano-banana-edit
          description: 'Fixed value: `"nano-banana-edit"`'
        input:
          $ref: '#/components/schemas/NanoBananaEditInput'
      example:
        model: nano-banana-edit
        input:
          prompt: Make the character drive along the California coastline
          image_urls:
            - https://example.com/sample-image.jpg
          num_images: 1
    NanoBanana2Request:
      type: object
      title: Nano Banana 2 (Google) [text-to-image]
      required:
        - model
        - input
      properties:
        model:
          type: string
          enum:
            - nano-banana-2
          description: 'Fixed value: `"nano-banana-2"`'
        input:
          $ref: '#/components/schemas/NanoBanana2Input'
      example:
        model: nano-banana-2
        input:
          prompt: >-
            An action shot of a black lab swimming in an inground suburban
            swimming pool. The camera is placed meticulously on the water line,
            dividing the image in half, revealing both the dogs head above water
            holding a tennis ball in it's mouth, and it's paws paddling
            underwater.
          num_images: 1
          resolution: 1K
          aspect_ratio: auto
          output_format: png
          safety_tolerance: '4'
          limit_generations: true
    NanoBanana2EditRequest:
      type: object
      title: Nano Banana 2 Image Edit (Google) [image-to-image]
      required:
        - model
        - input
      properties:
        model:
          type: string
          enum:
            - nano-banana-2-edit
          description: 'Fixed value: `"nano-banana-2-edit"`'
        input:
          $ref: '#/components/schemas/NanoBanana2EditInput'
      example:
        model: nano-banana-2-edit
        input:
          prompt: Add falling snow and a warm golden glow to the scene
          image_urls:
            - https://example.com/sample-image.jpg
          resolution: 1K
    NanoBananaProRequest:
      type: object
      title: Nano Banana Pro (Google) [text-to-image]
      required:
        - model
        - input
      properties:
        model:
          type: string
          enum:
            - nano-banana-pro
          description: 'Fixed value: `"nano-banana-pro"`'
        input:
          $ref: '#/components/schemas/NanoBananaProInput'
      example:
        model: nano-banana-pro
        input:
          prompt: >-
            An action shot of a black lab swimming in an inground suburban
            swimming pool. The camera is placed meticulously on the water line,
            dividing the image in half, revealing both the dogs head above water
            holding a tennis ball in it's mouth, and it's paws paddling
            underwater.
          num_images: 1
          resolution: 1K
          aspect_ratio: '1:1'
          output_format: png
          safety_tolerance: '4'
    NanoBananaProEditRequest:
      type: object
      title: Nano Banana Pro Image Edit (Google) [image-to-image]
      required:
        - model
        - input
      properties:
        model:
          type: string
          enum:
            - nano-banana-pro-edit
          description: 'Fixed value: `"nano-banana-pro-edit"`'
        input:
          $ref: '#/components/schemas/NanoBananaProEditInput'
      example:
        model: nano-banana-pro-edit
        input:
          prompt: Remove the background and replace with a dramatic sunset beach scene
          image_urls:
            - https://example.com/sample-image.jpg
          resolution: 1K
    GptImage2Request:
      type: object
      title: GPT Image 2 (OpenAI) [text-to-image]
      required:
        - model
        - input
      properties:
        model:
          type: string
          enum:
            - gpt-image-2
          description: 'Fixed value: `"gpt-image-2"`'
        input:
          $ref: '#/components/schemas/GptImage2Input'
      example:
        model: gpt-image-2
        input:
          prompt: >-
            create a realistic image taken with iphone at these coordinates
            41°43′32″N 49°56′49″W 15 April 1912
          quality: high
          image_size: landscape_4_3
          num_images: 1
          output_format: png
    GptImage2EditRequest:
      type: object
      title: GPT Image 2 Edit (OpenAI) [image-to-image]
      required:
        - model
        - input
      properties:
        model:
          type: string
          enum:
            - gpt-image-2-edit
          description: 'Fixed value: `"gpt-image-2-edit"`'
        input:
          $ref: '#/components/schemas/GptImage2EditInput'
      example:
        model: gpt-image-2-edit
        input:
          prompt: Add a dramatic rainbow arching across the sky
          quality: high
          image_size: auto
          image_urls:
            - https://example.com/sample-image.jpg
    SubmitResponseDto:
      type: object
      properties:
        task_id:
          type: string
          description: Unique task ID — use this to poll GET /hub/v1/tasks/:task_id
          example: hub-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        status:
          type: string
          description: Task status at creation time (usually `pending`)
          example: pending
        capability:
          type: string
          description: 'Capability: `image` | `video` | `audio` | `transcribe`'
          example: video
        model:
          type: string
          description: Model ID
          example: veo-3.1-fast
        vendor:
          type: string
          description: Model vendor
          example: Google
        mode:
          type: string
          description: Generation mode (e.g. `text-to-video`, `image-to-image`)
          example: text-to-video
        created_at:
          type: string
          description: ISO 8601 creation timestamp
          example: '2026-05-18T09:00:00.000Z'
      required:
        - task_id
        - status
        - capability
        - model
        - vendor
        - mode
        - created_at
    NanoBananaInput:
      type: object
      title: Nano Banana — input
      description: 'Gemini 2.5 Flash Image: fast and affordable text-to-image generation.'
      properties:
        seed:
          type: integer
          description: The seed for the random number generator.
        prompt:
          type: string
          description: The text prompt to generate an image from.
        sync_mode:
          type: boolean
          description: >-
            If True, the media will be returned as a data URI and the output
            data won't be available in the request history.
        num_images:
          type: integer
          description: The number of images to generate.
          default: 1
        aspect_ratio:
          type: string
          description: The aspect ratio of the generated image.
          enum:
            - '21:9'
            - '16:9'
            - '3:2'
            - '4:3'
            - '5:4'
            - '1:1'
            - '4:5'
            - '3:4'
            - '2:3'
            - '9:16'
          default: '1:1'
        output_format:
          type: string
          description: The format of the generated image.
          enum:
            - jpeg
            - png
            - webp
          default: png
        safety_tolerance:
          type: string
          description: >-
            The safety tolerance level for content moderation. 1 is the most
            strict (blocks most content), 6 is the least strict. Note: API-only
            parameter.
          enum:
            - '1'
            - '2'
            - '3'
            - '4'
            - '5'
            - '6'
          default: '4'
        limit_generations:
          type: boolean
          description: >-
            Experimental parameter to limit the number of generations from each
            round of prompting to 1. Set to True to disregard any instructions
            in the prompt regarding the number of images to generate.
      required:
        - prompt
    NanoBananaEditInput:
      type: object
      title: Nano Banana Image Edit — input
      description: 'Gemini 2.5 Flash Image: image editing with instruction-following.'
      properties:
        seed:
          type: integer
          description: The seed for the random number generator.
        prompt:
          type: string
          description: The text prompt to generate an image from.
        image_urls:
          type: array
          description: The URLs of the images to use as a reference for the generation.
          items:
            type: string
        num_images:
          type: integer
          description: The number of images to generate.
          default: 1
        aspect_ratio:
          type: string
          description: The aspect ratio of the generated image.
          enum:
            - '21:9'
            - '16:9'
            - '3:2'
            - '4:3'
            - '5:4'
            - '1:1'
            - '4:5'
            - '3:4'
            - '2:3'
            - '9:16'
          default: '1:1'
        output_format:
          type: string
          description: The format of the generated image.
          enum:
            - jpeg
            - png
            - webp
          default: png
        safety_tolerance:
          type: string
          description: >-
            The safety tolerance level for content moderation. 1 is the most
            strict (blocks most content), 6 is the least strict. Note: API-only
            parameter.
          enum:
            - '1'
            - '2'
            - '3'
            - '4'
            - '5'
            - '6'
          default: '4'
      required:
        - prompt
        - image_urls
    NanoBanana2Input:
      type: object
      title: Nano Banana 2 — input
      description: >-
        Nano Banana 2 (Gemini 3.1 Flash Image) ??fast text-to-image with
        resolution tiers.
      properties:
        seed:
          type: integer
          description: The seed for the random number generator.
        prompt:
          type: string
          description: The text prompt to generate an image from.
        sync_mode:
          type: boolean
          description: >-
            If True, the media will be returned as a data URI and the output
            data won't be available in the request history.
        num_images:
          type: integer
          description: The number of images to generate.
          default: 1
        resolution:
          type: string
          description: The resolution of the image to generate.
          enum:
            - 0.5K
            - 1K
            - 2K
            - 4K
          default: 1K
        aspect_ratio:
          type: string
          description: >-
            The aspect ratio of the generated image. Supports extreme ratios:
            4:1, 1:4, 8:1, 1:8. Use 'auto' to let the model decide based on the
            prompt.
          enum:
            - auto
            - '21:9'
            - '16:9'
            - '3:2'
            - '4:3'
            - '5:4'
            - '1:1'
            - '4:5'
            - '3:4'
            - '2:3'
            - '9:16'
            - '4:1'
            - '1:4'
            - '8:1'
            - '1:8'
          default: auto
        output_format:
          type: string
          description: The format of the generated image.
          enum:
            - jpeg
            - png
            - webp
          default: png
        system_prompt:
          type: string
          description: >-
            Optional system instruction that steers the model's persona and
            output style across the request. Leave blank to omit; when provided,
            it is sent as the system instruction to Gemini (or as a system
            message on OpenAI-compatible providers).
          default: ''
        thinking_level:
          type: string
          description: >-
            When set, enables model thinking with the given level ('minimal' or
            'high') and includes thoughts in the generation. Omit to disable.
          enum:
            - minimal
            - high
        safety_tolerance:
          type: string
          description: >-
            The safety tolerance level for content moderation. 1 is the most
            strict (blocks most content), 6 is the least strict. Note: API-only
            parameter.
          enum:
            - '1'
            - '2'
            - '3'
            - '4'
            - '5'
            - '6'
          default: '4'
        enable_web_search:
          type: boolean
          description: >-
            Enable web search for the image generation task. This will allow the
            model to use the latest information from the web to generate the
            image.
        limit_generations:
          type: boolean
          description: >-
            Experimental parameter to limit the number of generations from each
            round of prompting to 1. Set to True to disregard any instructions
            in the prompt regarding the number of images to generate and ignore
            any intermediate images generated by the model. This may affect
            generation quality.
          default: true
      required:
        - prompt
    NanoBanana2EditInput:
      type: object
      title: Nano Banana 2 Image Edit — input
      description: Nano Banana 2 image editing with resolution tiers.
      properties:
        seed:
          type: integer
          description: The seed for the random number generator.
        prompt:
          type: string
          description: The text prompt to generate an image from.
        image_urls:
          type: array
          description: The URLs of the images to use as a reference for the generation.
          items:
            type: string
        num_images:
          type: integer
          description: The number of images to generate.
          default: 1
        resolution:
          type: string
          description: The resolution of the image to generate.
          enum:
            - 0.5K
            - 1K
            - 2K
            - 4K
          default: 1K
        aspect_ratio:
          type: string
          description: >-
            The aspect ratio of the generated image. Supports extreme ratios:
            4:1, 1:4, 8:1, 1:8. Use 'auto' to let the model decide based on the
            prompt.
          enum:
            - auto
            - '21:9'
            - '16:9'
            - '3:2'
            - '4:3'
            - '5:4'
            - '1:1'
            - '4:5'
            - '3:4'
            - '2:3'
            - '9:16'
            - '4:1'
            - '1:4'
            - '8:1'
            - '1:8'
          default: auto
        output_format:
          type: string
          description: The format of the generated image.
          enum:
            - jpeg
            - png
            - webp
          default: png
        safety_tolerance:
          type: string
          description: >-
            The safety tolerance level for content moderation. 1 is the most
            strict (blocks most content), 6 is the least strict. Note: API-only
            parameter.
          enum:
            - '1'
            - '2'
            - '3'
            - '4'
            - '5'
            - '6'
          default: '4'
      required:
        - prompt
        - image_urls
    NanoBananaProInput:
      type: object
      title: Nano Banana Pro — input
      description: >-
        Nano Banana Pro (Gemini 3 Pro Image) ??studio-quality text-to-image
        generation.
      properties:
        seed:
          type: integer
          description: The seed for the random number generator.
        prompt:
          type: string
          description: The text prompt to generate an image from.
        sync_mode:
          type: boolean
          description: >-
            If True, the media will be returned as a data URI and the output
            data won't be available in the request history.
        num_images:
          type: integer
          description: The number of images to generate.
          default: 1
        resolution:
          type: string
          description: The resolution of the image to generate.
          enum:
            - 1K
            - 2K
            - 4K
          default: 1K
        aspect_ratio:
          type: string
          description: The aspect ratio of the generated image.
          enum:
            - auto
            - '21:9'
            - '16:9'
            - '3:2'
            - '4:3'
            - '5:4'
            - '1:1'
            - '4:5'
            - '3:4'
            - '2:3'
            - '9:16'
          default: '1:1'
        output_format:
          type: string
          description: The format of the generated image.
          enum:
            - jpeg
            - png
            - webp
          default: png
        system_prompt:
          type: string
          description: >-
            Optional system instruction that steers the model's persona and
            output style across the request. Leave blank to omit; when provided,
            it is sent as the system instruction to Gemini (or as a system
            message on OpenAI-compatible providers).
          default: ''
        safety_tolerance:
          type: string
          description: >-
            The safety tolerance level for content moderation. 1 is the most
            strict (blocks most content), 6 is the least strict. Note: API-only
            parameter.
          enum:
            - '1'
            - '2'
            - '3'
            - '4'
            - '5'
            - '6'
          default: '4'
        enable_web_search:
          type: boolean
          description: >-
            Enable web search for the image generation task. This will allow the
            model to use the latest information from the web to generate the
            image. Note: disabled on this platform.
        limit_generations:
          type: boolean
          description: >-
            Experimental parameter to limit the number of generations from each
            round of prompting to 1. Set to True to disregard any instructions
            in the prompt regarding the number of images to generate.
      required:
        - prompt
    NanoBananaProEditInput:
      type: object
      title: Nano Banana Pro Image Edit — input
      description: Nano Banana Pro studio-quality image editing.
      properties:
        seed:
          type: integer
          description: The seed for the random number generator.
        prompt:
          type: string
          description: The text prompt to generate an image from.
        image_urls:
          type: array
          description: The URLs of the images to use as a reference for the generation.
          items:
            type: string
        num_images:
          type: integer
          description: The number of images to generate.
          default: 1
        resolution:
          type: string
          description: The resolution of the image to generate.
          enum:
            - 1K
            - 2K
            - 4K
          default: 1K
        aspect_ratio:
          type: string
          description: The aspect ratio of the generated image.
          enum:
            - auto
            - '21:9'
            - '16:9'
            - '3:2'
            - '4:3'
            - '5:4'
            - '1:1'
            - '4:5'
            - '3:4'
            - '2:3'
            - '9:16'
          default: '1:1'
        output_format:
          type: string
          description: The format of the generated image.
          enum:
            - jpeg
            - png
            - webp
          default: png
        safety_tolerance:
          type: string
          description: >-
            The safety tolerance level for content moderation. 1 is the most
            strict (blocks most content), 6 is the least strict. Note: API-only
            parameter.
          enum:
            - '1'
            - '2'
            - '3'
            - '4'
            - '5'
            - '6'
          default: '4'
      required:
        - prompt
        - image_urls
    GptImage2Input:
      type: object
      title: GPT Image 2 — input
      description: >-
        GPT Image 2, OpenAI's latest image model, is capable of creating
        extremely detailed images with fine typography.
      properties:
        prompt:
          type: string
          description: The prompt for image generation
        quality:
          type: string
          description: >-
            Quality for the generated image. Use 'auto' to let the model pick
            the best quality for the prompt.
          enum:
            - auto
            - low
            - medium
            - high
          default: high
        sync_mode:
          type: boolean
          description: >-
            If True, the media will be returned as a data URI and the output
            data won't be available in the request history.
        image_size:
          oneOf:
            - type: string
              title: Preset
              enum:
                - square_hd
                - square
                - portrait_4_3
                - portrait_16_9
                - landscape_4_3
                - landscape_16_9
                - auto
            - type: object
              title: Custom
              properties:
                width:
                  type: integer
                  description: Width in pixels. Must be a multiple of 16, max 3840.
                height:
                  type: integer
                  description: Height in pixels. Must be a multiple of 16, max 3840.
              required:
                - width
                - height
          description: >-
            The size of the generated image. Use a preset name or a custom
            {width, height} object. Concrete sizes: both dimensions must be
            multiples of 16, max edge 3840px, aspect ratio ??3:1, total pixels
            655,360??,294,400.
          default: landscape_4_3
        num_images:
          type: integer
          description: Number of images to generate
          default: 1
        output_format:
          type: string
          description: Output format for the images
          enum:
            - jpeg
            - png
            - webp
          default: png
      required:
        - prompt
    GptImage2EditInput:
      type: object
      title: GPT Image 2 Edit — input
      description: GPT Image 2 instruction-following image editing with reasoning.
      properties:
        prompt:
          type: string
          description: The prompt for image generation
        quality:
          type: string
          description: >-
            Quality for the generated image. Use 'auto' to let the model pick
            the best quality for the prompt.
          enum:
            - auto
            - low
            - medium
            - high
          default: high
        mask_url:
          type: string
          description: >-
            The URL of the mask image to use for the generation. This indicates
            what part of the image to edit.
        sync_mode:
          type: boolean
          description: >-
            If True, the media will be returned as a data URI and the output
            data won't be available in the request history.
        image_size:
          oneOf:
            - type: string
              title: Preset
              enum:
                - square_hd
                - square
                - portrait_4_3
                - portrait_16_9
                - landscape_4_3
                - landscape_16_9
                - auto
            - type: object
              title: Custom
              properties:
                width:
                  type: integer
                  description: Width in pixels. Must be a multiple of 16, max 3840.
                height:
                  type: integer
                  description: Height in pixels. Must be a multiple of 16, max 3840.
              required:
                - width
                - height
          description: >-
            The size of the generated image. Use 'auto' to infer from input
            images, a preset name, or a custom {width, height} object.
          default: auto
        image_urls:
          type: array
          description: The URLs of the images to use as a reference for the generation.
          items:
            type: string
        num_images:
          type: integer
          description: Number of images to generate
          default: 1
        output_format:
          type: string
          description: Output format for the images
          enum:
            - jpeg
            - png
            - webp
          default: png
      required:
        - prompt
        - image_urls
  securitySchemes:
    bearerAuth:
      scheme: bearer
      bearerFormat: JWT
      type: http

````