Documentary realism, dry daylight at a small archaeological dig, one adult female archaeologist in a plain sand-colored field shirt and blue neck scarf. Shot 1 [0-4s]: a wide view of the excavation grid; she kneels beside a shallow tray containing one pottery fragment. Shot 2 [4-10s]: cut to a medium close-up of the SAME woman, gently brushing dust from the fragment, then looking toward a colleague off camera and saying clearly: "This edge belonged to a painted bowl." Preserve her face, clothes and location across the cut. Soft brush sounds, light outdoor breeze, natural synchronized speech. No music, titles, logos or advertising.
Wan 2.6 Text to Video API
alibaba/wan-2.6/text-to-videoWan 2.6 Text to Video 将文本提示词转化为 5–15 秒 1080p 高保真视频,支持多镜头叙事合成、丰富运镜控制与生动的动态光影。它在长镜头中严格遵循提示词中的情节发展与物理规律,同时保持多机位角度切换时的时空连续性与主体一致性。
示例
REST API 规格
快速开始
提交端点请求并查询任务状态。请将示例素材 URL 替换为可访问的真实文件。
第一步:配置 API 鉴权
在控制台申请 API Key,并在每个 HTTP 请求头中携带 Authorization: Bearer <API_KEY> 进行身份验证。
- 任务提交端点
- POST
https://api.vidgo.ai/api/generate/submit - 鉴权请求头
- Authorization: Bearer VIDGO_API_KEY
第 2 步:提交生成任务
POST /api/generate/submit。model 和可选 callback_url 位于根级,生成参数位于 input 内。
REQUEST_BODY=$(cat <<'JSON'
{
"model": "alibaba/wan-2.6/text-to-video",
"input": {
"prompt": "Documentary realism, dry daylight at a small archaeological dig, one adult female archaeologist in a plain sand-colored field shirt and blue neck scarf. Shot 1 [0-4s]: a wide view of the excavation grid; she kneels beside a shallow tray containing one pottery fragment. Shot 2 [4-10s]: cut to a medium close-up of the SAME woman, gently brushing dust from the fragment, then looking toward a colleague off camera and saying clearly: \"This edge belonged to a painted bowl.\" Preserve her face, clothes and location across the cut. Soft brush sounds, light outdoor breeze, natural synchronized speech. No music, titles, logos or advertising.",
"duration": 10,
"resolution": "720p",
"multi_shots": true
}
}
JSON
)
RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
CODE=$(printf '%s' "$RESPONSE" | jq -r '.code // empty')
if [ "$CODE" != "0" ] && [ "$CODE" != "200" ]; then
printf 'API error: %s
' "$RESPONSE" >&2
exit 1
fi
printf '%s
' "$RESPONSE"第三步:轮询任务执行结果
使用 task_id 查询进度;not_started 或 running 时继续轮询,finished 或 failed 时停止。成功后读取 data.files[].file_url,失败时读取 data.error_message。
状态查询端点
GET https://api.vidgo.ai/api/generate/status/{task_id}使用 task_id 查询进度;not_started 或 running 时继续轮询,finished 或 failed 时停止。成功后读取 data.files[].file_url,失败时读取 data.error_message。
not_startedrunningfinishedfailed{
"code": 200,
"data": {
"task_id": "W7R6RD872WMDLW7D",
"status": "running",
"created_time": "2026-09-21T17:09:32"
}
}{
"code": 200,
"data": {
"task_id": "task-unified-...",
"status": "finished",
"files": [
{
"file_url": "https://storage.vidgo.ai/generated/video.mp4",
"file_type": "video"
}
],
"created_time": "2026-08-22T10:00:00Z",
"progress": 100,
"error_message": null
}
}端到端完整脚本示例
展开查看在生产环境中具备轮询重试、异常保护和超时处理的完整自动化脚本。
set -euo pipefail
: "${VIDGO_API_KEY:?Set VIDGO_API_KEY in your environment}"
REQUEST_BODY=$(cat <<'JSON'
{
"model": "alibaba/wan-2.6/text-to-video",
"input": {
"prompt": "Documentary realism, dry daylight at a small archaeological dig, one adult female archaeologist in a plain sand-colored field shirt and blue neck scarf. Shot 1 [0-4s]: a wide view of the excavation grid; she kneels beside a shallow tray containing one pottery fragment. Shot 2 [4-10s]: cut to a medium close-up of the SAME woman, gently brushing dust from the fragment, then looking toward a colleague off camera and saying clearly: \"This edge belonged to a painted bowl.\" Preserve her face, clothes and location across the cut. Soft brush sounds, light outdoor breeze, natural synchronized speech. No music, titles, logos or advertising.",
"duration": 10,
"resolution": "720p",
"multi_shots": true
}
}
JSON
)
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
TASK_ID=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.data.task_id // .task_id // empty')
BUSINESS_CODE=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Submit failed:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
if [ -z "$TASK_ID" ]; then
printf 'Submit response did not include task_id:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
START_TIME=$(date +%s)
POLL_DELAY=2
while true; do
if [ $(( $(date +%s) - START_TIME )) -ge 600 ]; then
printf 'Timed out after 600 seconds
' >&2
exit 1
fi
STATUS_RESPONSE=$(curl --silent --show-error --fail-with-body \
--url "https://api.vidgo.ai/api/generate/status/$TASK_ID" \
--header "Authorization: Bearer $VIDGO_API_KEY")
STATUS=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.data.status // .status // empty')
BUSINESS_CODE=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Status request failed:
%s
' "$STATUS_RESPONSE" >&2
exit 1
fi
case "$STATUS" in
finished)
printf '%s' "$STATUS_RESPONSE" | jq -r '(.data.files // .files // [])[]?.file_url'
break
;;
failed)
printf '%s' "$STATUS_RESPONSE" | jq -r '.data.error_message // .error_message // "Generation failed"' >&2
exit 1
;;
not_started|running)
sleep "$POLL_DELAY"
if [ "$POLL_DELAY" -lt 10 ]; then POLL_DELAY=$((POLL_DELAY + 1)); fi
;;
*)
printf 'Unexpected task status: %s
' "$STATUS" >&2
exit 1
;;
esac
done请求参数(input 对象)
向 /api/generate/submit 提交 POST 请求时,input 内部所支持的生成参数配置:
| 字段 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
| prompt | string | 是 | — | 字符串。校验前去除首尾空白,支持 1–5,000 个 Unicode 字符。 |
| duration | integer | 否 | 5 | 整数。输出时长支持 5、10、15 秒。 |
| resolution | string | 否 | 720p | 输出分辨率:720p 或 1080p。 |
| multi_shots | boolean | 否 | — | 可选布尔值。省略时不指定上游设置;体验区初始为 false。不额外计费。 |
响应字段(查询结果)
通过 GET /api/generate/status/{task_id} 轮询获取的任务详情:
| 字段 | 类型 | 描述 |
|---|---|---|
| code | integer | 业务响应状态码,200 表示成功。 |
| data.task_id | string | 异步任务全局唯一流水号。 |
| data.status | string | 任务执行阶段:not_started(排队中)、running(生成中)、finished(已完成)、failed(失败)。 |
| data.files | array | 生成成功时包含的成片文件列表,每项含 file_url 与 file_type。 |
| data.error_message | string | null | 任务执行异常时的具体错误描述。 |
任务生命周期
客户端应根据 status 字段判断任务进度,达到 finished 或 failed 终态时立即终止轮询:
not_started任务已接收,等待执行。
running正在生成。
finished生成完成,从 data.files 获取视频 URL。
failed生成失败,请查看 data.error_message,已扣积分按现有流程返还。
轮询与异常处理
- 轮询频次推荐建议初始轮询间隔设为 2–3 秒,随着任务持续可递增至 5 秒一次,避免过密请求。
- 网络波动与重试若查询网络出现 5xx 或连接超时,不代表任务失败,可稍作休眠后继续重试查询。
- 异步 Webhook 回调支持在提交请求体根层级传递 callback_url,在任务终态时系统将通过 POST 自动推送完整任务结果。
接口规格
| 规格项 | 取值 | 说明 |
|---|---|---|
| 模型 ID | alibaba/wan-2.6/text-to-video | 在请求根级 model 字段中发送此值。 |
| 时长 | 5, 10, 15s | 默认 5 秒。 |
| 分辨率 | 720p / 1080p | 默认 720p。 |
Wan 2.6 Text to Video API 常见问题
Wan 2.6 Text to Video API 是什么?
Wan 2.6 Text to Video 是阿里巴巴研发的文本生成视频模型。它根据纯文本提示词直接生成 5–15 秒、最高 1080p 分辨率的高清动态视频,支持专业镜头运镜与多镜头分镜叙事。基于先进的 Diffusion Transformer 时空生成架构,它在严格遵循提示词物理规律与动作节奏的同时,保持多机位转换时的场景与主体连贯性。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。
Wan 2.6 Text to Video 单次可以生成 15 秒吗?
可以。模型支持 5 秒、10 秒与 15 秒三种输出时长档位(体验区默认 5 秒)。在长达 15 秒的连续生成中,模型能够保持场景光影与主体形态稳定,连贯呈现多阶段动作发展。
Wan 2.6 Text to Video 的多镜头功能会额外收费吗?
不会额外收费。multi_shots 为可选布尔值参数,开启后模型会自动根据提示词中的场景推进生成多视角分镜切换,费用依然仅按输出分辨率和生成秒数标准计算。
Wan 2.6 Text to Video 生成 1080p 高清视频需要哪些设置?
在 resolution 参数中选择 1080p 即可。1080p 档位能呈现细腻的人物面部微表情、毛发纹理与环境漫反射光影,非常适合专业广告样片和商业成片交付。
Wan 2.6 Text to Video 支持通过提示词控制运镜吗?
支持。在 prompt 中加入具体的镜头语言描述,例如“缓慢推近(push-in)”、“环绕运镜(orbit)”或“低角度跟拍(tracking shot)”,模型便会根据指令执行平稳、符合电影工业手法的摄影机运动。
Wan 2.6 Text to Video 支持中文提示词吗?
支持。模型支持中英文等多种自然语言输入,去除首尾空白后最多支持 5,000 个 Unicode 字符,能够充分容纳包含角色、环境、运镜与色彩风格的详尽描述。
有静态参考图片时该选择 Wan 2.6 Text to Video 吗?
若已有设计图或人物素材,推荐使用 Wan 2.6 Image to Video 端点。Wan 2.6 Text to Video 专为纯文本提示词构筑全新画面而设计,输入图片时使用图生视频端点能更好地锚定首帧画面的角色外貌与构图细节。