> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.empiriolabs.ai/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.empiriolabs.ai/_mcp/server.

# Wan 2.1

> Alibaba's Wan 2.1 video model with turbo and plus tiers for text-to-video, image-to-video, and first and last frame clips at 480p or 720p.

![Wan 2.1](https://media.empiriolabs.ai/model-logos/wan.png)

[Alibaba Cloud](/providers/alibaba) · Video Generation

`POST /v1/videos/generations`

Alibaba's Wan 2.1 video model with turbo and plus tiers for text-to-video, image-to-video, and first and last frame clips at 480p or 720p.

## At a glance

| Field               | Value                         |
| ------------------- | ----------------------------- |
| Model id            | `wan-2-1`                     |
| Model release date  | 2025-02-25                    |
| Input modalities    | Text, Image                   |
| Output modalities   | Video                         |
| Context window      | -                             |
| Weight precision    | -                             |
| Region              | Singapore                     |
| Features            | text_to_video, image_to_video |
| Native inference    | No                            |
| New                 | No                            |
| Supported endpoints | `POST /v1/videos/generations` |
| Alternate model ids | `alibaba/wan-2.1`, `wan2.1`   |

## Pricing

| Charge | Spec       | Rate    |
| ------ | ---------- | ------- |
| Turbo  | per second | \$0.036 |
| Plus   | per second | \$0.10  |

## Example request

```bash
curl https://api.empiriolabs.ai/v1/videos/generations \
  -H 'Authorization: Bearer $EMPIRIOLABS_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"model": "wan-2-1", "prompt": "sunrise over the ocean", "duration": 6}'
```

## Parameters

| Parameter         | Type    | Required | Default   | Description                                                                                                                                                                                                                 |
| ----------------- | ------- | -------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `prompt`          | string  | yes      | -         | Scene description.                                                                                                                                                                                                          |
| `mode`            | enum    | no       | `"auto"`  | Auto detects from attachments. t2v: text-to-video. i2v: animate one image. kf2v: interpolate between a first and last frame (two images). · Allowed: `auto`, `t2v`, `i2v`, `kf2v`                                           |
| `model_tier`      | enum    | no       | `"turbo"` | turbo: faster and cheaper, 480p or 720p. plus: higher fidelity, 720p only. First-last frame runs on plus only. When this is not set, first-last frame runs plus and every other mode runs turbo. · Allowed: `turbo`, `plus` |
| `resolution`      | enum    | no       | `"720p"`  | Output resolution. turbo renders 480p or 720p; plus and first-last frame render 720p. · Allowed: `480p`, `720p`                                                                                                             |
| `aspect_ratio`    | enum    | no       | `"16:9"`  | Used for text-to-video; image modes follow the source image. 480p supports 16:9, 9:16, and 1:1 only. · Allowed: `16:9`, `9:16`, `1:1`, `4:3`, `3:4`                                                                         |
| `image`           | string  | no       | -         | Source image URL. i2v uses one image; kf2v uses two (first and last frame).                                                                                                                                                 |
| `duration`        | integer | no       | `5`       | Clip length in whole seconds: 5, or 3 to 5 for image-to-video on turbo (mode i2v). · Range: 5 – 5                                                                                                                           |
| `negative_prompt` | string  | no       | `""`      | What to avoid.                                                                                                                                                                                                              |
| `seed`            | number  | no       | -         | Reproducibility seed.                                                                                                                                                                                                       |
| `prompt_extend`   | boolean | no       | true      | Let the service rewrite the prompt for better results.                                                                                                                                                                      |
| `watermark`       | boolean | no       | false     | Add a provenance watermark to the output.                                                                                                                                                                                   |

## Notes

Clips render about 5 seconds without audio; turbo image-to-video supports 3 to 5 seconds. Turbo outputs 480p or 720p, plus outputs 720p. Two attached images run first and last frame interpolation on the plus tier.

---

*Machine-readable schema:* `GET https://api.empiriolabs.ai/v1/models/wan-2-1`.