Introduction
Qwen Image 1.0 LoRA Edit changes one source image with Alibaba's original Qwen-Image-Edit, guided by your instruction and up to three of your own LoRA files. The result keeps the source's shape at about one megapixel, or one of nine aspect ratios if you pick it, 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 image to change | Qwen Image 1.0 LoRA Edit |
| a written description only | Qwen Image 1.0 LoRA Text to image |
| two or three images to combine | Qwen Image Edit 2509 LoRA |
Key features & highlights
Change one thing, keep the rest
Qwen-Image-Edit reads the source both for what it shows and for how it looks. In our tests a booth sign was rewritten in its own retro letters while the man, his jacket and the arcade stayed where they were.
Edit LoRAs for repeatable fixes
Relighting and photo-restoration LoRAs trained for Qwen-Image-Edit load from a direct link and turn a short instruction into the same kind of edit every time.
Uncensored with custom weights
The source, the instruction and the result are never filtered. Single-subject changes came back as written in our tests; scenes with two people were drawn without refusal but stop short of the act.
Request parameters
| Parameter | Required | Description |
|---|---|---|
prompt | Yes | Say what to change and what to keep, for example "change the sign to read ... ; keep the man and the booth". at least 1 characters · at most 5000 characters |
image_url | Yes | The source image as a public HTTPS link or an upload, up to 10 MB. The result keeps its shape unless you set |
aspect_ratio | No | Optional. Leave it empty and the result follows the source at about one megapixel. |
loras | No | Up to three {path, scale} entries. path is a direct HTTPS link to a .safetensors file trained for Qwen-Image-Edit; scale runs from 0 to 4, default 1. Default: |
output_format | No | JPEG by default, PNG or WebP if you need them. Does not change the price. |
seed | No | Keeps edits comparable while you change the instruction or a LoRA scale. Any whole number from 0 to 2147483647; leave it empty for a random seed. |
Pricing
$0.03 / image
Billed per image at one flat price, with or without aspect_ratio. Loading LoRAs adds no separate charge.
Use cases
Old photos made new
A restoration LoRA clears scratches, dust and creases from scans of prints and brings back colour, without changing the people in them.
Signs and packaging
Rewrite the words on a sign, a label or a poster in place, keeping the original lettering style.
Wardrobe and light changes
Swap an outfit and relight the shot in one instruction, for lookbooks, character sheets and social posts.
Prompt guide & pro tips
Name what must stay
End the instruction with the things that should not change: the face, the pose, the room. The model holds what you list.
Quote new words exactly
For text edits, put the new words in quotes and describe the style to keep, such as "the same gold retro letters on red".
One source per request
This endpoint takes a single image. To put people from two or three photos together, use Qwen Image Edit 2509 LoRA.
Link the file
Paste a direct download link to the .safetensors file. A repository page or a Hugging Face link that needs a login fails the request, and failed requests are not charged.
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-1.0-lora/edit",
"input": {
"image_url": "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.

















