A single continuous five-second full-body sports shot of the same adult gymnast on the blue mat. She steps to the right, bends sideways, places her hands on the mat one after the other, sends her straight legs overhead in one smooth controlled cartwheel, then lands one foot followed by the other and stands upright. Exactly one cartwheel, no flips or repeated rotations. Preserve her face, fitted teal training clothes and all four limbs. Fixed wide side view with the entire body and landing area always visible, realistic weight transfer and natural timing. No cuts, no other people, no text.
Kling 2.1 Pro Image to Video API
kwaivgi/kling-video/v2.1/pro/image-to-videoKling 2.1 Pro Image to Video 将静态图像转化为原生 1080p 全高清电影级视频,支持起始帧与可选结束帧双关键帧约束,提供 5 秒与 10 秒时长。它在完整锁定主体样貌、环境细节与景深层次的同时,精确推演复杂的时空运动轨迹与镜头运镜过渡。
595/5,000

示例
REST API 规格
快速上手
提交任务并查询状态。example.com 和 your-domain.com 地址仅为占位示例;图片和回调地址请替换为你自己的公开可访问地址,输出文件地址仅作展示。
第一步:配置身份鉴权
在控制台申请 API Key,并在发起请求时通过请求头携带 Authorization: Bearer <API_KEY>。
- 任务提交端点
- POST
https://api.vidgo.ai/api/generate/submit - 鉴权请求头
- Authorization: Bearer VIDGO_API_KEY
第二步:提交生成任务
POST /api/generate/submit: kwaivgi/kling-video/v2.1/pro/image-to-video
REQUEST_BODY=$(cat <<'JSON'
{
"model": "kwaivgi/kling-video/v2.1/pro/image-to-video",
"input": {
"prompt": "A slow camera pan across a sunlit garden.",
"start_image_url": "https://example.com/start-frame.png",
"duration": 5,
"end_image_url": "https://example.com/end-frame.png"
}
}
JSON
)
RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
CODE=$(printf '%s' "$RESPONSE" | jq -r '.code // empty')
if [ "$CODE" != "0" ] && [ "$CODE" != "200" ]; then
printf 'API error: %s
' "$RESPONSE" >&2
exit 1
fi
printf '%s
' "$RESPONSE"第三步:轮询任务执行结果
使用 task_id 查询进度;not_started 或 running 时继续轮询,finished 或 failed 时停止。成功后读取 data.files[].file_url,失败时读取 data.error_message。
状态查询端点
GET https://api.vidgo.ai/api/generate/status/{task_id}使用 task_id 查询进度;not_started 或 running 时继续轮询,finished 或 failed 时停止。成功后读取 data.files[].file_url,失败时读取 data.error_message。
not_startedrunningfinishedfailed{
"code": 200,
"data": {
"task_id": "task-example",
"status": "not_started",
"created_time": "2026-09-24T00:00:00Z"
}
}{
"code": 200,
"data": {
"task_id": "task-example",
"status": "finished",
"files": [
{
"file_type": "video",
"file_url": "https://example.com/output.mp4"
}
],
"created_time": "2026-09-23T00:00:00Z"
}
}端到端完整脚本示例
展开查看在生产环境中具备轮询重试、异常保护和超时处理的完整自动化脚本。
set -euo pipefail
: "${VIDGO_API_KEY:?Set VIDGO_API_KEY in your environment}"
REQUEST_BODY=$(cat <<'JSON'
{
"model": "kwaivgi/kling-video/v2.1/pro/image-to-video",
"input": {
"prompt": "A slow camera pan across a sunlit garden.",
"start_image_url": "https://example.com/start-frame.png",
"duration": 5,
"end_image_url": "https://example.com/end-frame.png"
}
}
JSON
)
SUBMIT_RESPONSE=$(curl --silent --show-error --fail-with-body \
--request POST \
--url "https://api.vidgo.ai/api/generate/submit" \
--header "Authorization: Bearer $VIDGO_API_KEY" \
--header "Content-Type: application/json" \
--data "$REQUEST_BODY")
TASK_ID=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.data.task_id // .task_id // empty')
BUSINESS_CODE=$(printf '%s' "$SUBMIT_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Submit failed:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
if [ -z "$TASK_ID" ]; then
printf 'Submit response did not include task_id:
%s
' "$SUBMIT_RESPONSE" >&2
exit 1
fi
START_TIME=$(date +%s)
POLL_DELAY=2
while true; do
if [ $(( $(date +%s) - START_TIME )) -ge 600 ]; then
printf 'Timed out after 600 seconds
' >&2
exit 1
fi
STATUS_RESPONSE=$(curl --silent --show-error --fail-with-body \
--url "https://api.vidgo.ai/api/generate/status/$TASK_ID" \
--header "Authorization: Bearer $VIDGO_API_KEY")
STATUS=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.data.status // .status // empty')
BUSINESS_CODE=$(printf '%s' "$STATUS_RESPONSE" | jq -r '.code // empty')
if [ "$BUSINESS_CODE" != "0" ] && [ "$BUSINESS_CODE" != "200" ]; then
printf 'Status request failed:
%s
' "$STATUS_RESPONSE" >&2
exit 1
fi
case "$STATUS" in
finished)
printf '%s' "$STATUS_RESPONSE" | jq -r '(.data.files // .files // [])[]?.file_url'
break
;;
failed)
printf '%s' "$STATUS_RESPONSE" | jq -r '.data.error_message // .error_message // "Generation failed"' >&2
exit 1
;;
not_started|running)
sleep "$POLL_DELAY"
if [ "$POLL_DELAY" -lt 10 ]; then POLL_DELAY=$((POLL_DELAY + 1)); fi
;;
*)
printf 'Unexpected task status: %s
' "$STATUS" >&2
exit 1
;;
esac
done请求参数(input 对象)
生成参数放在 input 中,model 和可选 callback_url 放在请求根级。使用标准 JSON 类型;不支持的 input 字段会被拒绝。
| 字段 | 类型 | 必填 | 默认值 | 描述 |
|---|---|---|---|---|
| prompt | string | 是 | - | 必填非空字符串,去除首尾空白后最多 5,000 个 Unicode 字符。 |
| start_image_url | string | 是 | - | 必填首帧图片的公开 HTTP(S) URL,须包含主机名且不能包含凭据或空白。 |
| end_image_url | string | 否 | - | 可选尾帧图片的公开 HTTP(S) URL;不使用时省略,不能传空字符串或 null。 |
| duration | integer | 否 | 5 | 仅支持整数值 5 或 10,省略时默认为 5 秒。不接受字符串、布尔值、小数时长或 null。 |
| negative_prompt | string | 否 | - | 可选字符串,描述希望避免的内容。 |
响应字段(查询状态接口)
GET /api/generate/status/{task_id} 接口返回的详细参数说明:
| 字段 | 类型 | 描述 |
|---|---|---|
| code | integer | 接口响应状态码(200 表示成功)。 |
| data.task_id | string | 全局唯一的生成任务标识符。 |
| data.status | string | 任务执行阶段:not_started(排队)、running(处理中)、finished(已完成)或 failed(失败)。 |
| data.files | array | 生成成功时返回的媒体资产列表,包含 file_url 与 file_type。 |
| data.error_message | string | null | 当任务失败时返回的具体诊断错误信息。 |
任务生命周期
客户端应持续轮询任务状态,直至进入 finished 或 failed 终态:
not_started排队中
running生成中
finished已就绪
failed失败
轮询与异常处理
- 轮询频率建议建议提交任务后前 10 秒每隔 2-3 秒轮询一次,之后可适度放缓至 5 秒一次。
- 网络容错设计遇到临时网络抖动或网关 5xx 错误时不要重新提交任务,应使用原 task_id 继续轮询重试。
- 回调机制(Webhook)在提交任务时传入 callback_url,可在任务完成时自动接收系统推送的最终结果。
接口规格
| 规格项 | 取值 | 说明 |
|---|---|---|
| 模型 | kwaivgi/kling-video/v2.1/pro/image-to-video | |
| 时长 | 5 / 10 s | 仅支持整数值 5 或 10,省略时默认为 5 秒。不接受字符串、布尔值、小数时长或 null。 |
Kling 2.1 Pro Image to Video
Kling 2.1 Pro Image to Video 是快手(Kwaivgi)研发的旗舰级图像生成视频模型。端点专为专业影视制作、商业广告大片与高端动态视觉设计打造,原生输出 1080p 全高清电影级画质,具备极为细腻的微观肌理与光影层次。核心亮点在于支持通过 start_image_url 与可选的 end_image_url 设定首尾双关键帧,精确约束镜头运动起点与角色动作归宿,由模型智能补全两者之间真实自然的物理过渡与时空轨迹。提供 5 秒与 10 秒两种时长规格,单次生成 55 积分($0.275)起,为对镜头确定性与画质有极致追求的创作者提供了顶级控制力。
为什么选择此模型
原生 1080p 影视级超高清成片原生呈现 1080p 全高清超细腻画面,角色微表情、发丝光泽、服装织物纹理与环境空间反射真实自然。
首尾双关键帧精准闭环独家支持同时指定起始帧与结束帧,模型自动智能推演两帧之间的动态过渡与运镜轨迹,实现分镜动作精准闭环。
电影级光影与空间物理模拟具备严谨的物理规律认知与景深层次渲染,复杂运镜下能够保持光影投射、反射与阴影运动的时空一致性。
5 秒与 10 秒电影叙事时长提供 5 秒商业广告镜头与 10 秒丰富叙事段落两种规格,满足不同分镜时长的专业节奏把控。
商业级视效的高性价比费率5 秒仅需 55 积分($0.275),10 秒仅需 110 积分($0.550),相比同类商业级超高清视频生成模型具备显著成本优势。
参数列表
| 参数 | 要求 | 说明 |
|---|---|---|
| prompt | 是 | 必填非空字符串,去除首尾空白后最多 5,000 个 Unicode 字符。 默认值 - |
| start_image_url | 是 | 必填首帧图片的公开 HTTP(S) URL,须包含主机名且不能包含凭据或空白。 默认值 - |
| end_image_url | 否 | 可选尾帧图片的公开 HTTP(S) URL;不使用时省略,不能传空字符串或 null。 默认值 - |
| duration | 否 | 仅支持整数值 5 或 10,省略时默认为 5 秒。不接受字符串、布尔值、小数时长或 null。 默认值 5 |
| negative_prompt | 否 | 可选字符串,描述希望避免的内容。 默认值 - |
使用步骤
上传必填起始帧通过本地文件上传或在 start_image_url 传入公网可访问的图片 URL,作为视频运动的起始画面。
添加可选结束目标帧若需要确定性终态,可在 end_image_url 中指定目标结束帧,用于约束视频最后一帧的构图与姿态。
编写场景动态与过渡提示词在 prompt 中详细指引主体动作、镜头推拉摇移方式以及首尾帧之间的运动演变过程。
配置时长规格与负向提示词选择 5 秒或 10 秒时长,并可在 negative_prompt 中输入希望过滤的形变与异常噪点。
提交生成并下载 1080p 视频点击运行获取 task_id,通过异步轮询接口获取任务状态,并在生成完成后下载 1080p MP4 视频。
价格说明
按视频计费。1 积分 = $0.005。
| 计费项 | 费率 | 说明 |
|---|---|---|
| Pro · 5 秒 | 55 积分/视频 | $0.275/视频 |
| Pro · 10 秒 | 110 积分/视频 | $0.550/视频 |
推荐应用场景
商业广告与品牌视觉大片制作满足大屏展示与品牌传播的高清晰度动态广告、时尚大片和视觉宣传片,呈现顶级画质质感。
影视分镜与复杂运镜预演在影视筹备期建立精确的分镜视效预览,通过首尾双帧准确还原导演对机位轨迹和演员调度的构想。
确定性首尾转场特效为宣传片设计起始画面到结束画面的平滑变形、昼夜光影流转或场景时空穿梭等高难度转场动画。
高保真人像动态与微表情演绎对写实数字人或艺术肖像进行动态化演绎,精准还原眼神流转、微笑与发丝随风飘逸的微妙细节。
使用技巧
- 确保首尾帧主体透视与空间相对连贯:使用 end_image_url 时,起始帧与结束帧的主体比例、朝向与光影逻辑应具备合理过渡空间,避免生硬跳跃。
- 在提示词中明确描述过渡过程:提示词应重点描述由起始状态演变至结束状态的中间动作,如'缓缓转身并步入阴影',帮助模型规划最佳路径。
- 复杂运镜优先选择 10 秒时长:对于大幅度摄影机旋转、角色奔跑或复杂空间穿梭,10 秒时长能够为物理过渡提供更平稳充足的时间轴。
- 输入高质量高分辨率源图:使用 1080p 及以上分辨率的高清原图作为输入,能最大化激活模型在微观纹理与光影层次上的渲染优势。
- 使用推拉摇移专业术语指导镜头:在提示词中善用'推进特写'、'水平横摇跟随'、'低角度仰拍'等行业术语,能得到更符合预期的电影运镜。
注意事项
- 双帧依赖关系规则:end_image_url 为可选参数,但若传入则必须同时提供 start_image_url;单独仅传入尾帧无法通过校验。
- 严格整数时长校验规则:duration 字段仅支持整数 5 或 10 秒,传入浮点数、字符串或 null 会被直接拒绝。
- 异步任务生命周期与失败返款:调用后生成 task_id 异步执行,预扣对应积分;若任务因系统异常返回 failed,所扣积分全额自动退还。
Kling 2.1 Pro Image to Video API 常见问题
Kling 2.1 Pro Image to Video API 是什么?
Kling 2.1 Pro Image to Video 是快手(Kwaivgi)用于电影级图像生成视频的模型。它将静态参考图像转化为原生 1080p 全高清视频,支持 5 秒与 10 秒时长,并具备起始帧与可选结束帧双关键帧约束能力。基于先进的时空生成扩散架构,它在完整保留源图人物身份面貌、服装纹理与光影构图的同时,模拟复杂细腻的物理运动与运镜轨迹。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。
Kling 2.1 Pro Image to Video 的尾帧参数如何使用?
同时传入 start_image_url 与 end_image_url 时,模型会将首张图作为视频开头,尾张图作为视频结尾,并在 5 秒或 10 秒时长内智能计算两帧之间的平滑动态与机位过渡,实现高精度的动作闭环。
Kling 2.1 Pro Image to Video 的输出分辨率是多少?
Kling 2.1 Pro Image to Video 原生输出 1080p 全高清视频。生成的视频严格保留输入素材的原生构图与画幅比例,在超宽大屏与移动端高分辨率视网膜屏上均能呈现超细腻的画质表现。
Kling 2.1 Pro Image to Video 支持配置哪些时长?
模型支持配置 5 秒或 10 秒视频,在请求中的 duration 参数传入整数值 5 或 10 即可。若省略该字段,系统默认按照 5 秒生成。不支持传入小数或非数字格式。
Kling 2.1 Pro Image to Video 如何计费?
费用按单次视频生成扣除积分:5 秒视频为 55 积分($0.275),10 秒视频为 110 积分($0.550)。任务提交时预扣积分,若任务因系统原因生成失败,所消耗积分将自动全额返还。
在什么场景下应该优先选择 Kling 2.1 Pro?
当你的项目对成片分辨率有 1080p 全高清严苛要求,或者需要通过 end_image_url 锁定最终结束姿态时,应首选 Pro 端点;如果仅需要低成本验证创意或制作常规社交短视频,选择 720p 的 Standard 端点更为经济。
Kling 2.1 Pro Image to Video 可以只输入起始帧吗?
完全可以。end_image_url 是可选参数。如果不传入尾帧,Kling 2.1 Pro 将作为标准单图生视频模型运行,完全依靠文本提示词驱动 start_image_url 生成 1080p 视频。
Kling 2.1 Pro Image to Video 对图片链接有哪些要求?
start_image_url 与可选的 end_image_url 均须为公网可直接访问的 HTTP(S) 图片链接,支持 JPG、PNG 与 WebP 格式。链接不能包含内网地址、空格或账号密码等身份认证凭据。