阿里万相 3.0(Wan 3.0)全能视频模型:一个模型名同时覆盖文生视频、首帧/首尾帧图生视频,以及「全能参考」——最多 10 张参考图 + 5 段参考视频 + 5 段参考音频,或者直接喂一份 PPT / Word / Excel / PDF、一个公开网页。原生单镜最长 30 秒、30fps,自带同步音轨。计费按秒:**只传参考图 / 参考音频 / 文档 / 网页时,按输出秒数计费,这些素材不额外收费;传了参考视频(视频编辑、视频延长、换脸等)时,按【输入视频时长 + 输出时长】计费** —— 这与上游一致,官方对带视频输入的任务也是限制「输入总时长 + 输出时长 ≤ 30 秒」。走 apimodels.app 统一视频端点,与 VEO、Kling、Seedance 调用方式完全一致,换模型只改 model 字段,一把 key 全平台通用 —— 也不需要阿里云账号和大陆实名认证。
按秒计费。不带参考视频时按输出秒数计;带参考视频时(视频编辑、视频延长、换脸)按【输入视频时长 + 输出时长】计 —— 与上游一致,官方对这类任务也限制「输入总时长 + 输出时长 ≤ 30 秒」。参考图 / 参考音频 / 文档 / 网页不额外收费。
| 档位 / 分辨率 | 单价 | 5 秒 | 10 秒 | 30 秒 |
|---|---|---|---|---|
| standard · 480P | $0.05/s | $0.25 | $0.50 | $1.50 |
| standard · 720P | $0.1/s | $0.50 | $1.00 | $3.00 |
| standard · 1080P | $0.2/s | $1.00 | $2.00 | $6.00 |
| prime · 480P | $0.068/s | $0.34 | $0.68 | $2.04 |
| prime · 720P | $0.14/s | $0.70 | $1.40 | $4.20 |
| prime · 1080P | $0.28/s | $1.40 | $2.80 | $8.40 |
POST /api/v1/video/generations —— 异步:创建后轮询同一个端点取结果。
# Step 1: Create task (text-to-video)
curl -X POST https://api.apimodels.app/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan-3.0-video",
"mode": "prime",
"prompt": "A paper airplane gliding over a calm lake at sunrise, camera drifting alongside",
"resolution": "720P",
"ratio": "16:9",
"duration": 5
}'
# Omni-reference: address materials positionally in the prompt
curl -X POST https://api.apimodels.app/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan-3.0-video",
"prompt": "The person in video 1 picks up the object from figure 2 and places it on the table",
"reference_image_urls": ["https://example.com/object.png"],
"reference_video_urls": ["https://example.com/person.mp4"],
"resolution": "720P",
"duration": 8
}'
# Document to video: feed a deck straight in
curl -X POST https://api.apimodels.app/v1/video/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan-3.0-video",
"prompt": "A polished product launch film based on this deck",
"file_url": "https://example.com/launch-deck.pptx",
"resolution": "1080P",
"duration": 10
}'
# Step 2: Poll status
curl "https://api.apimodels.app/v1/video/generations?task_id=TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"| 用法 | 传什么 |
|---|---|
| 文生视频 | 只传 prompt |
| 首帧 / 首尾帧 | first_frame_url [+ last_frame_url] |
| 全能参考 | reference_image_urls / reference_video_urls / reference_audio_urls |
| 文档 / 网页生视频 | file_url 或 link_url |
⚠️ 首帧/尾帧 与 参考类素材(reference_* / file_url / link_url)【互斥】,不能在同一个请求里混用 —— 混了上游会判失败,我们在本地就先拦下来并告诉你是哪两边冲突,不会白跑一趟。file_url 与 link_url 也是二选一。
在全能参考模式下,提示词里可以用「图1」「图2」「视频1」「音频1」按顺序指代素材(图、视频、音频各自独立编号),例如:「视频1 里的人抱着 图3,坐在 图4 的椅子上弹吉他」。这是让多个角色、道具、场景在一条镜头里保持一致的关键。
| 字段 | 必填 | 类型 | 说明 |
|---|---|---|---|
| model | 是 | string | "wan-3.0-video" |
| mode | 否 | string | "standard"(默认)或 "prime"。prime = 高速档,同一条任务实测 58 秒出片(标准档 356 秒),单价高 50%。两档能力一致(官方口径),差别只在速度与价格 |
| prompt | 否 | string | 视频描述。prompt 与素材至少传一个;最长 20000 字符 |
| first_frame_url | 否 | string | 首帧图,严格作为第一帧。与参考类素材互斥 |
| last_frame_url | 否 | string | 尾帧图,严格作为最后一帧 |
| reference_image_urls | 否 | string[] | 参考图,最多 10 张。提示词里按顺序称「图1」「图2」 |
| reference_video_urls | 否 | string[] | 参考视频,最多 5 段,单段 1-15 秒、总时长 ≤15 秒 |
| reference_audio_urls | 否 | string[] | 参考音频,最多 5 段,总时长 ≤15 秒(wav / mp3) |
| file_url | 否 | string | 文档:docx/doc/xlsx/xls/pptx/ppt/pdf/txt/key/pages/numbers/md,≤50 页、≤100MB。与 link_url 二选一 |
| link_url | 否 | string | 公开网页 URL(无需登录即可访问的页面) |
| resolution | 否 | string | "480P" / "720P" / "1080P"。⚠️ 省略时我们默认 720P(官方默认是 1080P,双倍价) |
| ratio | 否 | string | "adaptive"(默认,按输入素材自动挑)、"16:9"、"4:3"、"1:1"、"3:4"、"9:16" |
| duration | 否 | number | 2-30 秒,默认 5;传 -1 为智能时长(模型自己挑)。有参考视频时:输入视频总时长 + 输出时长 ≤ 30 秒 |
| audio | 否 | boolean | 输出是否含音轨,默认 true。关掉不降价 |
| prompt_extend | 否 | boolean | 提示词智能改写,默认 true。短提示词效果提升明显,但会增加耗时 |
| seed | 否 | number | 随机种子,0-2147483647,用于复现结果 |
| watermark | 否 | boolean | 是否加水印标识,默认 false |
| callback_url | 否 | string | 任务完成后的回调 URL |
创建接口立即返回 data.taskId,视频在后台生成。带上这个 task_id 向同一个端点发 GET,读 data.state:pending 表示还在跑,completed 时 data.resultUrls[0] 就是 MP4 地址,failed 时 data.failMsg 是原因。不想轮询就传 callback_url,任务结束后我们主动 POST 通知你。