WAN 3.0 is LIVE — 30s in one shot | Try in Video Generator →

wavespeed-ai/

FLUX.2 [dev] Edit enables precise image-to-image editing from Black Forest Labs—apply natural-language instructions and exact hex color control for consistent, studio-quality results. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

image-to-image
Input

Idle

Transform this neon sign image into a cinematic title card while keeping the original text and composition. 
Enhance the lighting with dramatic film-noir contrast, soft neon bloom, and deeper shadows in the surrounding environment. 
Increase the wet ground reflection, making it glossier and more cinematic with stronger color diffusion. 
Add subtle atmospheric elements such as light fog, faint rain particles, and a richer nighttime palette with deep blues and magentas. 
Overall style: cinematic movie opening title, moody film lighting, atmospheric neon glow, high-end visual storytelling.

$0.024per run·~41 / $1

Next:

ExamplesView all

Transform this neon sign image into a cinematic title card while keeping the original text and composition. 
Enhance the lighting with dramatic film-noir contrast, soft neon bloom, and deeper shadows in the surrounding environment. 
Increase the wet ground reflection, making it glossier and more cinematic with stronger color diffusion. 
Add subtle atmospheric elements such as light fog, faint rain particles, and a richer nighttime palette with deep blues and magentas. 
Overall style: cinematic movie opening title, moody film lighting, atmospheric neon glow, high-end visual storytelling.

Transform this neon sign image into a cinematic title card while keeping the original text and composition. Enhance the lighting with dramatic film-noir contrast, soft neon bloom, and deeper shadows in the surrounding environment. Increase the wet ground reflection, making it glossier and more cinematic with stronger color diffusion. Add subtle atmospheric elements such as light fog, faint rain particles, and a richer nighttime palette with deep blues and magentas. Overall style: cinematic movie opening title, moody film lighting, atmospheric neon glow, high-end visual storytelling.

Transform this perfume photo into a Dior-style luxury white-background campaign image while keeping the original bottle shape and composition. 
Replace the current background with a pure, soft white studio backdrop. 
Enhance the lighting with bright, diffused beauty light, creating clean highlights and elegant glass reflections. 
Refine the bottle’s glass clarity and edges with Dior-like high-end minimalism, adding subtle gold accents and premium gloss. 
Reduce distractions and create a pristine, airy atmosphere with gentle shadows and a polished luxury aesthetic. 
Overall style: Dior perfume campaign, pure white luxury minimalism, luminous high-fashion product photography.

Transform this perfume photo into a Dior-style luxury white-background campaign image while keeping the original bottle shape and composition. Replace the current background with a pure, soft white studio backdrop. Enhance the lighting with bright, diffused beauty light, creating clean highlights and elegant glass reflections. Refine the bottle’s glass clarity and edges with Dior-like high-end minimalism, adding subtle gold accents and premium gloss. Reduce distractions and create a pristine, airy atmosphere with gentle shadows and a polished luxury aesthetic. Overall style: Dior perfume campaign, pure white luxury minimalism, luminous high-fashion product photography.

Transform this mechanical engine illustration into a futuristic cyberpunk technical blueprint while keeping all original mechanical structures intact. 
Add neon blue and magenta line accents, holographic overlays, glowing circuit patterns, and subtle HUD interface elements around the engine parts. 
Enhance the lighting with cool, high-tech highlights and soft ambient glow. 
Refine edges to look more digitally drafted while preserving real mechanical accuracy. 
Overall style: cyberpunk engineering schematic, holographic blueprint, sci-fi UI design.

Transform this mechanical engine illustration into a futuristic cyberpunk technical blueprint while keeping all original mechanical structures intact. Add neon blue and magenta line accents, holographic overlays, glowing circuit patterns, and subtle HUD interface elements around the engine parts. Enhance the lighting with cool, high-tech highlights and soft ambient glow. Refine edges to look more digitally drafted while preserving real mechanical accuracy. Overall style: cyberpunk engineering schematic, holographic blueprint, sci-fi UI design.

Transform this futuristic cityscape into a Dune-style desert imperial metropolis while preserving the overall skyline and building silhouettes. 
Replace the environment with a vast golden desert landscape, adding sand dunes, wind erosion, and drifting dust. 
Shift the lighting to harsh, cinematic desert sunlight with long shadows and a warm, sand-colored palette. 
Add subtle hints of ancient mega-architecture and monolithic structures, blending futuristic forms with a monumental desert-empire aesthetic. 
Introduce atmospheric spice haze, heat distortion, and distant sandstorms to enhance scale and mystique. 
Overall style: Dune desert megacity, epic imperial architecture, harsh sunlit sci-fi minimalism, mythic and atmospheric.

Transform this futuristic cityscape into a Dune-style desert imperial metropolis while preserving the overall skyline and building silhouettes. Replace the environment with a vast golden desert landscape, adding sand dunes, wind erosion, and drifting dust. Shift the lighting to harsh, cinematic desert sunlight with long shadows and a warm, sand-colored palette. Add subtle hints of ancient mega-architecture and monolithic structures, blending futuristic forms with a monumental desert-empire aesthetic. Introduce atmospheric spice haze, heat distortion, and distant sandstorms to enhance scale and mystique. Overall style: Dune desert megacity, epic imperial architecture, harsh sunlit sci-fi minimalism, mythic and atmospheric.

