Skip to content

FLUX.2

FLUX.2 is Black Forest Labs' resolution-controlled image family on Pixapi. Choose flux-2-pro, flux-2-max, or flux-2-flex, then pass resolution as 1MP, 2MP, 3MP, or 4MP.

API surface

OperationEndpointMode
Image generationPOST /v1/images/generationsSync
Image generation taskPOST /v1/async/images/generationsAsync
Image editingPOST /v1/images/editsSync
Image editing taskPOST /v1/async/images/editsAsync

Model ids

Model idBest for
flux-2-proBalanced FLUX.2 quality and credit cost
flux-2-maxHighest-quality FLUX.2 output
flux-2-flexFlexible FLUX.2 resolution tiers

Pricing

Model id1MP2MP3MP4MP
flux-2-pro3456
flux-2-max681013
flux-2-flex481216

If you omit resolution, Pixapi bills the 1MP tier.

Request fields

FieldTypeRequiredDescription
modelstringYesUse flux-2-pro, flux-2-max or flux-2-flex. Model ids are case-sensitive.
promptstringYesPrompt text, up to 2,000 characters.
imagestring | string[]For editsPublic image URL or an array of image URLs.
nintegerNoNumber of outputs. Default 1, maximum 9.
sizestringNoProvider-supported output size. Forwarded as-is for this family.
qualitystringNoOptional provider quality value.
output_formatstringNoOptional output format such as png, when supported upstream.
resolutionstringNo1MP (default), 2MP, 3MP, or 4MP. Controls output tier and billing.
providerOptionsobjectNoAdditional provider fields passed through by the gateway.

Example

bash
curl https://api.pixapi.ai/v1/images/generations \
  -H "Authorization: Bearer $PIXAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"flux-2-pro","prompt":"A clean editorial product photo on a warm gray background","n":1,"resolution":"2MP"}'
py
import os
import requests

response = requests.post(
    "https://api.pixapi.ai/v1/images/generations",
    headers={
        "Authorization": f"Bearer {os.environ['PIXAPI_KEY']}",
        "Content-Type": "application/json",
    },
    json={
  "model": "flux-2-pro",
  "prompt": "A clean editorial product photo on a warm gray background",
  "n": 1,
  "resolution": "2MP"
},
)
response.raise_for_status()
print(response.json())
js
const response = await fetch('https://api.pixapi.ai/v1/images/generations', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.PIXAPI_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
  "model": "flux-2-pro",
  "prompt": "A clean editorial product photo on a warm gray background",
  "n": 1,
  "resolution": "2MP"
}),
});

if (!response.ok) {
  throw new Error(await response.text());
}

console.log(await response.json());
go
package main

import (
  "bytes"
  "fmt"
  "io"
  "net/http"
  "os"
)

func main() {
  body := []byte(`{
  "model": "flux-2-pro",
  "prompt": "A clean editorial product photo on a warm gray background",
  "n": 1,
  "resolution": "2MP"
}`)

  req, err := http.NewRequest(
    "POST",
    "https://api.pixapi.ai/v1/images/generations",
    bytes.NewBuffer(body),
  )
  if err != nil {
    panic(err)
  }
  req.Header.Set("Authorization", "Bearer "+os.Getenv("PIXAPI_KEY"))
  req.Header.Set("Content-Type", "application/json")

  resp, err := http.DefaultClient.Do(req)
  if err != nil {
    panic(err)
  }
  defer resp.Body.Close()

  result, _ := io.ReadAll(resp.Body)
  fmt.Println(string(result))
}

Edit an image

json
{
  "model": "flux-2-pro",
  "prompt": "Replace the background with a minimalist studio set",
  "image": "https://example.com/input.png",
  "n": 1
}

For async requests and task polling, see Async Media Tasks.

For the shared response shape, see the API Reference.