Veo 3.1 官方版

veo-3.1-official 支持文生视频、首帧和首尾帧生成,可选择 fast 或 quality 模式,生成 4、6 或 8 秒的 720p、1080p 或 4k 视频。音频默认关闭,可通过 generate_audio 开启。

本页介绍独立模型 veo-3.1-official。使用 veo-3 或 veo-3-extend 时,请查阅 Veo 3.1 文档,两者的参数和计费方式不同。

模型与接口

用途接口
创建视频任务POST https://api.aivideoapi.ai/v1/videos/generations
估算积分POST https://api.aivideoapi.ai/v1/estimate
查询任务GET https://api.aivideoapi.ai/v1/tasks/{taskId}

生成和查询需要在请求头中传入 Authorization: Bearer sk-your-api-key,详见鉴权。创建和估价请求均使用 Content-Type: application/json。

计费

按模式、分辨率、是否生成音频和请求时长计费。下表为账户倍率应用前的每秒积分,输入图片不额外收费。

模式分辨率无音频:积分/秒有音频:积分/秒
fast720p16.6420.80
fast1080p20.8024.96
fast4k52.0062.40
quality720p41.6083.20
quality1080p41.6083.20
quality4k83.20124.80

基础积分 = 每秒积分 × 请求时长。最终积分在基础积分上应用账户倍率,按精确十进制四舍五入至两位小数。

只传入 prompt 时,默认使用 fast、8 秒、720p、16:9、无音频,标准倍率 1 下费用为 16.64 × 8 = 133.12 积分。例如账户倍率为 0.75,同一请求为 99.84 积分。

创建任务时预扣积分,任务成功后按提交时的计费结果结算。后续价格或账户倍率变化不会重新计算该任务费用。

请求参数

请求体

字段类型必填说明
modelstring是固定为 veo-3.1-official
inputobject是下表中的生成参数;估价使用相同的 model 和 input
callback_urlstring否创建任务时可传入,用于接收完成或失败通知的公网 HTTP(S) URL

Input 参数

字段类型必填说明
promptstring是非空的视频内容描述
modestring否fast 或 quality,默认 fast
durationinteger否仅支持数字 4、6 或 8,单位为秒,默认 8
resolutionstring否720p、1080p 或 4k,默认 720p;也接受 4K
aspect_ratiostring否横屏 16:9 或竖屏 9:16,默认 16:9
generate_audioboolean否是否生成音频,默认 false;开启后使用有音频档价格
first_frame_imagestring否可访问的 HTTP(S) 图片 URL,作为视频首帧
last_frame_imagestring否可访问的 HTTP(S) 图片 URL,作为视频尾帧;必须同时提供 first_frame_image
negative_promptstring否描述希望避免的内容
seedinteger否随机种子,取值为 0 至 4294967295 的整数
person_generationstring否allow_adult 允许生成成年人,disallow 禁止生成人物,默认 allow_adult
resize_modestring否pad 填充或 crop 裁剪,默认 pad;仅在提供首帧时生效
sample_countinteger否仅允许省略或数字 1,每个任务生成一个视频
enhance_promptboolean否仅允许省略或 true,不支持关闭提示词增强
nsfw_checkerboolean否内容审核开关,默认 true;仅有相应账户权限时可设为 false,无权限时仍保持开启

数字和布尔参数必须使用 JSON 原生类型。例如 8、1、true、false 合法,"8"、"1"、"true"、"false" 不合法;省略可选字段可使用默认值,null 不能代替省略。

图片须能直接下载,不能使用本地路径或 Base64 数据。文生视频时省略两个图片字段,无需指定生成类型。

此模型不支持 lite 模式、Auto 比例、参考素材生成或视频续写。请勿传入旧版参数 image_urls、video_urls、generation_type、seeds、watermark、enable_translation 或 n。随机种子使用单数 seed,图片使用上述首帧和尾帧字段。

生成示例

将示例中的 API Key 和图片 URL 替换为自己的值。

文生视频

以下为最小请求,使用全部默认参数,标准倍率下为 133.12 积分。

curl -X POST https://api.aivideoapi.ai/v1/videos/generations \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-official",
    "input": {
      "prompt": "无人机缓缓飞过日落时分的山脉,柔和金色光线,电影感镜头"
    }
  }'

首帧生成

使用 first_frame_image 指定首帧。此示例生成 6 秒、1080p、无音频的竖屏视频,标准倍率下为 20.80 × 6 = 124.80 积分。

curl -X POST https://api.aivideoapi.ai/v1/videos/generations \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-official",
    "input": {
      "prompt": "镜头缓缓推近花瓶,窗边的光影自然移动",
      "mode": "fast",
      "duration": 6,
      "resolution": "1080p",
      "aspect_ratio": "9:16",
      "generate_audio": false,
      "first_frame_image": "https://example.com/first-frame.jpg",
      "resize_mode": "crop",
      "person_generation": "disallow",
      "seed": 123456
    }
  }'

