MiniMax H3 Open Weights | Try in Video Generator →
Home/Explore/WaveSpeed/Qwen Image/Edit 2509 Multiple Angles

wavespeed-ai/

Qwen Image Edit 2509 Multiple Angles is an AI image editing model that generates multiple-angle views of objects or scenes from a single image. Transform perspectives and create diverse viewpoints with text prompts. Ready-to-use REST inference API, best performance, no coldstarts, affordable pricing.

image-to-image
Input

Idle

$0.025per run·~40 / $1

Next:

ExamplesView all

Related Models

README

Qwen Image Edit 2509 Multiple Angles

Qwen Image Edit 2509 Multiple Angles generates new camera perspectives of a subject from reference images. Control horizontal rotation, vertical tilt, and camera distance to create realistic multi-angle views — perfect for product photography and 3D visualization without reshooting.

Why Choose This?

  • Multi-angle generation Create new camera perspectives from up to 3 reference images.

  • Precise horizontal rotation Rotate the viewpoint in 5 positions: -90 (left), -45, 0 (front), 45, 90 (right).

  • Vertical tilt control Adjust camera elevation: -30 (low angle), 0 (eye level), 30 (elevated), 60 (high angle).

  • Camera distance Control zoom level: 0 = close-up, 1 = medium shot, 2 = wide shot.

  • Optional prompt guidance Add text descriptions to refine the generated perspective.

Parameters

ParameterRequiredDescription
imagesYesReference images, up to 3 (click "+ Add Item")
horizontal_angleNoHorizontal rotation: -90, -45, 0, 45, 90 (default: 90)
vertical_angleNoVertical tilt: -30, 0, 30, 60 (default: 0)
distanceNoCamera distance: 0 (close-up), 1 (medium), 2 (wide) (default: 1)
promptNoText description to guide the output
sizeNoCustom output size
seedNoRandom seed for reproducibility (-1 for random)
output_formatNoOutput format: jpeg (default), png, webp
enable_base64_outputNoReturn BASE64 string instead of URL (API only)
enable_sync_modeNoWait for result before returning response (API only)

Angle Reference

Horizontal Angle (horizontal_angle):

  • -90 → left side view
  • -45 → rotate left 45 degrees
  • 0 → front view
  • 45 → rotate right 45 degrees
  • 90 → right side view

Vertical Angle (vertical_angle):

  • -30 → low angle (looking up)
  • 0 → eye level
  • 30 → elevated view
  • 60 → high angle (looking down)

Distance:

  • 0 → close-up
  • 1 → medium shot
  • 2 → wide shot

How to Use

  1. Upload your images — provide 1-3 reference images.
  2. Set horizontal angle — choose the horizontal rotation.
  3. Set vertical angle (optional) — adjust camera elevation.
  4. Set distance (optional) — choose close-up, medium, or wide shot.
  5. Add prompt (optional) — describe any additional guidance.
  6. Run — submit and download the new perspective.

Pricing

OutputCost
Per image$0.025

Best Use Cases

  • Product Photography — Generate multiple product angles from a few reference shots.
  • E-commerce — Produce multi-angle product listings without reshooting.
  • 3D Visualization — Preview objects from different perspectives.
  • Sports & Action — Create alternate viewing angles of action scenes.
  • Creative Exploration — Experiment with camera angles and compositions.

Pro Tips

  • Use multiple reference images from different angles for more accurate results.
  • Combine horizontal rotation with vertical tilt for dynamic camera positions.
  • Use distance 0 for detail shots, distance 2 for full-body or environment context.
  • Values are rounded to the nearest valid angle automatically.
  • Keep seed consistent to compare different angle settings on the same subject.

Notes

  • Images is the only required field; maximum 3 reference images.
  • Angle values are rounded to the nearest valid position.
  • enable_base64_output and enable_sync_mode are API-only parameters.
  • Ensure uploaded image URLs are publicly accessible.
  • Seed value -1 generates a random seed each time.

Related Models

Note:This website uses AI models provided by third parties.

Qwen Image Edit 2509 Multiple Angles API — Quick start

Grab a WaveSpeedAI API key, then call POST https://api.wavespeed.ai/api/v3/wavespeed-ai/qwen-image/edit-2509-multiple-angles 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 Edit 2509 Multiple Angles below.

HTTP example
set -euo pipefail

: "${WAVESPEED_API_KEY:?Set WAVESPEED_API_KEY}"

REQUEST_BODY=$(cat <<'JSON'
{
    "images": [
        "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
    ],
    "horizontal_angle": 0,
    "vertical_angle": 0,
    "distance": 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/qwen-image/edit-2509-multiple-angles" \
  -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/edit-2509-multiple-angles";
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({
        "images": [
                "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
        ],
        "horizontal_angle": 0,
        "vertical_angle": 0,
        "distance": 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));
}
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 = {
    "images": [
        "https://interactive-examples.mdn.mozilla.net/media/cc0-images/painted-hand-298-332.jpg"
    ],
    "horizontal_angle": 0,
    "vertical_angle": 0,
    "distance": 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/qwen-image/edit-2509-multiple-angles", 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 Edit 2509 Multiple Angles API — Frequently asked questions

What is the Qwen Image Edit 2509 Multiple Angles API?

Qwen Image Edit 2509 Multiple Angles is a WaveSpeedAI model for image editing, exposed as a REST API on WaveSpeedAI. Qwen Image Edit 2509 Multiple Angles is an AI image editing model that generates multiple-angle views of objects or scenes from a single image. Transform perspectives and create diverse viewpoints with text prompts. 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 Edit 2509 Multiple Angles 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-edit-2509-multiple-angles.

How much does Qwen Image Edit 2509 Multiple Angles cost per run?

Qwen Image Edit 2509 Multiple Angles starts at $0.025 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 Edit 2509 Multiple Angles accept?

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

How long does Qwen Image Edit 2509 Multiple Angles take to generate?

Median end-to-end generation time on WaveSpeedAI is around 10 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 Edit 2509 Multiple Angles 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.