Communitygithub.com

0xsline/openchatcut

通过 Fal.ai、Seedance 2.0、Kling、MiniMax Hailuo、xAI Grok Imagine 和 OFox 进行 AI 视频生成。当用户想要生成视频片段时使用——文生视频、图生视频、首尾帧过渡、参考引导生成、多镜头拍摄,或是对现有片段进行生成式编辑/扩展。

openchatcut 是什么?

该技能为 AI 代理(如 Claude Code、Cursor 等)提供了一个统一的视频生成接口,支持多个顶级模型。它允许开发者通过简单的结构化调用,从文本、图像、参考视频或首/尾帧生成视频,支持多镜头故事板和生成式编辑。核心在于通过 `submit_video` 提交单个任务,返回 `jobId` 用于进度追踪(通过 `track_progress` 处理),并将资产管理(如画布调整、资产引用)与生成逻辑解耦。该技能不自动将视频放置到时间线上,从而为工作流编排提供了灵活性。支持 Seedance 2.0(默认,多模态参考、编辑/扩展)、Kling(多镜头、专业相机控制)、Hailuo(简单 T2V/I2V)、Grok Imagine(仅文生视频)和 OFox(多模型网关)。详细的模型选择逻辑基于用户配置和需求(如多模态参考、多镜头或短片段),并强制要求在生成前阅读模型特定的参考文档,以防止参数冲突。此外,工作流强调范围对齐(时长、内容、一致性锚点),以避免幻觉和盲目提交。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/0xsline/openchatcut/tree/HEAD/src/agent/skills/video-gen

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

视频生成

每次调用提交一个视频生成任务,并返回一个 jobId。任务管理(等待/状态)属于 track_progress;此技能不会自动将视频放置到时间线上。

何时使用

当用户想要生成视频片段时——文生视频、图生视频、首尾帧过渡、参考引导生成、多镜头故事板,或是对现有视频进行生成式编辑/扩展(基于源片段生成新镜头;不是时间线裁剪)。

模型

模型参考优势
fal + falModelreferences/fal.md显式的 Fal 目录;查看工具 schema 以了解每个模型的限制
seedance2references/seedance2.md配置时的默认模型。多模态参考、首尾帧、编辑/扩展/桥接,2–15 秒,480p/720p/1080p/4k,音频/种子/相机/水印/尾帧/任务控制。
klingreferences/kling.md专业相机/性能;Omni 多镜头;图片 ≤7(使用一个功能 refVideos 时 ≤4);std/pro;3–15 秒。
hailuoreferences/hailuo.mdMiniMax 海螺。T2V / I2V / 首帧+尾帧;6秒或10秒;512P (Hailuo-02)、720p→768P、1080P (6s);不支持多参考/多镜头。
grok-imagine-videoreferences/grok-imagine-video.mdxAI Grok Imagine。仅文生视频;1–15 秒;480p/720p/1080p;包含音轨。
ofoxreferences/ofox.mdOFox 多模型网关(Seedance/Wan 等使用同一密钥)。图/文生视频、首帧+尾帧、最多 9 张图片参考;2–30 秒,具体取决于每个模型的 API 限制;每个模型分辨率 480p/720p/1080p。

重要提示: 生成前,请阅读所选模型的参考文档,了解其能力、输入通道、模式、提示结构及模型特定行为。切勿发明参考文档中禁止的参数。

模型选择

遵守来自能力提示的已配置供应商(只调用密钥已开启的模型)。

  1. 用户指定了供应商("用海螺"、"MiniMax"、"Kling"、"Seedance")→ 使用该 model(如果已配置)。
  2. 如果 Fal.ai 被选中或请求,使用 model: "fal" 和请求的 falModel 或从能力中保存的 Fal 默认模型。如果未选择 Fal 模型,请询问。阅读工具 schema 中的 Fal 目录限制;以下原生供应商限制不适用。
  3. 否则,当 Seedance 已配置时,默认使用 seedance2。
  4. 否则,如果只有 Kling 开启 → kling。否则如果只有 MiniMax 开启 → hailuo。否则如果只有 xAI 开启 → grok-imagine-video。否则如果只有 OFox 开启 → ofox。
  5. 在以下情况切换默认模型:
    • 需要多镜头自定义/智能 → kling(如果不是用户指定的,需要确认)。
    • 需要丰富的多模态参考(视频/音频参考、编辑/扩展) → seedance2。
    • 需要简短的单镜头且只有 MiniMax 可用,或用户想要 Hailuo → hailuo,时长 6 或 10 秒。

