Introduction
Qwen Image 2512 LoRA Edit changes one to three source images with Alibaba's Qwen-Image-Edit-2511, guided by your instruction and up to three of your own LoRA files. The result follows the first image's shape at about one megapixel and comes back as JPEG, PNG or WebP at one flat price, with no content filter.
Choose a mode by starting material
| What you have | Mode |
|---|---|
| one to three images to change | Qwen Image 2512 LoRA Edit |
| a written description only | Qwen Image 2512 LoRA Text to image |
Key features & highlights
Edit LoRAs, not only style LoRAs
Qwen-Image-Edit-2511 has a large set of community edit LoRAs: new camera angles, relighting, photo-realism and more. Each one turns a plain instruction into a specific, repeatable edit.
Identity carries over
Alibaba built 2511 to hold people consistent between input and output. In our tests the same man, outfit and room survived a camera move, and an illustrated singer kept her curls and dress as a photograph.
Uncensored with custom weights
The sources, the instruction and the result are never filtered. With an uncensored edit LoRA, our strongest content probe came back as written.
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | Say what each picture contributes and what should change. Some edit LoRAs expect a fixed phrase; the model card gives it. at least 1 characters · at most 5000 characters |
image_urls | Yes | One to three source images, addressed in the prompt as Picture 1, Picture 2 and Picture 3. Without |
aspect_ratio | No | Optional. Leave it empty and the result follows the first source image at about one megapixel. |
loras | No | Up to three {path, scale} entries trained for Qwen-Image-Edit-2511; scale 0 to 2 on this endpoint. Default: |
output_format | No | JPEG by default, PNG or WebP if you need them. |
seed | No | Keeps edits comparable while you change the instruction. |
Pricing
$0.03 / image
Billed per image at one flat price, whether you send one, two or three sources. LoRAs add no separate charge.
Use cases
Product and character angles
One photo becomes a set of views for a listing, a lookbook or a character sheet. Run the multiple-angles LoRA several times with different view phrases and the same seed to build the set.
Illustration to photograph
Turn concept art or a drawn character into a believable photo that keeps the design: hair, clothing and pose carry over while the rendering becomes photographic.
Uncensored edits
Uncensored edit LoRAs apply to your own references with no review and no filter on the result, at the same flat price as any other edit.
Prompt guide & pro tips
Use the LoRA's phrase exactly
Edit LoRAs are often trained on a fixed wording. The multiple-angles LoRA expects "" and then the view, for example " front-left quarter view eye-level shot medium shot"; copy the format from its model card.
Name every source
With two or three images, say what each one contributes: Picture 1 is the person, Picture 2 is the outfit, Picture 3 is the room. The result takes its shape from the first image, so put the main subject there.
Stay at or below 1 first
The scale limit here is 2, but most edit LoRAs are made for 1. Raise it only when the effect is too weak, in steps of 0.25, and keep the seed fixed while you compare.
Say what must not change
When the edit should be narrow, add what stays: keep her face, keep the dress, keep the window light. Saying it outright gives the model something to hold on to.
API quick start
# Generate the idempotency key once; reuse it when retrying after a lost response.
export SPICY_IDEMPOTENCY_KEY="${SPICY_IDEMPOTENCY_KEY:-$(uuidgen)}"
curl -X POST https://api.spicyapi.ai/api/v1/jobs/createTask \
-H "Authorization: Bearer $SPICY_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $SPICY_IDEMPOTENCY_KEY" \
-d '{
"model": "alibaba/qwen-image-2512-lora/edit",
"input": {
"image_urls": [
"https://example.com/reference.png"
],
"output_format": "jpeg",
"prompt": "A ceramic teapot on a linen cloth, soft window light, muted palette"
}
}'
# Copy data.taskId from the response into TASK_ID, then poll the status.
TASK_ID="TASK_ID_FROM_RESPONSE"
curl "https://api.spicyapi.ai/api/v1/jobs/recordInfo?taskId=$TASK_ID" \
-H "Authorization: Bearer $SPICY_API_KEY"
See the API reference for authentication, the complete schema, polling, and error handling.


















