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

# Flux Dev

> High-quality image generation with exceptional prompt adherence and rich detail.

Flux Dev is Black Forest Labs' flagship image generation model, optimized for high visual fidelity and detailed outputs. It offers exceptional prompt adherence and produces images with rich detail, making it ideal for production use cases.

<Card title="Try in playground" icon="play" href="https://console.runpod.io/hub/playground/image/black-forest-labs-flux-1-dev" horizontal>
  Test Flux Dev in the Runpod Hub playground.
</Card>

|              |                                                                 |
| ------------ | --------------------------------------------------------------- |
| **Endpoint** | `https://api.runpod.ai/v2/black-forest-labs-flux-1-dev/runsync` |
| **Pricing**  | \$0.02 per megapixel                                            |
| **Type**     | Image generation                                                |

<Note>
  For faster, cheaper generation during development, consider [Flux Schnell](/public-endpoints/models/flux-schnell) which is optimized for speed.
</Note>

## Request

All parameters are passed within the `input` object in the request body.

<ParamField body="input.prompt" type="string" required>
  Text description of the desired image. Be specific and detailed for best results.
</ParamField>

<ParamField body="input.negative_prompt" type="string">
  Elements to exclude from the generated image. Use this to prevent unwanted features or styles.
</ParamField>

<ParamField body="input.width" type="integer" default="1024">
  Image width in pixels. Must be divisible by 64. Range: 256-1536.
</ParamField>

<ParamField body="input.height" type="integer" default="1024">
  Image height in pixels. Must be divisible by 64. Range: 256-1536.
</ParamField>

<ParamField body="input.num_inference_steps" type="integer" default="28">
  Number of denoising steps. Higher values produce more detailed images but take longer. Range: 1-50.
</ParamField>

<ParamField body="input.guidance" type="float" default="7.5">
  How closely to follow the prompt. Higher values produce images more faithful to the prompt but may reduce creativity. Range: 0.0-10.0.
</ParamField>

<ParamField body="input.seed" type="integer" default="-1">
  Seed for reproducible results. Use the same seed with identical parameters to generate the same image. Set to -1 for random.
</ParamField>

<ParamField body="input.image_format" type="string" default="jpeg">
  Output image format. Accepts `png` or `jpeg`.
</ParamField>

<RequestExample>
  ```bash cURL theme={"theme":{"light":"github-light","dark":"github-dark"}}
  curl -X POST "https://api.runpod.ai/v2/black-forest-labs-flux-1-dev/runsync" \
    -H "Authorization: Bearer $RUNPOD_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "input": {
        "prompt": "A serene mountain landscape at sunset, golden light filtering through clouds, photorealistic",
        "negative_prompt": "blurry, low quality",
        "width": 1024,
        "height": 1024,
        "num_inference_steps": 28,
        "guidance": 7.5,
        "seed": 42,
        "image_format": "png"
      }
    }'
  ```

  ```python Python theme={"theme":{"light":"github-light","dark":"github-dark"}}
  import requests

  response = requests.post(
      "https://api.runpod.ai/v2/black-forest-labs-flux-1-dev/runsync",
      headers={
          "Authorization": f"Bearer {RUNPOD_API_KEY}",
          "Content-Type": "application/json",
      },
      json={
          "input": {
              "prompt": "A serene mountain landscape at sunset, golden light filtering through clouds, photorealistic",
              "negative_prompt": "blurry, low quality",
              "width": 1024,
              "height": 1024,
              "num_inference_steps": 28,
              "guidance": 7.5,
              "seed": 42,
              "image_format": "png",
          }
      },
  )

  result = response.json()
  print(result["output"]["image_url"])
  ```

  ```javascript JavaScript theme={"theme":{"light":"github-light","dark":"github-dark"}}
  const response = await fetch(
    "https://api.runpod.ai/v2/black-forest-labs-flux-1-dev/runsync",
    {
      method: "POST",
      headers: {
        "Authorization": `Bearer ${RUNPOD_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        input: {
          prompt: "A serene mountain landscape at sunset, golden light filtering through clouds, photorealistic",
          negative_prompt: "blurry, low quality",
          width: 1024,
          height: 1024,
          num_inference_steps: 28,
          guidance: 7.5,
          seed: 42,
          image_format: "png",
        },
      }),
    }
  );

  const result = await response.json();
  console.log(result.output.image_url);
  ```
</RequestExample>

## Response

<ResponseField name="id" type="string">
  Unique identifier for the request.
</ResponseField>

<ResponseField name="status" type="string">
  Request status. Returns `COMPLETED` on success, `FAILED` on error.
</ResponseField>

<ResponseField name="delayTime" type="integer">
  Time in milliseconds the request spent in queue before processing began.
</ResponseField>

<ResponseField name="executionTime" type="integer">
  Time in milliseconds the model took to generate the image.
</ResponseField>

<ResponseField name="workerId" type="string">
  Identifier of the worker that processed the request.
</ResponseField>

<ResponseField name="output" type="object">
  The generation result containing the image URL and cost.

  <ResponseField name="output.image_url" type="string">
    URL of the generated image. This URL expires after 7 days.
  </ResponseField>

  <ResponseField name="output.cost" type="float">
    Cost of the generation in USD, calculated based on the output megapixels.
  </ResponseField>
</ResponseField>

<ResponseExample>
  ```json 200 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  {
    "id": "sync-a1b2c3d4-e5f6-7890-abcd-ef1234567890-u1",
    "status": "COMPLETED",
    "delayTime": 17,
    "executionTime": 3986,
    "workerId": "oqk7ao1uomckye",
    "output": {
      "image_url": "https://image.runpod.ai/abc123/output.png",
      "cost": 0.02097152
    }
  }
  ```

  ```json 400 theme={"theme":{"light":"github-light","dark":"github-dark"}}
  {
    "id": "sync-a1b2c3d4-e5f6-7890-abcd-ef1234567890-u1",
    "status": "FAILED",
    "error": "Invalid parameter: width must be divisible by 64"
  }
  ```
</ResponseExample>

<Warning>
  Image URLs expire after 7 days. Download and store generated images immediately if you need to keep them.
</Warning>

## Cost calculation

Flux Dev charges \$0.02 per megapixel. Cost is calculated as: `(width × height / 1,000,000) × \$0.02`.

| Image size | Megapixels | Cost     |
| ---------- | ---------- | -------- |
| 512×512    | 0.26 MP    | \$0.0052 |
| 1024×1024  | 1.05 MP    | \$0.021  |
| 1536×1536  | 2.36 MP    | \$0.047  |
