curl https://sub.vcnovb.cn/v1/videos \
-H "Authorization: Bearer $VC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"prompt": "小猫在月光下的屋顶奔跑,平滑跟拍,细腻光影",
"seconds": "5",
"size": "720P",
"aspect_ratio": "16:9"
}'
curl https://sub.vcnovb.cn/v1/videos \
-H "Authorization: Bearer $VC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"prompt": "人物缓缓转头,镜头平滑推进",
"image": "https://example.com/first.png",
"seconds": "5",
"size": "720P",
"aspect_ratio": "9:16"
}'
curl https://sub.vcnovb.cn/v1/videos \
-H "Authorization: Bearer $VC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"prompt": "从白天平滑过渡到夜晚,保持镜头构图",
"mode": "first-last-frame",
"metadata": {
"first_frame_url": "https://example.com/day.png",
"last_frame_url": "https://example.com/night.png"
},
"seconds": "5",
"size": "1080P",
"aspect_ratio": "16:9"
}'
import os
import requests
response = requests.post(
"https://sub.vcnovb.cn/v1/videos",
headers={"Authorization": f"Bearer {os.environ['VC_API_KEY']}"},
json={
"model": "wan3.0-video",
"prompt": "小猫在月光下的屋顶奔跑,平滑跟拍,细腻光影",
"seconds": "5", "size": "720P", "aspect_ratio": "16:9",
},
timeout=120,
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://sub.vcnovb.cn/v1/videos", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.VC_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "wan3.0-video",
prompt: "小猫在月光下的屋顶奔跑,平滑跟拍,细腻光影",
seconds: "5", size: "720P", aspect_ratio: "16:9",
}),
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{"id":"task_example_wan","object":"video","model":"wan3.0-video","status":"queued"}
{"error":{"type":"invalid_request_error","message":"Wan3 seconds must be an integer between 2 and 30"}}
{"error":{"type":"invalid_request_error","message":"Wan3 size must be 480P, 720P or 1080P"}}
WAN 3.0
Wan 3.0 视频生成
Wan 3.0 与 Prime 的文生视频、参考图、首尾帧参数和多语言示例。
POST
https://sub.vcnovb.cn
/
v1
/
videos
curl https://sub.vcnovb.cn/v1/videos \
-H "Authorization: Bearer $VC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"prompt": "小猫在月光下的屋顶奔跑,平滑跟拍,细腻光影",
"seconds": "5",
"size": "720P",
"aspect_ratio": "16:9"
}'
curl https://sub.vcnovb.cn/v1/videos \
-H "Authorization: Bearer $VC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"prompt": "人物缓缓转头,镜头平滑推进",
"image": "https://example.com/first.png",
"seconds": "5",
"size": "720P",
"aspect_ratio": "9:16"
}'
curl https://sub.vcnovb.cn/v1/videos \
-H "Authorization: Bearer $VC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"prompt": "从白天平滑过渡到夜晚,保持镜头构图",
"mode": "first-last-frame",
"metadata": {
"first_frame_url": "https://example.com/day.png",
"last_frame_url": "https://example.com/night.png"
},
"seconds": "5",
"size": "1080P",
"aspect_ratio": "16:9"
}'
import os
import requests
response = requests.post(
"https://sub.vcnovb.cn/v1/videos",
headers={"Authorization": f"Bearer {os.environ['VC_API_KEY']}"},
json={
"model": "wan3.0-video",
"prompt": "小猫在月光下的屋顶奔跑,平滑跟拍,细腻光影",
"seconds": "5", "size": "720P", "aspect_ratio": "16:9",
},
timeout=120,
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://sub.vcnovb.cn/v1/videos", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.VC_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "wan3.0-video",
prompt: "小猫在月光下的屋顶奔跑,平滑跟拍,细腻光影",
seconds: "5", size: "720P", aspect_ratio: "16:9",
}),
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{"id":"task_example_wan","object":"video","model":"wan3.0-video","status":"queued"}
{"error":{"type":"invalid_request_error","message":"Wan3 seconds must be an integer between 2 and 30"}}
{"error":{"type":"invalid_request_error","message":"Wan3 size must be 480P, 720P or 1080P"}}
支持模型
建议统一使用
wan3.0-video 和 wan3.0-video-prime。两者使用相同请求结构,但模型权限和价格独立。
curl https://sub.vcnovb.cn/v1/videos \
-H "Authorization: Bearer $VC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"prompt": "小猫在月光下的屋顶奔跑,平滑跟拍,细腻光影",
"seconds": "5",
"size": "720P",
"aspect_ratio": "16:9"
}'
curl https://sub.vcnovb.cn/v1/videos \
-H "Authorization: Bearer $VC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"prompt": "人物缓缓转头,镜头平滑推进",
"image": "https://example.com/first.png",
"seconds": "5",
"size": "720P",
"aspect_ratio": "9:16"
}'
curl https://sub.vcnovb.cn/v1/videos \
-H "Authorization: Bearer $VC_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0-video",
"prompt": "从白天平滑过渡到夜晚,保持镜头构图",
"mode": "first-last-frame",
"metadata": {
"first_frame_url": "https://example.com/day.png",
"last_frame_url": "https://example.com/night.png"
},
"seconds": "5",
"size": "1080P",
"aspect_ratio": "16:9"
}'
import os
import requests
response = requests.post(
"https://sub.vcnovb.cn/v1/videos",
headers={"Authorization": f"Bearer {os.environ['VC_API_KEY']}"},
json={
"model": "wan3.0-video",
"prompt": "小猫在月光下的屋顶奔跑,平滑跟拍,细腻光影",
"seconds": "5", "size": "720P", "aspect_ratio": "16:9",
},
timeout=120,
)
response.raise_for_status()
print(response.json())
const response = await fetch("https://sub.vcnovb.cn/v1/videos", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.VC_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "wan3.0-video",
prompt: "小猫在月光下的屋顶奔跑,平滑跟拍,细腻光影",
seconds: "5", size: "720P", aspect_ratio: "16:9",
}),
});
if (!response.ok) throw new Error(await response.text());
console.log(await response.json());
{"id":"task_example_wan","object":"video","model":"wan3.0-video","status":"queued"}
{"error":{"type":"invalid_request_error","message":"Wan3 seconds must be an integer between 2 and 30"}}
{"error":{"type":"invalid_request_error","message":"Wan3 size must be 480P, 720P or 1080P"}}
请求参数
扩展素材参数,例如
first_frame_url、last_frame_url、reference_image_urls、reference_video_urls、reference_audio_urls。参数优先级
| 参数 | 从高到低 |
|---|---|
| 时长 | seconds → duration → metadata.parameters.duration → parameters.duration → 5 |
| 分辨率 | size → resolution → metadata.parameters.resolution → parameters.resolution → 1080P |
seconds 和 size。同时提交别名字段时,按上表优先级读取。
普通版与 Prime 的价格分别列在模型广场。