跳转到主要内容
POST
https://llm.ai-nebula.com
/
v1
/
video
/
generations
视频生成
curl --request POST \
  --url https://llm.ai-nebula.com/v1/video/generations \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "<string>",
  "prompt": "<string>",
  "image": "<string>",
  "duration": 123,
  "resolution": "<string>",
  "aspect_ratio": "<string>"
}
'

简介

视频生成接口支持文生视频、图生视频等多种功能。通过统一的API接口,您可以调用Sora 2、Veo、阿里万相等多个主流视频生成模型。 重要提示:视频生成是异步任务,需要先提交任务获取任务ID,然后轮询查询任务状态直到成功。

认证

Authorization
string
required
Bearer Token,如 Bearer sk-xxxxxxxxxx

请求参数

model
string
required
模型标识,支持的模型包括:
  • Sora 2 系列:sora-2
  • Veo 系列:veo-3.1-generate-previewveo-3.1-fast-generate-previewveo-3.0-generate-previewveo-3.0-fast-generate-001
  • 阿里万相系列:wan2.5-i2v-preview
prompt
string
required
视频生成提示词,描述画面动作和场景
image
string
图生视频时的参考图片(支持 Base64 或 URL 格式)
duration
integer
default:"5"
视频时长(秒),不同模型支持不同时长
resolution
string
default:"720p"
视频分辨率:480p720p1080p4k
aspect_ratio
string
default:"16:9"
宽高比:16:99:161:14:3

完整示例

1. 提交视频生成任务

curl -X POST "https://llm.ai-nebula.com/v1/video/generations" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "sora-2",
    "prompt": "一只可爱的小猫在花园里玩耍,阳光明媚,画面温馨",
    "seconds": "4",
    "size": "720x1280"
  }'
响应示例
{
  "task_id": "video_69095b4ce0048190893a01510c0c98b0",
  "status": "submitted",
  "format": "mp4"
}

2. 轮询查询任务状态

curl -X GET "https://llm.ai-nebula.com/v1/video/generations/video_69095b4ce0048190893a01510c0c98b0" \
  -H "Authorization: Bearer sk-xxxxxxxxxx"
任务状态说明
状态说明建议操作
queued任务已排队,等待处理继续轮询
in_progress任务正在处理中继续轮询
succeeded任务成功完成下载视频
failed任务失败查看失败原因
响应示例(已完成)
{
  "task_id": "video_69095b4ce0048190893a01510c0c98b0",
  "status": "succeeded",
  "format": "mp4",
  "url": "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/.../video.mp4?Expires=..."
}

3. 下载视频(Sora 2 特有)

curl -X GET "https://dashscope-result-sh.oss-cn-shanghai.aliyuncs.com/.../video.mp4?Expires=..." \
  -o "generated_video.mp4"

支持的模型

Sora 2 系列

模型名称: sora-2 核心能力:
  • ✅ 文生视频(纯文本描述生成视频)
  • ✅ 图生视频(单图片+文本生成视频)
  • ✅ Remix 模式(基于已有视频重新生成)
支持参数:
  • seconds: 视频时长(4、8、12秒)
  • size: 视频分辨率(720x1280、1280x720)
  • input_reference: 参考图片(URL 或 Base64)
  • remix_from_video_id: 基于已有视频ID重新生成

Veo 系列

模型名称: veo-3.1-generate-previewveo-3.1-fast-generate-previewveo-3.0-generate-previewveo-3.0-fast-generate-001 核心能力:
  • ✅ 文生视频
  • ✅ 图生视频(支持首帧和尾帧约束)
  • ✅ 音频生成
支持参数:
  • durationSeconds: 视频时长(4、6、8秒)
  • aspectRatio: 宽高比(16:9、9:16)
  • resolution: 分辨率(720p、1080p)
  • generateAudio: 是否生成音频
  • image: 首帧参考图
  • lastFrame: 尾帧参考图
  • seed: 随机种子

阿里万相系列

模型名称: wan2.5-i2v-preview 核心能力:
  • ✅ 图生视频(Image-to-Video)
  • ✅ 支持自定义音频上传
  • ✅ 智能提示词扩写
  • ✅ 自动生成画面同步音频
支持参数:
  • duration: 视频时长(5、10秒)
  • resolution: 视频分辨率(480p、720p、1080p)
  • smart_rewrite: 是否启用智能提示词扩写
  • generate_audio: 是否生成与画面同步的音频
  • audio_url: 自定义音频文件URL
  • seed: 随机种子

最佳实践

轮询策略

import requests
import time

def poll_task_status(task_id, api_key, max_wait_time=300):
    """轮询任务状态直到完成"""
    url = f"https://llm.ai-nebula.com/v1/video/generations/{task_id}"
    headers = {"Authorization": f"Bearer {api_key}"}
    
    start_time = time.time()
    while True:
        response = requests.get(url, headers=headers)
        data = response.json()
        status = data.get("status")
        
        print(f"当前状态: {status}")
        
        if status == "succeeded":
            video_url = data.get("url")
            print(f"✅ 任务完成!视频URL: {video_url}")
            return video_url
        elif status == "failed":
            error_msg = data.get("metadata", {}).get("output", {}).get("message", "未知错误")
            print(f"❌ 任务失败: {error_msg}")
            return None
        
        # 检查超时
        if time.time() - start_time > max_wait_time:
            print("⏰ 等待超时")
            return None
        
        # 等待5秒后再次查询
        time.sleep(5)

常见问题

通常需要 1-5 分钟,具体取决于视频时长、分辨率和服务器负载。
视频URL的有效期约为24小时。建议在收到响应后立即下载保存。
支持 PNG、JPEG、JPG、WEBP 格式,最大文件大小 10MB。

相关资源