Seedream 5.0 Pro yayında | Görsel Üretici'de deneyin →

Qwen Image Max Edit

wavespeed-ai /

Qwen Image Max Edit is an AI model for image editing with text prompts, supporting both Chinese and English languages. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

image-to-image
Giriş

Boşta

Let the man in Figure 1 put on the sunglasses in Figure 2.

$0.07çalıştırma başına·~14 / $1

Sonraki:

ÖrneklerTümünü görüntüle

Let the man in Figure 1 put on the sunglasses in Figure 2.

Let the man in Figure 1 put on the sunglasses in Figure 2.

İlgili Modeller

README

Qwen-Image-Max Edit

Qwen-Image-Max Edit is advanced AI-powered image editing model that transforms images based on text prompts. Supporting both Chinese and English inputs, it delivers precise edits while preserving the original style and quality.

Why Choose This?

  • Bilingual support Edit images using Chinese or English text prompts with equal accuracy.

  • Multi-image input Support up to 6 reference images for complex editing scenarios.

  • Flexible output sizing Maintains first image dimensions by default, or set custom size with preset aspect ratios.

  • Multiple output formats Export as JPEG, PNG, or WebP based on your needs.

  • Strong edit accuracy Understands context and object relationships for coherent modifications.

Parameters

ParameterRequiredDescription
promptYesText description of the desired edit (max 800 chars)
imagesYesReference images (1-6 images, 384-5000px)
sizeNoPreset aspect ratio: 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3
widthNoOutput width in pixels (256-1536, default: first image)
heightNoOutput height in pixels (256-1536, default: first image)
seedNoRandom seed for reproducibility (-1 for random)
output_formatNoOutput format: jpeg, png, webp (default: jpeg)

How to Use

  1. Upload your images — add 1-6 reference images for editing.
  2. Write your prompt — describe the edit in Chinese or English.
  3. Set size (optional) — choose a preset or custom dimensions, or leave empty to match first image.
  4. Set seed (optional) — use a specific seed for reproducible results.
  5. Choose output format — select jpeg, png, or webp.
  6. Run — submit and download your edited image.

Pricing

OutputCost
Per image$0.07

Best Use Cases

  • Photo Retouching — Remove objects, fix imperfections, enhance details.
  • Creative Editing — Transform scenes, modify elements, add artistic effects.
  • E-commerce — Edit product images, change backgrounds, adjust compositions.
  • Marketing — Adapt visuals for different campaigns and platforms.
  • Localization — Edit on-image text between Chinese and English.

Pro Tips

  • Use clear, specific edit instructions for best results.
  • Leave size empty to preserve original dimensions, or set custom size for specific output needs.
  • Multiple reference images help with complex edits requiring more context.
  • Use seed -1 for variety, or set a specific seed when iterating.
  • Choose WebP for smaller file sizes, PNG for transparency support.
  • Works equally well with Chinese and English prompts.

Notes

  • If size is not specified, output matches the first input image dimensions.
  • Custom size range is 256-1536 pixels for both width and height.
  • Input image resolution must be between 384-5000 pixels.
  • Maximum 6 images can be uploaded per edit.
  • Prompt length is limited to 800 characters.
  • Ensure uploaded image URLs are publicly accessible.

Related Models

Not:Bu web sitesi, üçüncü taraflarca sağlanan yapay zeka modellerini kullanmaktadır.

Qwen Image Max Edit API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/wavespeed-ai/qwen-image-max/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 Qwen Image Max 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/qwen-image-max/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/qwen-image-max/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/qwen-image-max/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)

Qwen Image Max Edit API — Frequently asked questions

What is the Qwen Image Max Edit API?

Qwen Image Max Edit is a WaveSpeedAI model for image editing, exposed as a REST API on WaveSpeedAI. Qwen Image Max Edit is an AI model for image editing with text prompts, supporting both Chinese and English languages. 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 Qwen Image Max 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/qwen-image-max-edit.

How much does Qwen Image Max Edit cost per run?

Qwen Image Max Edit starts at $0.070 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 Qwen Image Max Edit accept?

Key inputs: `prompt`, `images`, `seed`. 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/qwen-image-max-edit.

How long does Qwen Image Max Edit take to generate?

Median end-to-end generation time on WaveSpeedAI is around 12 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 Qwen Image Max 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.

Qwen Image Max Edit | Fast Image Editing API | WaveSpeedAI