FLUX.1 [schnell] is a 12B rectified flow transformer for high-quality text-to-image generation via API. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
Chờ

$0.003cho mỗi lần chạy·~333 / $1

Cute boy with a hat, exploring nature, holding a telescope, backpack, surrounded by flowers, cartoon style, vibrant colors.

Cute boy with a hat, exploring nature, holding a telescope, backpack, surrounded by flowers, cartoon style, vibrant colors.

Steampunk airship battle in tornado, gear mechanisms exposed with animated blueprints, cel-shaded cinematic

A futuristic crocodile seamlessly fused with a jet fighter: metallic emerald scales flow into a sleek titanium fuselage, razor-sharp wings extended, twin afterburners blazing orange, cockpit canopy where the reptile’s eyes would be, soaring above storm-tossed ocean clouds at dusk. Hyper-realistic, cinematic lighting, extreme detail, 8K resolution, ArtStation trending, concept art, dynamic angle, depth of field.

A cute, chibi-style male figurine inside a transparent capsule case, realistic lighting and depth of field, wearing a white Nike t-shirt with `HL` printed on it, black shorts with `HUNGLE` written, white Adidas sneakers, short black hair, cheerful smile, soft skin texture, held by a human hand with blurred warm background, highly detailed, realistic toy design

Ultra-whimsical, high-resolution digital illustration in the style of premium children’s storybooks. Depict a young adventurer child with expressive, oversized sparkling eyes and a subtle blush, featuring smooth, softly blended coloring. The child has a round, gentle face, short chestnut hair, and wears a crisp ochre explorer hat with a broad, darker band, a green vest over a taupe shirt, tan shorts, and practical brown hiking boots detailed with gold laces. He carries a spacious teal-blue backpack with leather buckles, and is holding a cartoon-style telescope with playful, exaggerated lens reflection. Place the child at the center of a magical, sun-dappled forest clearing, framed symmetrically by two robust tree trunks with intricate bark textures and thick canopies of lush, variegated green leaves overhead. Intertwine whimsical, oversized wildflowers and vividly detailed foliage in the foreground—daisies, cosmos, buttercups, and pink camellias with delicate dew droplets, meticulously arranged around the character. Background should be softly illuminated, with gentle, bokeh light orbs floating for a dreamy, enchanted atmosphere. The color palette must be vibrant yet pastel-balanced, emphasizing a tranquil and joyful mood. Every line should be clean and confident—with subtle shadowing and depth for a crisp, ultra-professional finish. Avoid text, humans or animals besides the child; focus on a harmonious, handcrafted, highly marketable children’s illustration aesthetic. Aspect ratio 1:1, maximum resolution, pure vector style polish.

A glamorous young woman with long, wavy blonde hair and smokey eye makeup, posing in a luxury hotel room. She's wearing a sparkly gold cocktail dress and holding up a white card with “WavespeedAI” written on it in elegant calligraphy. Soft, flattering lighting enhances her radiant complexion.

A glamorous young woman with long, wavy blonde hair and smokey eye makeup, posing in a luxury hotel room. She's wearing a sparkly gold cocktail dress and holding up a white card with “WavespeedAI” written on it in elegant calligraphy. Soft, flattering lighting enhances her radiant complexion.

