Back to Models

FLUX.1 Kontext Dev

black-forest-labsblack-forest-labs/flux-kontext-dev

Open-weight 12B variant of FLUX.1 Kontext. Cheapest entry point for image editing. Routed via SiliconFlow.

Context Length
--
Max Output
--
Image Priceper 1M tokens
$0.018/ image
Input Priceper 1M tokens
$0.0168/ 1M tokens

Modalities

textimage→image

Pricing Breakdown

TypeRate
Image$0.018 / image
Input$0.0168 / 1M tokens
Per image$0.018 / image

Per-image flat fee on SiliconFlow

Supported Parameters

promptsizeimageseed

API Usage Examples

Use the global api.therouter.ai endpoint shown below for new integrations; the legacy China accelerated endpoint is retired.

Recommended: use the async API

Image generation typically takes 30–180s, beyond the edge sync timeout. The examples below use the ?async=true submit + poll pattern. Read the full async image generation & edit guide β†’

cURL
# 1) Submit job (returns 202 immediately with a polling URL).
# Image generation takes 30-180s β€” always use the async path in production.
JOB=$(curl -s -X POST "https://api.therouter.ai/v1/images/generations?async=true"   -H "Content-Type: application/json"   -H "Authorization: Bearer $THE_ROUTER_API_KEY"   -d '{
    "model": "black-forest-labs/flux-kontext-dev",
    "prompt": "A cinematic product render with soft studio lighting"
  }' | python3 -c "import sys,json;print(json.load(sys.stdin)['id'])")
echo "submitted: $JOB"

# 2) Poll until terminal (succeeded / failed / cancelled / expired).
while :; do
  R=$(curl -s "https://api.therouter.ai/v1/jobs/$JOB"     -H "Authorization: Bearer $THE_ROUTER_API_KEY")
  S=$(echo "$R" | python3 -c "import sys,json;print(json.load(sys.stdin)['status'])")
  echo "status: $S"
  case "$S" in
    succeeded) echo "$R" | python3 -c "import sys,json;print(json.load(sys.stdin)['unsigned_urls'][0])"; break ;;
    failed|cancelled|expired) echo "$R"; exit 1 ;;
  esac
  sleep 5
done

Image Editing Examples

Upload an image and describe the edit you want with a text prompt; the model returns the edited image as base64.

cURL
# Same async submit + poll pattern as /v1/images/generations.
JOB=$(curl -s -X POST "https://api.therouter.ai/v1/images/edits?async=true"   -H "Authorization: Bearer $THE_ROUTER_API_KEY"   -F "model=black-forest-labs/flux-kontext-dev"   -F "prompt=Turn this scene into a watercolor painting"   -F "size=1024x1024"   -F "image=@input.png" | python3 -c "import sys,json;print(json.load(sys.stdin)['id'])")
echo "submitted: $JOB"

while :; do
  R=$(curl -s "https://api.therouter.ai/v1/jobs/$JOB"     -H "Authorization: Bearer $THE_ROUTER_API_KEY")
  S=$(echo "$R" | python3 -c "import sys,json;print(json.load(sys.stdin)['status'])")
  echo "status: $S"
  case "$S" in
    succeeded) echo "$R" | python3 -c "import sys,json;print(json.load(sys.stdin)['unsigned_urls'][0])"; break ;;
    failed|cancelled|expired) echo "$R"; exit 1 ;;
  esac
  sleep 5
done
Customer Support