
Wan 2.7 Text-to-Video
Tongyi Wanxiang Wan 2.7 Text-to-Video is Alibaba Cloud's next-generation text-to-video model. Supporting long Chinese and English prompts with smart expansion, it generates native 720P/1080P HD videos directly from text, up to 15 seconds per run. Featuring native audio-visual coordination and sound effect sync, it adaptively supports multiple aspect ratios like 16:9 and 9:16 with strong motion continuity, realistic physics simulation, and lighting rendering—ideal for commercial ads, short videos, and anime creation.
Read Me
Wan 2.7 Text-to-Video API
Overview
Wan 2.7 Text-to-Video is Alibaba's Wan-family text-to-video interface on iCreat: input a text prompt—optionally with a first-frame reference image and a negative prompt—to generate short video clips. Developers invoke aliyun/wan2-7/text-to-video-sp through an asynchronous task queue, with 720P / 1080P output, five aspect ratios, and 4-15 second durations.
aliyun/wan2-7/text-to-video-spCore Capabilities
Text-to-video generation. A text prompt alone drives video generation—no reference materials required—ideal for turning copy and creative descriptions into motion quickly.
First-frame image reference. Pass an image via media[].type: first_frame to anchor the opening frame (image-to-video style), while the prompt describes how the scene evolves.
Negative prompts. negative_prompt describes content that should not appear in the video, giving fine-grained control over what the model avoids.
Two resolutions. 720P for cost-effective iteration, 1080P for sharper final delivery.
Five aspect ratios. 1:1, 9:16, 16:9, 3:4, 4:3 cover square feeds, vertical short video, and landscape formats.
4-15 second durations. Short clips sized for teasers, loops, and social snippets.
Watermark control. watermark defaults to false; enable it when an AI-generated mark is required.
Asynchronous task design. Submit → poll → retrieve workflow that is batch-friendly and easy to integrate with fault tolerance.
Model Comparison
Wan 2.7 Text-to-Video vs Seedance 2.5 Text-to-Video vs Kling V3 Omni
| Field | Wan 2.7 T2V | Seedance 2.5 T2V | Kling V3 Omni |
|---|---|---|---|
| Developer | Alibaba | ByteDance | Kuaishou |
| Max Duration | 15s | 30s (multi-round extension) | 15s |
| Resolution | 720P / 1080P | 480P / 720P | 720P / 1080P / 4K |
| Aspect Ratios | 1:1, 9:16, 16:9, 3:4, 4:3 | 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive | 16:9, 9:16, 1:1 |
| Reference Input | First-frame image | Text-driven (reference images optional) | Images, videos, characters |
| Negative Prompt | Yes (negative_prompt) |
— | — |
| 5s Price | $0.50 (720P) / $0.75 (1080P) | $0.70 (480p) / $1.52 (720p) | Std $0.42 |
| Best For | Budget short clips, first-frame control | Copy/script to video | Long-form narrative, multi-shot |
Input
Text prompt is required. A negative prompt and a first-frame reference image are optional.
| Input Type | Quantity | Format | Notes |
|---|---|---|---|
| Text prompt | 1 | input.prompt |
Required; describes the video to generate |
| Negative prompt | 1 | input.negative_prompt |
Optional; content that should not appear |
| First-frame image | 1 | input.media[] |
Optional; type: first_frame + url |
Input Examples
With a first-frame image and negative prompt
{
"input": {
"prompt": "A running kitten",
"negative_prompt": "The kitten should not run in a straight line",
"media": [
{
"type": "first_frame",
"url": "https://example.com/cat.jpg"
}
]
},
"parameters": {
"resolution": "720P",
"ratio": "1:1",
"duration": 5,
"watermark": false
}
}Without a negative prompt
{
"input": {
"prompt": "A kitten running across a grassy field",
"media": [
{
"type": "first_frame",
"url": "https://example.com/cat.jpg"
}
]
},
"parameters": {
"resolution": "1080P",
"ratio": "16:9",
"duration": 5,
"watermark": false
}
}Parameters
input fields
| Field | Type | Required | Description |
|---|---|---|---|
prompt |
string | Yes | Prompt describing the video to generate |
negative_prompt |
string | No | Describes content that should not appear in the video |
media |
object[] | No | List of reference media |
media[].type |
string | Yes | Media type. Use first_frame for the first-frame image |
media[].url |
string | Yes | URL of the reference image |
parameters fields
| Field | Type | Required | Description |
|---|---|---|---|
resolution |
string | Yes | Video resolution. Available values: 720P, 1080P |
ratio |
string | Yes | Video aspect ratio. Available values: 1:1, 9:16, 16:9, 3:4, 4:3 |
duration |
integer | Yes | Video duration in seconds. Range: 4–15 |
watermark |
boolean | No | Whether to add a watermark. Defaults to false |
Pricing
| Resolution | Unit Price (USD/second) | Cost for 5 Seconds | Cost for 15 Seconds |
|---|---|---|---|
| 720P | 0.1 | 0.50 | 1.50 |
| 1080P | 0.15 | 0.75 | 2.25 |
Total Cost = Unit Price × Output Video DurationQuick Start
This API uses an API Key for authentication. Get your API Key from https://icreat.ai/hub/keys.
Submit a request:
curl --fail-with-body --connect-timeout 10 --max-time 60 \
-X POST https://api.icreat.ai/v1/task/submit/aliyun/wan2-7/text-to-video-sp \
-H "Authorization: Bearer ${ICREAT_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"input": {
"prompt": "A running kitten",
"negative_prompt": "The kitten should not run in a straight line",
"media": [
{
"type": "first_frame",
"url": "https://icreat.ai/xxx.jpg"
}
]
},
"parameters": {
"resolution": "720P",
"ratio": "1:1",
"duration": 5,
"watermark": false
}
}'The server returns:
{
"task_id": "task-xxx"
}Poll task status:
curl --connect-timeout 10 --max-time 60 \
-X POST "https://api.icreat.ai/v1/task/query-status" \
-H "Authorization: Bearer ${ICREAT_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"task_id": "task-xxx"
}'When the status is SUCCEEDED, get the result:
curl --connect-timeout 10 --max-time 60 \
-X POST "https://api.icreat.ai/v1/task/get-result" \
-H "Authorization: Bearer ${ICREAT_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"task_id": "task-xxx"
}'Output
submit → task_id → query-status (SUCCEEDED) → get-resultAfter submitting, poll query-status with the task_id until the status is SUCCEEDED, then call get-result with the same task_id to retrieve the generated video.
Use Cases
Short social clips. 4-15 second teasers, loops, and snippets sized for feeds and stories, with the right aspect ratio for each platform.
E-commerce product motion. Use a product photo as the first frame and let the prompt drive camera or product motion—static shots become moving showcases.
Cost-effective iteration. At $0.50 for a 5-second 720P clip, draft and test multiple creative directions cheaply before committing to premium rendering.
Negative prompt control. Exclude unwanted elements—straight-line motion, background clutter, specific objects—without rewording the main prompt.
Limitations
Duration is capped at 4-15 seconds; longer narratives require multiple requests and post-stitching.
Only 720P and 1080P resolutions are available.
The current interface exposes a single reference media type (first_frame); other reference inputs are not supported.
resolution, ratio, and duration are required fields and must be included in every request.
FAQ
How do I get an API Key?
Create one at https://icreat.ai/hub/keys and pass it via the Authorization: Bearer header.
Can I generate video starting from an image?
Yes. Pass the image through input.media with "type": "first_frame" and its URL; the video starts from that frame. The text prompt is still required to describe the motion.
What does negative_prompt do?
It describes content that should not appear in the video—for example, "The kitten should not run in a straight line"—without altering the main prompt.
Is the watermark enabled by default?
No. watermark defaults to false; set it to true if you need an AI-generated watermark.
How is billing calculated?
Total Cost = Unit Price × Output Video Duration. For example, a 10-second 1080P video costs 0.15 × 10 = $1.50.
720P or 1080P?
Use 720P for fast, low-cost iteration and 1080P for final delivery when sharper detail matters.