Close-up portrait of a child with bright, vivid emotions, their eyes wide and sparkling with joy, a genuine, infectious smile spreading across their face. The sunlight dances on their features, highlighting the rosy cheeks and creating a warm, radiant glow. The background is slightly out of focus, enhancing the child's exuberant expression and the feeling of pure, unfiltered happiness.
![Nature documentary capture on Hasselblad X2D 100C with XCD 90V lens at f/4: [Majestic snow-capped mountain peak emerges through swirling morning mist], [golden sunrise light catches crystalline ice formations], creating [ethereal alpenglow effect]](https://static.wavespeed.ai/media/images/1783679631731571824_Ld2cluDP.webp)
Nature documentary capture on Hasselblad X2D 100C with XCD 90V lens at f/4: [Majestic snow-capped mountain peak emerges through swirling morning mist], [golden sunrise light catches crystalline ice formations], creating [ethereal alpenglow effect]

A vibrant custom illustration, retro-style, featuring a vintage ice cream cart, by the beach, with palm trees. The text 'WavespeedAI' is displayed in a retro, distressed style, with each letter in a different color, exuding a sense of nostalgia. The design is perfect for a t-shirt print, with an isolated white background.

a tiny astronaut hatching from an egg on the moon

A magical floating island in the sky, with waterfalls cascading into the clouds below. Lush greenery, ancient ruins, and fantastical creatures inhabit the island. Cinematic lighting, volumetric fog, digital painting.

A majestic owl with glowing, iridescent feathers perched on a moss-covered branch in a mystical, moonlit forest. Deep emerald green and sapphire blue tones dominate the scene.

An oil painting of a vibrant floral still life, impressionistic brushstrokes, rich textures, soft lighting, inspired by Monet, gallery quality.
wavespeed-ai/flux-schnell is an ultra-fast text-to-image model designed for high-throughput generation and rapid iteration. It’s ideal when you want to explore ideas quickly, batch-generate variations, or power real-time creative workflows with consistent, production-friendly latency.
| Model | Price per image |
|---|---|
| wavespeed-ai/flux-schnell | $0.003 |
Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/wavespeed-ai/flux-schnell with your input as JSON. The endpoint returns a prediction id. Start polling the result endpoint around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. On completed, read output values from data.outputs. Examples for Flux Schnell below.
set -euo pipefail
: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"
REQUEST_BODY=$(cat <<'JSON'
{
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"strength": 0.8,
"size": "1024*1024",
"num_images": 1,
"seed": -1,
"output_format": "jpeg"
}
JSON
)
# 1. Submit the prediction.
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
-X POST "https://api.wavespeed.ai/api/v3/wavespeed-ai/flux-schnell" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $WAVESPEED_API_KEY" \
-d "$REQUEST_BODY")
TASK=$(printf '%s' "$SUBMIT_RESPONSE" | jq 'if has("data") then .data else . end')
PREDICTION_ID=$(printf '%s' "$TASK" | jq -r '.id')
if [ -z "$PREDICTION_ID" ] || [ "$PREDICTION_ID" = "null" ]; then
printf 'Submission response did not contain a prediction id
' >&2
exit 1
fi
RESULT_URL=$(printf '%s' "$TASK" | jq -r '.urls.get // empty')
if [ -z "$RESULT_URL" ]; then
RESULT_URL="https://api.wavespeed.ai/api/v3/predictions/$PREDICTION_ID/result"
fi
# 2. Poll until the prediction finishes.
while true; do
RESPONSE=$(curl --silent --show-error --fail-with-body "$RESULT_URL" \
-H "Authorization: Bearer $WAVESPEED_API_KEY")
RESULT=$(printf '%s' "$RESPONSE" | jq 'if has("data") then .data else . end')
STATUS=$(printf '%s' "$RESULT" | jq -r '.status')
case "$STATUS" in
completed) printf '%s\n' "$RESULT" | jq '.outputs'; break ;;
failed|cancelled|timeout) printf '%s\n' "$RESULT" | jq . >&2; exit 1 ;;
created|processing) sleep 2 ;;
*) printf 'Unexpected status: %s
' "$STATUS" >&2; exit 1 ;;
esac
doneconst submitUrl = "https://api.wavespeed.ai/api/v3/wavespeed-ai/flux-schnell";
const apiKey = process.env.WAVESPEED_API_KEY;
if (!apiKey) throw new Error('Set WAVESPEED_API_KEY');
async function requestJson(url, options = {}) {
const response = await fetch(url, options);
if (!response.ok) throw new Error(await response.text());
return response.json();
}
// 1. Submit the prediction.
const body = await requestJson(submitUrl, {
method: "POST",
headers: {
"Authorization": `Bearer ${apiKey}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"strength": 0.8,
"size": "1024*1024",
"num_images": 1,
"seed": -1,
"output_format": "jpeg"
}),
});
const task = body.data ?? body;
if (!task.id) throw new Error("Submission response did not contain a prediction id");
const resultUrl = task.urls?.get ||
`https://api.wavespeed.ai/api/v3/predictions/${task.id}/result`;
// 2. Poll until the prediction finishes.
while (true) {
const resultBody = await requestJson(resultUrl, {
headers: { "Authorization": `Bearer ${apiKey}` },
});
const result = resultBody.data ?? resultBody;
if (result.status === "completed") {
console.log(result.outputs);
break;
}
if (["failed", "cancelled", "timeout"].includes(result.status)) throw new Error(JSON.stringify(result));
if (!["created", "processing"].includes(result.status)) throw new Error("Unexpected status: " + result.status);
await new Promise(resolve => setTimeout(resolve, 2000));
}import json
import os
import time
from urllib.request import Request, urlopen
api_key = os.environ["WAVESPEED_API_KEY"]
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
payload = {
"prompt": "A cinematic shot of a city at sunset, soft golden light",
"strength": 0.8,
"size": "1024*1024",
"num_images": 1,
"seed": -1,
"output_format": "jpeg"
}
def request_json(url, data=None):
request = Request(url, data=data, headers=headers, method="POST" if data else "GET")
with urlopen(request) as response:
return json.load(response)
# 1. Submit the prediction.
body = request_json("https://api.wavespeed.ai/api/v3/wavespeed-ai/flux-schnell", json.dumps(payload).encode())
task = body.get("data", body)
if not task.get("id"):
raise RuntimeError("Submission response did not contain a prediction id")
result_url = task.get("urls", {}).get("get") or f"https://api.wavespeed.ai/api/v3/predictions/{task['id']}/result"
# 2. Poll until the prediction finishes.
while True:
result_body = request_json(result_url)
result = result_body.get("data", result_body)
status = result.get("status")
if status == "completed":
print(result.get("outputs", []))
break
if status in {"failed", "cancelled", "timeout"}:
raise RuntimeError(result)
if status not in {"created", "processing"}:
raise RuntimeError(f"Unexpected status: {status}")
time.sleep(2)Flux Schnell is a WaveSpeedAI model for image generation, exposed as a REST API on WaveSpeedAI. FLUX.1 [schnell] is a 12B rectified flow transformer for high-quality text-to-image generation via API. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.
POST your input parameters to the model's REST endpoint (shown in the API tab of this playground) with your WaveSpeedAI API key in the Authorization header. Submission returns a prediction ID. Poll the result endpoint starting around every 2 seconds, increase the interval for long-running tasks, and stop on any terminal status. The playground generates production-oriented Python, JavaScript, and cURL examples with timeouts, transient-error handling, and safe GET retries. Full request/response shape is documented at https://wavespeed.ai/docs/docs-api/wavespeed-ai/flux-schnell.
Flux Schnell starts at $0.003 per run. That figure is the base price — the final charge scales with the parameters you set in the form (output size, length, count, references, or whatever knobs this model exposes), so a higher-quality or larger output costs more than a minimal one. The exact cost for your current input is shown live next to the Generate button before you submit, and the actual per-call charge is recorded on the prediction afterwards.
Key inputs: `prompt`, `image`, `size`, `seed`, `enable_base64_output`, `enable_sync_mode`. The full JSON schema (types, defaults, allowed values) is rendered above the Generate button and mirrored in the API reference at https://wavespeed.ai/docs/docs-api/wavespeed-ai/flux-schnell.
Median end-to-end generation time on WaveSpeedAI is around 5 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.
Commercial usage rights depend on the model's license, set by its provider (WaveSpeedAI). The license summary appears on the model card above; see WaveSpeedAI's Terms of Service for platform-level conditions.