Skip to main content

可灵 Kling 视频生成示例

以下示例展示如何使用可灵(Kling)视频生成模型通过 OpenAI 兼容接口生成高质量的视频内容。

支持的模型

模型 ID模式时长分辨率
kling-v2-6-std标准模式 (std)5/10 秒1080p
kling-v2-6-pro专家模式 (pro)5/10 秒1080p
可灵视频生成分为三个步骤:
  1. 创建视频生成任务 - 提交生成请求,获得任务ID
  2. 查询任务状态 - 定期检查任务进度
  3. 下载生成的视频 - 任务完成后下载视频文件

步骤1:创建视频生成任务

curl --request POST \
  --url https://model-api.skyengine.com.cn/v1/videos \
  --header 'Authorization: Bearer <API-KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "kling-v2-6-std",
    "prompt": "一只金毛犬在海边奔跑,阳光洒在它的毛发上,海浪轻轻拍打着沙滩,画面温馨治愈",
    "seconds": "5",
    "size": "1280x720"
  }'

响应示例

{
  "id": "kling-task-20260304123456",
  "object": "video",
  "model": "kling-v2-6-std",
  "mode": "std",
  "status": "in_queue"
}

步骤2:查询任务状态

# 查询任务状态
curl -X GET "https://model-api.skyengine.com.cn/v1/videos/kling-task-20260304123456" \
  --header 'Authorization: Bearer <API-KEY>'

状态响应示例

排队中:
{
  "id": "kling-task-20260304123456",
  "object": "video",
  "model": "kling-v2-6-std",
  "mode": "std",
  "status": "in_queue"
}
已完成:
{
  "id": "kling-task-20260304123456",
  "object": "video",
  "model": "kling-v2-6-std",
  "mode": "std",
  "status": "completed",
  "created_at": 1741094400,
  "completed_at": 1741094700,
  "seconds": "5",
  "size": "1280x720",
  "task_result": {
    "videos": [
      {
        "id": "video-001",
        "url": "https://cdn.example.com/videos/output.mp4",
        "duration": "5"
      }
    ]
  }
}

步骤3:下载生成的视频

# 下载视频文件
curl -X GET "https://model-api.skyengine.com.cn/v1/videos/kling-task-20260304123456/content" \
  --header 'Authorization: Bearer <API-KEY>' \
  --output kling_video.mp4

完整流程示例

import requests
import time

API_KEY = "<API-KEY>"
BASE_URL = "https://model-api.skyengine.com.cn/v1"

def complete_kling_video_generation(prompt, model="kling-v2-6-std", **kwargs):
    """
    完整的可灵视频生成流程
    """
    # 步骤1: 创建任务
    print("步骤1: 创建视频生成任务...")
    create_result = create_kling_video(prompt, model, **kwargs)
    if not create_result:
        return False

    video_id = create_result['id']
    print(f"任务ID: {video_id}")

    # 步骤2: 等待任务完成
    print("步骤2: 等待任务完成...")
    max_wait_time = 600  # 10分钟
    start_time = time.time()

    while time.time() - start_time < max_wait_time:
        status_info = check_video_status(video_id)
        if not status_info:
            break

        status = status_info.get('status')
        print(f"当前状态: {status}")

        if status == 'completed':
            print("视频生成完成!")
            break
        elif status == 'failed':
            error_info = status_info.get('error', {})
            print(f"视频生成失败: {error_info.get('message', '未知错误')}")
            return False

        time.sleep(10)  # 每10秒检查一次
    else:
        print("等待超时")
        return False

    # 步骤3: 下载视频
    print("步骤3: 下载视频...")
    output_path = f"kling_video_{video_id}.mp4"
    if download_video(video_id, output_path):
        print(f"视频生成完成: {output_path}")
        return True

    return False

