Loading model…正在加载模型详情…
Loading model…正在加载模型详情…


A humanoid figure with a vintage television set for a head, featuring a green-tinted screen displaying a `Hello FLUX.2` writing in ASCII font. The figure is wearing a yellow raincoat, and there are various wires and components attached to the television. The background is cloudy and indistinct, suggesting an outdoor setting

cinematic close-up portrait of a woman with loose, windswept ginger hair and freckles, standing in a snowy environment under strong sunlight. the lighting creates highlights in her hair and soft natural shadows on her face. the background shows snowy mountains and a gradient blue sky fading toward the horizon. she is wearing a denim jacket with a green and white scarf tied around her neck. the composition is intimate, captured from a slightly side profile, with shallow depth of field and a warm film-like aesthetic, sharp and clear with rich textures
Generate images from text with FLUX.2 from Black Forest Labs, with Pro and Flex variants for realistic detail and text-led compositions.
FLUX.2 is Black Forest Labs' image model family. Black Forest Labs describes it as combining photorealistic detail, accurate text rendering and improved prompt following.
UniRoute offers the Pro and Flex text-to-image variants. Both accept a text prompt and size options combining resolution and aspect ratio; the exact combinations and request prices differ by variant.
Black Forest Labs describes FLUX.2 as improving detail, typography and prompt following over FLUX.1. Here, compare the callable Pro and Flex variants using the options UniRoute exposes.
What you can do with FLUX.2 through UniRoute today.
Describe the subject, style, composition and any wording you want in the image. Choose an available option and review the quote before running.

Other FLUX.2 modes and controls (image editing, multiple reference images, steps and guidance settings) are not available on UniRoute yet.
The variants you can call, with their options and prices.
| Variant | Model ID | Modes | Inputs | Output | Price |
|---|---|---|---|---|---|
| FLUX.2 Pro | flux-2/pro-text-to-image | Text to image | Text prompt and a size option | Resolution: 1K, 2K; Aspect ratio: 16:9, 1:1 | $0.03 to $0.04 per request |
| FLUX.2 Flex | flux-2/flex-text-to-image | Text to image | Text prompt and a size option | Resolution: 1K, 2K; Aspect ratio: 1:1, 16:9, 9:16 | $0.09 to $0.15 per request |
Priced per request. The option you choose sets the price.
| FLUX.2 Pro | |
|---|---|
| 1K:16:9 | $0.03 |
| 2K:1:1 | $0.04 |
| FLUX.2 Flex | |
|---|---|
| 1K · 1:1 | $0.09 |
| 1K · 16:9 | $0.09 |
| 1K · 9:16 | $0.09 |
| 2K · 1:1 | $0.15 |
| 2K · 16:9 | $0.15 |
| 2K · 9:16 | $0.15 |
Rounded to the cent; the live quote in the workspace shows the exact amount. Prices updated 2026-11-08.
Pay as you go from a single USD wallet balance. You see the quote before each request.
Call FLUX.2 from your own code with the media API.
# Requires bash, curl and jq. Set API_KEY to your own unified UniRoute Key.set -euo pipefail: "${API_KEY:?Set API_KEY first}"BASE='https://api.uniroute.app/v1/media'MODEL='flux-2/flex-text-to-image'OPTION='1K:1:1'PROMPT='A calm sunrise over a mountain lake'curl -fsS --max-time 60 "$BASE/catalog" -H "Authorization: Bearer $API_KEY" | jq -e '.data.models'BODY=$(jq -n --arg model "$MODEL" --arg option "$OPTION" --arg prompt "$PROMPT" '{model:$model,option:$option,prompt:$prompt}')QUOTE_BODY=$(printf '%s' "$BODY" | jq '{model,option}')QUOTE=$(curl -fsS --max-time 60 "$BASE/quote" -H "Authorization: Bearer $API_KEY" -H 'Content-Type: application/json' -d "$QUOTE_BODY")CAP=$(printf '%s' "$QUOTE" | jq -er '.data.quoted_usd')BODY=$(printf '%s' "$BODY" | jq --arg cap "$CAP" '. + {max_cost_usd:$cap}')IDEMPOTENCY="example-$(date +%s)-$$"create() { curl -fsS --max-time 60 "$BASE/tasks" -H "Authorization: Bearer $API_KEY" -H "Idempotency-Key: $IDEMPOTENCY" -H 'Content-Type: application/json' -d "$BODY"; }TASK_ID=$(create | jq -er '.data.task_id')# The same request and idempotency key must return the original task without charging again.REPLAY_ID=$(create | jq -er '.data.task_id')[ "$TASK_ID" = "$REPLAY_ID" ]for attempt in $(seq 1 120); do TASK=$(curl -fsS --max-time 60 "$BASE/tasks/$TASK_ID" -H "Authorization: Bearer $API_KEY") printf '%s' "$TASK" | jq -e '.data | {task_id,status,billing}' if printf '%s' "$TASK" | jq -e '.data.status == "success" and .data.billing.state == "charged"' >/dev/null; then index=0 while IFS= read -r url; do index=$((index+1)) curl -fL --max-time 120 "$url" -o "$TASK_ID-$index.bin" done < <(printf '%s' "$TASK" | jq -er '.data.urls[].url') break fi if printf '%s' "$TASK" | jq -e '.data.status == "failed" and .data.billing.state == "released"' >/dev/null; then exit 1; fi if [ "$attempt" = 120 ]; then echo "Polling limit reached. Keep task ID $TASK_ID and query it later; do not create a new task." >&2 exit 1 fi sleep 5donecurl -fsS --max-time 60 "$BASE/tasks?limit=20" -H "Authorization: Bearer $API_KEY" | jq -e '.data'# Check this task and the caller Key in Console usage; billing.charged_usd is the actual USD charge.| Name | In | Description |
|---|---|---|
model | Body | Model ID to run. |
option | Body | One of the options offered for the model: 1K:16:9, 2K:1:1, 1K:1:1, 1K:9:16, 2K:16:9, 2K:9:16. |
prompt | Body | Text prompt describing what to generate. |
max_cost_usd | Body | Maximum cost in USD for this task, taken from the quote. |
Idempotency-Key | Header | A unique key per task, so a repeated request returns the original task instead of charging again. |
Typical ways to put FLUX.2 to work.
Describe materials, reflections and lighting to explore a product image with realistic detail.
Include the desired words and their visual treatment to test posters, labels and title graphics.
Develop a portrait or environment by specifying subject placement, atmosphere and composition in writing.
Common questions about FLUX.2.
FLUX.2 is Black Forest Labs' image model family. Black Forest Labs describes it as combining photorealistic detail, accurate text rendering and improved prompt following.
Both variants generate images from text, with their own size combinations and prices. Although Black Forest Labs describes additional Flex controls, UniRoute currently exposes only the prompt and catalog size option.
Choose Pro or Flex, then one of that variant's resolution and aspect ratio combinations. UniRoute does not expose steps or guidance controls for either variant.
From $0.03 / image. Each request is quoted for the variant and option you select. The Pricing section lists every available request price (prices updated 2026-11-08).
No. This UniRoute workspace currently takes a text prompt and the catalog option shown above. Reference-image inputs are not available for the variants listed here.
Use the media API: request a quote for your model and option, create a task with an Idempotency-Key and a maximum cost, then poll the task until the result is ready. The API section shows a complete example and the parameters.
No. Generation is paid from your wallet balance. You can open the workspace and review the price without paying, create an account to see a live quote for your exact settings, and you are charged only for requests that are accepted.