Kling 3.0 视频生成

查看 Markdown 原文

概述

Kling 3.0(可灵)视频生成接口,支持单镜头、首尾帧图生视频、多镜头和元素引用。相比 Kling 2.6,Kling 3.0 提供了更灵活的时长控制(3-15秒)、三种质量模式(std/pro/4K)、音效以及 @element_name 元素引用。

Base URL: https://api.apiverse.ai


认证方式

所有接口均需要在请求头中携带 Token 进行认证:

Authorization: Bearer {YOUR_AUTH_TOKEN}

快速开始

cURL 示例

创建文生视频任务(Pro模式,5秒)

curl -X POST "https://api.apiverse.ai/api/v2/open/aigc/kling-3.0" \
  -H "Authorization: Bearer your_auth_token_here" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "一只猫在阳光下慵懒地伸展身体",
    "genType": "t2v",
    "mode": "pro",
    "duration": 5,
    "aspectRatio": "16:9",
    "sound": false
  }'

创建图生视频任务(4K模式,10秒,带音频)

curl -X POST "https://api.apiverse.ai/api/v2/open/aigc/kling-3.0" \
  -H "Authorization: Bearer your_auth_token_here" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "让图片中的人物挥手致意",
    "genType": "i2v",
    "imageUrls": ["https://example.com/reference.jpg"],
    "mode": "4K",
    "duration": 10,
    "sound": true
  }'

创建多镜头任务(带元素引用)

curl -X POST "https://api.apiverse.ai/api/v2/open/aigc/kling-3.0" \
  -H "Authorization: Bearer your_auth_token_here" \
  -H "Content-Type: application/json" \
  -d '{
    "genType": "t2v",
    "multiShots": true,
    "duration": 6,
    "aspectRatio": "16:9",
    "mode": "pro",
    "sound": true,
    "multiPrompt": [
      {"prompt": "a happy dog running @element_dog", "duration": 3},
      {"prompt": "the dog jumps through sunlight @element_dog", "duration": 3}
    ],
    "klingElements": [
      {
        "name": "element_dog",
        "description": "dog",
        "elementInputUrls": [
          "https://example.com/dog-1.jpg",
          "https://example.com/dog-2.jpg"
        ]
      }
    ]
  }'

查询任务状态

curl -X GET "https://api.apiverse.ai/api/v2/open/aigc/task_abc123" \
  -H "Authorization: Bearer your_auth_token_here"

查询账户余额

curl -X GET "https://api.apiverse.ai/api/v2/open/balance" \
  -H "Authorization: Bearer your_auth_token_here"

接口列表

1. 创建 Kling 3.0 视频生成任务

POST /api/v2/open/aigc/kling-3.0

创建一个 Kling 3.0 视频生成任务。

Content-Type: application/json

请求参数

参数类型必填说明
promptstring条件单镜头视频描述提示词,最多500字符;multiShots=true 时可不传
genTypestring生成类型:t2v(文生视频,默认) / i2v(图生视频)
imageUrlsstring[]条件首尾帧图片 URL。单镜头支持1-2张;multiShots=true 时仅支持1张首帧图
soundboolean是否生成音频,默认 false
durationint视频时长:3-15秒,默认 5
aspectRatiostring宽高比:16:9(默认) / 9:16 / 1:1
modestring质量模式:std(720p) / pro(1080p,默认) / 4K(2160p)
multiShotsboolean是否启用多镜头,默认 false
multiPromptobject[]条件多镜头提示词,multiShots=true 时必填,最多5段
multiPrompt[].promptstring条件单段镜头提示词,最多500字符;可使用 @element_name 引用元素
multiPrompt[].durationint条件单段镜头时长,1-12秒
klingElementsobject[]元素引用,最多3个
klingElements[].namestring条件元素名称,不带 @;prompt 中用 @name 引用
klingElements[].descriptionstring条件元素描述
klingElements[].elementInputUrlsstring[]条件元素图片 URL,2-4张,JPG/PNG,单张最大10MB
callbackUrlstring任务完成后的回调通知 URL
说明
- 图生视频(i2v)时可提供 1-2 张图片,分别作为首帧和尾帧参考;多镜头仅支持首帧图
- 质量模式影响输出分辨率:std(720p) < pro(1080p) < 4K(2160p)
- 时长支持 3-15 秒的任意整数值
- 元素引用需要在提示词中写 @element_name,并在 klingElements 中提供同名元素
- 创建任务时会预扣费,余额不足将返回错误

