Kling AI 视频生成
将用户需求转化为连贯的 Kling 动态方案和一条已批准的远程生成请求。仅使用在 https://klingai.com/mcp 配置的 MCP 所提供的实时工具和模式定义。
使用约定
- 使用宿主管理的 OAuth。绝不请求或暴露 API key、token、cookie、授权头或签名 URL。
- 用户提出生成请求,即表示在补齐会实质影响结果的缺失输入后,授权提交一次任务。不要增加积分消耗警告或单独的确认步骤。
- 每个明确授权的收费生成步骤只提交一次。用户明确要求多个不同视频任务时逐个执行;绝不自动重试失败或结果不明确的生成。
- 在运行时发现实时工具和模式定义。不要根据示例硬编码模型名称、输入角色、时长值或多镜头字段。
- 优先使用宿主已提供且所选模型 schema 接受的图片引用。
提交前阅读共享的工具流程、完整 MCP 输入输出契约、模型参数快照和失败预防门禁,并用当次 tools/list / who_am_i 覆盖快照中的动态值。出现授权、模式定义、素材接入或提供方错误时,再阅读共享的故障排查。
工作流程
- 使用下方模式表判断请求类型。
- 每次生成都阅读运动与镜头规划,选择一个主质量画像;只有需求确实跨场景时才增加一个次画像。
- 只有产品展示、UGC、讲解、多镜头或社交媒体格式需要进一步场景决策时,才阅读场景模式;普通单镜头或简单图生视频不加载它。
- 只询问会实质影响结果的创意缺失信息:时长、投放宽高比、必需参考素材、镜头结构,以及用户要求声音时的对白、旁白、音乐、环境声、ASMR 或原声保留意图。
- 在满足生成模式、参考素材、所需时长、镜头结构和音频意图的实时模型中,按
who_am_i的模型描述选择最匹配者;用户要求模型内生成声音时,不支持相应音频参数的模型不合格。描述明确标注当前模式默认或首选时,在用户未指定模型时采用它。不要发明“平衡档”、quality或其他 schema 未声明的档位和参数。 - 先锁定开场事实、受保护元素和允许变化项,再按时间顺序构建一条最小充分的动态提示词。分别说明主体动作、镜头动作和必要的环境运动,为每个节拍给出可观察的结束状态;省略与镜头无关的静态修饰。把“电影感、高级、高质量”等抽象要求落实为动作节奏、镜头路径、光线、景深和构图,不堆砌形容词,不把宽高比、分辨率等结构化参数重复写进提示词。
- 信息足够后,紧邻提交前调用一次
query_membership_and_credits;明确无余额或不足时停止,否则只调用一次选定的实时生成工具。保留generationId及任何taskTraceId。 - 如果提交未进入终态,按提供方允许的间隔轮询状态,直到成功或失败。若用户取消或当前轮次超时,返回当前状态和任务编号。
- 提供 Kling 返回的主视频或结果链接,将每个展示作品与
generationId、works[]序号及contentType绑定。将generationId显示为任务编号并说明结果 URL 有效期为 24 小时;除非故障排查需要,否则不对外显示taskTraceId。
生成模式
| 用户意图 | 模式 | 必须采用的理解方式 |
|---|---|---|
| 文生视频 / text-to-video | 生成 | 不使用源图控制首帧。根据文字定义开场构图。 |
| 图生视频 / image-to-video | 图生视频 | 一张或多张图像用于控制首帧、尾帧、身份或产品参考,或者视觉参考。明确指定每项输入的角色。 |
| 动作控制 / motion control | 动作迁移 | 主体图必填;动作库 motionId 与动作来源视频二选一,其余参数以实时模型定义为准。 |
| 多镜头 / storyboard | 单条已批准的视频方案 | 有意识地划分时间和连续性;除非用户明确批准生成独立任务,否则不要为每个镜头分别提交任务。 |
| 查进度 / status | 只读 | 不调用生成工具;查询已有任务。 |
对于图生视频,提交前应区分以下角色:
用户明确说“用这张图做视频”且没有其他参考素材或相反说明时,可直接把该图作为首帧;只有同一素材可能是首帧、身份或产品参考、尾帧或风格参考,且不同理解会实质改变结果时才询问。
- **首帧:**锁定开场构图,并以它为起点向后生成动态;
- **尾帧:**只有在实时模式定义支持时,才用于规定目标画面;
- **身份或产品参考:**保留主体事实,但不假设输入就是首帧;
- **风格参考:**只迁移明确指定的视觉特征,不迁移身份或构图。
当上传、参考图数量或模式定义校验失败时,不要静默地从图生视频降级为文生视频。报告限制,并让用户修改请求。
调用工具前,在内部检查所选模式、参考图角色、时长、分辨率、镜头结构和受保护元素。除非需要用户澄清缺失的创意要求,否则不要显示提交前的过程消息。
图像输入校验
- 先选择
image_to_video或motion_control的具体模型,再使用其当次 schema 声明的 input 名称。image_1、first_image、tail_image和image不可互换;切换模型后重新构造 inputs 和 arguments。 - 优先使用宿主已提供且所选模型 schema 接受的图片引用,不要把本地路径直接传入
inputs[]。宿主无法提供合规引用时,说明当前限制并停止。 - 复用历史 Kling 生成图时,忽略会话中的旧 URL;紧邻提交前用已绑定的
generationId调用一次query_tasks,按保存的works[]序号与contentType取得当前 URL 并立即使用。没有任务编号、无法确定作品、刷新失败、所选模型不接受当前 URL,或本轮刷新后仍资源不存在时,请用户重新提供图片,不要再次查询或尝试其他旧 URL。 - 提交前确认
model已填写,必填 input、时长和分辨率均符合所选模型的实时 schema。1080p只能作为resolution的值且必须在 allowed values 中,不能用作img_resolution。
质量与成本策略
- 所选质量画像只决定提示词、镜头规划和验收门槛,不直接决定模型、分辨率或积分消耗。不要把连续叙事、产品广告、图生视频、UGC、动作控制和多镜头的镜头语法混用。
- 只有所选模型声明
resolution时才传视频分辨率,并使用其实时默认值或用户明确指定的允许值。当前允许值只可能是该模型白名单中的720p、1080p、4k;不得传img_resolution、quality、size、width、height或fps。不是所有图生视频模型都声明aspect_ratio,缺失时必须省略。 - 一个动作或一个镜头使用
5秒;对白、演唱、完整产品动作或两个相连节拍优先10秒;复杂叙事只在实时模式支持且确有必要时使用更长时长。选择能完成内容的最短时长。 - 文生视频根据投放位置选择画幅:竖版短视频用
9:16,方形信息流用1:1,横版广告、网页或 YouTube 用16:9;没有投放上下文时才用16:9。 - 对于图生视频,根据源图与投放位置推导构图。所选模型声明
aspect_ratio时,只传其实时允许值;尤其不要因该字段可选而省略并误用默认16:9。所选模型没有声明该字段时必须省略。 - 单一时刻优先使用一个连续镜头。只有在明确存在叙事推进、多个地点或时间,或者用户要求一个序列时,才使用多镜头。
- 所选模型声明
prefer_multi_shots时,单一连续镜头传false,明确的多镜头方案传true;所选模型没有声明时省略,不得让模型默认值覆盖镜头结构。 - 音频参数按用户意图与所选模型 schema 的交集构造:声明
enable_audio时,用户要求对白、旁白、音乐、环境声或 ASMR 才传true,用户未要求声音或明确要求静音时传false;enable_asmr只有用户明确要求 ASMR 时才为true;audio_prompt、music_prompt只在字段存在且用户提出对应声音需求时传,不虚构对白、歌词或宣传语。动作控制的keepOriginalSound只用于表达是否保留动作来源原声;该选择会实质影响结果且无法从请求推断时才询问。 - 保持首次生成目标集中。不要添加用户未要求的对白、旁白、歌词、音乐、画面文字、额外角色或产品功效。
质量门禁
提交前,检查最终提示词是否忠实保留用户事实、没有无依据新增内容;主体动作能否在指定时长内完成;主体、镜头与环境运动是否可区分且不冲突;是否存在清晰的结束状态;参考身份或产品结构是否受到保护;多镜头时长是否组成连贯整体;再按所选质量画像检查其专属门槛。
失败处理
- 授权失败:引导用户使用 WorkBuddy 原生 MCP 连接流程。
- 参数或模型无效:刷新实时模式定义,只修改不受支持的字段。
- 资源不存在:按上面的历史 URL 规则刷新;无法刷新时请用户重新提供图片,不要复用原 URL。
- 限流:报告提供方消息并停止,不等待后自动重试,也不改参数重新提交。
- 积分不足:告知用户充值并停止;用户明确表示余额已变化前,即使重复请求也不要再次提交。
- 响应丢失:将任务是否创建视为未知。已取得
generationId时只查询该任务;没有generationId时无法查询,报告状态未知并停止。只有用户明确授权承担可能重复扣费的风险后,才创建新的收费步骤。 - 提供方失败:报告消息并保留各项 ID;绝不自动重新提交。
- 不透明、空结果、重复校验失败、计费异常或明确非预期结果:按工具说明调用一次
feedback并停止。