视频生成 (kling系列)
七牛云 AI 大模型推理 API 支持可灵(Kling)系列视频生成模型,提供文生视频(Text-to-Video)、图生视频(Image-to-Video)和视频生视频(Video-to-Video)等多种高级功能,兼容 OpenAI Videos API 接口格式,方便您集成到各种业务和应用场景中。
可灵模型核心特点
- 高清分辨率: 最高支持 1080P (1920x1080) 高清视频输出
- 灵活时长: 支持生成 5秒 或 10秒 视频
- 多种生成方式:
- 文生视频 (Text-to-Video): 根据文本描述生成视频
- 图生视频 (Image-to-Video): 基于参考图片生成动态视频
- 视频生视频 (Video-to-Video): 基于参考视频生成新视频
- 参考首尾帧生视频: 指定首尾关键帧,AI 补充中间过渡
- 无声视频: 生成的视频默认为无声视频(除非使用视频生视频功能并设置保留原声)
接口说明
Token API 接入点
七牛云 AI 大模型推理 API 接入域名:
- 接入点:
https://api.qnaigc.com/v1 - 使用前提:获取 API KEY(API 密钥)
支持接口列表
| 接口名 | 说明 |
|---|---|
| /videos | 视频创建接口,支持文生视频、图生视频、视频生视频和参考首尾帧生视频 |
| /videos/:id | 查询视频生成状态接口,根据视频任务 ID 查询生成进度和结果 |
支持的模型
| 模型 ID | 模型名称 | 说明 | 状态 |
|---|---|---|---|
| kling-video-o1 | 可灵 O1 | 可灵最新推出的高性能视频生成模型 特点: 最新旗舰模型,支持文生视频、图生视频、视频生视频、参考首尾帧生视频全功能 输出: 支持 std(720P)/pro(1080P) 模式 |
✅ 已上线 |
| kling-v2-1 | 可灵 V2.1 | 可灵 V2.1 视频生成模型 特点: 支持图生视频及参考首尾帧生成,不支持文生视频 输出: 支持 std(720P)/pro(1080P) 模式 |
✅ 已上线 |
| kling-v2-5-turbo | 可灵 V2.5 Turbo | 可灵 V2.5 Turbo 视频生成模型 特点: 支持文生视频、图生视频、视频生视频、参考首尾帧生视频全功能 输出: 支持 std(720P)/pro(1080P) 模式 |
✅ 已上线 |
请求参数说明
创建视频接口 (POST /videos)
接口说明: 创建视频生成任务,提交后会返回任务 ID,您需要使用查询接口轮询任务状态并获取生成的视频。
Header 参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Authorization | string | 是 | API Key,格式:Bearer YOUR_QINIU_API_KEY |
| Content-Type | string | 是 | 请求内容类型,固定值:application/json |
Body 参数 (JSON)
| 参数名 | 类型 | 必填 | 默认值 | 说明 | 支持模型 |
|---|---|---|---|---|---|
| model | string | 是 | - | 视频生成模型名称,例如:kling-video-o1详细说明: • 指定使用的视频生成模型 • 可选值: kling-video-o1、kling-v2-1、kling-v2-5-turbo |
全部 |
| prompt | string | 是 | - | 视频生成的文本描述提示词,最大 2500 字符 详细说明: • 字符数限制:不超过 2500 个字符 • 建议:提示词越详细、具体,生成的视频质量越好 • 建议包含:场景描述、动作、风格、光线、氛围等细节 • 示例: "一只橘色的猫坐在窗台上,温暖的阳光洒在它身上,它慢慢转头看向镜头,电影风格,高清画质" |
全部 |
| input_reference | string | 是 | - | 参考图像 详细说明: • 支持传入图片 Base64 编码或图片 URL(确保可访问) • Base64 编码格式要求: - 若使用 Base64 方式,请确保所有图像数据参数均采用 Base64 编码格式 - 请不要在 Base64 编码字符串前添加任何前缀(如 data:image/png;base64,)- 正确格式应该直接是 Base64 编码后的字符串 - ✅ 正确示例: iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==- ❌ 错误示例: data:image/png;base64,iVBORw0KGgoAAAA...• 图片格式支持: .jpg / .jpeg / .png• 图片要求: - 文件大小:不能超过 10MB - 图片尺寸:宽高不小于 300px - 图片宽高比:介于 1:2.5 ~ 2.5:1 之间 • 不同模型版本、视频模式支持范围不同,详见可灵模型能力地图 |
kling-v2-1 kling-v2-5-turbo |
| image_tail | string | 否 | - | 参考图像 - 尾帧控制 详细说明: • 支持传入图片 Base64 编码或图片 URL(确保可访问) • Base64 编码格式要求: - 若使用 Base64 方式,请确保所有图像数据参数均采用 Base64 编码格式 - 请不要在 Base64 编码字符串前添加任何前缀(如 data:image/png;base64,)- 正确格式应该直接是 Base64 编码后的字符串 - ✅ 正确示例: iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==- ❌ 错误示例: data:image/png;base64,iVBORw0KGgoAAAA...• 图片格式支持: .jpg / .jpeg / .png• 图片要求: - 文件大小:不能超过 10MB - 图片尺寸:宽高不小于 300px • 首尾帧控制说明: - 当同时配置 input_reference 和 image_tail 参数时,表示控制首尾帧生视频- 此时 mode 参数仅支持 pro 模式(不支持 std 模式)- 系统将根据首帧和尾帧图片生成连贯过渡的视频 • 不同模型版本、视频模式支持范围不同,详见可灵模型能力地图 |
kling-v2-1 kling-v2-5-turbo |
| image_list | array | 否 | 空 | 参考图列表 详细说明: • 功能说明: - 包括主体、场景、风格等参考图片 - 也可作为首帧或尾帧生成视频 • 首帧/尾帧功能: - 通过 type 参数来定义图片是否为首尾帧:first_frame 为首帧,end_frame 为尾帧- 暂时不支持仅尾帧,即有尾帧图时必须有首帧图 - 首帧或首尾帧生视频时,不能使用视频编辑功能 - 数组中超过 2 张图片时,不支持设置尾帧 • 参数格式:JSON 数组,每个元素包含 image_url 和可选的 type 字段• 参数示例: - 普通参考图: "image_list": [{"image": "image_url_or_base64"}]- 首尾帧参考: "image_list": [{"image": "image_url_or_base64", "type": "first_frame"}, {"image": "image_url_or_base64", "type": "end_frame"}]• 支持传入图片 Base64 编码或图片 URL(确保可访问) • Base64 编码格式要求: - 若使用 Base64 方式,请确保所有图像数据参数均采用 Base64 编码格式 - 请不要在 Base64 编码字符串前添加任何前缀(如 data:image/png;base64,)- 正确格式应该直接是 Base64 编码后的字符串 - ✅ 正确示例: "image_list": [{"image_url": "iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="}]- ❌ 错误示例: "image_list": [{"image_url": "data:image/png;base64,iVBORw0KGgoAAAA..."}]• 图片格式支持: .jpg / .jpeg / .png• 图片要求: - 文件大小:不能超过 10MB - 图片尺寸:宽高不小于 300px - 图片宽高比:介于 1:2.5 ~ 2.5:1 之间 - image_url 参数值不得为空• 数量限制: - 有参考视频时:参考图片数量不得超过 4 张 - 无参考视频时:参考图片数量不得超过 7 张 |
kling-video-o1 |
| video_list | array | 否 | - | 参考视频列表 详细说明: • 参考视频,通过 URL 方式提供 • 参考视频可作为特征参考视频,也可作为待编辑视频(默认为待编辑视频);可选择性保留视频原声 • 通过 refer_type 参数区分参考视频类型:- feature:特征参考视频,用于指导视频风格和内容- base:待编辑视频,基于此视频进行编辑和生成• 当参考视频为待编辑视频时,不能定义视频首尾帧 • 通过 keep_original_sound 参数选择是否保留视频原声:- yes:保留原视频声音- no:不保留原视频声音- 当前参数对特征参考视频(feature)也生效 • 格式要求: - 视频格式:仅支持 MP4 和 MOV - 视频时长:≥3 秒且 ≤10 秒 - 视频尺寸:宽高均需介于 720px(含)和 2160px(含)之间 - 视频帧率:24fps~60fps,生成视频时会输出为 24fps - 视频大小:单个视频不超过 200MB - video_url 参数值不得为空• 数量限制:至多仅支持上传 1 段视频 • 参数示例: "video_list": [{"video_url": "https://example.com/reference-video.mp4", "refer_type": "base", "keep_original_sound": "yes"}] |
kling-video-o1 |
| seconds | string | 否 | 5 | 视频时长(秒),可选值:5、10详细说明: • 控制生成视频的时长(单位:秒) • 不同时长会影响生成成本和时间 |
全部 |
| size | string | 否 | 1920x1080 | 视频分辨率,格式:宽x高可选值: 1920x1080、1080x1920、1280x720、720x1280、1080x1080、720x720详细说明: • 该字段仅能控制视频的宽高比例(横屏/竖屏/正方形),视频分辨率品质由 mode 字段控制• 作用:主要用于判断横竖屏方向 - 宽 > 高:横屏 - 宽 < 高:竖屏 - 宽 = 高:正方形 |
全部 |
| mode | string | 否 | std | 生成视频的模式 可选值: std、prostd:标准模式(标准),基础模式,性价比高,输出分辨率为 720Ppro:专家模式(高品质),高表现模式,生成视频质量更佳,输出分辨率为 1080P不同品质会影响生成成本和时间 |
全部 |
响应体说明
创建视频任务成功后,接口会立即返回任务基本信息。接口返回已创建的视频任务基本信息,包含任务 ID、模型、状态等字段。视频尚未生成完成,需要通过查询接口获取最终结果。响应体包含以下字段:
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | string | 视频任务唯一 ID,用于后续查询任务状态 |
| object | string | 对象类型,固定为 video |
| model | string | 使用的模型名称,例如 kling-video-o1 |
| mode | string | 生成模式,std(标准模式)或 pro(专家模式) |
| status | string | 任务状态,通常为 queued(排队中) |
| created_at | integer | 创建时间(Unix 时间戳,秒) |
| updated_at | integer | 更新时间(Unix 时间戳,秒) |
| seconds | string | 视频时长(秒) |
| size | string | 请求体中的视频分辨率(宽 x 高) |
响应示例:
{
"id": "qvideo-user123-1766391125174150336",
"object": "video",
"model": "kling-video-o1",
"mode": "std",
"status": "queued",
"created_at": 1766391125,
"updated_at": 1766391125,
"seconds": "5",
"size": "1280x720"
}
查询视频状态接口 (GET /videos/:id)
接口说明: 根据视频任务 ID 查询视频生成状态和结果,建议定期轮询直到状态变为 completed 或 failed。
Path 参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | string | 是 | 视频任务 ID,创建视频时返回的 id 字段,例如:qvideo-user123-1766391125174150336 |
Header 参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| Authorization | string | 是 | API Key,格式:Bearer YOUR_QINIU_API_KEY |
响应体说明
根据任务状态不同,返回的字段也有所不同。任务完成后会包含 task_result 字段,其中包含生成的视频下载链接。
| 字段名 | 类型 | 说明 |
|---|---|---|
| id | string | 视频任务唯一 ID |
| object | string | 对象类型,固定为 video |
| model | string | 使用的模型名称 |
| mode | string | 生成模式,std 或 pro,仅在成功时返回 |
| status | string | 任务状态,见下方状态说明 |
| created_at | integer | 创建时间 (Unix 时间戳,秒) |
| updated_at | integer | 更新时间 (Unix 时间戳,秒) |
| completed_at | integer | 完成时间 (Unix 时间戳,秒),仅在已完成或失败时返回 |
| seconds | string | 视频时长 (秒) |
| size | string | 视频分辨率 (宽 x 高) |
| task_result | object | 任务结果,包含生成的视频列表,仅在已完成时返回 |
| task_result.videos | array | 生成的视频列表 |
| task_result.videos[].id | string | 视频 ID,全局唯一 |
| task_result.videos[].url | string | 视频下载 URL(注意:生成的视频会在 7 天后过期,请及时转存) |
| task_result.videos[].duration | string | 视频时长 (秒) |
| error | object | 错误信息,仅在失败时返回 |
| error.code | string | 错误码 |
| error.message | string | 错误描述 |
任务状态说明
| 状态值 | 说明 |
|---|---|
| initializing | 初始化中,任务已创建 |
| queued | 排队中,等待处理 |
| in_progress | 处理中,模型正在生成视频 |
| downloading | 下载中,正在下载结果 |
| uploading | 上传中,正在上传到七牛云存储 |
| completed | 已完成,视频生成成功 |
| failed | 失败,视频生成失败 |
| cancelled | 已取消,用户主动取消 |
响应示例
处理中状态
{
"id": "qvideo-user123-1234567890123456789",
"object": "video",
"model": "kling-video-o1",
"status": "in_progress",
"created_at": 1234567890,
"updated_at": 1234567895
}
成功完成状态
{
"id": "qvideo-user123-1766391125174150336",
"object": "video",
"model": "kling-video-o1",
"mode": "std",
"status": "completed",
"created_at": 1766391125,
"updated_at": 1766391255,
"completed_at": 1766391255,
"seconds": "5",
"size": "1280x720",
"task_result": {
"videos": [
{
"id": "qvideo-user123-1766391125174150336-1",
"url": "https://aitoken-video.qnaigc.com/user123/qvideo-user123-1766391125174150336/1.mp4?e=1766996055&token=IDB69r4gicDbMd9Fbmn9w2bWuEENg9i5_yasXqhp:SxmElNSeeug5RahcQ5sSdCTxwPw=",
"duration": "5"
}
]
}
}
失败状态
{
"id": "qvideo-user123-1234567890123456789",
"object": "video",
"model": "kling-video-o1",
"mode": "std",
"status": "failed",
"created_at": 1765776987,
"updated_at": 1765776990,
"completed_at": 1765776990,
"error": {
"code": "kling_error",
"message": "Kling API returned error"
},
"seconds": "5"
}
HTTP 调用示例
基础文生视频 (kling-video-o1)
使用 kling-video-o1 模型生成高分辨率 1080P 视频:
# 调用 kling-video-o1 文生视频 API
export OPENAI_BASE_URL="https://api.qnaigc.com/v1"
export OPENAI_API_KEY="<七牛云 AI API KEY>"
curl "$OPENAI_BASE_URL/videos" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "kling-video-o1",
"prompt": "一只可爱的橘猫在阳光下奔跑,慢镜头,电影质感",
"size": "1920x1080",
"mode": "pro"
}'
响应示例:
{
"id": "qvideo-user123-1764904843275618838",
"object": "video",
"model": "kling-video-o1",
"mode": "pro",
"status": "queued",
"created_at": 1764904843,
"updated_at": 1764904843,
"seconds": "5",
"size": "1920x1080"
}
图生视频 (kling-video-o1)
使用 kling-video-o1 模型基于参考图片生成视频:
# 基于参考图片生成视频
export OPENAI_BASE_URL="https://api.qnaigc.com/v1"
export OPENAI_API_KEY="<七牛云 API KEY>"
curl "$OPENAI_BASE_URL/videos" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "kling-video-o1",
"prompt": "这个人在跑马拉松",
"image_list": [
{
"image": "https://aitoken-public.qnaigc.com/example/generate-video/running-man.jpg"
}
],
"size": "1920x1080",
"mode": "pro"
}'
有参考视频生成视频 (kling-video-o1)
使用 kling-video-o1 模型基于参考视频生成新视频:
# 基于参考视频生成新视频
export OPENAI_BASE_URL="https://api.qnaigc.com/v1"
export OPENAI_API_KEY="<七牛云 AI API KEY>"
curl "$OPENAI_BASE_URL/videos" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "kling-video-o1",
"prompt": "画面中增加一个小狗",
"video_list": [
{
"video_url": "https://aitoken-public.qnaigc.com/example/generate-video/the-little-dog-is-running-on-the-lawn..mp4",
"refer_type": "feature",
"keep_original_sound": "yes"
}
],
"size": "1920x1080",
"mode": "pro"
}'
多图首尾帧生视频 (kling-video-o1)
使用 kling-video-o1 模型的 image_list 参数,通过指定首帧和尾帧图片生成连贯视频:
# 基于首尾帧图片生成视频
export OPENAI_BASE_URL="https://api.qnaigc.com/v1"
export OPENAI_API_KEY="<七牛云 AI API KEY>"
curl "$OPENAI_BASE_URL/videos" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "kling-video-o1",
"prompt": "视频连贯在一起",
"image_list": [
{
"image": "https://fastly.picsum.photos/id/173/1280/720.jpg?hmac=xH_ViV5QGlLeWARvoUE2frSLNcUXvAGKHaMs0Hy6c_0",
"type": "first_frame"
},
{
"image": "https://fastly.picsum.photos/id/999/1280/720.jpg?hmac=YPLs2sdukTxfP4z7CI7wNIWwNXYksSjUi1yENuaT-RI",
"type": "end_frame"
}
],
"size": "1920x1080",
"mode": "pro"
}'
图生视频 (kling-v2-1)
使用 kling-v2-1 模型基于参考图片生成视频:
# 基于参考图片生成视频
export OPENAI_BASE_URL="https://api.qnaigc.com/v1"
export OPENAI_API_KEY="<七牛云 API KEY>"
curl "$OPENAI_BASE_URL/videos" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "kling-v2-1",
"prompt": "人在奔跑",
"input_reference":"https://aitoken-public.qnaigc.com/example/generate-video/running-man.jpg",
"size": "1280x720",
"mode": "pro"
}'
图生视频 (kling-v2-5-turbo) - 指定尾帧
使用 kling-v2-5-turbo 模型生成视频,并指定尾帧图片:
# 指定尾帧图生视频
export OPENAI_BASE_URL="https://api.qnaigc.com/v1"
export OPENAI_API_KEY="<七牛云 API KEY>"
curl "$OPENAI_BASE_URL/videos" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d'{
"model": "kling-v2-5-turbo",
"prompt": "人在跑到了天涯海角",
"input_reference":"https://aitoken-public.qnaigc.com/example/generate-video/running-man.jpg",
"image_tail":"https://aitoken-public.qnaigc.com/example/generate-video/end-of-the-earth-and-sky.jpg",
"size": "1280x720",
"mode": "pro"
}'
查询视频生成状态
# 查询视频任务状态
export OPENAI_BASE_URL="https://api.qnaigc.com/v1"
export OPENAI_API_KEY="<七牛云 AI API KEY>"
export VIDEO_ID="qvideo-user123-1234567890123456789"
curl "$OPENAI_BASE_URL/videos/$VIDEO_ID" \
-H "Authorization: Bearer $OPENAI_API_KEY"
响应示例 (处理中):
{
"id": "qvideo-user123-1234567890123456789",
"object": "video",
"model": "kling-video-o1",
"status": "in_progress",
"created_at": 1234567890,
"updated_at": 1234567895
}
响应示例 (已完成):
{
"id": "qvideo-user123-1234567890123456789",
"object": "video",
"model": "kling-video-o1",
"mode": "std",
"status": "completed",
"created_at": 1766391125,
"updated_at": 1766391255,
"completed_at": 1766391255,
"seconds": "5",
"size": "1280x720",
"task_result": {
"videos": [
{
"id": "qvideo-user123-1234567890123456789-1",
"url": "https://aitoken-video.qnaigc.com/root/qvideo-user123-1234567890123456789/1.mp4?e=1766996055&token=IDB69r4gicDbMd9Fbmn9w2bWuEENg9i5_yasXqhp:SxmElNSeeug5RahcQ5sSdCTxwPw=",
"duration": "5"
}
]
}
}
响应示例 (错误):
{
"id": "qvideo-user123-1234567890123456789",
"object": "video",
"model": "kling-video-o1",
"mode": "std",
"status": "failed",
"created_at": 1765776987,
"updated_at": 1765776990,
"completed_at": 1765776990,
"error": {
"code": "kling_error",
"message": "Kling API returned error"
},
"seconds": "5"
}
常见问题
Q: 如何将生成的视频保存到七牛云对象存储?
A: 生成的视频已经自动保存在七牛云对象存储 (Kodo) 中,返回的 URL 即为 Kodo 存储地址,但有效期仅有 7 天。如需转存到您自己的存储空间,推荐使用七牛对象存储的【SDK 中心】进行操作。更多对象存储信息欢迎参考对象存储的【产品使用文档】。
Q: 视频生成需要多长时间?
A: 视频生成时间取决于视频时长和当前队列情况。通常情况下:
- 5 秒视频:2-5 分钟
- 10 秒视频:5-10 分钟
建议使用轮询方式查询任务状态。
Q: 生成的视频会保存多久?
A: 生成的视频会在 7 天后过期,建议在视频生成后及时下载或转存到您自己的存储空间。
Q: 如何提高视频生成质量?
A:
- 详细的提示词:描述越详细,生成效果越好
- 包含关键要素:场景、动作、风格、光线、氛围等
- 使用具体的风格描述:如"电影风格"、"高清画质"等
Q: kling 模型的具体能力和参数有什么区别?
A: 更多详细的模型能力对比和参数说明,可参考 可灵官方文档。