首尾帧与音频

同时传入首帧和尾帧,并用 generate_audio: true 开启音频。此示例使用 quality、4 秒、4k,标准倍率下为 124.80 × 4 = 499.20 积分。

curl -X POST https://api.aivideoapi.ai/v1/videos/generations \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-official",
    "callback_url": "https://your-server.com/webhook",
    "input": {
      "prompt": "海边从清晨过渡到日出,镜头平稳向前,伴随轻柔海浪声",
      "mode": "quality",
      "duration": 4,
      "resolution": "4k",
      "aspect_ratio": "16:9",
      "generate_audio": true,
      "first_frame_image": "https://example.com/start.jpg",
      "last_frame_image": "https://example.com/end.jpg",
      "resize_mode": "pad",
      "negative_prompt": "模糊,镜头抖动",
      "person_generation": "disallow",
      "sample_count": 1,
      "enhance_prompt": true,
      "nsfw_checker": true
    }
  }'

估算积分

使用与生成请求相同的 model 和 input 调用估价接口。估价与生成共用参数默认值和校验规则,估价本身不扣费,也不会创建任务。

curl -X POST https://api.aivideoapi.ai/v1/estimate \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-official",
    "input": {
      "prompt": "无人机缓缓飞过日落时分的山脉,柔和金色光线,电影感镜头"
    }
  }'

默认参数、标准倍率下的主要响应字段如下,其他计费明细字段已省略:

{
  "model": "veo-3.1-official",
  "credits": 133.12,
  "base_credits": 133.12,
  "multiplier": 1,
  "pricing_type": "formula"
}

base_credits 是倍率应用前的积分,credits 是应用账户倍率后的估算值。携带 API Key 会使用对应账户倍率;省略鉴权则按标准倍率估算。参数、价格和账户倍率相同时,估价与创建任务预扣积分一致;估价不会锁定价格,以提交时的结果为准。

创建响应与任务查询

创建成功返回任务 ID,并不表示视频已经生成完成:

{
  "code": 200,
  "msg": "success",
  "data": {
    "taskId": "2e723e68-7a4a-4f38-a27a-8e638f6c44a1"
  }
}

保存 data.taskId,用同一账户的 API Key 查询:

curl https://api.aivideoapi.ai/v1/tasks/2e723e68-7a4a-4f38-a27a-8e638f6c44a1 \
  -H "Authorization: Bearer sk-your-api-key"

pending 表示等待处理,processing 表示处理中,completed 表示完成,failed 表示失败;取消成功的任务为 cancelled。不保证每次查询都能观察到所有中间状态。

created_at 和 completed_at 使用 Unix 秒级时间戳。output.metadata 为可选信息,请以 output.urls 获取视频;已归档或清理的历史任务可能返回 output: null,建议及时保存生成结果。

处理中

{
  "id": "2e723e68-7a4a-4f38-a27a-8e638f6c44a1",
  "status": "processing",
  "model": "veo-3.1-official",
  "credits_consumed": 0,
  "created_at": 1793318400,
  "progress": null
}

credits_consumed 表示最终消耗,处理中显示 0 不代表没有预扣积分。progress: null 表示暂无百分比进度。

已完成

以下为默认请求在标准倍率下的成功响应示例,视频地址从 output.urls 读取:

{
  "id": "2e723e68-7a4a-4f38-a27a-8e638f6c44a1",
  "status": "completed",
  "model": "veo-3.1-official",
  "credits_consumed": 133.12,
  "created_at": 1793318400,
  "completed_at": 1793318520,
  "output": {
    "urls": [
      "https://file.aivideoapi.ai/videos/example.mp4"
    ]
  }
}

失败

{
  "id": "2e723e68-7a4a-4f38-a27a-8e638f6c44a1",
  "status": "failed",
  "model": "veo-3.1-official",
  "credits_consumed": 0,
  "created_at": 1793318400,
  "error": {
    "code": "upstream_error",
    "message": "Video generation failed."
  }
}

确定失败的任务会退还原预扣积分,退款不会因重复查询而重复执行。已成功生成的任务不会因后续查询、回调或视频交付异常而退款。生成中遇到临时查询异常或交付延迟,请继续查询原任务,不要立即重复提交,以免创建多个独立计费任务。

回调与取消

创建时传入 callback_url,可接收任务完成或失败的 POST 通知。回调包含与查询结果一致的任务 ID、状态、最终消耗及结果或错误字段;接收端应按任务 ID 幂等处理重复通知。通知头及重试规则见回调文档。回调接收失败时,仍可查询任务获取最终结果。

已开始生成的任务不支持取消。只有尚未执行的排队任务可能通过 DELETE /v1/tasks/{taskId} 取消成功,并退还原预扣积分。可取消性以服务端响应为准,查询为 pending 不保证可取消。

无法取消时返回 HTTP 409,错误码为 task_not_cancellable;取消失败不会触发退款。更多通用错误见错误码文档。