Transform this interior photo into a realistic MUJI-style natural minimalism while keeping the original layout and furniture. 
Use real-photography lighting with soft natural daylight, avoiding cinematic or stylized filters. 
Shift the color palette to low-saturation cream beige and warm natural wood tones, maintaining a clean and airy atmosphere. 
Increase the sense of lightness and openness through balanced exposure, subtle highlights, and softened shadows. 
Refine textures to look natural and tactile—cotton fabrics, raw wood, and simple ceramics—without exaggeration. 
Overall style: MUJI real-life minimalism, calm neutral tones, uncluttered space, natural warmth and everyday authenticity.

Transform this interior photo into a realistic MUJI-style natural minimalism while keeping the original layout and furniture. Use real-photography lighting with soft natural daylight, avoiding cinematic or stylized filters. Shift the color palette to low-saturation cream beige and warm natural wood tones, maintaining a clean and airy atmosphere. Increase the sense of lightness and openness through balanced exposure, subtle highlights, and softened shadows. Refine textures to look natural and tactile—cotton fabrics, raw wood, and simple ceramics—without exaggeration. Overall style: MUJI real-life minimalism, calm neutral tones, uncluttered space, natural warmth and everyday authenticity.

Related Models

README

FLUX.2 [dev] — Edit

FLUX.2 [dev] Edit is the lean editing companion to FLUX.2 [dev] Text-to-Image: a lightweight, open-source model that updates existing images quickly while keeping their core look intact. It is built for day-to-day production tasks where you need reliable edits at scale without burning GPU budget.

Built for

  • Quick visual tweaks to existing assets
  • Consistent updates to product, UI, or brand imagery
  • High-volume editing in cost-sensitive pipelines
  • Workflows already using FLUX.2 [dev] for generation
  • LoRA-based domain or brand customisation on a small footprint

Lean editing engine for everyday pipelines

Instead of regenerating images from scratch, FLUX.2 [dev] Edit focuses on local changes. You feed it an image plus an edit prompt (and, when supported, a mask or strength setting); it modifies only the requested areas, keeping layout, characters, and overall style stable so assets remain recognisable across versions.

Key benefits

• Prompt-guided adjustments

Change lighting, colour, clothing, props, or background details with short text instructions, replacing manual retouching and pixel-level editing.

• Consistent look and feel

Refresh campaigns, seasonal variants, or A/B test creatives while preserving character identity, composition, and brand language across all outputs.

• Open and integration-friendly

Built on the same open FLUX.2 stack, making it straightforward to plug into internal tools, debug behaviour, or extend with custom logic.

• Small, efficient footprint

The compact dev architecture keeps inference costs low, which is ideal for batch processing, automation, and always-on backend services.

• Flexible I/O

Accepts standard image formats and returns JPEG or PNG, so edited results fit directly into web, design, and post-production workflows.

• Repeatable results

Seed control plus fixed prompts make it easy to recreate previous edits or generate controlled variations for QA, experimentation, and asset refreshes.

Pricing

Simple per-image billing:

  • $0.024 per edited image

FLUX.2 family on WaveSpeedAI

Combine FLUX.2 [dev] Edit with the rest of the FLUX.2 lineup for a full generate-and-refine workflow:

More Image Tools on WaveSpeedAI

  • Nano Banana Pro – Google’s Gemini-based text-to-image model for sharp, coherent, prompt-faithful visuals that work great for ads, keyframes, and product shots.
  • Seedream V4 – ’s style-consistent, multi-image generator ideal for posters, campaigns, and large batches of on-brand illustrations.
  • Qwen Edit Plus – an enhanced Qwen-based image editor for precise inpainting, cleanup, and local style changes while preserving overall composition.
Note:This website uses AI models provided by third parties. Documentation prices are for reference and may be outdated. The Generate button shows an estimate; the final task charge prevails.

Flux 2 Dev Edit API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/wavespeed-ai/flux-2-dev/edit 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 2 Dev Edit below.

HTTP example
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",
    "images": [
        "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
    ],
    "seed": -1
}
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-2-dev/edit" \
  -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
done
Node.js example
const submitUrl = "https://api.wavespeed.ai/api/v3/wavespeed-ai/flux-2-dev/edit";
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",
        "images": [
                "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
        ],
        "seed": -1
}),
});
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));
}
Python example
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",
    "images": [
        "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
    ],
    "seed": -1
}

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-2-dev/edit", 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 2 Dev Edit API — Frequently asked questions

What is the Flux 2 Dev Edit API?

Flux 2 Dev Edit is a WaveSpeedAI model for image editing, exposed as a REST API on WaveSpeedAI. FLUX.2 [dev] Edit enables precise image-to-image editing from Black Forest Labs—apply natural-language instructions and exact hex color control for consistent, studio-quality results. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing. You can call it programmatically or try it from the playground above.

How do I call the Flux 2 Dev Edit API?

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-2-dev-edit.

How much does Flux 2 Dev Edit cost per run?

Flux 2 Dev Edit starts at $0.024 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.

What inputs does Flux 2 Dev Edit accept?

Key inputs: `prompt`, `images`, `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-2-dev-edit.

How long does Flux 2 Dev Edit take to generate?

Median end-to-end generation time on WaveSpeedAI is around 13 seconds per request, based on recent successful runs. Queue time varies with global demand; live status is visible in the prediction record.

Can I use Flux 2 Dev Edit outputs commercially?

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.

Flux 2 Dev Edit | Fast Image Editing API on WaveSpeedAI