> ## 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 [dev]

> Open text-to-image with multi-reference

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

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

FLUX.2 \[dev] is a 32-billion parameter image generation model that excels in generating highly detailed, photorealistic images and performing precise image editing, including multi-reference editing with strong consistency across subjects, products, and styles. It is best at rendering complex typography, infographics, and UI mockups with legible fine text, and supports flexible input/output ratios up to 4 megapixels.

Some other noteworthy features of FLUX.2 \[dev] include native support for LoRA fine-tuning workflows, making it suitable for rapid prototyping and custom training, and efficient resource usage for high-volume generation tasks.

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

\**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-dev) 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-dev",
            "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy'\''s shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp."
          }'
          ```

          ```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-dev",
                  "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy's shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp."
              },
          )
          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-dev",
            "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy'\''s shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp.",
            "input_image": [
              "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_1024x1024.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-dev",
                  "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy's shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp.",
                  "input_image": [
                      "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_1024x1024.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-dev",
            "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy'\''s shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp.",
            "input_image": [
              "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_1024x1024.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-dev",
                  "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy's shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp.",
                  "input_image": [
                      "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_1024x1024.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-dev",
            "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy'\''s shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp."
          }' | 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-dev",
                  "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy's shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp."
              },
          )
          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-dev",
            "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy'\''s shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp.",
            "input_image": [
              "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_1024x1024.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-dev",
                  "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy's shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp.",
                  "input_image": [
                      "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_1024x1024.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-dev",
            "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy'\''s shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp.",
            "input_image": [
              "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_1024x1024.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-dev",
                  "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy's shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp.",
                  "input_image": [
                      "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_1024x1024.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-dev",
            "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy'\''s shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp."
          }' | 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-dev",
                  "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy's shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp."
              },
          )
          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-dev",
            "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy'\''s shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp.",
            "input_image": [
              "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_1024x1024.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-dev",
                  "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy's shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp.",
                  "input_image": [
                      "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_1024x1024.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-dev",
            "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy'\''s shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp.",
            "input_image": [
              "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_1024x1024.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-dev",
                  "prompt": "Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy's shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp.",
                  "input_image": [
                      "https://hub.oxen.ai/api/repos/elau/assets/file/main/bloxy/bloxy_cropped_1024x1024.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-dev
```

## Request parameters

### Required parameters

| Field    | Type     | Default                                                                                                                                                                                                                                                                                                                                                        | Description                |
| -------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------- |
| `prompt` | `string` | `"Bloxy, the cartoon ox in the reference image, as a superhero. The overall style should be kept the same as the reference image. Bloxy should be wearing a blue suit with whitish-grey sleeves and leggings. On Bloxy's shoulders rest a yellow shoulder mantle and yellow capelet with a collar clasp. A red jewel lies in the center of the collar clasp."` | 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_1024x1024.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.                                                                                                  |
