FLUX.1 [dev] endpoint with LoRA support for fast, high-quality image generation and simple personalization via pre-trained LoRA adapters. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.
निष्क्रिय

$0.015प्रति रन·~66 / $1

Super Realism, Woman in a red jacket, snowy, in the style of hyper-realistic portraiture, caninecore, mountainous vistas, timeless beauty, palewave, iconic, distinctive noses --ar 72:101 --stylize 750 --v 6

A glowing, ethereal figure floats in the dark space, making it look almost like an angel. It has a calm and peaceful feeling, as if exuding a peaceful atmosphere, and its wings are composed of white light. This figure is completely composed of a soft and delicate beam of energy, which has an impressionist effect on the surrounding environment.

Octopus vs. lam chess game, underwater setting, vibrant colors

The sun shines all over the courtyard, and the breeze blows gently, bringing bursts of flowers. Several girls were dressed in fine gauze and their skirts were blown by the wind, chasing and playing in the garden. Their laughter is as clear as a silver bell, sometimes jumping and sometimes spinning, like a group of dancing butterflies. One girl held a wreath and put it gently on her companion's head, while the other hid behind a tree and sneaked out her head, her eyes shining with naughty light. Their figures are looming in the flowers, sometimes holding hands and sometimes separating, as if they were integrated with the surrounding nature. The air is filled with youthful vitality and carefree happiness, as if this moment of time will never pass.The girl is a small dance in Douro Mainland.

a cat

a cat

yarn art style, Sexy blonde Christmas girl, wearing a revealing red Santa outfit with white fur trim, holding a gift box, festive lighting, soft glowing background,

an elderly man sitting by a window, warm sunlight casting soft shadows, ultra-realistic, high detail skin texture, weathered hands, cinematic photography, depth of field, 50mm lens, cozy room interior, storytelling mood

a traveler standing on a hilltop at sunrise, light wind blowing through her hair, ultra-realistic lighting, soft golden glow, bright clear sky, detailed fabric, serene atmosphere, realistic landscape, cinematic photo realism

a stylish woman sitting by a window, reading a book, sunlight streaming in, ultra-realistic, bright soft lighting, cozy modern interior, subtle skin texture, natural smile, casual elegance, lifestyle photography, crisp details, 85mm lens

a young woman with long flowing hair walking through a sunlit park, cherry blossoms falling, ultra-realistic, soft sunlight, clear blue sky, radiant smile, cinematic lighting, glowing skin, dreamy atmosphere, vibrant colors, 85mm lens
FLUX.1 [dev] is a 12B parameter rectified flow transformer for advanced text-to-image generation. It supports prompt-only generation as well as image inpainting and LoRA customization, making it a flexible tool for both research and creative workflows.
Max resolution: up to 1536 × 1536 pixels
Optional inputs:
image (for img2img)
mask_image (for inpainting)
LoRA support: add multiple .safetensors with adjustable scale
Inference controls:
num_inference_steps (default ~28)
guidance_scale (default ~3.5)
strength (the strength of transform the reference image)
Output format: JPEG / PNG / WEBP
Seed: reproducibility (-1 = random)
Just $0.015 per image !!
Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/wavespeed-ai/flux-dev-lora 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 Dev Lora 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_inference_steps": 28,
"guidance_scale": 3.5,
"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-dev-lora" \
-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-dev-lora";
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_inference_steps": 28,
"guidance_scale": 3.5,
"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_inference_steps": 28,
"guidance_scale": 3.5,
"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-dev-lora", 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 Dev Lora is a WaveSpeedAI model for AI inference, exposed as a REST API on WaveSpeedAI. FLUX.1 [dev] endpoint with LoRA support for fast, high-quality image generation and simple personalization via pre-trained LoRA adapters. 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-dev-lora.
Flux Dev Lora starts at $0.015 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`, `guidance_scale`, `num_inference_steps`. 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-dev-lora.
Median end-to-end generation time on WaveSpeedAI is around 18 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.