One continuous five-second documentary portrait of the same adult ramen cook in the small late-night kitchen. With one hand at each end of a short bundle of pale fresh noodle strands, he gently lifts and gives the suspended middle one small downward bounce, loosening the strands without releasing them. His hands stay apart, strands remain connected between the two grips. Steam curls upward from the pot below. Preserve his face, rolled sleeves, apron and kitchen. Fixed waist-up view, warm practical light, natural restrained motion. No cuts, no additional people, no lettering.
Kling 2.1 Standard Image to Video API
kwaivgi/kling-video/v2.1/standard/image-to-videoKling 2.1 Standard Image to Video 将静态参考图片转化为流畅的 720p 动态视频,支持起始帧引导与 5 秒、10 秒可选时长。它在严格保持主体人物面部特征、服饰质感与原始构图光影的同时,模拟符合真实物理规律的肢体动作与平稳运镜。
581/5,000

示例
REST API 参考
快速上手
提交任务并查询进度。带有 example.com 或 your-domain.com 的链接为占位符,请替换为你自己的公开图片链接与回调地址。输出文件链接仅供格式参考。
第 1 步:配置认证信息
在控制台创建 API Key,并在发起提交请求时附带 Authorization: Bearer <API_KEY> 请求头。
- 提交接口
- POST
https://api.vidgo.ai/api/generate/submit - 认证请求头
- Authorization: Bearer VIDGO_API_KEY
第 2 步:提交生成任务
POST /api/generate/submit: kwaivgi/kling-video/v2.1/standard/image-to-video
REQUEST_BODY=$(cat <<'JSON'
{
"model": "kwaivgi/kling-video/v2.1/standard/image-to-video",
"input": {
"prompt": "A slow camera pan across a sunlit garden.",
"start_image_url": "https://example.com/start-frame.png",
"duration": 5
}
}
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"第 3 步:轮询获取生成结果
在状态为 not_started 或 running 时使用 task_id 轮询,到达 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/standard/image-to-video",
"input": {
"prompt": "A slow camera pan across a sunlit garden.",
"start_image_url": "https://example.com/start-frame.png",
"duration": 5
}
}
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,须包含主机名且不能包含凭据或空白。 |
| duration | integer | 否 | 5 | 仅支持整数值 5 或 10,省略时默认为 5 秒。不接受字符串、布尔值、小数时长或 null。 |
| negative_prompt | string | 否 | - | 可选字符串,描述希望避免的内容。 |
响应字段(查询状态)
GET /api/generate/status/{task_id} 返回的具体内容:
| 字段 | 类型 | 说明 |
|---|---|---|
| code | integer | HTTP/业务响应状态码(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 | 当任务状态为 failed 时的错误诊断信息。 |
任务生命周期
客户端应持续轮询状态,直到到达 finished 或 failed 终态:
not_started排队中
running生成中
finished已就绪
failed失败
轮询与错误处理
- 轮询频率建议初始以 2 到 3 秒间隔轮询,对于长时长任务可逐渐退避至 5 秒。
- 网络容错偶发 5xx 响应或超时不代表任务失败,短暂退避后重试查询即可。
- Webhook 回调在提交载荷顶层传入 callback_url,可在任务完成时自动接收结果通知。
规格说明
| 规格项 | 取值 | 说明 |
|---|---|---|
| 模型 | kwaivgi/kling-video/v2.1/standard/image-to-video | |
| 时长 | 5 / 10 秒 | 仅支持整数值 5 或 10,省略时默认为 5 秒。不接受字符串、布尔值、小数时长或 null。 |
Kling 2.1 Standard Image to Video API 常见问题
Kling 2.1 Standard Image to Video API 是什么?
Kling 2.1 Standard Image to Video 是快手(Kwaivgi)用于图像生成视频的模型。它根据静态起始图像与文本提示词生成 5 秒或 10 秒的高流畅度 720p 动态视频,支持细腻的动作演进与运镜控制。基于先进的时空生成扩散架构,它在严格保持输入图片的主体身份、服装纹理与光影构图的同时,模拟逼真自然的物理动态。你可以通过 API 进行程序化调用,也可以在上方体验区直接在线试用。
Kling 2.1 Standard Image to Video 生成的分辨率是多少?
Kling 2.1 Standard Image to Video 原生输出 720p 高清视频。生成的视频会保持输入起始图片的原始画幅比例与构图关系,无论是 16:9 横屏还是 9:16 竖屏均能自然适配。
Kling 2.1 Standard Image to Video 支持尾帧控制吗?
Kling 2.1 Standard Image to Video 仅接受 start_image_url 首帧图片,不支持 end_image_url 尾帧。如果你需要同时指定起始画面和结束画面并生成两者间的平滑过渡,请选用 Kling 2.1 Pro Image to Video 端点。
Kling 2.1 Standard Image to Video 支持哪些生成时长?
模型支持生成 5 秒或 10 秒的视频,调用时通过 duration 参数传入数值 5 或 10。如果请求中省略该字段,系统默认按照 5 秒规格进行生成。不支持小数或字符串时长。
Kling 2.1 Standard Image to Video 的计费规则是什么?
费用按单次视频生成计费:5 秒视频扣除 30 积分($0.150),10 秒视频扣除 60 积分($0.300)。积分在任务提交时预扣,若任务因系统原因生成失败,所扣积分将全额自动返还。
Kling 2.1 Standard Image to Video 支持哪些图片格式?
在线体验区支持上传不超过 10 MiB 的 JPG、PNG 与 WebP 图片。通过 REST API 直接调用时,须在 start_image_url 提供公网可直接访问的 HTTP(S) 图片链接,且链接不能包含认证凭据或空格。
Kling 2.1 Standard Image to Video 的负向提示词如何发挥作用?
通过可选的 negative_prompt 参数,你可以显式声明希望在视频中规避的内容,例如肢体形变、面部扭曲、画面模糊、突然抽搐或噪点瑕疵,从而提高画面的纯净度与运动平稳性。
Kling 2.1 Standard 与 Kling 2.1 Pro 的主要区别是什么?
Standard 专注于 720p 高性价比单首帧动态生成,5 秒仅需 30 积分,10 秒 60 积分;Pro 端点升级为原生 1080p 全高清画质,并独家支持通过 end_image_url 实现首尾双关键帧控制,5 秒需 55 积分,10 秒 110 积分。