
Alibaba's Wan 2.5 image model with text-to-image and multi-reference editing of up to 3 images at about 1.7 megapixels.
Alibaba's Wan 2.5 image model with text-to-image and multi-reference editing of up to 3 images at about 1.7 megapixels.
Also known as Alibaba Cloud Wan2.5 Image
wan2-5-image/v1/images/generationsalibaba/wan-2.5-imagewan2.5-imageLive pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.
Wan2.5 Image runs through POST /v1/images/generations. The request returns a job_id right away; poll GET /v1/jobs/{job_id} until the job completes and read the output URLs from the result. Or add "sync": true to skip polling: the request stays open and returns the finished OpenAI-style image response directly, so OpenAI SDKs work as-is. Get an API key from the EmpirioLabs dashboard.
curl https://api.empiriolabs.ai/v1/images/generations \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2-5-image",
"prompt": "Describe what you want Wan2.5 Image to generate."
}'curl https://api.empiriolabs.ai/v1/jobs/JOB_ID \
-H "Authorization: Bearer $EMPIRIOLABS_API_KEY"import requests
response = requests.post(
"https://api.empiriolabs.ai/v1/images/generations",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
json={
"model": "wan2-5-image",
"prompt": "Describe what you want Wan2.5 Image to generate.",
},
)
job = response.json()
# Generation runs as an async job. Poll until it completes.
import time
while True:
status = requests.get(
f"https://api.empiriolabs.ai/v1/jobs/{job['job_id']}",
headers={"Authorization": "Bearer YOUR_EMPIRIOLABS_API_KEY"},
).json()
if status.get("status") in ("completed", "failed"):
print(status)
break
time.sleep(5)Request parameters supported by the Wan2.5 Image API on EmpirioLabs. Defaults apply when a field is omitted.
| Parameter | Type | Default | Range / values | Description |
|---|---|---|---|---|
| prompt | string | - | - | Text prompt (up to 2000 characters). With input images attached, becomes the editing instruction. |
| aspect_ratio | enum | 1:1 | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3 | Output aspect ratio. |
| image | array | - | - | Up to 3 input image URLs. Triggers editing mode. |
| num_images | number | 1 | 1 to 4 | Number of images to generate. Each is billed separately. |
| negative_prompt | string | - | - | What to avoid in the output. |
| prompt_extend | boolean | true | - | Let the service rewrite the prompt for better results. |
| watermark | boolean | false | - | Add a provenance watermark to the output. |
| seed | number | - | 0 to 2147483647 | Reproducibility seed. Leave empty for random. |
| response_format | enum | url | url, b64_json | Return signed URLs or base64 image data. |
Text-to-image renders about 1.7 megapixels at the chosen aspect ratio; attach 1 to 3 images for editing and fusion at about 1 megapixel. Prompts up to 2000 characters.
On EmpirioLabs, Wan2.5 Image is billed pay as you go: Standard $0.030 per image. The live rate card on this page always matches what the API charges.
Wan2.5 Image is served through POST /v1/images/generations on api.empiriolabs.ai with standard bearer-token authentication.
Yes. The EmpirioLabs playground runs Wan2.5 Image in the browser with the same parameters the API exposes, so you can test prompts before writing code.
Create an EmpirioLabs account, then generate a key under API Keys in the dashboard. Billing is pay-as-you-go credits, so you only pay for the requests you make.
Check out our pricing or reach out if you want your own model deployed on our stack.