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

# FLUX.2 [flex]

> Tunable open text-to-image model

<CardGroup cols={1}>
  <Card title="Try FLUX.2 [flex] in the Workbench" icon="flask" href="https://www.oxen.ai/ai/workbench?model=flux-2-flex">
    Run this model interactively, tune parameters, and compare outputs.
  </Card>
</CardGroup>

**Model ID:** `flux-2-flex`

FLUX.2 \[flex] is an image generation model that excels in **high-quality image creation and editing with strong control over text rendering, typographic layout, and precise prompt adherence**.

It provides granular control over image generation, allowing users to **balance speed, quality, and cost by adjusting inference steps and guidance scale**, and supports up to 10 reference images for tasks such as style transfer, compositing, and product continuity.

Some other noteworthy features of FLUX.2 \[flex] include:

* **Superior text and caption rendering**, making it well-suited for infographics, marketing materials, and brand assets.
* **JSON-structured prompts** for precise compositional control.
* **Accurate color reproduction**, including support for exact HEX color codes, which is valuable for product visualization.

| Metric             | Value   |
| ------------------ | ------- |
| Parameter Count    | Unknown |
| Mixture of Experts | Unknown |
| Context Length     | Unknown |
| Multilingual       | No      |
| Quantized\*        | Yes     |

\**Quantization is specific to the inference provider and the model may be offered with different quantization levels by other providers.*

## Example request

