Wan2.7 Text-to-Video
POST /api/v1/services/aigc/video-generation/video-synthesis — Wan2.7 text-to-video
The Wan 2.7 text-to-video model generates a fluid video from a text prompt, with multi-shot storytelling driven straight from the prompt (describe your shots with timestamps).
Models
| Model | Notes |
|---|---|
wan2.7-t2v | Wan 2.7 text-to-video |
Create a job
/api/v1/services/aigc/video-generation/video-synthesiscurl https://api.modelsite.ai/api/v1/services/aigc/video-generation/video-synthesis \
-H "Authorization: Bearer $MODELSITE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan2.7-t2v",
"input": {
"prompt": "A rainy New York street at night, neon reflections, a detective in a black trench coat walking briskly, cinematic"
},
"parameters": {
"resolution": "720P",
"ratio": "16:9",
"duration": 5
}
}'Request body
| Field | Type | Notes |
|---|---|---|
model | string (required) | wan2.7-t2v |
input.prompt | string (required) | ≤5000 characters. Multi-shot storytelling is plain prompt text (e.g. "Shot 1 [0-3s] wide: …") |
input.negative_prompt | string (optional) | ≤500 characters. Lives in input in the Wan dialect — not in parameters |
input.audio_url | string (optional) | Audio file URL (wav/mp3, 2–30 s, ≤15MB); the model uses it as the soundtrack and trims to duration when longer |
parameters | object (optional) | Below |
parameters
| Parameter | Type | Notes |
|---|---|---|
resolution | string | 720P / 1080P (default). Sellable tiers follow the price configuration |
ratio | string | 16:9 (default) / 9:16 / 1:1 / 4:3 / 3:4 |
duration | integer | [2, 15], default 5 |
prompt_extend | boolean | Prompt rewriting, default true |
watermark | boolean | "AI-generated" stamp, default false |
seed | integer | [0, 2147483647] |
Wan2.7 dropped the older size and shot_type fields — output geometry is expressed by resolution + ratio, and shot types are described in the prompt.
Polling and result
/api/v1/tasks/{task_id}curl "https://api.modelsite.ai/api/v1/tasks/$TASK_ID" \
-H "Authorization: Bearer $MODELSITE_API_KEY"Response fields
| Field | Meaning |
|---|---|
output.task_id | Job ID (same value returned at creation) |
output.task_status | PENDING queued / RUNNING processing / SUCCEEDED done / FAILED failed |
output.video_url | The generated video URL — only on SUCCEEDED; download promptly |
output.code / output.message | Present only on failure, with the reason |
usage | Usage stats (duration, resolution tier, …); counted only on success |
request_id | Unique request ID — include it when reporting issues |
Status flow: PENDING → RUNNING → SUCCEEDED / FAILED.
Billing
Billed by actual generated seconds; the resolution tier affects the rate; failed jobs are not billed. Rates on the Models page.
Error handling
Creation-time errors return {"code": "...", "message": "..."}; mid-job failures surface through the poll's output.code / output.message. General error codes: Errors.