视频生成接口¶
兆投算力提供多种主流视频生成模型的统一接口,支持文生视频、图生视频等任务。
🎬 支持的模型¶
| 模型 | 描述 | 特点 |
|---|---|---|
| Sora2 | OpenAI Sora 第二代视频生成模型 | 高质量、长时长、电影级效果 |
| VEO3 | Google VEO 第三代视频生成模型 | 高保真度、动作连贯性强 |
| MiniMax-Hailuo-02 | MiniMax 海螺视频生成模型 | 中文优化、快速生成 |
| Wan2.6 | 阿里云万相 2.6 视频生成模型 | 支持多种分辨率、有声视频 |
| doubao-seedance-1-5-pro | 豆包 Seedance 1.5 Pro | 舞蹈动作生成、人体姿态精准 |
🚀 快速开始¶
基础文生视频¶
curl https://zhaotouai.com/v1/videos \
-H "Authorization: Bearer $ZHAOTOU_API_KEY" \
-F "prompt=一只可爱的小猫在花园里玩耍,阳光明媚" \
-F "model=sora-2" \
-F "seconds=5" \
-F "size=1920x1080"
图生视频¶
curl https://zhaotouai.com/v1/videos \
-H "Authorization: Bearer $ZHAOTOU_API_KEY" \
-F "prompt=让这张图片动起来,添加自然的运动效果" \
-F "model=sora-2" \
-F "seconds=3" \
-F "size=1920x1080" \
-F "input_reference=@/path/to/image.jpg"
📋 API 接口¶
生成视频¶
端点: POST /v1/videos
请求格式: multipart/form-data
| 参数 | 类型 | 必填 | 描述 |
|---|---|---|---|
| prompt | string | 是 | 描述要生成视频的文本提示词 |
| model | string | 否 | 视频生成模型,默认为 sora-2 |
| seconds | string | 否 | 视频时长(秒),默认为 4 秒 |
| size | string | 否 | 输出分辨率,格式为宽度x高度,默认为 720x1280 |
| input_reference | file | 否 | 输入图片文件(图生视频时使用) |
| metadata | string | 否 | 扩展参数(JSON字符串格式) |
查询视频状态¶
端点: GET /v1/videos/{video_id}
路径参数: - video_id: 视频任务ID
下载视频¶
端点: GET /v1/videos/{video_id}/content
查询参数: - variant: 可下载资源类型,默认为MP4视频
🎯 模型特性¶
Sora2¶
- 优势: 电影级画质、长时长支持、物理规律准确
- 适用场景: 专业视频制作、创意内容生成
- 推荐设置: 5-10秒、1920x1080或更高分辨率
VEO3¶
- 优势: 动作连贯性强、细节丰富、风格多样
- 适用场景: 产品演示、动画制作
- 推荐设置: 4-8秒、1280x720或1920x1080
MiniMax-Hailuo-02¶
- 优势: 中文理解优化、生成速度快、成本效益高
- 适用场景: 短视频内容、社交媒体素材
- 推荐设置: 3-6秒、720p或1080p
Wan2.6¶
- 优势: 支持有声视频、多种分辨率、首尾帧控制
- 适用场景: 教育视频、产品展示
- 推荐设置: 使用 metadata 参数控制音频和高级功能
doubao-seedance-1-5-pro¶
- 优势: 人体姿态精准、舞蹈动作专业、动作流畅
- 适用场景: 舞蹈教学、动作演示、娱乐内容
- 推荐设置: 4-10秒、1280x720或1920x1080
📝 高级用法¶
使用 metadata 参数(Wan2.6 特有)¶
{
"img_url": "https://example.com/image.jpg",
"watermark": false,
"prompt_extend": true,
"audio": true,
"seed": 12345
}
首尾帧生视频(Wan2.6)¶
curl https://zhaotouai.com/v1/videos \
-H "Authorization: Bearer $ZHAOTOU_API_KEY" \
-F "prompt=从开始到结束的平滑过渡动画" \
-F "model=wan2.6-kf2v-preview" \
-F "seconds=4" \
-F 'metadata={"first_frame_url":"https://example.com/start.jpg","last_frame_url":"https://example.com/end.jpg"}'
💡 最佳实践¶
- 提示词优化
- 使用具体、详细的描述
- 包含动作、场景、风格等要素
-
避免模糊或抽象的表达
-
参数选择
- 根据内容类型选择合适的模型
- 合理设置时长,避免过长导致生成失败
-
选择适当的分辨率平衡质量和速度
-
错误处理
- 实现轮询机制查询任务状态
- 设置合理的超时时间
-
处理生成失败的重试逻辑
-
资源管理
- 及时下载生成的视频文件
- 注意视频文件的存储空间管理
- 定期清理过期的任务数据
🔧 JavaScript 示例¶
async function generateVideo(prompt, model = 'sora-2') {
const formData = new FormData();
formData.append('prompt', prompt);
formData.append('model', model);
formData.append('seconds', '5');
formData.append('size', '1920x1080');
const response = await fetch('https://zhaotouai.com/v1/videos', {
method: 'POST',
headers: {
'Authorization': 'Bearer ' + apiKey
},
body: formData
});
const result = await response.json();
return result.id;
}
async function checkVideoStatus(videoId) {
const response = await fetch(`https://zhaotouai.com/v1/videos/${videoId}`, {
headers: {
'Authorization': 'Bearer ' + apiKey
}
});
return await response.json();
}
async function downloadVideo(videoId) {
const response = await fetch(`https://zhaotouai.com/v1/videos/${videoId}/content`, {
headers: {
'Authorization': 'Bearer ' + apiKey
}
});
return response.blob();
}
❗ 常见错误¶
- 400 Bad Request: 检查参数格式和必填字段
- 401 Unauthorized: 验证 API Key 是否正确
- 429 Too Many Requests: 降低请求频率或联系管理员
- 500 Server Error: 服务器内部错误,建议重试
- 生成失败: 检查提示词是否符合内容政策,调整参数后重试