# 使用示例
if __name__ == "__main__":
    # 标准模式
    success = complete_kling_video_generation(
        prompt="一只金毛犬在海边奔跑,阳光洒在它的毛发上,海浪轻轻拍打着沙滩,画面温馨治愈",
        model="kling-v2-6-std",
        seconds="5",
        size="1280x720"
    )

    if success:
        print("视频生成成功!")
    else:
        print("视频生成失败!")

支持的参数

基础参数

参数名类型必填描述
modelString使用的模型名称:kling-v2-6-std(标准模式)或 kling-v2-6-pro(专家模式)
promptString文本提示词,最大 2500 字符

视频生成参数

参数名类型必填描述
secondsString视频时长(秒):510
sizeString视频分辨率,格式为 宽x高(如 1280x720
ratioString宽高比,可选值:16:99:161:1。可通过 size 参数自动推导

分辨率与宽高比映射

Size (宽x高)宽高比
1280x72016:9
720x12809:16
1080x10801:1

高级功能

图生视频(首帧指定)

通过 content 参数指定首帧图片,实现图生视频功能。
{
  "model": "kling-v2-6-pro",
  "prompt": "让这张图片中的场景动起来,展现自然的风吹效果",
  "seconds": "5",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/image.jpg"
      },
      "role": "first_frame"
    }
  ]
}
# 图生视频示例
image_content = [
    {
        "type": "image_url",
        "image_url": {
            "url": "https://example.com/image.jpg"
        },
        "role": "first_frame"
    }
]

result = create_kling_video(
    prompt="让这张图片中的场景动起来,展现自然的风吹效果",
    model="kling-v2-6-pro",
    seconds="5",
    # content 参数需要通过扩展方式传递
)

首尾帧生视频

通过同时指定首帧和尾帧图片,控制视频的起始和结束画面。
{
  "model": "kling-v2-6-pro",
  "prompt": "从开始的场景自然过渡到结束的场景",
  "seconds": "5",
  "content": [
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/start.jpg"
      },
      "role": "reference_image"
    },
    {
      "type": "image_url",
      "image_url": {
        "url": "https://example.com/end.jpg"
      },
      "role": "last_frame"
    }
  ]
}
curl --request POST \
  --url https://model-api.skyengine.com.cn/v1/videos \
  --header 'Authorization: Bearer <API-KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "kling-v2-6-pro",
    "prompt": "从开始的场景自然过渡到结束的场景",
    "seconds": "5",
    "content": [
      {
        "type": "image_url",
        "image_url": {
          "url": "https://example.com/start.jpg"
        },
        "role": "reference_image"
      },
      {
        "type": "image_url",
        "image_url": {
          "url": "https://example.com/end.jpg"
        },
        "role": "last_frame"
      }
    ]
  }'

有声视频生成

通过设置 generate_audio 参数为 true,生成带有音频的视频。
注意: 有声视频生成仅支持专家模式 (pro),标准模式 (std) 不支持此功能。
{
  "model": "kling-v2-6-pro",
  "prompt": "森林中的鸟鸣声,溪水潺潺,自然风光",
  "seconds": "5",
  "generate_audio": true
}
curl --request POST \
  --url https://model-api.skyengine.com.cn/v1/videos \
  --header 'Authorization: Bearer <API-KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "kling-v2-6-pro",
    "prompt": "森林中的鸟鸣声,溪水潺潺,自然风光",
    "seconds": "5",
    "generate_audio": true
  }'

Content 参数说明

content 数组支持以下类型:
类型role 值描述
image_urlend_frame / last_frame尾帧图片
image_urlreference_image参考图片(图生视频)

任务状态说明

  • in_queue: 任务已提交,正在排队等待处理
  • processing: 任务正在处理中
  • completed: 任务已完成,可以下载视频
  • failed: 任务失败

模式对比

特性标准模式 (std)专家模式 (pro)
生成速度较慢
视频质量更高
适用场景快速预览、批量生成专业制作、高质量要求
模型名称kling-v2-6-stdkling-v2-6-pro
提示: 模型名称中包含 -std-pro 后缀时,系统会自动设置对应的生成模式。