Skip to content

图生视频 ​

创建 Kling 兼容图生视频任务。

Create Task ​

Request ​

http
POST /v1/videos/image2video
字段类型必填支持值与限制说明
model_namestring是kling-v2-5-turbo、kling-v3模型名。kling-v2-5-turbo 适合基础图生视频;kling-v3 支持多镜头、主体参考和更长时长。
imagestring是公网 URL 或原始 Base64首帧参考图。支持 .jpg、.jpeg、.png,大小不超过 10MB,宽高不小于 300px,宽高比需介于 1:2.5 到 2.5:1 之间。若传 Base64,只传原始内容,不要带 data:image/...;base64, 前缀。
image_tailstring否公网 URL 或原始 Base64尾帧参考图。支持 .jpg、.jpeg、.png,大小不超过 10MB,宽高不小于 300px,无宽高比限制。不能只传尾帧不传首帧。kling-v2-5-turbo 仅在 mode=pro 时支持首尾帧同时使用。
promptstring否最长 2500 字符kling-v3 下当 multi_shot=false 时必填,用于描述首帧之后的视频演化、动作和镜头;当 multi_shot=true 时该字段无效。kling-v2-5-turbo 下可选。
multi_shotboolean否仅 kling-v3;true、false是否生成多镜头视频,默认 false。当 multi_shot=true 时,prompt 无效;当 multi_shot=false 时,shot_type 和 multi_prompt 无效。kling-v2-5-turbo 不支持该字段。
shot_typestring否仅 kling-v3;仅支持 customize当 multi_shot=true 时必填;当 multi_shot=false 时该字段无效。当前仅支持自定义分镜,intelligence 不支持。
multi_promptarray否仅 kling-v3;1 到 6 项当 multi_shot=true 且 shot_type=customize 时必填;当 multi_shot=false 时该字段无效,用于逐镜头定义提示词和时长。
multi_prompt[].indexinteger是仅 kling-v3分镜序号,建议按 1,2,3... 递增。
multi_prompt[].promptstring是仅 kling-v3;最长 512 字符当前分镜的提示词,用于定义该镜头的内容和表现。
multi_prompt[].durationstring是仅 kling-v3;每段至少 1 秒当前分镜时长,所有分镜时长之和必须等于总 duration。
negative_promptstring否最长 2500 字符负向提示词,用于限制不希望出现的画面内容和效果。
element_listarray否仅 kling-v3参考主体列表,最多 3 个。适合在图生视频里保持角色或主体一致性。kling-v2-5-turbo 不支持该字段。
element_list[].element_idinteger是仅 kling-v3主体库中的主体 ID。
soundstring否仅 kling-v3;on、off是否同时生成音频,默认 off。kling-v2-5-turbo 不支持该字段。
modestring否std、pro生成模式。std 为标准模式;pro 为高质量模式。4k 不支持。
aspect_ratiostring否16:9、9:16、1:1如传入,仅支持这三个取值。
durationstring否kling-v2-5-turbo:5、10;kling-v3:3 到 15视频总时长,单位秒。
watermark_infoobject否{"enabled": boolean}是否同时返回带水印结果。
external_task_idstring否自定义字符串自定义任务 ID,可用于后续查询;同一账号下应保持唯一。

Response ​

json
{
  "code": 0,
  "message": "success",
  "request_id": "req_abc123",
  "data": {
    "task_id": "sg_vid_xxxxxxxx",
    "task_status": "submitted",
    "created_at": 1776209922,
    "updated_at": 1776209922
  }
}

Example ​

基础示例 ​

bash
curl -sS "https://api.exchangetoken.ai/v1/videos/image2video" \
  -H "Authorization: Bearer sk-xxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model_name": "kling-v3",
    "image": "https://example.com/first-frame.png",
    "prompt": "人物转向镜头微笑,轻微手持镜头运动",
    "mode": "std",
    "sound": "off",
    "duration": "5",
    "watermark_info": {"enabled": false}
  }'

首尾帧示例 ​

bash
curl -sS "https://api.exchangetoken.ai/v1/videos/image2video" \
  -H "Authorization: Bearer sk-xxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model_name": "kling-v3",
    "image": "https://example.com/first-frame.png",
    "image_tail": "https://example.com/end-frame.png",
    "prompt": "让首帧平滑过渡到尾帧",
    "mode": "pro",
    "sound": "off",
    "duration": "5"
  }'

Query Task ​

Request ​

http
GET /v1/videos/image2video/{task_id}

后续轮询使用 data.task_id。

Response ​

json
{
  "code": 0,
  "message": "success",
  "request_id": "req_abc123",
  "data": {
    "task_id": "sg_vid_xxxxxxxx",
    "task_status": "succeed",
    "watermark_info": {
      "enabled": false
    },
    "task_result": {
      "videos": [
        {
          "url": "https://example.com/output.mp4"
        }
      ]
    },
    "created_at": 1776209922,
    "updated_at": 1776210072
  }
}

状态枚举 ​

task_status含义
submitted任务已接受,尚未开始执行。
processing任务排队中或执行中。
succeed任务完成,可能包含 task_result.videos。
failed任务失败或已取消。若存在 task_status_msg,可查看失败原因。

Example ​

bash
curl -sS "https://api.exchangetoken.ai/v1/videos/image2video/sg_vid_xxxxxxxx" \
  -H "Authorization: Bearer sk-xxxxxx"