请求示例

文生视频(Pro模式,5秒,无音频):

{
  "prompt": "一只猫在阳光下慵懒地伸展身体",
  "genType": "t2v",
  "mode": "pro",
  "duration": 5,
  "aspectRatio": "16:9",
  "sound": false
}

文生视频(4K模式,10秒,有音频):

{
  "prompt": "海浪拍打沙滩的场景,带有海鸥的叫声",
  "genType": "t2v",
  "mode": "4K",
  "duration": 10,
  "aspectRatio": "9:16",
  "sound": true
}

图生视频(单张图片,Pro模式,8秒):

{
  "prompt": "让图片中的花朵随风摇曳",
  "genType": "i2v",
  "imageUrls": ["https://example.com/flower.jpg"],
  "mode": "pro",
  "duration": 8,
  "sound": false
}

图生视频(首尾帧,4K模式,12秒,有音频):

{
  "prompt": "从第一张图片平滑过渡到第二张图片",
  "genType": "i2v",
  "imageUrls": [
    "https://example.com/start_frame.jpg",
    "https://example.com/end_frame.jpg"
  ],
  "mode": "4K",
  "duration": 12,
  "sound": true
}

多镜头 + 元素引用:

{
  "genType": "t2v",
  "multiShots": true,
  "duration": 6,
  "aspectRatio": "16:9",
  "mode": "pro",
  "sound": true,
  "multiPrompt": [
    {
      "prompt": "a happy dog running @element_dog",
      "duration": 3
    },
    {
      "prompt": "the dog jumps through sunlight @element_dog",
      "duration": 3
    }
  ],
  "klingElements": [
    {
      "name": "element_dog",
      "description": "dog",
      "elementInputUrls": [
        "https://example.com/dog-1.jpg",
        "https://example.com/dog-2.jpg"
      ]
    }
  ]
}

响应参数

参数类型说明
codeint状态码,0 表示成功
msgstring状态信息
data.taskIdstring任务 ID,用于查询任务状态
data.statusstring任务状态,创建时固定为 processing
data.createdAtstring创建时间

响应示例

成功

{
  "code": 0,
  "msg": "success",
  "data": {
    "taskId": "task_20260508103000_abc12345",
    "status": "processing",
    "createdAt": "2026-05-08 10:30:00"
  }
}

余额不足

{
  "code": 40001,
  "msg": "余额不足: 当前余额 0.5000, 需要 0.7500",
  "data": null
}

参数错误

{
  "code": 10002,
  "msg": "duration 必须在 3-15 之间",
  "data": null
}

2. 查询任务状态

GET /api/v2/open/aigc/{taskId}

查询单个任务的执行状态。

路径参数

参数类型必填说明
taskIdstring任务 ID

响应参数

参数类型说明
codeint状态码,0 表示成功
msgstring状态信息
data.taskIdstring任务 ID
data.statusstring任务状态:processing / success / failed
data.resultstring[]生成的视频 URL 列表(成功时返回)
data.errorMsgstring错误信息(失败时返回)
data.createdAtstring创建时间
data.updatedAtstring更新时间

响应示例

处理中

{
  "code": 0,
  "msg": "success",
  "data": {
    "taskId": "task_20260508103000_abc12345",
    "status": "processing",
    "createdAt": "2026-05-08 10:30:00",
    "updatedAt": "2026-05-08 10:30:05"
  }
}

成功

