视频生成
AcceleAI 提供统一的视频生成 API,支持文生视频和图生视频,聚合了 OpenAI Sora、Google Veo、通义万相、即梦等主流模型。所有视频生成任务均采用异步工作流。
异步工作流
视频生成是一个三步异步过程:
- 提交任务 — 发送生成请求,获取
video_id - 轮询状态 — 每 15 秒查询一次任务进度
- 下载视频 — 任务完成后下载 MP4 文件
API 端点
| 操作 | 方法 | 路径 | 说明 |
|---|---|---|---|
| 创建任务 | POST | /v1/videos | 提交视频生成任务 |
| 查询状态 | GET | /v1/videos/{video_id} | 查看任务进度 |
| 下载视频 | GET | /v1/videos/{video_id}/content | 获取 MP4 文件 |
| 删除任务 | DELETE | /v1/videos/{video_id} | 删除任务记录 |
基础地址: https://api.acceleai.cn
请求头:
Authorization: Bearer <ACCELE_AI_API_KEY>
Content-Type: application/json通用请求参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 模型标识符 |
prompt | string | 是 | 视频描述文本 |
seconds | string | 否 | 视频时长(注意为字符串类型,如 "5") |
size | string | 否 | 分辨率,格式因模型而异 |
input_reference | string/object | 否 | 参考图片(用于图生视频),支持 URL、Base64、data URI |
支持的模型
文生视频
| 提供商 | 模型 | 时长选项 | 分辨率 |
|---|---|---|---|
| OpenAI | sora-2、sora-2-pro | "4" "8" "12" | 720x1280 1280x720 1024x1792 1792x1024 |
veo-3.1-generate-preview、veo-3.1-fast-generate-preview | "4" "6" "8" | 720p 1080p 4k | |
veo-3.0-generate-preview、veo-2.0-generate-001 | "4" "6" "8" | 720p 1080p | |
| 阿里云 | wan2.6-t2v | "2" - "15" | 1280x720 1920x1080 |
| 阿里云 | wan2.5-t2v-preview | "5" "10" | 480P - 1080P |
| 阿里云 | wan2.2-t2v-plus | "5" | 480P / 1080P |
| 即梦 | jimeng-3.0-pro、jimeng-3.0-1080p | "5" "10" | 宽高比:16:9 9:16 4:3 3:4 1:1 21:9 |
图生视频
| 提供商 | 模型 | 说明 |
|---|---|---|
| 阿里云 | wan2.6-i2v | 通义万相 2.6 图生视频 |
| 阿里云 | wan2.5-i2v-preview | 通义万相 2.5 图生视频 |
| 阿里云 | wan2.2-i2v-plus | 通义万相 2.2 图生视频 |
任务状态
| 状态值 | 说明 |
|---|---|
queued | 排队中(仅 Sora) |
in_progress | 正在生成 |
completed | 生成完成,可下载 |
failed | 生成失败 |
使用示例
Python 完整流程
import requests
import time
BASE_URL = "https://api.acceleai.cn"
HEADERS = {
"Authorization": "Bearer <ACCELE_AI_API_KEY>",
"Content-Type": "application/json"
}
# 步骤 1:提交任务
create_resp = requests.post(
f"{BASE_URL}/v1/videos",
headers=HEADERS,
json={
"model": "veo-3.1-generate-preview",
"prompt": "一只金毛在海边奔跑,阳光洒在海面上,慢镜头",
"seconds": "6",
"size": "1080p"
}
)
video_id = create_resp.json()["id"]
print(f"任务已提交,video_id: {video_id}")
# 步骤 2:轮询状态(建议每 15 秒查询一次)
while True:
status_resp = requests.get(
f"{BASE_URL}/v1/videos/{video_id}",
headers=HEADERS
)
status_data = status_resp.json()
current_status = status_data["status"]
print(f"当前状态: {current_status}")
if current_status == "completed":
break
elif current_status == "failed":
print("生成失败:", status_data.get("error"))
exit(1)
time.sleep(15)
# 步骤 3:下载视频
video_resp = requests.get(
f"{BASE_URL}/v1/videos/{video_id}/content",
headers=HEADERS
)
with open("output.mp4", "wb") as f:
f.write(video_resp.content)
print("视频已保存为 output.mp4")cURL 示例
# 提交任务
curl -X POST https://api.acceleai.cn/v1/videos \
-H "Authorization: Bearer <ACCELE_AI_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "城市夜景延时摄影,霓虹灯闪烁,车流光轨",
"seconds": "8",
"size": "1280x720"
}'
# 查询状态(将 VIDEO_ID 替换为实际值)
curl https://api.acceleai.cn/v1/videos/VIDEO_ID \
-H "Authorization: Bearer <ACCELE_AI_API_KEY>"
# 下载视频
curl -o output.mp4 https://api.acceleai.cn/v1/videos/VIDEO_ID/content \
-H "Authorization: Bearer <ACCELE_AI_API_KEY>"图生视频示例
create_resp = requests.post(
f"{BASE_URL}/v1/videos",
headers=HEADERS,
json={
"model": "wan2.6-i2v",
"prompt": "图片中的人物缓缓转头微笑,背景虚化",
"seconds": "5",
"size": "1280x720",
"input_reference": "https://example.com/reference.jpg"
}
)常见问题
生成需要多久? 通常 1-5 分钟,具体取决于模型和参数设置。
下载链接有效期多长? 一般为 24 小时,建议生成后及时下载保存。
input_reference 支持哪些格式?
支持公开可访问的 URL、Base64 编码字符串以及 data URI。
提示词有什么优化建议? 建议描述具体的场景、镜头语言和风格。阿里云(通义万相)系列模型使用中文提示词效果更佳。