如果所需模型未配置,请告知用户并提供替代方案:其他已配置的视频供应商、上传或 Motion Graphic——不要假装 API 存在。

在提交之前,简短地告诉用户将要生成的内容。

工具参数

参数值默认值
modelseedance2、kling、hailuo、grok-imagine-video、ofox、fal可用时默认为 seedance2
durationSeconds模型特定seedance/kling ~5;hailuo 6 或 10(1080p → 仅 6);grok 1–15;ofox 2–30(每个模型的 API 限制)
ratio见模型文档16:9(seedance/kling/grok/ofox);hailuo 忽略
resolution480p、512p、720p、1080p、4k供应商特定;hailuo 增加了 Hailuo-02 的 512p;grok: 480p/720p/1080p
refVideoModefeature、base仅 kling,配合 refVideos
promptOptimizer / fastPretreatment布尔值仅 hailuo
generateAudio、seed、cameraFixed、watermark控制参数仅 seedance
returnLastFrame、executionExpiresAfter、priority控制参数仅 seedance;请求的尾帧成为另一个图片资产
name描述性资产名称必须是描述性的,以获得良好的资产库体验
firstFrame项目图片资产引用可选
lastFrame项目图片资产引用seedance / kling / hailuo(需要 firstFrame;在 seedance 上不可与多参考一起使用)
refImages / refVideos / refAudios资产引用seedance 完整;kling:图片 + 1 个功能视频(无音频);hailuo:无(帧 / S2V 主体)
mode / shotType / multiPromptsKling 多镜头仅 kling

模型特定参数——请参见该模型的参考文档。

输入分辨率

firstFrame / lastFrame / refImages / refVideos / refAudios 都接受项目资产引用。优先使用来自 read_project 的完整 UUID 或短前缀;也接受 asset://<id> 和 read_project 返回的同一项目资产 URL。按插槽类型:帧插槽和 refImages → 图片;refVideos → 视频;refAudios → 音频。

不接受外部 URL 和 base64。如果来源是公共 URL,首先将其下载到项目中(视频/音频使用 download_media,图片使用 submit_image),然后传递生成的资产 ID。

工作流程

四步循环。对于每次新生成,如果用户意图发生变化,从步骤 1 重新开始。

步骤 1 — 与用户对齐范围

在编写任何提示之前,就三个维度进行对齐:

  1. 时长与分段 — 总长度、镜头数量,以及它们是在一个片段内还是多个片段中。

    如果用户已经指明了方向("做一段"、"in one video"、"分别生成"、"split into N shots" 等),请遵循——不要过度解读。

    否则,向用户展示两条路径并让用户选择:

    • 一个片段内的多镜头(参见模型参考)——一次推理,子镜头之间的主体/光照/风格物理上保持一致;适合在单个片段时长上限内的连贯叙事。
    • 多个片段——每个片段可独立控制和重新生成,但身份和风格连续性必须通过锚点维持;适合超过时长上限或硬场景切换。

    提供权衡;不要为用户做决定。

  2. 内容 — 每个片段描绘的内容。分段总结你所理解的内容。当内容模糊时(例如"生成一个女孩跳舞的视频"),用户通常没有指定以下一项或多项:

    • 主体:主要主体是谁/是什么(外貌、服装、定义特征)?
    • 动作:他们在做什么?(对于说话/情感镜头,有什么微表情?)
    • 场景:在哪里——环境、一天中的时间、环境细节?
    • 光照/色彩氛围:什么氛围?
    • 相机:是否有任何景别/角度/移动偏好?
    • 风格:视觉风格或参考(电影感/动漫/纪录片/...)。

    专注于在此特定请求中重要且无法安全推断的项目——不要将其变成填空练习。在继续之前,将理解的部分总结给用户。

  3. 一致性锚点——仅在多个镜头重用角色、物体或场景时:确定在镜头之间固定的锚点(参考图片或视频)。有关获取规则,请参见下方“镜头间视觉一致性”部分。

对于每个维度,检查用户的措辞:

  • 明确 — 继续。
  • 模糊或缺失 — 询问用户。不要猜测,不要默认使用你自己的解释。一次往返确认比一次浪费的生成成本更低。

