
Alibaba's Wan 2.1 text-to-image model with turbo and plus tiers and up to 1440x1440 output at low per-image pricing.
Alibaba's Wan 2.1 text-to-image model with turbo and plus tiers and up to 1440x1440 output at low per-image pricing.
Also known as Alibaba Cloud Wan2.1 Image
wan2-1-image/v1/images/generationsalibaba/wan-2.1-imagewan2.1-imageLive pay-as-you-go rates from the EmpirioLabs catalog. You are billed only for what you use, with no monthly minimum.
Wan2.1 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-1-image",
"prompt": "Describe what you want Wan2.1 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-1-image",
"prompt": "Describe what you want Wan2.1 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.1 Image API on EmpirioLabs. Defaults apply when a field is omitted.
| Parameter | Type | Default | Range / values | Description |
|---|---|---|---|---|
| prompt | string | - | - | Text prompt (up to 500 characters). |
| model_tier | enum | turbo | turbo, plus | turbo: faster and cheaper. plus: higher fidelity. |
| aspect_ratio | enum | 1:1 | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3 | Output aspect ratio. |
| 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 only. Turbo is faster and cheaper; plus is the higher-fidelity tier. Output sizes run up to 1440x1440 with prompts up to 500 characters.
On EmpirioLabs, Wan2.1 Image is billed pay as you go: Turbo $0.025 per image; Plus $0.05 per image. The live rate card on this page always matches what the API charges.
Wan2.1 Image is served through POST /v1/images/generations on api.empiriolabs.ai with standard bearer-token authentication.
Yes. The EmpirioLabs playground runs Wan2.1 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.