跳转到主要内容
POST
/
v1
/
tasks
Veo 系列
curl --request POST \
  --url https://www.qingbo.dev/v1/tasks \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "<string>",
  "prompt": "<string>",
  "aspect_ratio": "<string>",
  "resolution": "<string>",
  "duration": 123,
  "image_urls": [
    "<string>"
  ],
  "first_frame_image": "<string>",
  "last_frame_image": "<string>",
  "seed": 123,
  "callback_url": "<string>",
  "callback_events": [
    "<string>"
  ]
}
'
import requests

url = "https://www.qingbo.dev/v1/tasks"

payload = {
"model": "<string>",
"prompt": "<string>",
"aspect_ratio": "<string>",
"resolution": "<string>",
"duration": 123,
"image_urls": ["<string>"],
"first_frame_image": "<string>",
"last_frame_image": "<string>",
"seed": 123,
"callback_url": "<string>",
"callback_events": ["<string>"]
}
headers = {"Content-Type": "application/json"}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
model: '<string>',
prompt: '<string>',
aspect_ratio: '<string>',
resolution: '<string>',
duration: 123,
image_urls: ['<string>'],
first_frame_image: '<string>',
last_frame_image: '<string>',
seed: 123,
callback_url: '<string>',
callback_events: ['<string>']
})
};

fetch('https://www.qingbo.dev/v1/tasks', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://www.qingbo.dev/v1/tasks"

payload := strings.NewReader("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"resolution\": \"<string>\",\n \"duration\": 123,\n \"image_urls\": [\n \"<string>\"\n ],\n \"first_frame_image\": \"<string>\",\n \"last_frame_image\": \"<string>\",\n \"seed\": 123,\n \"callback_url\": \"<string>\",\n \"callback_events\": [\n \"<string>\"\n ]\n}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.post("https://www.qingbo.dev/v1/tasks")
.header("Content-Type", "application/json")
.body("{\n \"model\": \"<string>\",\n \"prompt\": \"<string>\",\n \"aspect_ratio\": \"<string>\",\n \"resolution\": \"<string>\",\n \"duration\": 123,\n \"image_urls\": [\n \"<string>\"\n ],\n \"first_frame_image\": \"<string>\",\n \"last_frame_image\": \"<string>\",\n \"seed\": 123,\n \"callback_url\": \"<string>\",\n \"callback_events\": [\n \"<string>\"\n ]\n}")
.asString();
{
  "task_id": "task-wave1775285160b950328499",
  "model": "veo3.1-quality-official",
  "action": "generate",
  "status": "queued",
  "created_at": 1775285160040,
  "progress": 0
}
Google Veo 3.1 视频生成模型,提供 官方直连标准接入 两种渠道,共 5 个子档。所有子档时长均固定 8 秒,支持 720P / 1080P / 4K 三种分辨率。
  • 官方档(-official):按秒计费(单价/秒 × 时长),原生支持音频(generate_audio=true 触发 _sound 加价档)。
  • 标准档(无 -official):按次计费(单次固定价,与时长无关),不支持音频。
档位渠道计费方式音频定位
veo3.1-quality-official官方直连按秒支持旗舰档,最终交付质量
veo3.1-fast-official官方直连按秒支持加速档,适合迭代试稿
veo3.1-quality标准接入按次不支持标准旗舰子型
veo3.1-fast标准接入按次不支持标准加速子型
veo3.1-lite标准接入按次不支持标准轻量子型,低成本批量

定价

两类渠道计费口径完全不同:官方档 按秒(下表为每秒单价,需乘以时长 8 秒),标准档 按次(下表即单次固定价,不乘时长)。

官方档(按秒)

每秒单价。720P 与 1080P 同价;开启 generate_audio=true 触发 _sound 加价档。固定 8 秒。

veo3.1-fast-official

规格单价(每秒)8 秒视频
720P 静音$0.09$0.72
1080P 静音$0.09$0.72
720P + 音频$0.135$1.08
1080P + 音频$0.135$1.08
4K 静音$0.27$2.16
4K + 音频$0.315$2.52

veo3.1-quality-official

规格单价(每秒)8 秒视频
720P 静音$0.18$1.44
1080P 静音$0.18$1.44
720P + 音频$0.36$2.88
1080P + 音频$0.36$2.88
4K 静音$0.36$2.88
4K + 音频$0.54$4.32

标准档(按次)

单次固定价,与时长无关(固定 8 秒),不支持音频。
模型 ID720P / 1080P4K
veo3.1-fast$0.2025 / 次$0.27 / 次
veo3.1-lite$0.16875 / 次$0.225 / 次
veo3.1-quality$0.675 / 次$2.16 / 次

调用示例

curl -X POST https://www.qingbo.dev/v1/tasks \
  -H "Authorization: Bearer $WAVE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo3.1-fast-official",
    "prompt": "雨夜霓虹街道,一辆红色跑车驶过水洼,电影感慢镜头",
    "duration": 8,
    "resolution": "1080p",
    "aspect_ratio": "16:9"
  }'
curl -X POST https://www.qingbo.dev/v1/tasks \
  -H "Authorization: Bearer $WAVE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo3.1-quality-official",
    "prompt": "人物缓缓抬头微笑,头发被风吹起",
    "image_urls": ["https://cdn.example.com/portrait.jpg"],
    "duration": 8,
    "resolution": "1080p"
  }'
