diff --git a/plugins/Wlain/kling-ai/LICENSE b/plugins/Wlain/kling-ai/LICENSE new file mode 100644 index 0000000..15cab3e --- /dev/null +++ b/plugins/Wlain/kling-ai/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 KLING AI Pte Ltd + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/plugins/Wlain/kling-ai/README.md b/plugins/Wlain/kling-ai/README.md new file mode 100644 index 0000000..cb461ce --- /dev/null +++ b/plugins/Wlain/kling-ai/README.md @@ -0,0 +1,70 @@ +# 可灵 AI + +通过可灵国内远程 MCP,在 MiniMax Code 中创建和查询图片、视频与动作任务。插件只连接 `https://klingai.com/mcp`,不启动本地 MCP server,也不包含 API Key、Token 或 Cookie。 + +## 试一试 + +```text +使用可灵生成一张 16:9 的电影感雨夜城市图片。 +``` + +预期行为:MiniMax Code 先通过系统浏览器连接用户的可灵账号,加载远程工具;参数明确后只提交一次生成任务,并返回任务编号和当前结果。 + +## 功能 + +- 文生图、图生图与参考素材创作 +- 文生视频、图生视频与动作控制 +- 查询账号灵感值、任务状态和已有结果 +- 上传素材与管理可复用 Element +- 保留 `generationId` / `taskTraceId`,避免结果不明确时重复计费提交 + +## 要求与当前兼容性 + +- 中国大陆可灵账号;服务端点固定为 `https://klingai.com/mcp`。 +- 真实生成可能消耗账号灵感值,具体以可灵账号和实时工具说明为准。 +- 需要 MiniMax Code 支持受保护远程 MCP 的 OAuth discovery、动态客户端注册或宿主管理的预注册客户端,以及 Authorization Code + S256 PKCE。 + +MiniMax Code 3.0.67 可以发现本插件和三个 Skills,但当前公开 runtime 没有在远程 MCP 返回标准 `401` 后启动浏览器 OAuth,因而无法完成 `tools/list` 和工具注入。MiniMax Code 的公开 Agent Plugin 契约也说明 generic OAuth 尚不是公开能力。该兼容性问题正在 [MiniMax Code issue #120](https://github.com/MiniMax-AI/minimax-code/issues/120) 跟踪;在宿主完成支持和真实联调前,本贡献只能作为 Draft 评审,不宣称实时 MCP 已可用。 + +## OAuth 与安全边界 + +- 登录和 token 生命周期必须由 MiniMax Code 管理;插件不会要求用户在对话中粘贴凭据。 +- `X-Kling-Integration: Plugin-MiniMaxCode` 只是非秘密集成标识,不是授权头或 OAuth 客户端名。 +- 每个明确的生成意图至多提交一次。失败、超时或结果未知时先查询原任务,不盲目重试。 +- 退出或切换账号、删除 Element 等状态变更只在用户明确要求时执行。 + +## 数据与网络 + +- 业务网络目标是 `https://klingai.com/mcp`,以及可灵工具响应中明确返回的一次性上传地址或结果地址。 +- 用户提示词、明确提供的参考素材和生成参数会发送给可灵以完成所请求的操作。 +- 账号凭据由宿主管理,不进入插件文件、对话或日志。 +- 工具返回的签名地址可能包含临时访问能力,不应复制到诊断日志或公开 Issue。 + +## 包结构 + +```text +kling-ai/ +├── plugin.json +├── mcp.json +├── README.md +├── LICENSE +└── skills/ + ├── kling-ai/ + ├── kling-ai-generate-image/ + └── kling-ai-generate-video/ +``` + +## 验证 + +在 `MiniMax-Code-Plugins` 仓库根目录运行: + +```bash +npm install +npm run check +``` + +静态校验覆盖目录布局、Manifest、MCP transport、Skills、许可证、占位符和路径安全。真实 runtime 验收还必须在支持 OAuth 的 MiniMax Code 构建中完成浏览器授权、`tools/list`、只读账号查询和一次用户确认后的生成测试。 + +## 许可证 + +[MIT](./LICENSE) diff --git a/plugins/Wlain/kling-ai/mcp.json b/plugins/Wlain/kling-ai/mcp.json new file mode 100644 index 0000000..89d2e34 --- /dev/null +++ b/plugins/Wlain/kling-ai/mcp.json @@ -0,0 +1,12 @@ +{ + "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", + "mcpServers": { + "kling-ai": { + "type": "streamable-http", + "url": "https://klingai.com/mcp", + "headers": { + "X-Kling-Integration": "Plugin-MiniMaxCode" + } + } + } +} diff --git a/plugins/Wlain/kling-ai/plugin.json b/plugins/Wlain/kling-ai/plugin.json new file mode 100644 index 0000000..869fcf1 --- /dev/null +++ b/plugins/Wlain/kling-ai/plugin.json @@ -0,0 +1,20 @@ +{ + "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json", + "name": "kling-ai", + "version": "0.1.0", + "description": "通过 MiniMax Code 中的可灵远程 MCP 创建和查询图片、视频与动作任务。", + "author": { + "name": "KLING AI Pte Ltd", + "url": "https://klingai.com" + }, + "homepage": "https://klingai.com", + "repository": "https://github.com/MiniMax-AI/MiniMax-Code-Plugins/tree/main/plugins/Wlain/kling-ai", + "license": "MIT", + "keywords": [ + "minimax-code", + "kling-ai", + "image-generation", + "video-generation", + "mcp" + ] +} diff --git a/plugins/Wlain/kling-ai/skills/kling-ai-generate-image/SKILL.md b/plugins/Wlain/kling-ai/skills/kling-ai-generate-image/SKILL.md new file mode 100644 index 0000000..e7327df --- /dev/null +++ b/plugins/Wlain/kling-ai/skills/kling-ai-generate-image/SKILL.md @@ -0,0 +1,66 @@ +--- +name: kling-ai-generate-image +description: 通过 MiniMax Code 中的 Kling AI 生成高质量图像。支持文生图、图生图,适用于海报、产品摄影、广告创意和参考素材创作。 +--- + +# Kling AI 图像生成 + +将创意需求转化为一条规格明确的 Kling 图像请求。仅使用在 `https://klingai.com/mcp` 配置的 MCP 所提供的实时工具和模式定义。 + +## 使用约定 + +- 使用 MiniMax Code 管理的远程 MCP OAuth。绝不请求或暴露 API key、token、cookie、授权头或签名 URL;宿主无法进入浏览器授权时停止并报告兼容性限制。 +- 用户提出生成请求,即表示在补齐会实质影响结果的缺失输入后,授权提交一次任务。不要增加积分消耗警告或单独的确认步骤。 +- 每个已批准的意图只提交一次。绝不盲目重试结果不明确或失败的提交。 +- 先发现实时模式定义,再选择工具、模型、输入名称或枚举值。实时提供方字段优先于本文示例。 +- 需要时,使用远程上传工具上传附带的参考媒体,并原样复用返回的提供方引用。 + +提交前阅读[完整 MCP 输入输出与当前模型参数快照](../kling-ai/references/mcp-contract.md),并用当次 `tools/list` / `who_am_i` 覆盖快照中的动态值。 + +## 工作流程 + +1. 使用下方模式表判断请求类型。 +2. 对于产品、广告、缩略图、人像、编辑视觉或概念创作,阅读[场景模式](references/scene-patterns.md)。 +3. 当需求模糊、包含参考图或精确文案,或者需要多个受控变体时,阅读[提示词构建](references/prompt-construction.md)。 +4. 只询问会实质影响结果的缺失信息:主体或产品、用途、宽高比、必需文案或必须保持一致的参考身份。 +5. 在满足生成模式和参考素材的实时模型中,优先完整质量模型;只有用户明确要求草稿、快速或省灵感值时才优先低成本或极速模型。 +6. 构建一条提示词,分别说明主体、动作、环境、构图、光线、色彩、材质细节、镜头语言和排除项。把“高级、电影感、高质量”等抽象要求落实为可见的光线、材质、景深、色彩和构图,不要只堆砌形容词。 +7. 信息足够后,只调用一次实时图像生成工具。保留准确的 `generationId` 及任何 `taskTraceId`。 +8. 返回同一次调用的当前状态、文本或结构化回落和任务编号,不为了等待完成循环调用状态工具。用户之后明确查询时只查询同一任务一次。 +9. 优先使用 MiniMax Code 自动呈现的原生工具结果。不要由 Skill 手写 Markdown 图片/视频语法、额外媒体附件或缩略图、重复下载链接;没有原生媒体呈现时只返回至多一个主图链接。将 `generationId` 显示为**任务编号**,除非故障排查需要,否则不对外显示 `taskTraceId`。 + +## 生成模式 + +| 用户意图 | 模式 | 必须采用的理解方式 | +| --- | --- | --- | +| 文生图 / text-to-image | 新建图像 | 不使用源图控制身份或构图,完全根据文字需求构建场景。 | +| 图生图 / image-to-image | 编辑或参考图引导的图像 | 至少一张图像用于控制内容、身份、产品结构、构图或风格。为每项输入明确指定角色。 | +| Element 参考主体 | 图生图 | 先读取 Element,确认它是图片主体,并只选择实时模式定义明确支持 `elements` 的图生图模型。文生图不使用 Element。 | +| 变体 / restyle | 聚焦单项变化的图生图 | 锁定源图中所有未指定的事实,并明确唯一允许改变的内容。 | +| 查进度 / status | 只读 | 不调用生成工具;查询已有任务。 | + +不要静默切换模式。附带图像不等于自动要求图生图:如果用户要求生成一张无关的新图像,只有在确认附件与请求无关后才能忽略它。反过来,在上传或模式定义校验失败后,也绝不能把明确的图生图请求降级为文生图。 + +调用工具前,在内部检查所选模式、宽高比、参考图角色和允许的改动。除非需要用户澄清缺失的创意要求,否则不要显示提交前的过程消息。 + +## 质量优先的默认策略 + +- 普通交付默认使用实时模型支持的 `2k`;高质量、商用、广告、精细材质或需要后期裁切时使用 `4k`;只有草稿或速度优先时使用 `1k`。若模型默认分辨率更高,不要主动降级。 +- 当实时模型提供 `quality` 参数时,普通交付使用中档,高质量或商用需求使用高档,草稿才使用低档;参数值必须来自实时枚举。 +- 根据投放位置选择宽高比:`1:1` 用于方形社交媒体图或产品图,`4:5` 用于信息流竖图,`9:16` 用于故事或竖版封面,`16:9` 用于横幅或缩略图。 +- 用户没有要求多个结果时只生成 `1` 张;不要用批量近似图替代清晰的创意决策。 +- 除非用户明确要求在生成图中包含文字,否则优先生成无文字的干净图像。 +- 制作变体时,每次已批准的生成只改变一个明确维度:概念、构图、色彩、镜头距离或表情。不要使用几乎重复的提示词。 +- 将用户提供的品牌名称、标签、标志、人脸和产品结构作为锁定约束保留。绝不虚构功效、价格、认证、成分、效果或统计数据。 + +## 质量门禁 + +提交前,检查需求是否有一个清晰的焦点主体、易读的视觉层级、适合投放位置的安全区域、协调的光线,以及互不冲突的镜头或构图指令。如果宿主能够检查输出,应验证参考图还原度、文字准确性、主体数量和明显瑕疵。无法检查时,不要声称已完成视觉质检。 + +## 失败处理 + +- 授权失败:确认 MiniMax Code 是否对第三方远程 MCP 启动标准 OAuth;无法进入浏览器授权时停止,不改用 API Key。 +- 参数不受支持:刷新实时模式定义,只修改被拒绝的字段。 +- 积分不足:告知用户充值并停止。不要自动重试。 +- 响应丢失:将任务是否创建视为未知;在进行任何新生成前,先查询已有任务。 +- 提供方失败:报告提供方消息并保留各项 ID;不要自动重新提交。 diff --git a/plugins/Wlain/kling-ai/skills/kling-ai-generate-image/references/prompt-construction.md b/plugins/Wlain/kling-ai/skills/kling-ai-generate-image/references/prompt-construction.md new file mode 100644 index 0000000..016bd68 --- /dev/null +++ b/plugins/Wlain/kling-ai/skills/kling-ai-generate-image/references/prompt-construction.md @@ -0,0 +1,50 @@ +# 图像提示词构建 + +## 提示词顺序 + +按以下顺序编写提示词: + +1. 投放位置和媒介:产品照片、编辑人像、海报、缩略图、营销静帧。 +2. 主体和锁定事实:身份、产品结构、准确色彩、官方标志或文案。 +3. 动作或视觉创意。 +4. 环境、时间、天气和氛围。 +5. 构图:宽高比、取景、相机高度、镜头观感、视觉焦点层级、负空间。 +6. 光线和色彩。 +7. 材质、纹理、表面细节,以及写实或风格化程度。 +8. 约束:主体数量、禁止改动项、不得添加额外文字或水印、安全区域要求。 + +## 参考素材清单 + +使用多项输入时,先说明它们的角色,再写创意提示词: + +```text +参考素材 1 = 主要主体的身份 +参考素材 2 = 产品结构和标签 +参考素材 3 = 官方标志;保留准确形状和色彩 +``` + +不要把风格参考图当作身份参考图。应描述其中可以迁移的特征。 + +## 精确文字 + +- 逐字保留用户提供的文案。 +- 如果之后可以使用确定性的设计工具添加文字,优先生成有意预留文案安全区域的无文字底图。 +- 如果用户明确要求把文字直接生成在图中,只写一次准确文案,要求不要出现其他可读文字,并提醒用户生成的文字排版可能需要复查。 + +## 受控变体 + +应分别生成提示词,不要请求一批几乎重复的图像。保持锁定事实完全一致,每次只改变一个维度: + +- 概念:直白展示 / 人物场景 / 隐喻表达 +- 镜头:微距 / 中景 / 环境广角 +- 构图:居中 / 三分法重点位置 / 俯拍 +- 情绪:明亮商业感 / 克制高级感 / 高饱和活力感 +- 表情或动作 + +## 避免 + +- 缺少视觉依据的空泛赞美,例如“漂亮”。 +- 互相冲突的指令,例如同时要求极简和密集分层,或者同时要求微距和完整环境广角。 +- 重复正向需求的冗长负面清单。 +- 未经验证的产品功效、医疗效果、价格、奖项、认证或统计数据。 +- 未检查实时模式定义,就假设某个模型或参数一定存在。 diff --git a/plugins/Wlain/kling-ai/skills/kling-ai-generate-image/references/scene-patterns.md b/plugins/Wlain/kling-ai/skills/kling-ai-generate-image/references/scene-patterns.md new file mode 100644 index 0000000..dea8103 --- /dev/null +++ b/plugins/Wlain/kling-ai/skills/kling-ai-generate-image/references/scene-patterns.md @@ -0,0 +1,44 @@ +# 图像场景模式 + +选择符合用户投放位置的最小场景模式。用户提供的事实和品牌素材优先于下方所有建议。 + +## 产品与电商 + +- **目录或影棚图:**准确还原产品结构,使用中性或品牌色背景纸、受控的柔光箱反射、落地阴影、干净留白,不添加装饰性杂物。 +- **生活方式场景:**展示产品在可信环境中被实际使用;确保手部、比例和互动符合物理规律。 +- **特写演示:**围绕纹理、机械结构、使用过程或材质表面进行微距或紧凑裁切;保留足够语境以识别产品。 +- **主视觉横幅:**使用宽幅构图,把产品置于一侧三分线重点位置,为真实排版文字有意预留负空间,并加强前景与背景分离。 +- **电商平台辅图:**每幅画面只展示一个卖点或使用场景;避免未经验证的徽章、尺寸、宣传语或虚假界面。 +- **概念产品视觉:**可以使用超现实悬浮、液体或飞溅、雕塑式布景、微缩世界或类似 CGI 的材质表现,但必须保留真实产品和标签。 +- **风格重塑:**锁定主体结构和指定文案;只改变季节、环境、色彩、光线或造型。 + +## 广告与社交媒体 + +- **静态广告:**一个吸引点、一个主体、一项视觉证据和清晰的文案安全区域。避免让图像本身承载冗长营销文案。 +- **UGC 静帧:**使用随意的相机高度、可信的居家或街头环境、自然的不完美感和真实的操作方式;不要虚构用户证言。 +- **社交媒体轮播:**定义统一的色彩、镜头、光线、边距和产品比例,再为每一页赋予一个不同角色。 +- **Pinterest 或编辑风格图钉:**使用竖向叙事、可感知的细节、分层景深,以及令人向往但可信的造型。 +- **营销活动主视觉:**使用标志性轮廓、令人难忘的色彩机制、一个主导视觉隐喻和简化背景。 + +## 人物与身份 + +- **人像或编辑摄影:**明确取景、表情、视线、服装、背景、主光或补光或轮廓光,以及纹理。除非用户要求风格化,否则保持皮肤和面部结构自然。 +- **参考身份:**按角色和顺序标明每张参考图。锁定骨骼结构、肤色、发际线、显著特征和年龄呈现,不要美化或平均化。 +- **时尚或试穿:**保留服装剪裁、材质、图案、扣合方式、标志位置和合身效果;确保人体结构和布料张力可信。 + +## 封面与缩略图 + +- **YouTube 16:9:**使用一个主导人脸或物体、强烈的信息缺口、明亮的主体分离效果和极少杂物;保证小尺寸下可读,并真实反映视频内容。 +- **短视频或故事 9:16:**把人脸和关键动作置于画面上部三分之二区域;为平台界面预留下方安全区域。 +- **海报:**一个视觉主张、有意设计的层级、干净的文案区域、可识别的轮廓和受控色彩。 +- 不要复制参考缩略图中的准确身份或构图。只提取通用的动感、取景、色彩和版式逻辑。 + +## 概念选择 + +当用户请求创意时,提出三个实质不同的方向,例如: + +1. 产品事实——直白演示或准确还原的主视觉产品图。 +2. 人物结果——通过生活方式场景展示使用和情绪。 +3. 视觉隐喻——符号化、超现实或基于尺度反差的概念。 + +为每个方向标注用途、焦点主体、构图、色彩,以及它能快速传达信息的原因。 diff --git a/plugins/Wlain/kling-ai/skills/kling-ai-generate-video/SKILL.md b/plugins/Wlain/kling-ai/skills/kling-ai-generate-video/SKILL.md new file mode 100644 index 0000000..2dfea7e --- /dev/null +++ b/plugins/Wlain/kling-ai/skills/kling-ai-generate-video/SKILL.md @@ -0,0 +1,72 @@ +--- +name: kling-ai-generate-video +description: 通过 MiniMax Code 中的 Kling AI 生成高质量视频。适合产品展示、广告短片、社交媒体内容等动态视觉创作,支持文生视频、图生视频与动作控制。 +--- + +# Kling AI 视频生成 + +将用户需求转化为连贯的 Kling 动态方案和一条已批准的远程生成请求。仅使用在 `https://klingai.com/mcp` 配置的 MCP 所提供的实时工具和模式定义。 + +## 使用约定 + +- 使用 MiniMax Code 管理的远程 MCP OAuth。绝不请求或暴露 API key、token、cookie、授权头或签名 URL;宿主无法进入浏览器授权时停止并报告兼容性限制。 +- 用户提出生成请求,即表示在补齐会实质影响结果的缺失输入后,授权提交一次任务。不要增加积分消耗警告或单独的确认步骤。 +- 每个已批准的意图只提交一次。绝不自动重试失败或结果不明确的生成。 +- 在运行时发现实时工具和模式定义。不要根据示例硬编码模型名称、输入角色、时长值或多镜头字段。 +- 需要时,通过远程上传工具上传附带媒体,并保留准确的返回引用。 + +提交前阅读[完整 MCP 输入输出与当前模型参数快照](../kling-ai/references/mcp-contract.md),并用当次 `tools/list` / `who_am_i` 覆盖快照中的动态值。 + +## 工作流程 + +1. 使用下方模式表判断请求类型。 +2. 阅读与目标格式相匹配的[场景模式](references/scene-patterns.md)。 +3. 对于镜头调度、图生视频约束、多镜头连续性或定时旁白,阅读[运动与镜头规划](references/motion-and-shots.md)。 +4. 只询问会实质影响结果的创意缺失信息:时长、投放宽高比、必需参考素材、旁白或文案,或者镜头结构。 +5. 在满足生成模式、参考素材和所需时长的实时模型中,优先完整质量模型;只有用户明确要求草稿、快速或省灵感值时才优先极速、Turbo 或低成本模型。 +6. 构建一条以动态为中心的提示词,描述主体动作、镜头动作、环境运动、时间安排、连续性和受保护元素。把“电影感、高级、高质量”等抽象要求落实为镜头运动、光线、材质、景深、动作节奏和构图,不要只堆砌形容词。 +7. 信息足够后,只调用一次选定的实时生成工具。保留 `generationId` 及任何 `taskTraceId`。 +8. 返回同一次调用的当前状态、文本或结构化回落和任务编号,不为了等待完成循环调用状态工具。用户之后明确查询时只查询同一任务一次。 +9. 优先使用 MiniMax Code 自动呈现的原生工具结果。不要由 Skill 手写 Markdown 图片/视频语法、额外媒体附件或缩略图、重复下载链接;没有原生媒体呈现时只返回至多一个主视频链接。将 `generationId` 显示为**任务编号**,除非故障排查需要,否则不对外显示 `taskTraceId`。 + +## 生成模式 + +| 用户意图 | 模式 | 必须采用的理解方式 | +| --- | --- | --- | +| 文生视频 / text-to-video | 生成 | 不使用源图控制首帧。根据文字定义开场构图。 | +| 图生视频 / image-to-video | 图生视频 | 一张或多张图像用于控制首帧、尾帧、身份或产品参考,或者视觉参考。明确指定每项输入的角色。 | +| 动作控制 / motion control | 动作迁移 | 主体图必填;动作库 `motionId` 与动作来源视频二选一,其余参数以实时模型定义为准。 | +| 多镜头 / storyboard | 单条已批准的视频方案 | 有意识地划分时间和连续性;除非用户明确批准生成独立任务,否则不要为每个镜头分别提交任务。 | +| 查进度 / status | 只读 | 不调用生成工具;查询已有任务。 | + +对于图生视频,提交前应区分以下角色: + +- **首帧:**锁定开场构图,并以它为起点向后生成动态; +- **尾帧:**只有在实时模式定义支持时,才用于规定目标画面; +- **身份或产品参考:**保留主体事实,但不假设输入就是首帧; +- **风格参考:**只迁移明确指定的视觉特征,不迁移身份或构图。 + +当上传、参考图数量或模式定义校验失败时,不要静默地从图生视频降级为文生视频。报告限制,并让用户修改请求。 + +调用工具前,在内部检查所选模式、参考图角色、时长、分辨率、镜头结构和受保护元素。除非需要用户澄清缺失的创意要求,否则不要显示提交前的过程消息。 + +## 质量优先的默认策略 + +- 普通成片默认使用 `1080p`;高质量、商用、大屏或后期需求在实时模型支持时使用 `4k`;只有草稿、快速或成本优先时使用 `720p`,或者目标模式仅支持 `720p`。不要把模型更高的默认分辨率主动降级。 +- 一个动作或一个镜头使用 `5` 秒;对白、演唱、完整产品动作或两个相连节拍优先 `10` 秒;复杂叙事只在实时模式支持且确有必要时使用更长时长。选择能完成内容的最短时长。 +- 文生视频根据投放位置选择画幅:竖版短视频用 `9:16`,方形信息流用 `1:1`,横版广告、网页或 YouTube 用 `16:9`;没有投放上下文时才用 `16:9`。 +- 对于图生视频,根据源图推导构图;除非工具要求,否则不要传入宽高比。 +- 单一时刻优先使用一个连续镜头。只有在明确存在叙事推进、多个地点或时间,或者用户要求一个序列时,才使用多镜头。 +- 保持首次生成目标集中。不要添加用户未要求的旁白、画面文字、额外角色或产品功效。 + +## 质量门禁 + +提交前,检查主体动作能否在指定时长内完成、镜头指令是否冲突、首尾帧意图是否清晰、参考身份或产品结构是否受到保护,以及多镜头时长能否组成连贯整体。对于广告和讲解视频,确保每个镜头只承担一项传播任务。 + +## 失败处理 + +- 授权失败:确认 MiniMax Code 是否对第三方远程 MCP 启动标准 OAuth;无法进入浏览器授权时停止,不改用 API Key。 +- 参数或模型无效:刷新实时模式定义,只修改不受支持的字段。 +- 积分不足:告知用户充值并停止。不要自动重试。 +- 响应丢失:将任务是否创建视为未知;在任何新提交前,先查询已有任务。 +- 提供方失败:报告消息并保留各项 ID;绝不自动重新提交。 diff --git a/plugins/Wlain/kling-ai/skills/kling-ai-generate-video/references/motion-and-shots.md b/plugins/Wlain/kling-ai/skills/kling-ai-generate-video/references/motion-and-shots.md new file mode 100644 index 0000000..b4e7ab4 --- /dev/null +++ b/plugins/Wlain/kling-ai/skills/kling-ai-generate-video/references/motion-and-shots.md @@ -0,0 +1,74 @@ +# 运动与镜头规划 + +## 以动态为中心的提示词顺序 + +1. 格式和时长意图。 +2. 开场画面和主体位置。 +3. 主要主体动作,包括开始、发展和收尾节拍。 +4. 镜头动作和速度。 +5. 环境运动和物理特效。 +6. 光线、色彩、镜头观感和时间氛围。 +7. 连续性锁定项:身份、服装、产品结构、标志、建筑、画面方向。 +8. 约束:不得增加主体、不得变形、不得擅自添加文字或水印。 + +## 镜头术语 + +- `locked-off`(固定机位):观察、产品细节、图形化构图 +- `slow push-in`(缓慢推近):强调、亲密感、揭示细节 +- `pull-back reveal`(后拉揭示):扩展环境或尺度 +- `lateral tracking`(横向跟拍):在保持侧面关系或空间方位的同时跟随运动 +- `orbit`(环绕):立体展示产品或角色;速度应保持克制 +- `crane rise/drop`(升降镜头):以空间尺度建立或收束画面 +- `handheld follow`(手持跟拍):表现紧迫感或 UGC 真实感;应明确是稳定克制还是富有动感 +- `whip pan`(甩镜):用于转场或冲击;谨慎使用,并明确镜头最终落到哪个主体 + +不要在一个五秒镜头中叠加多个镜头动作动词。 + +## 短时长适配 + +- 5 秒:一个动作和一次镜头运动。 +- 10 秒:一个包含铺垫和结果的动作,或两个简单且相连的节拍。 +- 15 秒:支持时可使用紧凑的三节拍序列,否则采用一个充分发展的连续镜头。 + +这些是规划经验,不代表提供方能力;只能使用实时模式定义接受的时长值。 + +## 多镜头模板 + +```text +镜头 1 — <时长>:<取景>;<单一叙事任务>;<主体动作>;<镜头动作>。 +连续性:<身份/产品/地点锚点>。 + +镜头 2 — <时长>:<取景>;<新的叙事任务>;<主体动作>;<镜头动作>。 +连续性:保留<锚点>;通过<匹配/动作/画面方向>转场。 +``` + +总时长应保持一致。每个镜头都应增加新信息,而不是重复一个更好看的角度。 + +## 参考素材处理 + +- 首帧输入:保留构图,并在其中生成动态。 +- 多项参考素材:明确标注每项素材的角色;不要把所有图像都视为可互换的风格输入。 +- 角色连续性:锁定面孔、年龄呈现、发型、服装、比例和显著特征。 +- 产品连续性:锁定尺寸、材质、标签文字、标志位置和活动部件的运动方式。 + +## 动作控制素材 + +- 主体图中的人物或动物应清晰可见,身体范围尽量与动作来源视频一致。 +- 动作来源视频只保留一个连续镜头,避免切镜、遮挡、过快动作和多人争抢主体。 +- 官网当前建议动作视频为 3–30 秒、短边至少 340px、长边不超过 3850px;如果实时 MCP schema 更严格,服从更严格限制。 +- `motion_control` 的主体 `image` 必填,动作库 `motionId` 与动作来源 `video` 必须二选一。人物朝向、分辨率、原声保留等字段只使用 `who_am_i` 当前模型声明的名称和值域。 + +## 广告与讲解视频 + +为每个节拍分配一项传播任务: + +- 吸引点:在不虚假宣传的前提下吸引注意 +- 语境:展示问题或环境 +- 证据:演示真实的产品、动作或细节 +- 收束:展示主视觉结果或用户提供的信息 + +不要虚构性能宣传、用户证言、统计数据、价格、奖项、认证或监管声明。 + +## 提交检查 + +提交前,在内部检查时长、分辨率、宽高比、镜头结构和受保护元素。除非缺少必须由用户澄清的创意要求,否则不要显示提交前的过程消息、积分警告或单独的确认步骤。 diff --git a/plugins/Wlain/kling-ai/skills/kling-ai-generate-video/references/scene-patterns.md b/plugins/Wlain/kling-ai/skills/kling-ai-generate-video/references/scene-patterns.md new file mode 100644 index 0000000..5a9489a --- /dev/null +++ b/plugins/Wlain/kling-ai/skills/kling-ai-generate-video/references/scene-patterns.md @@ -0,0 +1,61 @@ +# 视频场景模式 + +选择一种主要模式。只有在时长和实时模式定义能够连贯支持结果时,才能组合多种模式。 + +## 电影感连续镜头 + +- 定义起始构图、主体动作、镜头路径、环境运动和收尾节拍。 +- 一次只使用一个镜头动作:缓慢推近、后拉揭示、横向跟拍、环绕、升降、手持跟拍或固定机位观察。 +- 锚定尺度和空间方位,使运动易于理解。 +- 适合氛围、角色瞬间、产品亮相、变换效果和图像动画。 + +## 图生视频 + +- 将源画面视为锁定的构图和身份,而不是宽泛的氛围参考。 +- 只描述可信的运动:呼吸、衣料或头发摆动、视线、手部动作、环境特效和镜头漂移。 +- 说明必须保持稳定的内容:面孔、身体比例、产品形状、标志、背景建筑和色彩。 +- 避免在短片中同时出现大幅主体运动、激烈镜头运动和重大场景变换。 + +## 产品展示 + +- **影棚亮相:**采用受控环绕或推近、有意设计的反射变化、干净表面和清晰轮廓。 +- **功能演示:**每个镜头只展示一个功能或动作,手部互动清晰,机械运动可信,不虚构能力。 +- **生活方式场景:**通过动作展示语境和益处,不使用缺乏依据的文字宣传。 +- **开箱:**依次建立未拆封产品、开启动作、揭晓、反应或细节。只有在用户明确要求时才使用多镜头。 +- **商业广告:**依次安排吸引点、产品证据和主视觉特写。除非用户提供,否则将宣传语和片尾卡文案留给确定性的后期制作。 + +## UGC 与出镜讲述 + +- 使用自然的平视取景、可信的手机镜头运动、日常环境,以及不完美但有意设计的表演。 +- 当实时工具不接受同步音频时,将对话或旁白与视觉动作规划分开。 +- 绝不虚构用户证言、个人经历、前后对比效果、代言或价格。 + +## 讲解视频 + +- 将内容拆成每个视觉段落一个观点:提出问题、展示机制、演示结果、以用户提供的行动指引收尾。 +- 使视觉复杂度与旁白时长匹配;不要把多个概念塞入一个短片。 +- 优先使用简单的标志性场景、图示、物体隐喻或受控产品演示,而不是难以阅读的画面文字段落。 +- 如果最终合成或音频超出 Kling 实时模式定义的能力,应明确交付短片方案或单独场景,而不是声称已经完成带旁白成片。 + +## 多镜头叙事 + +- 只有当用户要求多个镜头,或者故事中的地点、时间、尺度或信息状态发生变化时,才使用多镜头。 +- 为每个镜头指定用途、时长、机位或取景、动作和连续性锚点。 +- 在镜头之间保持角色服装、面孔、产品结构、光线方向、色彩脚本、画面方向和地点细节一致。 +- 当实时模式定义要求明确时间安排时,各镜头时长总和必须等于用户要求的总时长。 + +## 社交媒体格式 + +- **9:16 竖版短视频:**立即出现视觉吸引点,动作位于竖向中心,人脸或产品处于上部三分之二区域,下方保留界面安全区域。 +- **1:1 或 4:5 信息流:**使用中景、清晰轮廓和克制的横向运动。 +- **16:9 营销活动或 YouTube:**展示更宽广的空间方位、更强的入场或揭示效果,以及有意设计的负空间。 + +## 概念建议 + +当用户征集创意时,提供三个不同方向: + +1. 演示——清晰展示会发生什么,或产品如何工作。 +2. 情绪——聚焦人物反应、氛围或变化。 +3. 奇观——运用尺度、动作编排、材质特效或意外的视觉隐喻。 + +为每个方向说明吸引点、镜头结构、镜头行为、时长适配情况,以及受保护的品牌或参考素材事实。 diff --git a/plugins/Wlain/kling-ai/skills/kling-ai/SKILL.md b/plugins/Wlain/kling-ai/skills/kling-ai/SKILL.md new file mode 100644 index 0000000..2275e60 --- /dev/null +++ b/plugins/Wlain/kling-ai/skills/kling-ai/SKILL.md @@ -0,0 +1,60 @@ +--- +name: kling-ai +description: 当用户希望通过 MiniMax Code 中的可灵 AI 生成或查询高质量图像、视频与动作任务时使用,覆盖账号授权、素材上传、灵感值、任务状态和跨媒体路由。 +--- + +# 可灵 AI + +只使用本包在 `https://klingai.com/mcp` 配置的可灵国内远程 MCP。 + +## 请求路由 + +- 文生图、图生图、海报、封面、产品静物和图像概念请求交给 `kling-ai-generate-image`。 +- 文生视频、图生视频、动作控制、动画、镜头运动、分镜和视频概念请求交给 `kling-ai-generate-video`。 +- OAuth、退出或切换账号、素材上传、动作库、Element 素材库、灵感值查询、跨媒体请求和任务状态查询保留在本 Skill 中处理。 +- 对已有结果的后续请求走结果查询流程,不要重新创建生成任务。 + +附件本身不能决定用途。用户没有说明时,应先确认附件是首帧、身份或产品参考、待编辑源图,还是风格参考。 + +## 安全与提交约定 + +- 只使用 MiniMax Code 管理的远程 MCP 连接。绝不索取 API Key,也不在日志或回复中暴露 Token、Cookie、授权头、私有账号字段或签名 URL。 +- MiniMax Agent Plugins 1.0 的公开子集不支持通用 OAuth 配置。本包不声明静态 `client_id`、scope 或 `client_name`;目标宿主必须对受保护资源执行标准 OAuth 发现、动态客户端注册和 S256 PKCE。宿主无法进入浏览器授权时,停止并报告兼容性限制,不得让用户在对话中粘贴凭据。 +- `kling-ai` 是受 MiniMax 校验规则约束的小写 MCP server key。`X-Kling-Integration: Plugin-MiniMaxCode` 是非秘密集成标识,不是 OAuth 客户端名或授权头。 +- 清晰的生成请求在补齐会实质影响结果的缺失输入后,只授权提交一次。不要增加重复的灵感值警告;如果请求含义、目标区域或关键计费参数仍不明确,先澄清再提交。 +- 每个已批准意图至多提交一次。失败、超时或结果不明确时不要自动重试。 +- 运行时发现远程工具和模式定义;提供方的实时模式定义优先于本 Skill 的示例。 +- 需要时先用远程上传工具处理附件,并严格复用实时模式定义要求的返回引用。 + +生成前阅读[工具流程](references/tool-workflows.md)和[MCP 输入输出契约](references/mcp-contract.md)。只有出现授权、模式定义、上传或提供方错误时,才阅读[故障排查](references/troubleshooting.md)。 + +## 工作流程 + +1. 判断用户需要生成、动作控制、Element 管理、账号操作还是只读查询。 +2. 先读取实时 `tools/list`;生成或动作控制前再调用 `who_am_i`,从目标模型声明中获取完整参数与素材输入。 +3. 只询问会实质影响结果的缺失创意要求或计费参数。 +4. 选定远程生成工具后只调用一次。 +5. 完整保留提供方返回的 `generationId` 和 `taskTraceId`。同一目标链路复用 UUIDv7 `taskTraceId`;向用户把 `generationId` 显示为**任务编号**。 +6. 提交后返回同一次调用的当前状态、任务编号和文本或结构化回落。不要为了等待完成而循环调用 `query_tasks`。 +7. 用户之后明确要求查询已有任务时,只调用一次 `query_tasks`;如果实时工具面存在专用 `query_result`,仅在用户要求展示已有结果时调用一次。状态仍未结束就返回当前状态和任务编号,不重新生成。 +8. MiniMax Code 的公开 Plugin 能力目前不包含 Apps/UI 扩展。不要声称 MCP App widget 已挂载,也不要由 Skill 手写 Markdown 图片/视频语法、添加额外媒体附件、缩略图或重复下载链接。优先使用宿主自动呈现的原生工具结果;否则返回至多一个主结果链接和必要的文本说明。 +9. 删除 Element 或退出/切换账号属于状态变更;只有用户明确要求时调用,并遵守工具说明中的确认与重新授权流程。 + +## 质量优先的默认策略 + +仅在用户未指定其他选择且实时模式定义支持时使用。没有“草稿、预览、快速、省灵感值”等信号时,默认按可交付成片处理,不要为了节省资源静默降低质量: + +- 模型:在满足生成模式、参考素材和所需参数的模型中,优先完整质量模型;只有用户明确重视速度或成本时才优先极速、Turbo 或低成本模型。模型名称始终来自当次 `who_am_i`。 +- 图像:普通交付默认选择 `2k`;用户要求高质量、商用、广告、精细材质或后期裁切时,在实时模型支持时选择 `4k`;只有草稿或速度优先时选择 `1k`。若实时模型默认值更高,不要主动降级。 +- 视频:普通交付默认选择 `1080p`;高质量、商用、大屏或后期需求在实时模型支持时选择 `4k`;只有草稿、快速或成本优先时选择 `720p`,或者目标模式仅支持 `720p`。若实时模型默认值更高,不要主动降级。 +- 视频时长:一个动作或单一镜头用 `5` 秒;对白、演唱、完整产品动作或两个相连节拍优先 `10` 秒;复杂叙事只在实时模式支持且确有必要时使用更长时长。选择能完整表达内容的最短时长。 +- 文生视频宽高比:从投放位置推导;竖版短视频用 `9:16`,方形信息流用 `1:1`,横版广告、网页或 YouTube 用 `16:9`。没有投放上下文时才使用 `16:9`。 +- 图生视频宽高比:根据首帧推导;除非实时工具要求,否则不要传入宽高比。 + +## 失败处理 + +- 授权失败:确认目标 MiniMax Code 是否支持第三方远程 MCP OAuth;无法进入宿主浏览器授权时停止,不改用 API Key。 +- 模型或参数无效:刷新实时模式定义,只修改不受支持的字段。 +- 提供方任务失败:解释提供方消息并保留 `generationId`;不要重新提交。 +- 灵感值不足:告知用户充值后再试;不要自动重试。 +- 提交响应丢失或超时:将任务是否创建视为未知,先查询已有任务,再考虑任何新提交。 diff --git a/plugins/Wlain/kling-ai/skills/kling-ai/references/mcp-contract.md b/plugins/Wlain/kling-ai/skills/kling-ai/references/mcp-contract.md new file mode 100644 index 0000000..eb66446 --- /dev/null +++ b/plugins/Wlain/kling-ai/skills/kling-ai/references/mcp-contract.md @@ -0,0 +1,81 @@ +# 可灵 MCP 输入输出契约 + +本文件用于核对工具面和参数结构,不把动态模型配置写死。每次操作均按以下顺序读取事实: + +1. 当前连接的 `tools/list` 决定实际可调用的工具、工具说明和 `inputSchema`。 +2. `who_am_i.availableModels` 决定每个生成工具的模型、模型参数、必填项、默认值、枚举值、数量限制和素材输入。 +3. 实际工具响应决定新增输出字段。没有 `outputSchema` 或真实响应时,不猜字段。 + +## 工具全集 + +- 发现与账户:`who_am_i`、`query_membership_and_credits`、`logout` +- 生成与查询:`text_to_image`、`image_to_image`、`text_to_video`、`image_to_video`、`motion_control`、`query_tasks`,以及实时工具面可选的 `query_result` +- 素材与复用:`file_upload`、`motion_library_list`、`element_create`、`element_list`、`element_get`、`element_update`、`element_delete` + +只有当前 `tools/list` 中真实存在的工具才可调用。不同区域或账号等级的工具、模型和值域可能不同,不得假设与国际端完全一致。 + +## 固定工具级输入 + +- 五个生成工具:`model`、`arguments[]`、`inputs[]`、`rationale`、`taskTraceId`。 + - `model` 必须来自该工具当次 `who_am_i` 清单,不使用猜测的默认模型。 + - `arguments[]` 每项为 `{name, value}`,所有 `value` 均为字符串;名称、必填、默认值、枚举和 `maxItems` 以所选模型为准。 + - `inputs[]` 每项为 `{name, inputType, url}`;只传所选模型声明的输入名,`inputType` 使用实时 schema 声明的值。 + - `rationale` 说明用户目标和选参理由,不代替用户提示词。 +- `query_tasks`:`generationId` 必填,`taskTraceId` 选填。 +- `query_result`:若实时工具面存在,使用同一任务标识一次性读取已有任务结果;不用于循环刷新。 +- `file_upload`:`filename`、`contentType`、`size`、`taskTraceId` 均按实时 schema 传入。 +- `who_am_i`、`query_membership_and_credits`、`logout`、`motion_library_list`、`element_list`:仅有可选 `taskTraceId`。 +- `element_get`、`element_delete`:`id` 和可选 `taskTraceId`;调用前按工具说明检查实际必填规则。 +- `element_create`:`name`、`description`、`resource`、`tags`、`taskTraceId`。 +- `element_update`:在 create 字段基础上增加 `id`。先 `element_get`,再按完整对象更新,避免缺失字段被清空。 + +`taskTraceId` 使用 RFC 4122 UUIDv7。同一用户目标的发现、上传、生成和查询复用同一个值;用户切换到无关目标时创建新值。 + +## 动态模型参数 + +提交生成前必须调用 `who_am_i`,按目标工具与模型逐项读取: + +- `arguments[]`:`name`、`required`、`default`、`allowedValues` / `allowed_values`、`maxItems` 和 `description`; +- `inputs[]`:`name`、`required` 和 `description`; +- 模型别名只用于理解用户意图,提交时只传规范 `model` 名称。 + +当前区域的完整模型名、参数、默认值、枚举、数量上限和 inputs 见[模型参数快照](model-parameters.md)。只在核对或排障时读取;实际调用仍以当次 `who_am_i` 为准。 + +当工具说明与 `who_am_i` 冲突时,采用更严格的工具级限制并停止不安全提交。当前必须保留的门禁包括: + +- `text_to_image` 和 `text_to_video` 不使用 Element,不传 `elements` 或 `<<>>`; +- Element 先 `element_get`,图片 Element 只交给实时 schema 明确支持 `elements` 的 `image_to_image` / `image_to_video`;视频 Element 只交给实时 schema 明确支持的 `image_to_video` 模型; +- `motion_control` 必须有主体 `image`,并在动作库 `motionId` 与动作来源 `video` 中二选一;其余方向、分辨率和声音参数从实时模型 schema 获取; +- 某模型要求素材 URL 来自 `file_upload` 时,不得直接传本地路径或任意外链; +- 不得传实时模型未声明的参数、输入名或枚举值。 + +## Element 资源 + +- 图片 Element:`resource.cover` 加 1–3 个 `resource.secondary[{name,inputType,url}]`,不与 `resource.video` 同传。 +- 视频 Element:`resource.video`,可按实时工具说明附带 `resource.voice`;不与 `cover` / `secondary` 同传。 +- `tags` 至少一个,并且只能使用实时工具说明给出的标签。 +- `element_delete` 会删除用户素材,必须在调用前获得明确确认。 +- 图片 Element 的主图无法通过普通更新安全替换时,应先说明需要删除并重建,再等待用户确认。 + +## 已知输出 + +- 生成提交:`generationId`、`status`,可能含 `creditsConsumed` 和 `message`。 +- `query_tasks`:`generationId`、`status`、`createTime`、`finishTime`、`works[]`;作品可能含 `status`、`contentType`、`url`、`urlWithoutWatermark`、`coverUrl`、`coverUrlWithoutWatermark`。状态按大小写不敏感处理,并以实时响应判断终态。 +- `file_upload` 第一步:`ticket`、`uploadUrl`、`expireAt`;随后向 `uploadUrl` 发送包含 `ticket` 和文件字节的 multipart 请求,并读取上传响应中的 URL。 +- `file_upload` 用于两步完成本地文件上传:MCP 调用先返回一次性上传凭证与地址,随后调用方完成 multipart 文件字节上传。不要记录一次性凭证或地址。 +- `query_membership_and_credits`:`userId`、`membershipType`、`availableRemainCredits`。 +- `motion_library_list`:`motions[{id,name,motionUrl,coverUrl,duration,hasAudio}]`,`duration` 单位为毫秒。 +- `element_list`:`elements[{id,name}]`。 +- `element_get`:`id`、`name`、`description`、`resource`、`tags`。 +- `motion_control`:普通生成提交结果;仅在用户之后明确查询时调用一次 `query_tasks`。 +- `element_create`:工具说明保证返回 Element `id`。 + +`element_update`、`element_delete` 和 `logout` 当前没有可依赖的公开完整 `outputSchema`。读取真实返回并按原样处理,不声称存在未声明字段。如果发布要求机器校验全部成功输出,需要服务端补充 `outputSchema` 或提供脱敏成功 fixture。 + +## MiniMax Code 结果呈现契约 + +- MiniMax Code 的公开 Agent Plugins 1.0 子集不包含 Apps/UI 扩展。本 Skill 不声明、复制或依赖本地 UI resource。 +- 工具结果中的文本 `content`、结构化结果和标准 resource 是事实源。优先使用宿主自动呈现的原生工具结果;没有原生媒体呈现时返回任务编号、状态和至多一个主结果链接。 +- 不由 Skill 手写 Markdown 图片/视频语法,不添加额外媒体附件、缩略图或重复下载链接。 +- `element_list` 是纯数据查询,由模型读取,不生成空媒体占位。 +- 用户明确查询已有任务时,优先调用实时存在的 `query_result` 一次;没有该工具时只调用一次 `query_tasks`。不要循环刷新,也不要重新提交生成。 diff --git a/plugins/Wlain/kling-ai/skills/kling-ai/references/model-parameters.md b/plugins/Wlain/kling-ai/skills/kling-ai/references/model-parameters.md new file mode 100644 index 0000000..d381a47 --- /dev/null +++ b/plugins/Wlain/kling-ai/skills/kling-ai/references/model-parameters.md @@ -0,0 +1,92 @@ +# MCP 模型参数介绍 + +提交前仍须重新调用 `who_am_i`;如果模型、默认值、枚举、必填项或 inputs 已变化,使用实时值。顶层 `model` 必须使用目标工具实时清单中的规范模型名;所有 `arguments[].value` 都以字符串传递,包括布尔值和 JSON 数组。 + +## 完整 input 名称索引 + +- 多图参考:`image_1`、`image_2`、`image_3`、`image_4`、`image_5`、`image_6`、`image_7`、`image_8`、`image_9`、`image_10`。 +- 首尾帧:`first_image`、`tail_image`。 +- 2.1 参考角色:`subject_image_0`、`subject_image_1`、`subject_image_2`、`subject_image_3`、`scene_image`、`style_image`。 +- 动作控制:`image`、`video`。 + +只在目标模型当次 inputs 数组声明相应名称时传入。 + +## `text_to_image` + +- `kling-image-v3_0_omni` + - 参数:`prompt` 必填;`img_resolution=4k`(`1k/2k/4k`);`aspect_ratio=3:4`(`auto/9:16/2:3/3:4/1:1/4:3/3:2/16:9/21:9`);`imageCount=1`(`1–9`);`elements` 最多 10。 + - inputs:无。 +- `kling-image-o1` + - 参数:`prompt` 必填;`img_resolution=2k`(`1k/2k`);`aspect_ratio=3:4`(`9:16/2:3/3:4/1:1/4:3/3:2/16:9/21:9`);`imageCount=1`(`1–9`);`elements` 最多 10。 + - inputs:无。 +- `kling-image-v3_0` + - 参数:`prompt` 必填;`img_resolution=2k`(`1k/2k`);比例同 O1;`imageCount=1`(`1–9`);`elements` 最多 10。 + - inputs:无。 +- `kling-image-v2_1` + - 参数:`prompt` 必填;`img_resolution=2k`(`1k/2k`);`aspect_ratio=3:4`(`9:16/2:3/3:4/1:1/4:3/3:2/16:9/21:9`);`imageCount=1`(`1–9`)。 + - inputs:无。 + +工具级说明明确禁止 `text_to_image` 使用 Element,因此即使 `who_am_i` 列出 `elements`,也不得传 `elements` 或在提示词中使用 `<<>>`。 + +## `image_to_image` + +- `kling-image-v3_0_omni` + - 参数:`prompt` 必填;`img_resolution=4k`(`1k/2k/4k`);`aspect_ratio=3:4`(含 `auto`);`imageCount=1`(`-1` 或 `1–9`);`story_mode=false`;`elements` 最多 10。 + - inputs:`image_1` 必填;`image_2` 至 `image_10` 选填。 +- `kling-image-o1` + - 参数:`prompt` 必填;`img_resolution=2k`(`1k/2k`);比例含 `auto`;`imageCount=1`(`1–9`);`elements` 最多 10。 + - inputs:`image_1` 必填;`image_2` 至 `image_10` 选填。 +- `kling-image-v3_0` + - 参数:`prompt` 必填;`img_resolution=1k`(`1k/2k`);比例含 `auto`;`imageCount=1`(`1–9`);`elements` 最多 10。 + - inputs:`image_1` 必填;`image_2` 至 `image_10` 选填。 +- `kling-image-v2_1` + - 参数:`prompt` 选填;`aspect_ratio=1:1`(`9:16/2:3/3:4/1:1/4:3/3:2/16:9/21:9`);`imageCount=1`(`1–9`)。 + - inputs:`subject_image_0`、`subject_image_1`、`subject_image_2`、`subject_image_3`、`scene_image`、`style_image` 均选填。 + - 每个 `subject_image_N` 的模型说明要求同时提供同 URL 的 `raw_subject_image_N`,且 subject、scene、style 合计至少两张不同图片;当前 inputs 数组没有声明 raw 字段,这是服务端 schema 缺口,冲突未修复前不得猜测提交。 + +对 3.0 Omni、O1、3.0,当前前两个 inputs 说明要求 URL 来自 `file_upload`,不能直接使用本地路径或任意外链;对同一模型的其余图片输入采用相同的更严格限制。 + +## `text_to_video` + +- `kling-video-v2_5` + - 参数:`prompt` 必填;`duration=5`(`5/10`);`aspect_ratio=16:9`(`16:9/9:16/1:1`);`imageCount=1`(`1–4`);`resolution=1080p`(`720p/1080p`);`enable_audio=true`;`enable_asmr=false`;`audio_prompt`、`music_prompt` 选填。 + - inputs:无。 +- `kling-video-o1` + - 参数:`prompt` 必填;`duration=5`(`3–10`);`aspect_ratio=16:9`;`resolution=1080p`;`imageCount=1`(`1–4`);`elements` 最多 7。 + - inputs:无。 +- `kling-video-v3_0_omni` + - 参数:`prompt` 必填;`duration=5`(`3–15`);`aspect_ratio=16:9`;`resolution=4k`(`720p/1080p/4k`);`imageCount=1`(`1–4`);`prefer_multi_shots=false`;`enable_audio=false`;`elements` 最多 7。 + - inputs:无。 +- `kling-video-v3_0` + - 参数同 3.0 Omni;`elements` 最多 3。 + - inputs:无。 +- `kling-video-v3_0_turbo` + - 参数:`prompt` 必填;`duration=5`(`3–15`);`resolution=1080p`(`720p/1080p`);`imageCount=1`(`1–4`);`aspect_ratio=16:9`。 + - inputs:无。 + +工具级说明明确禁止 `text_to_video` 使用 Element;不得传 `elements` 或 `<<>>`。 + +## `image_to_video` + +- `kling-video-v3_0_omni` + - 参数:`prompt` 必填;`duration=5`(`3–15`);`aspect_ratio=16:9`;`resolution=4k`(`720p/1080p/4k`);`imageCount=1`(`1–4`);`prefer_multi_shots=false`;`enable_audio=false`;`elements` 最多 7。 + - inputs:`image_1` 必填;`image_2` 至 `image_7` 选填。 +- `kling-video-v3_0` + - 参数:`prompt` 选填;`duration=5`(`3–15`);`resolution=4k`;`imageCount=1`(`1–4`);`prefer_multi_shots=true`;`enable_audio=false`;`elements` 最多 3。 + - inputs:`first_image` 必填;`tail_image` 选填。 +- `kling-video-v3_0_turbo` + - 参数:`prompt` 选填;`duration=5`(`3–15`);`resolution=1080p`(`720p/1080p`);`imageCount=1`(`1–4`)。 + - inputs:`first_image` 必填。 + +3.0 与 Turbo 的 frame input 当前要求使用 `file_upload` 返回 URL。 + +## `motion_control` + +- `kling-video-v2_6` + - 参数:`prompt` 选填;`motionId` 选填;`motionDirection` 必填(`image_direction/motion_direction`);`resolution=720p`(`720p/1080p`);`keepOriginalSound=true`(`true/false`)。 + - inputs:`image` 必填;`video` 选填。 +- `kling-video-v3_0` + - 参数同 2.6,另有 `elements` 最多 1。 + - inputs:`image` 必填;`video` 选填。 + +`motionId` 与 `video` 必须二选一。`image_direction` 只支持 3–10 秒动作;`motion_direction` 跟随动作视频方向。 diff --git a/plugins/Wlain/kling-ai/skills/kling-ai/references/prompt-examples.md b/plugins/Wlain/kling-ai/skills/kling-ai/references/prompt-examples.md new file mode 100644 index 0000000..c64c020 --- /dev/null +++ b/plugins/Wlain/kling-ai/skills/kling-ai/references/prompt-examples.md @@ -0,0 +1,55 @@ +# Kling AI 提示词与用法示例 + +## 建议提示词 + +- 画一只身穿复古宇航服的小熊猫,漂浮在空间站舷窗前,地球蓝光映亮面部,细节丰富,电影级质感 +- 制作一段 5 秒电影感视频:机甲战士从高空重砸地面,冲击波瞬间震开碎石与尘雾,镜头快速推近,充满力量感 +- 制作一条 15 秒运动鞋营销短片:街头开场抓住注意力,三秒切出产品特写与穿着动态,结尾落在鞋身细节特写 + +## 自然语言请求 + +文生视频: + +> 用可灵生成一个 5 秒、16:9 的电影感视频:雨夜便利店门口,一辆复古摩托缓慢停下,镜头从远景平稳推近。 + +图生视频: + +> 用我附上的图片做 5 秒图生视频。人物身份、五官和服装保持一致,只让镜头缓慢从左侧环绕到正面,720p。 + +多镜头视频: + +> 生成一条多镜头产品片:先用全景建立场景,再推近产品并从侧面展示,最后定格品牌细节,镜头衔接自然。时长和分镜参数使用当前可灵支持的值。 + +文生图: + +> 用可灵生成一张 16:9 海报主视觉:极简白色摄影棚,一只透明玻璃茶壶,柔和侧光,保留右侧标题留白。 + +完整生成请求: + +> 用可灵生成 5 秒、16:9、720p 的单镜头视频:雨夜便利店门口,一辆复古摩托缓慢停下。生成后返回任务编号。 + +状态查询: + +> 查询这个可灵任务编号的当前状态,只查一次,不要循环轮询。 + +## 提示词构建 + +优先按以下顺序提供具体指令: + +1. 主体和环境 +2. 动作或变化 +3. 镜头和分镜结构 +4. 光线和视觉风格 +5. 身份或一致性约束 +6. 仅在能防止可能发生的失败时添加排除项 + +避免罗列重复而冗长的负面提示。对于图生视频,应说明哪些内容必须保持稳定,以及哪些内容允许运动。 + +## 面向用户的提交结果 + +不要增加积分警告或单独的确认步骤。提交后使用一个简洁的信息块: + +```text +完成后返回主结果。结果链接可能是临时签名地址;地址失效不代表作品丢失, +可重新查询原任务编号获取新的访问地址,或在已授权账号的可灵官网生成记录中查看。 +``` diff --git a/plugins/Wlain/kling-ai/skills/kling-ai/references/tool-workflows.md b/plugins/Wlain/kling-ai/skills/kling-ai/references/tool-workflows.md new file mode 100644 index 0000000..b897aa3 --- /dev/null +++ b/plugins/Wlain/kling-ai/skills/kling-ai/references/tool-workflows.md @@ -0,0 +1,10 @@ +# 远程工具工作流 + +1. 从位于 `https://klingai.com/mcp` 的远程 `kling-ai` server 读取 `tools/list`;生成前调用 `who_am_i`,只使用目标模型声明的参数、默认值、枚举和素材输入。 +2. 对于附带媒体,调用远程上传工具,并将它返回的引用传给生成请求。 +3. 补齐会实质影响结果的缺失输入后,使用 `{model, arguments[], inputs[], rationale, taskTraceId}` 信封只调用一次选定的远程生成工具,并保留其 `generationId`。同一目标链路复用 UUIDv7 `taskTraceId`。不要增加积分警告或单独的确认步骤。 +4. 返回同一次调用的当前状态、任务编号和文本或结构化回落,不为等待完成而循环调用状态工具。 +5. 优先使用 MiniMax Code 自动呈现的原生工具结果。不要由 Skill 手写 Markdown 媒体、重复添加媒体附件、卡片、缩略图或下载链接;没有原生呈现时最多返回一个主结果链接。 +6. 用户之后明确展示已有任务时,优先调用实时存在的 `query_result` 一次;没有该工具时才调用一次 `query_tasks`。若任务仍未完成,返回当前状态和任务编号,不重新提交。 + +绝不自动重试生成任务。 diff --git a/plugins/Wlain/kling-ai/skills/kling-ai/references/troubleshooting.md b/plugins/Wlain/kling-ai/skills/kling-ai/references/troubleshooting.md new file mode 100644 index 0000000..44c6fb9 --- /dev/null +++ b/plugins/Wlain/kling-ai/skills/kling-ai/references/troubleshooting.md @@ -0,0 +1,44 @@ +# 故障排查 + +## 安装后缺少 Skills 或 MCP 工具 + +确认加载的是包含 `plugin.json`、`mcp.json` 和 `skills/` 的完整 Plugin 目录。MiniMax Code 应发现 `kling-ai`、`kling-ai-generate-image` 和 `kling-ai-generate-video` 三个 Skill,并且只有一个小写 `kling-ai` MCP server 指向 `https://klingai.com/mcp`。重新加载插件后新建会话以刷新工具快照。 + +如果 Plugin 显示已加载但第三方 MCP 工具没有进入 Agent 工具面,记录 MiniMax Code 版本、平台和 MCP 诊断后停止。不要让 Skill 用 shell、`curl` 或第二个本地 MCP server 绕过宿主工具注入。 + +## 未授权或未进入浏览器 OAuth + +MiniMax 的公开 Agent Plugins 1.0 子集不能在 `mcp.json` 中声明通用 OAuth。本包依赖宿主对受保护资源执行标准发现、动态客户端注册和 S256 PKCE。若连接 `https://klingai.com/mcp` 后没有进入浏览器授权,记录诊断并停止;不要添加静态 `client_id`,不要手工粘贴 API Key、Token、Cookie 或授权头。 + +`kling-ai` 是包内 server key,`Plugin-MiniMaxCode` 是非秘密集成标识;两者都不应被当成 OAuth `client_name` 强行覆盖宿主注册信息。 + +## 上传或图生视频失败 + +- 刷新实时模式定义,并确认当前上传工具及其输出字段。 +- 严格按返回内容原样复用上传引用。 +- 如果模式定义返回或要求 `taskTraceId`,应在上传和生成过程中保持相同的值。 +- 只使用所选实时工具声明的输入名称、值类型和参考素材角色;不要假设一定存在 `file_upload`、`first_image` 或仅接受字符串的参数值。 + +## 任务仍在运行 + +返回当前状态和任务编号,不在模型侧循环轮询。用户之后明确查询时只调用一次 `query_tasks`;如果仍未结束,继续返回当前状态,不创建第二个任务。 + +## 生成后没有媒体预览 + +MiniMax Code 的公开 Plugin 能力目前不包含 Apps/UI 扩展。使用宿主自动呈现的原生工具结果;没有原生媒体呈现时,返回同一次工具结果中的文本状态、任务编号和至多一个主结果链接。不要复制本地 `mcp-app/`、启动第二个 MCP server,或由 Skill 手写 Markdown 媒体作为替代。 + +## 生成失败 + +返回提供方的失败消息,并保留各项 ID 以供支持使用。不要自动创建替代任务,因为这可能再次消耗灵感值。 + +## 灵感值不足 + +告知用户余额不足,并请其充值后再试。不要自动重试。 + +## 提交超时且无法确定是否已创建任务 + +不要重试生成调用。先使用可用的 `taskTraceId`、`generationId` 或提供方任务列表筛选条件查询已有任务。如果提供方无法证明任务是否已创建,应告知用户提交状态未知,并询问是否要创建新任务。 + +## 结果链接已过期 + +签名输出 URL 可能是临时的。重新查询已保留的 `generationId` 以获取当前输出 URL,或者登录已授权账号后,在 Kling 官网查看生成历史记录。URL 过期不代表生成作品已丢失。不要记录签名 URL,也不要把它当作永久资产标识。