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

> ## Agent Instructions
> If this page is missing information, contains outdated instructions, or doesn't fully answer the user's question, use the feedback tool to report it. In your feedback, be specific about what's missing, what appears out of date, or what needs to be corrected or updated, so the docs team can act on it directly.

# Flux Kontext Dev

> 12 billion parameter model for editing images based on text instructions. Explore this model's inputs and outputs on Runpod Public Endpoints.

Flux Kontext Dev is a 12 billion parameter rectified flow transformer capable of editing images based on text instructions. It excels at making targeted edits to existing images while preserving the overall context and style.

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

|              |                                                                         |
| ------------ | ----------------------------------------------------------------------- |
| **Endpoint** | `https://api.runpod.ai/v2/black-forest-labs-flux-1-kontext-dev/runsync` |
| **Pricing**  | \$0.025 per image                                                       |
| **Type**     | Image editing                                                           |

## Request

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

<ParamField body="input.prompt" type="string" required>
  Text instructions describing the desired edits to the image.
</ParamField>

<ParamField body="input.image" type="string" required>
  URL of the input image to edit.
</ParamField>

<ParamField body="input.negative_prompt" type="string">
  Elements to exclude from the edited image.
</ParamField>

<ParamField body="input.size" type="string" default="1024*1024">
  Output image size in format "width\*height".
</ParamField>

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

<ParamField body="input.guidance" type="float" default="2">
  How closely to follow the prompt. Range: 0.0-10.0.
</ParamField>

<ParamField body="input.seed" type="integer" default="-1">
  Seed for reproducible results. Set to -1 for random.
</ParamField>

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

<ParamField body="input.enable_safety_checker" type="boolean" default="true">
  Whether to run safety checks on the output.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST "https://api.runpod.ai/v2/black-forest-labs-flux-1-kontext-dev/runsync" \
    -H "Authorization: Bearer $RUNPOD_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "input": {
        "prompt": "Exact same bluebird, same angle and posture, now perched on a cloud in outer space",
        "image": "https://example.com/bluebird.png",
        "negative_prompt": "",
        "seed": -1,
        "num_inference_steps": 28,
        "guidance": 2,
        "size": "1024*1024",
        "output_format": "png",
        "enable_safety_checker": true
      }
    }'
  ```

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

  response = requests.post(
      "https://api.runpod.ai/v2/black-forest-labs-flux-1-kontext-dev/runsync",
      headers={
          "Authorization": f"Bearer {RUNPOD_API_KEY}",
          "Content-Type": "application/json",
      },
      json={
          "input": {
              "prompt": "Exact same bluebird, same angle and posture, now perched on a cloud in outer space",
              "image": "https://example.com/bluebird.png",
              "negative_prompt": "",
              "seed": -1,
              "num_inference_steps": 28,
              "guidance": 2,
              "size": "1024*1024",
              "output_format": "png",
              "enable_safety_checker": True,
          }
      },
  )

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

  ```javascript JavaScript theme={null}
  const response = await fetch(
    "https://api.runpod.ai/v2/black-forest-labs-flux-1-kontext-dev/runsync",
    {
      method: "POST",
      headers: {
        Authorization: `Bearer ${RUNPOD_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        input: {
          prompt:
            "Exact same bluebird, same angle and posture, now perched on a cloud in outer space",
          image: "https://example.com/bluebird.png",
          negative_prompt: "",
          seed: -1,
          num_inference_steps: 28,
          guidance: 2,
          size: "1024*1024",
          output_format: "png",
          enable_safety_checker: true,
        },
      }),
    }
  );

  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 edit 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 edited 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={null}
  {
    "id": "sync-a1b2c3d4-e5f6-7890-abcd-ef1234567890-u1",
    "status": "COMPLETED",
    "delayTime": 18,
    "executionTime": 4521,
    "workerId": "oqk7ao1uomckye",
    "output": {
      "image_url": "https://image.runpod.ai/abc123/output.png",
      "cost": 0.031457
    }
  }
  ```

  ```json 400 theme={null}
  {
    "id": "sync-a1b2c3d4-e5f6-7890-abcd-ef1234567890-u1",
    "status": "FAILED",
    "error": "Invalid image URL"
  }
  ```
</ResponseExample>

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

## Cost calculation

Flux Kontext Dev charges \$0.025 per image edited.
