关于 kling-official
kling-official 是一项技能,介绍如何在 OpenMontage 中使用 Kling 官方视频、图像、TTS、虚拟形象和唇形同步 API。它区分官方接口与 fal.ai 路径,并说明参数、任务处理和使用限制。
主要功能
- 01配置 Kling 官方提供方
- 02视频与图像生成流程
- 03TTS、虚拟形象和唇形同步指南
- 04Classic、Turbo 和 Omni 任务协议
- 05费用、回调与错误处理
适用场景
- 01在 OpenMontage 中选择 Kling 官方路径
- 02配置视频或图像生成请求
- 03处理任务状态和返回媒体
- 04区分提供方能力与回退路径
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ calesthio/ openmontage --skill kling-official安装后在 Claude Code 中输入/kling-official确认已加载。
详细介绍
Kling 官方 Direct API
在 OpenMontage 工具中使用 provider="kling_official" 时,请使用此技能。这不是 fal.ai Kling 网关。官方 Kling 使用 KLING_API_KEY、可选的 KLING_API_BASE_URL,以及 Authorization: Bearer <KLING_API_KEY>。
Provider 区分
kling_video使用 fal.ai、FAL_KEY、fal.ai 队列 URL,以及provider="kling"。kling_official_video使用 Kling 官方 API、KLING_API_KEY、官方任务协议,以及provider="kling_official"。kling_official_image使用相同的官方身份验证和任务协议来生成图像。kling_tts使用官方音频 TTS 端点,并保留在现有的tts功能中。kling_avatar和kling_lip_sync使用官方头像/口型同步端点,并保留在现有的avatar功能中。它们不会取代本地的talking_head或lip_sync。
绝不要在不提示的情况下切换这些路径。如果所选 provider 不可用,请说明阻碍并在替换前征求确认。
身份验证与端点
默认基础 URL:
https://api-singapore.klingai.com
用户可以通过 KLING_API_BASE_URL 覆盖此设置,例如使用区域端点。所有请求均以 JSON 格式发送,并包含:
Authorization: Bearer <KLING_API_KEY>
任务协议
经典 API:
- 创建 ID 的路径:
data.task_id - 状态:
submitted、processing、succeed、failed - 结果路径:
data.task_result.videos[]、data.task_result.images[]、data.task_result.audios[]
Turbo API:
- 创建 ID 的路径:
data.id - 轮询路径:
GET /tasks?task_ids=<id> - 状态:
submitted、processing、succeeded、failed - 结果路径:
data[0].outputs[]
请将解析器分开。不要编写会猜测 task_id 与 id、或 succeed 与 succeeded 之间区别的模糊解析器。
Omni 参考
Video Omni 和 Image Omni 均保留在现有 provider 工具中,通过 api_family="omni" 使用。
不要创建选择器级别的 Omni 操作。
Video Omni 接受以下官方参考结构:
image_list[],包含image_url和可选的type,例如first_frame或end_frame。video_list[],包含video_url、官方refer_type值(例如feature或base),以及可选的keep_original_sound。element_list[],包含官方element_id值。- 结构化的
multi_prompt[];不要自动将自然语言拆分为镜头。
本地图像参考可以通过 tools/_kling/media.py 进行规范化。本地视频路径不得在未提示的情况下通过 fal.ai 上传;请要求提供可访问的 URL,或要求使用此类 URL。
Image Omni 接受包含官方 image 值的 image_list[]。提示词中的 <<<image_1>>> 等占位符必须稳定映射到所提供图像的顺序。如果提示词已经包含占位符,请验证所引用的图像确实存在,并且不要插入重复项。
功能边界
TTS、头像和口型同步是对现有 OpenMontage 功能的 provider 扩展。音频效果和视频效果是 Kling 官方端点,但在流水线具备稳定的功能槽位之前,不会注册为默认的 OpenMontage 工具。
- 不要在 provider 实现中添加
sound_effects或video_effects功能。 - 不要让视频效果进入常规的
video_generation选择器路径。 - 不要将短音效伪装成长背景音乐,除非某个流水线明确使用此类音频形式,且该工具的
best_for/not_good_for也对此作出说明。
视频参数
使用 operation 表示 OpenMontage 语义:
text_to_videoimage_to_videoreference_to_video
使用 api_family 选择官方协议:
classicturboomni
重要约束:
- 官方视频提供商的输入架构不得公开顶层
image_url;应使用reference_image_url或reference_image_path。 - Classic 图生视频接受
reference_image_url,或转换为原始 base64 并填入官方字段image的本地路径。 - Turbo 图生视频要求首帧为 URL。不得将本地文件上传到 fal.ai 作为回退方案。
- 仅在当前架构支持时发送
aspect_ratio:Classic 文生视频、Turbo 文生视频和 Video Omni。 - 默认的付费路径应避免使用
4k、原生声音或批量行为,除非用户明确选择。
图像参数
/v1/images/generations 使用 api_family="generation",/v1/images/omni-image 使用 api_family="omni"。
生成/编辑路径:
- 必须提供
prompt,且长度应低于官方的 2500 字符限制。 image_url会原样传递为官方字段image。image_path会转换为原始 base64,并作为官方字段image发送。image_reference可以是subject或face。
Omni 路径:
- 使用官方字段
image,将参考图放入image_list[]。 - 仅当提示词需要绑定特定参考图时,才使用
<<<image_1>>>等提示词占位符。
TTS 参数
kling_tts 使用:
textvoice_idvoice_language,目前支持zh或envoice_speed
除非已验证某个官方账号专属默认值,否则必须明确提供 voice_id。不得硬编码虚构的语音。下载每个返回的音频项,将 data.output_path 设为第一个本地文件,并包含 voice_id、voice_language、voice_speed、task_id 和非零的 cost_usd。
Avatar 参数
kling_avatar 使用 /v1/videos/avatar/image2video,并接受:
- 通过 URL 提供的头像图像,或转换为原始 base64 的本地路径
audio_id或sound_file- 可选的
prompt mode,例如std或pro
将其与本地 talking_head 分开。需要 Kling avatar 输出的流水线必须明确列出并选择该功能。
唇形同步参数
kling_lip_sync 分为两个步骤:
- 使用
video_id或video_url调用POST /v1/videos/identify-face;从data.face_data[]读取人脸 - 调用
POST /v1/videos/advanced-lip-sync,传入session_id和一个face_choose[]项,其中包含face_id、audio_id或sound_file,以及声音的开始、结束和插入时间
不得通过 fal.ai 或任何其他提供商静默上传本地视频路径。如果返回多张人脸,且用户未传入 face_id 或 face_choose,则停止并返回人脸列表以供确认,除非明确设置了 auto_select_face=True。如果自动选择人脸,应在结果/产物中记录选择理由和所选人脸。
音频特效和视频特效
官方 Kling 音频特效(/v1/audio/text-to-audio、/v1/audio/video-to-audio)和视频特效(/v1/videos/effects)有意不作为默认 OpenMontage 选择器工具。应在文档/测试中记录不映射的原因,而不是注册当前流水线可能误用的工具。
Elements 辅助工具
Elements 是 Kling Official 的内部辅助工具,并非新的 OpenMontage 工具能力。
使用 tools/_kling/elements.py 规范化 element_list[].element_id,可选择查询只读元素端点,并在查询时记录元素元数据。不得通过默认提供商路径创建或删除元素。
账号用量辅助工具
账号用量仅用于诊断。使用 tools/_kling/account.py 低频检查 /account/costs,并启用本地缓存和节流保护。不得在每次生成前调用,也不得将其加入选择器或生产流水线阶段。
对于 1101 或 1102,应说明账号或资源包已耗尽,并提供账号用量诊断提示。
回调说明
服务提供方可能接受 callback_url,但轮询仍是默认执行模式。
- Classic 和 Omni 路径在顶层传递
callback_url。 - Turbo 路径通过
options.callback_url传递。 - 成功结果应记录
callback_requested=true、polling_used=true、callback_url和task_id。 - 发送前验证回调 URL;仅允许绝对
http或httpsURL。
错误处理
尽可能提供官方的 code、message 和 request_id。
不要重试:
- 身份验证失败:
1000-1004 - 余额/资源包耗尽:
1101、1102 - 权限/模型访问:
1103 - 参数错误:
1200、1201 - 安全策略:
1301
以下情况可以有限重试:
1302请求过快1303并发/资源包槽位限制5000、5001、5002服务器/维护/积压错误
对于 1303,说明账号触发了并发或资源包槽位限制。
成本治理
官方 Kling 是付费远程 API。服务提供方工具必须在 estimate_cost() 中返回非零的保守估算值,并在成功的付费结果中包含 cost_usd。在实现账号用量核对之前,应将估算视为低置信度。
多个参考图、元素 ID、result_type="series"、mode="4k" 和 sound="on" 等高成本 Omni 输入必须提高成本估算,或对其进行标记。
提示词说明
对于视频,请从通用的 OpenMontage 视频提示词骨架开始:主体、主体动作、场景、空间构图和摄像机。Kling 通常对清晰的动作时间顺序、摄像机运动动词和简洁的负面提示词响应良好。对于参考工作流,请说明哪些内容应与参考保持一致,哪些内容应发生变化。