curl -X POST https://www.qingbo.dev/v1/tasks \
  -H "Authorization: Bearer $WAVE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo3.1-quality-official",
    "prompt": "海浪拍打礁石,海鸥鸣叫,远处轮船汽笛声",
    "duration": 8,
    "resolution": "1080p",
    "aspect_ratio": "16:9",
    "generate_audio": true
  }'
curl -X POST https://www.qingbo.dev/v1/tasks \
  -H "Authorization: Bearer $WAVE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo3.1-fast-official",
    "prompt": "航拍雪山日出,云海翻涌,镜头缓缓推进",
    "duration": 8,
    "resolution": "4k",
    "aspect_ratio": "16:9"
  }'
curl -X POST https://www.qingbo.dev/v1/tasks \
  -H "Authorization: Bearer $WAVE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo3.1-quality",
    "prompt": "夕阳下的海滨小镇,鸽群飞过钟楼",
    "duration": 8,
    "resolution": "1080p",
    "aspect_ratio": "16:9"
  }'
{
  "task_id": "task-wave1775285160b950328499",
  "model": "veo3.1-quality-official",
  "action": "generate",
  "status": "queued",
  "created_at": 1775285160040,
  "progress": 0
}
提交后用 GET /v1/tasks/{task_id} 轮询状态,详见 任务系统

可用模型

模型 ID渠道计费时长分辨率音频
veo3.1-quality-official官方直连按秒8 秒(固定)720P / 1080P / 4K支持
veo3.1-fast-official官方直连按秒8 秒(固定)720P / 1080P / 4K支持
veo3.1-quality标准接入按次8 秒(固定)720P / 1080P / 4K不支持
veo3.1-fast标准接入按次8 秒(固定)720P / 1080P / 4K不支持
veo3.1-lite标准接入按次8 秒(固定)720P / 1080P / 4K不支持

通用参数

model
string
必填
模型 ID,可选 veo3.1-quality-official / veo3.1-fast-official / veo3.1-quality / veo3.1-fast / veo3.1-lite
prompt
string
必填
视频描述文本,必填。建议英文 prompt,详细描述场景、动作、风格
aspect_ratio
string
默认值:"16:9"
画面宽高比,可选值:
  • 16:9 — 横版宽屏
  • 9:16 — 竖版长屏
  • 1:1 — 正方形
resolution
string
默认值:"720p"
输出分辨率,可选值:
  • 720p
  • 1080p
  • 4k
duration
integer
默认值:"8"
视频时长(秒)。Veo 3.1 全档固定 8
image_urls
string[]
参考图片 URL 数组。传入即触发图生视频(I2V):首张为首帧,第二张为尾帧
first_frame_image
string
视频首帧图 URL(图生视频)
last_frame_image
string
视频尾帧图 URL,与 first_frame_image 配合控制首尾帧
seed
integer
随机种子,用于复现生成结果,范围 0 - 4294967295
callback_url
string
Webhook 回调地址,任务终态时调用。详见 回调机制
callback_events
string[]
订阅的回调事件类型,默认订阅终态(completed / failed)

模型特定参数

官方档与标准档参数有差:仅官方档支持 generate_audio / enhance_prompt / person_generation / sample_count / resize_mode;标准档参数更精简,且不支持音频
generate_audio
boolean
默认值:"false"
是否生成音频轨道。开启后触发 _sound 加价档(见定价表)
sample_count
integer
默认值:"1"
生成样本数,范围 1-4,当前建议用 1
resize_mode
string
默认值:"pad"
图生视频时图片缩放策略,可选值:
  • pad — 边缘填充,保留完整画面
  • crop — 居中裁剪,贴合输出比例
enhance_prompt
boolean
默认值:"true"
提示词增强,只能为 true(设 false 会报错;不需要时直接不传)
person_generation
string
默认值:"allow_adult"
人物生成策略,可选值:
  • allow_adult — 允许生成成年人物
  • disallow — 禁止生成人物
negative_prompt
string
负面提示词,排除不想要的内容,如 "blurry, low quality, watermark"

资源限制

项目限制
参考图片JPG / PNG / WEBP,标准档单张 ≤ 10MB、最多 3 张
输出视频MP4,链接 24 小时有效
时长全档固定 8 秒
分辨率720P / 1080P / 4K 全档支持
音频仅官方档(-official)支持 generate_audio,标准档不支持
GIF仅标准档 enable_gif,且不可与 1080p / 4k 同用
人物官方档受 person_generation 策略约束,违规内容会被拦截

相关文档