{
  "code": 0,
  "msg": "success",
  "data": {
    "taskId": "task_20260508103000_abc12345",
    "status": "success",
    "result": [
      "https://fc-gw-sh.oss-accelerate.aliyuncs.com/videos/2026/05/08/output_001.mp4"
    ],
    "createdAt": "2026-05-08 10:30:00",
    "updatedAt": "2026-05-08 10:33:45"
  }
}

失败

{
  "code": 0,
  "msg": "success",
  "data": {
    "taskId": "task_20260508103000_abc12345",
    "status": "failed",
    "errorMsg": "生成失败:内容不符合规范",
    "createdAt": "2026-05-08 10:30:00",
    "updatedAt": "2026-05-08 10:30:45"
  }
}

3. 批量查询任务状态

POST /api/v2/open/aigc/batch

批量查询多个任务的执行状态(最多 100 个)。

请求参数

参数类型必填说明
taskIdsstring[]任务 ID 列表,最多 100 个

请求示例

{
  "taskIds": ["task_20260508103000_abc12345", "task_20260508103200_def67890"]
}

4. 查询账户余额

GET /api/v2/open/balance

查询当前用户的账户余额。

响应示例

{
  "code": 0,
  "msg": "success",
  "data": {
    "userId": "user@example.com",
    "balance": "19.9250",
    "frozenBalance": "1.5000",
    "currency": "USD"
  }
}

回调通知

当任务完成(成功或失败)时,如果创建任务时提供了 callbackUrl,系统会向该 URL 发送 POST 请求。

回调请求

Headers

Content-Type: application/json
X-Funcloud-Event: task.completed
X-Funcloud-Signature: {签名}

Body

{
  "event": "task.completed",
  "taskId": "task_20260508103000_abc12345",
  "status": "success",
  "result": ["https://fc-gw-sh.oss-accelerate.aliyuncs.com/videos/output_001.mp4"],
  "errorMsg": "",
  "timestamp": "2026-05-08T10:33:45+08:00",
  "signature": "a1b2c3d4e5f6..."
}

回调响应

接收方应返回 HTTP 2xx 状态码表示成功接收:

{
  "code": 0,
  "msg": "ok"
}

错误码

code说明
0成功
10002参数缺失或格式错误
10005API Key 无效或缺失
30003任务不存在
40001余额不足
90003服务器内部错误

最佳实践

1. 轮询策略

建议的轮询间隔:
- 前 30 秒:每 3 秒查询一次
- 30 秒 ~ 3 分钟:每 5 秒查询一次
- 3 分钟后:每 10 秒查询一次

2. 使用回调

对于生产环境,建议使用回调通知而非轮询,可以:
- 减少 API 调用次数
- 更快获得结果通知
- 降低服务器压力

3. 处理时间参考

  • std 模式(5s):通常 1 ~ 2 分钟
  • pro 模式(5s):通常 2 ~ 3 分钟
  • 4K 模式(5s):通常 3 ~ 5 分钟
  • 时长越长,处理时间越长(大约按比例增加)
  • 有音频的任务会比无音频稍慢

4. 余额管理

  • 创建任务前建议先查询余额,避免因余额不足导致任务失败
  • 任务成功后会从冻结余额中扣费
  • 任务失败后冻结金额会自动退还到可用余额

5. 质量模式选择

  • std (720p): 适合快速预览、社交媒体分享
  • pro (1080p): 适合大多数场景,性价比高
  • 4K (2160p): 适合高质量输出、专业制作

6. 图片参考使用

  • 单张图片:作为视频的起始参考
  • 两张图片:分别作为首帧和尾帧,视频会在两者之间平滑过渡
  • 多镜头模式:仅支持 1 张首帧图,镜头内容由 multiPrompt 控制
  • 图片建议分辨率:至少 1024×1024,最佳 2048×2048

7. 元素引用

  • klingElements 最多 3 个元素
  • 每个元素需要 2-4 张 JPG/PNG 图片
  • promptmultiPrompt[].prompt 中使用 @element_name 引用元素