不应该做什么

  • 不要“告知然后提交”——宣布“我将把它做成 2 个片段”并立即提交不是对齐,而是单方面决定加公告。
  • 不要默认将单个视频请求拆分为多个片段。 单个片段可以包含多个子镜头(参见模型参考),主体/光照/风格在它们之间物理上保持一致。呈现权衡,然后让用户选择。
  • 不要跳过询问,因为你认为答案很明显。

硬性覆盖(用户的明确措辞优先)

  • "one clip / single clip / 一条 / 一个镜头 / in 1 clip" → 绝不拆分,即使描述客观上很长。
  • "N shots / N 段 / N 个镜头" → 精确生成 N 个。
  • "use this image / 用这张图" → 用作参考,不要替换。

步骤 2 — 编写提示

参见所选模型的参考文档,了解提示结构和参数组合(例如,Seedance 的 8 元素结构和模式;Kling 的提示技巧)。提交前检查:

  • name 是一个描述性的资产名称——描述性足够强,使用户(以及你在后续交互中)能在项目库中识别此资产。避免使用模糊的名称,如“Untitled”或“clip 1”。
  • 参数组合符合用户的意图——参见模型参考中的模式部分。
  • 生成的视频音频不是工具参数(供应商端)。Hailuo 没有比例/多参考;不要发明这些参数。
  • 验证失败时,读取错误并修复输入——不要盲目重试相同的无效参数。

步骤 3 — 提交一个,等待,确认

一次提交一个生成任务。 除非用户明确要求并行生成多个片段,否则在当前的片段完成并且用户审查之前,不要提交下一个片段。并行提交会隐藏问题:如果第一个镜头出现偏移或错误构图,用户更希望只重做一次,而不是有多个错位的镜头需要丢弃。

  • submit_video.ratio 仅控制生成的资产;它不会改变项目时间画布。如果用户请求了最终输出宽高比(例如“9:16 竖屏”或“16:9 横屏”),在放置完成的资产之前,使用 manage_timelines action=update(例如 ratio:"9:16")将时间画布设置为相同的比例。如果用户要求无黑边/全出血,在设置画布或更新/添加视觉元素时传递 fit:"cover"。
  • 不要使用此技能进行任务管理——使用 track_progress 工具进行状态/等待。
  • 提交后,结束你的轮次(告诉用户任务已创建),除非后续任务已排队。
  • 任务完成后,在继续下一个镜头之前,将结果展示给用户审查。
  • 模型特定的故障处理——请参见该模型的参考文档。

步骤 4 — 迭代

当用户想要下一个镜头、修订或续集时:

  • 如果是多镜头序列中的下一个镜头 — 重用已建立的锚点(参见下方“镜头间视觉一致性”部分了解原则,参见模型参考了解标志级细节)。
  • 如果用户的反馈模糊不清(“感觉不对”)— 在重新生成之前询问具体要更改什么。
  • 如果相同的文本提示调整已经失败两次 — 停止调整文本。切换为参考图片,或在模型支持的地方切换到编辑模式(参见模型参考)。
  • 每次新生成都会在步骤 1 重新开始循环——如果范围发生变化,重新对齐。

镜头间视觉一致性

仅凭文本无法可靠地跨镜头维护视觉身份;视觉参考对输出的约束比文字精确得多。

锚点:一致性的基石

锚点是在共享相同角色、物体或风格的每个镜头中固定的参考图片或视频。任何具有重复视觉元素的多镜头序列都需要一个锚点——不要试图仅从文本中重现它们。

获取锚点

具备参考意识。当用户的请求涉及重复角色/物体/场景时,在编写提示之前思考要使用什么锚点:

  • 首先检查项目。 用户已经提供或批准了什么?上传的图片、先前生成并批准的镜头,或更早的项目资产都可以作为锚点。
  • 匹配用户的意图。 如果用户指定了某个资产(“use this photo”、“像上一段那样”),使用那个。如果他们仅用文字描述了一个角色,则不存在锚点,必须建立一个。
  • 如有疑问,询问用户。 不要猜测要固定哪个资产,也不要在用户可能已经心中有数时默默地生成一个新的锚点。

建立新锚点(需用户同意)

如果没有现有资产符合要求并且必须生成一个,首先向用户提出——它将影响每一个后续镜头。模型特定路径——请参见所选模型的参考。