<Tip>
  Use the [Workbench](https://www.oxen.ai/ai/workbench?model=flux-2-flex) as a request builder: configure parameters for this model in the UI, then open the **API** tab to copy the exact cURL or Python call.
</Tip>

<Tabs>
  <Tab title="Sync">
    See the [image editing reference](/inference-api/reference/image_editing) for more details.

    <Tabs>
      <Tab title="Minimal">
        <CodeGroup>
          ```bash cURL theme={null}
          curl -X POST https://hub.oxen.ai/api/ai/images/edit \
            -H "Content-Type: application/json" \
            -H "Authorization: Bearer $OXEN_API_KEY" \
            -d '{
            "model": "flux-2-flex",
            "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don'\''t include its arms or legs in the painting."
          }'
          ```

          ```python Python theme={null}
          import os
          import requests

          response = requests.post(
              "https://hub.oxen.ai/api/ai/images/edit",
              headers={
                  "Content-Type": "application/json",
                  "Authorization": f"Bearer {os.environ['OXEN_API_KEY']}",
              },
              json={
                  "model": "flux-2-flex",
                  "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don't include its arms or legs in the painting."
              },
          )
          response.raise_for_status()
          print(response.json())
          ```
        </CodeGroup>
      </Tab>

      <Tab title="Basic parameters">
        <CodeGroup>
          ```bash cURL theme={null}
          curl -X POST https://hub.oxen.ai/api/ai/images/edit \
            -H "Content-Type: application/json" \
            -H "Authorization: Bearer $OXEN_API_KEY" \
            -d '{
            "model": "flux-2-flex",
            "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don'\''t include its arms or legs in the painting.",
            "input_image": [
              "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png"
            ]
          }'
          ```

          ```python Python theme={null}
          import os
          import requests

          response = requests.post(
              "https://hub.oxen.ai/api/ai/images/edit",
              headers={
                  "Content-Type": "application/json",
                  "Authorization": f"Bearer {os.environ['OXEN_API_KEY']}",
              },
              json={
                  "model": "flux-2-flex",
                  "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don't include its arms or legs in the painting.",
                  "input_image": [
                      "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png"
                  ]
              },
          )
          response.raise_for_status()
          print(response.json())
          ```
        </CodeGroup>
      </Tab>

      <Tab title="All parameters">
        <CodeGroup>
          ```bash cURL theme={null}
          curl -X POST https://hub.oxen.ai/api/ai/images/edit \
            -H "Content-Type: application/json" \
            -H "Authorization: Bearer $OXEN_API_KEY" \
            -d '{
            "model": "flux-2-flex",
            "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don'\''t include its arms or legs in the painting.",
            "input_image": [
              "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png"
            ],
            "aspect_ratio": "16:9",
            "resolution": "1 MP",
            "num_inference_steps": 30,
            "guidance": 2,
            "output_format": "webp",
            "output_quality": 80,
            "disable_safety_checker": false
          }'
          ```

          ```python Python theme={null}
          import os
          import requests

          response = requests.post(
              "https://hub.oxen.ai/api/ai/images/edit",
              headers={
                  "Content-Type": "application/json",
                  "Authorization": f"Bearer {os.environ['OXEN_API_KEY']}",
              },
              json={
                  "model": "flux-2-flex",
                  "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don't include its arms or legs in the painting.",
                  "input_image": [
                      "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png"
                  ],
                  "aspect_ratio": "16:9",
                  "resolution": "1 MP",
                  "num_inference_steps": 30,
                  "guidance": 2,
                  "output_format": "webp",
                  "output_quality": 80,
                  "disable_safety_checker": false
              },
          )
          response.raise_for_status()
          print(response.json())
          ```
        </CodeGroup>
      </Tab>
    </Tabs>
  </Tab>

  <Tab title="Async">
    See the [async queue reference](/inference-api/reference/async_queue) for more details.

    <Tabs>
      <Tab title="Minimal">
        <CodeGroup>
          ```bash cURL theme={null}
          # Enqueue, capture the generation id.
          GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \
            -H "Content-Type: application/json" \
            -H "Authorization: Bearer $OXEN_API_KEY" \
            -d '{
            "model": "flux-2-flex",
            "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don'\''t include its arms or legs in the painting."
          }' | jq -r '.generations[0].generation_id')

          # Poll until the generation reaches a terminal status.
          while true; do
            STATUS=$(curl -s -H "Authorization: Bearer $OXEN_API_KEY" \
              "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq -r '.status')
            echo "Status: $STATUS"
            case $STATUS in succeeded|failed|cancelled) break;; esac
            sleep 5
          done

          # Print the result.
          curl -s -H "Authorization: Bearer $OXEN_API_KEY" \
            "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq .
          ```

          ```python Python theme={null}
          import os
          import time
          import requests

          HEADERS = {
              "Content-Type": "application/json",
              "Authorization": f"Bearer {os.environ['OXEN_API_KEY']}",
          }

          enqueue = requests.post(
              "https://hub.oxen.ai/api/ai/queue",
              headers=HEADERS,
              json={
                  "model": "flux-2-flex",
                  "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don't include its arms or legs in the painting."
              },
          )
          enqueue.raise_for_status()
          generation_id = enqueue.json()["generations"][0]["generation_id"]

          while True:
              data = requests.get(
                  f"https://hub.oxen.ai/api/ai/queue/{generation_id}",
                  headers=HEADERS,
              ).json()
              if data["status"] in {"succeeded", "failed", "cancelled"}:
                  break
              time.sleep(5)

          if data["status"] == "succeeded":
              print(f"Result: {data['result_url']}")
          else:
              print(f"Generation {data['status']}: {data.get('error_message')}")
          ```
        </CodeGroup>
      </Tab>

      <Tab title="Basic parameters">
        <CodeGroup>
          ```bash cURL theme={null}
          # Enqueue, capture the generation id.
          GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \
            -H "Content-Type: application/json" \
            -H "Authorization: Bearer $OXEN_API_KEY" \
            -d '{
            "model": "flux-2-flex",
            "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don'\''t include its arms or legs in the painting.",
            "input_image": [
              "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png"
            ]
          }' | jq -r '.generations[0].generation_id')

          # Poll until the generation reaches a terminal status.
          while true; do
            STATUS=$(curl -s -H "Authorization: Bearer $OXEN_API_KEY" \
              "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq -r '.status')
            echo "Status: $STATUS"
            case $STATUS in succeeded|failed|cancelled) break;; esac
            sleep 5
          done

          # Print the result.
          curl -s -H "Authorization: Bearer $OXEN_API_KEY" \
            "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq .
          ```

          ```python Python theme={null}
          import os
          import time
          import requests

          HEADERS = {
              "Content-Type": "application/json",
              "Authorization": f"Bearer {os.environ['OXEN_API_KEY']}",
          }

          enqueue = requests.post(
              "https://hub.oxen.ai/api/ai/queue",
              headers=HEADERS,
              json={
                  "model": "flux-2-flex",
                  "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don't include its arms or legs in the painting.",
                  "input_image": [
                      "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png"
                  ]
              },
          )
          enqueue.raise_for_status()
          generation_id = enqueue.json()["generations"][0]["generation_id"]

          while True:
              data = requests.get(
                  f"https://hub.oxen.ai/api/ai/queue/{generation_id}",
                  headers=HEADERS,
              ).json()
              if data["status"] in {"succeeded", "failed", "cancelled"}:
                  break
              time.sleep(5)

          if data["status"] == "succeeded":
              print(f"Result: {data['result_url']}")
          else:
              print(f"Generation {data['status']}: {data.get('error_message')}")
          ```
        </CodeGroup>
      </Tab>

      <Tab title="All parameters">
        <CodeGroup>
          ```bash cURL theme={null}
          # Enqueue, capture the generation id.
          GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \
            -H "Content-Type: application/json" \
            -H "Authorization: Bearer $OXEN_API_KEY" \
            -d '{
            "model": "flux-2-flex",
            "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don'\''t include its arms or legs in the painting.",
            "input_image": [
              "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png"
            ],
            "aspect_ratio": "16:9",
            "resolution": "1 MP",
            "num_inference_steps": 30,
            "guidance": 2,
            "output_format": "webp",
            "output_quality": 80,
            "disable_safety_checker": false
          }' | jq -r '.generations[0].generation_id')

          # Poll until the generation reaches a terminal status.
          while true; do
            STATUS=$(curl -s -H "Authorization: Bearer $OXEN_API_KEY" \
              "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq -r '.status')
            echo "Status: $STATUS"
            case $STATUS in succeeded|failed|cancelled) break;; esac
            sleep 5
          done

          # Print the result.
          curl -s -H "Authorization: Bearer $OXEN_API_KEY" \
            "https://hub.oxen.ai/api/ai/queue/$GEN_ID" | jq .
          ```

          ```python Python theme={null}
          import os
          import time
          import requests

          HEADERS = {
              "Content-Type": "application/json",
              "Authorization": f"Bearer {os.environ['OXEN_API_KEY']}",
          }

          enqueue = requests.post(
              "https://hub.oxen.ai/api/ai/queue",
              headers=HEADERS,
              json={
                  "model": "flux-2-flex",
                  "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don't include its arms or legs in the painting.",
                  "input_image": [
                      "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png"
                  ],
                  "aspect_ratio": "16:9",
                  "resolution": "1 MP",
                  "num_inference_steps": 30,
                  "guidance": 2,
                  "output_format": "webp",
                  "output_quality": 80,
                  "disable_safety_checker": false
              },
          )
          enqueue.raise_for_status()
          generation_id = enqueue.json()["generations"][0]["generation_id"]

          while True:
              data = requests.get(
                  f"https://hub.oxen.ai/api/ai/queue/{generation_id}",
                  headers=HEADERS,
              ).json()
              if data["status"] in {"succeeded", "failed", "cancelled"}:
                  break
              time.sleep(5)

          if data["status"] == "succeeded":
              print(f"Result: {data['result_url']}")
          else:
              print(f"Generation {data['status']}: {data.get('error_message')}")
          ```
        </CodeGroup>
      </Tab>
    </Tabs>
  </Tab>

  <Tab title="Async with SSE">
    See the [async queue reference](/inference-api/reference/async_queue) for more details.

    <Tabs>
      <Tab title="Minimal">
        <CodeGroup>
          ```bash cURL theme={null}
          # Enqueue, capture the generation id.
          GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \
            -H "Content-Type: application/json" \
            -H "Authorization: Bearer $OXEN_API_KEY" \
            -d '{
            "model": "flux-2-flex",
            "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don'\''t include its arms or legs in the painting."
          }' | jq -r '.generations[0].generation_id')

          # Stream the SSE channel, grab the data line that follows a
          # media_generation_completed event for our id, and pretty-print it.
          curl -sN -H "Authorization: Bearer $OXEN_API_KEY" https://hub.oxen.ai/api/events \
            | awk -v id="$GEN_ID" '
              /^event: media_generation_completed$/ { expect=1; next }
              /^data: / && expect {
                payload = substr($0, 7)
                if (index(payload, "\"generation_id\":\"" id "\"")) { print payload; exit }
                expect = 0
              }
            ' | jq .
          ```

          ```python Python theme={null}
          import json
          import os
          import requests

          API_KEY = os.environ["OXEN_API_KEY"]
          AUTH = {"Authorization": f"Bearer {API_KEY}"}

          enqueue = requests.post(
              "https://hub.oxen.ai/api/ai/queue",
              headers={**AUTH, "Content-Type": "application/json"},
              json={
                  "model": "flux-2-flex",
                  "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don't include its arms or legs in the painting."
              },
          )
          enqueue.raise_for_status()
          generation_id = enqueue.json()["generations"][0]["generation_id"]

          with requests.get(
              "https://hub.oxen.ai/api/events",
              headers=AUTH,
              stream=True,
          ) as stream:
              event_name = None
              for line in stream.iter_lines(decode_unicode=True):
                  if line.startswith("event: "):
                      event_name = line.removeprefix("event: ")
                  elif line.startswith("data: ") and event_name == "media_generation_completed":
                      payload = json.loads(line.removeprefix("data: "))
                      if payload.get("generation_id") == generation_id:
                          print(payload)
                          break
          ```
        </CodeGroup>
      </Tab>

      <Tab title="Basic parameters">
        <CodeGroup>
          ```bash cURL theme={null}
          # Enqueue, capture the generation id.
          GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \
            -H "Content-Type: application/json" \
            -H "Authorization: Bearer $OXEN_API_KEY" \
            -d '{
            "model": "flux-2-flex",
            "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don'\''t include its arms or legs in the painting.",
            "input_image": [
              "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png"
            ]
          }' | jq -r '.generations[0].generation_id')

          # Stream the SSE channel, grab the data line that follows a
          # media_generation_completed event for our id, and pretty-print it.
          curl -sN -H "Authorization: Bearer $OXEN_API_KEY" https://hub.oxen.ai/api/events \
            | awk -v id="$GEN_ID" '
              /^event: media_generation_completed$/ { expect=1; next }
              /^data: / && expect {
                payload = substr($0, 7)
                if (index(payload, "\"generation_id\":\"" id "\"")) { print payload; exit }
                expect = 0
              }
            ' | jq .
          ```

          ```python Python theme={null}
          import json
          import os
          import requests

          API_KEY = os.environ["OXEN_API_KEY"]
          AUTH = {"Authorization": f"Bearer {API_KEY}"}

          enqueue = requests.post(
              "https://hub.oxen.ai/api/ai/queue",
              headers={**AUTH, "Content-Type": "application/json"},
              json={
                  "model": "flux-2-flex",
                  "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don't include its arms or legs in the painting.",
                  "input_image": [
                      "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png"
                  ]
              },
          )
          enqueue.raise_for_status()
          generation_id = enqueue.json()["generations"][0]["generation_id"]

          with requests.get(
              "https://hub.oxen.ai/api/events",
              headers=AUTH,
              stream=True,
          ) as stream:
              event_name = None
              for line in stream.iter_lines(decode_unicode=True):
                  if line.startswith("event: "):
                      event_name = line.removeprefix("event: ")
                  elif line.startswith("data: ") and event_name == "media_generation_completed":
                      payload = json.loads(line.removeprefix("data: "))
                      if payload.get("generation_id") == generation_id:
                          print(payload)
                          break
          ```
        </CodeGroup>
      </Tab>

      <Tab title="All parameters">
        <CodeGroup>
          ```bash cURL theme={null}
          # Enqueue, capture the generation id.
          GEN_ID=$(curl -s -X POST https://hub.oxen.ai/api/ai/queue \
            -H "Content-Type: application/json" \
            -H "Authorization: Bearer $OXEN_API_KEY" \
            -d '{
            "model": "flux-2-flex",
            "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don'\''t include its arms or legs in the painting.",
            "input_image": [
              "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png"
            ],
            "aspect_ratio": "16:9",
            "resolution": "1 MP",
            "num_inference_steps": 30,
            "guidance": 2,
            "output_format": "webp",
            "output_quality": 80,
            "disable_safety_checker": false
          }' | jq -r '.generations[0].generation_id')

          # Stream the SSE channel, grab the data line that follows a
          # media_generation_completed event for our id, and pretty-print it.
          curl -sN -H "Authorization: Bearer $OXEN_API_KEY" https://hub.oxen.ai/api/events \
            | awk -v id="$GEN_ID" '
              /^event: media_generation_completed$/ { expect=1; next }
              /^data: / && expect {
                payload = substr($0, 7)
                if (index(payload, "\"generation_id\":\"" id "\"")) { print payload; exit }
                expect = 0
              }
            ' | jq .
          ```

          ```python Python theme={null}
          import json
          import os
          import requests

          API_KEY = os.environ["OXEN_API_KEY"]
          AUTH = {"Authorization": f"Bearer {API_KEY}"}

          enqueue = requests.post(
              "https://hub.oxen.ai/api/ai/queue",
              headers={**AUTH, "Content-Type": "application/json"},
              json={
                  "model": "flux-2-flex",
                  "prompt": "Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don't include its arms or legs in the painting.",
                  "input_image": [
                      "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png"
                  ],
                  "aspect_ratio": "16:9",
                  "resolution": "1 MP",
                  "num_inference_steps": 30,
                  "guidance": 2,
                  "output_format": "webp",
                  "output_quality": 80,
                  "disable_safety_checker": false
              },
          )
          enqueue.raise_for_status()
          generation_id = enqueue.json()["generations"][0]["generation_id"]

          with requests.get(
              "https://hub.oxen.ai/api/events",
              headers=AUTH,
              stream=True,
          ) as stream:
              event_name = None
              for line in stream.iter_lines(decode_unicode=True):
                  if line.startswith("event: "):
                      event_name = line.removeprefix("event: ")
                  elif line.startswith("data: ") and event_name == "media_generation_completed":
                      payload = json.loads(line.removeprefix("data: "))
                      if payload.get("generation_id") == generation_id:
                          print(payload)
                          break
          ```
        </CodeGroup>
      </Tab>
    </Tabs>
  </Tab>
</Tabs>

## Fetch model details

The [models endpoint](/inference-api/reference/models/overview) returns the full model object, including its `json_request_schema`.

```bash theme={null}
curl -H "Authorization: Bearer $OXEN_API_KEY" https://hub.oxen.ai/api/ai/models/flux-2-flex
```

## Request parameters

### Required parameters

| Field    | Type     | Default                                                                                                                                                                                                                                                                                                                 | Description                |
| -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- |
| `prompt` | `string` | `"Draw a parody of the Mona Lisa by Leonardo da Vinci with Bloxy, the cartoon ox in the reference image, as Lisa del Giocondo. Keep Bloxy in the original style of the reference image with the cartoon ox, but adapt its pose to the pose depicted in the Mona Lisa. Don't include its arms or legs in the painting."` | Prompt for generated image |

### Optional parameters

| Field                    | Type            | Default                                                                                   | Description                                                                                                                                   |
| ------------------------ | --------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- |
| `input_image`            | `array<string>` | `["https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_512x512.png"]` | Input images to transform or use as reference (supports multiple image urls)                                                                  |
| `aspect_ratio`           | `string`        | `"16:9"`                                                                                  | Aspect ratio for the generated image One of: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, match\_input\_image.                                        |
| `resolution`             | `string`        | `"1 MP"`                                                                                  | Resolution for the generated image One of: 1 MP, 2 MP, 0.5 MP.                                                                                |
| `num_inference_steps`    | `integer`       | `30`                                                                                      | Number of denoising steps. Recommended range is 28-50, and lower number of steps produce lower quality outputs, faster. Range: 1 – 50.        |
| `guidance`               | `number`        | `2`                                                                                       | Guidance for generated image. Lower values can give more realistic images. Good values to try are 2, 2.5, 3 and 3.5 Range: 0 – 10.            |
| `seed`                   | `integer`       | —                                                                                         | Random seed. Set for reproducible generation                                                                                                  |
| `output_format`          | `string`        | `"webp"`                                                                                  | Format of the output images One of: webp, jpg, png.                                                                                           |
| `output_quality`         | `integer`       | `80`                                                                                      | Quality when saving the output images, from 0 to 100. 100 is best quality, 0 is lowest quality. Not relevant for .png outputs Range: 0 – 100. |
| `disable_safety_checker` | `boolean`       | `false`                                                                                   | Disable safety checker for generated images.                                                                                                  |
