> ## 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 Schnell

> Fast, lightweight image generation optimized for speed and prototyping.

Flux Schnell is Black Forest Labs' fastest and most lightweight FLUX model, ideal for local development, prototyping, and personal use. It generates images quickly with lower step counts while maintaining good quality.

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

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

<Note>
  Flux Schnell is optimized for speed and works best with lower step counts. For higher fidelity production images, consider [Flux Dev](/public-endpoints/models/flux-dev).
</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="4">
  Number of denoising steps. Schnell is optimized for low step counts. Range: 1-8.
</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. 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-schnell/runsync" \
    -H "Authorization: Bearer $RUNPOD_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "input": {
        "prompt": "A quick sketch of a mountain landscape",
        "width": 1024,
        "height": 1024,
        "num_inference_steps": 4,
        "guidance": 1.0,
        "seed": 123
      }
    }'
  ```

  ```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-schnell/runsync",
      headers={
          "Authorization": f"Bearer {RUNPOD_API_KEY}",
          "Content-Type": "application/json",
      },
      json={
          "input": {
              "prompt": "A quick sketch of a mountain landscape",
              "width": 1024,
              "height": 1024,
              "num_inference_steps": 4,
              "guidance": 1.0,
              "seed": 123,
          }
      },
  )

  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-schnell/runsync",
    {
      method: "POST",
      headers: {
        Authorization: `Bearer ${RUNPOD_API_KEY}`,
        "Content-Type": "application/json",
      },
      body: JSON.stringify({
        input: {
          prompt: "A quick sketch of a mountain landscape",
          width: 1024,
          height: 1024,
          num_inference_steps: 4,
          guidance: 1.0,
          seed: 123,
        },
      }),
    }
  );

  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": 12,
    "executionTime": 856,
    "workerId": "oqk7ao1uomckye",
    "output": {
      "image_url": "https://image.runpod.ai/abc123/output.png",
      "cost": 0.00251658
    }
  }
  ```

  ```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 Schnell charges \$0.0024 per megapixel. Cost is calculated as: `(width × height / 1,000,000) × \$0.0024`.

| Image size | Megapixels | Cost     |
| ---------- | ---------- | -------- |
| 512×512    | 0.26 MP    | \$0.0006 |
| 1024×1024  | 1.05 MP    | \$0.0025 |
| 1536×1536  | 2.36 MP    | \$0.0057 |