使用锚点

  • 在共享角色/物体/风格的每个镜头中传递锚点。要使用的特定标志取决于模型——参见模型的参考。
  • 在提示中通过外观描述锚点,而不是通过名称:"带有镀铬排气的黑色赛车"比 "Fleetmaster" 约束性强得多。当角色混淆可能发生时,添加明确的否定:"摩托车不会变形。"
  • 在提示中使用 @Image1 / @Video1 引用锚点——不要使用模糊的短语,如"和之前一样的车"。
  • 当镜头依赖于前一个生成结果时,等待前一个任务完成(通过 track_progress 和 action=wait)以获取其 assetId,然后将其作为锚点参考传递。不要并行提交有依赖关系的镜头。

多角色项目

当项目包含多个具有独特属性的命名角色时(例如,Faz 有火焰能量,Kev 有冰霜能量),将每个角色视为一个单独的锚点——每个角色一个参考资产。在每个提示中:

  • 命名活跃角色并附上其独特属性(“Kev 有蓝色冰霜电能”)。
  • 为其他角色添加明确的否定,以防止属性泄漏("NOT 红色火焰能量,NOT Faz 的外观")。
  • 固定正确的角色锚点(模型特定标志——参见模型参考)。不要意外地重用另一个角色的锚点。

缺少明确的属性归属或否定会导致跨角色属性混合。

同一帧中的多个角色。 对于多个角色同时出现的镜头(尤其是面向相机时),模型容易出现面部交换或身体裁剪。为每个角色添加强烈的空间位置 + 服装锚点,并优先使用固定相机。

[remainder of document truncated for translation]

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

0xsline/openchatcut

Connect an MCP-capable coding agent to OpenChatCut and edit local video projects. Use when the user asks to install, connect, or set up OpenChatCut; inspect or edit an OpenChatCut project; work with its timeline, transcript, captions, media, generation, motion graphics, audio, color, or export tools; or recover from an OpenChatCut MCP error.

0xsline/openchatcut

Use when acquiring or importing media into a OpenChatCut project asset library for video editing or creation, including local/attached videos, user-provided paths, public media URLs, web video/audio/image assets, upload fallback decisions, and deciding between import_media, download_media, or manual user action.

0xsline/openchatcut

Use when a OpenChatCut video editing or creation workflow needs export, render, download, share, final delivery, subtitle-file export, render choice, local-only asset handling, or export fallback explanation.

0xsline/openchatcut

AI image generation via Fal.ai, gpt-image-2, nano-banana, MiniMax image-01, and xAI Grok Imagine. Use when the user wants to generate or create an image / picture / still.

0xsline/openchatcut

Use when a OpenChatCut tool call fails or returns an unexpected shape.

0xsline/openchatcut

Music generation via Mureka, MiniMax, Atlas Cloud, and Sonilo. Use for instrumentals, songs, soundtracks, track/stem generation, covers, or video-conditioned scoring of the finished cut through `submit_music`.

0xsline/openchatcut

OpenChatCut product knowledge — UI layout, editor features, and how generation providers are configured. Use when the user asks about the product interface, how to use a feature, where to find something, or needs GUI guidance for something the agent cannot do directly. Also use as fallback when a task fails and the user needs to complete it manually in the UI. NOT for live project-state queries ("where are my folders?", "what's on my timeline?", "where is clip X?") — those are answered by `read_project`, not by this skill.

0xsline/openchatcut

AI shader generator for WebGL video effects, transitions, masks, and color grading (LUT / 调色 / 电影感 / film look). Use when the user wants a video effect (滤镜 / 特效), a transition (转场 / crossfade / wipe / cube / 3d), a mask (蒙版 / 遮罩 / reveal), a zoom / push-in (推近 / 推镜头), or a color grade — try the built-in effects (zoom, builtin LUTs) before generating a new shader.

0xsline/openchatcut

Use when checking whether agent edits are reflected in the OpenChatCut project and editor.

0xsline/openchatcut

Text-to-Speech (TTS), voiceover, narration placement/sync, and custom sound effects (SFX) generator. Use when the user wants generated speech from text, wants to add/replace/align narration or voiceover for an existing video/timeline, wants to keep existing voiceover synced after visual retiming edits, needs voice audition/selection, or explicitly wants a newly generated/custom sound effect that is not available in the Sound Effects library.

0xsline/openchatcut

Use when the agent should ask the user for structured input with an in-chat form, including single-select, multi-select, text fields, style pickers, or voice audition choices.

相关技能