关于 video-gen
用于规划和提交 ChatCut 视频生成任务的技能,并要求在继续前审阅结果。内容涵盖模型选择、提示词输入,以及对片段范围和内容的确认。
主要功能
- 01选择支持的视频模型
- 02确认片段时长与内容
- 03使用项目资源作为参考
- 04提交并跟踪生成任务
- 05继续前审阅生成结果
适用场景
- 01根据文本提示词生成视频
- 02利用图像或视频参考生成素材
- 03编辑或扩展现有视频
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ chatcut-inc/ agent-plugin --skill video-gen安装后在 Claude Code 中输入/video-gen确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/kling.mdminimax-h3-max.mdminimax-h3.mdomni.mdseedance2.mdseedance25.md详细介绍
视频生成
如果尚未加载 submit_video,请先使用 ToolSearch 加载它,再调用它,以便使用真实参数,而不是猜测参数。
每次调用都会提交一个视频生成任务,并返回一个 jobId。任务状态和后续检查由 track_progress 负责;此技能不会自动将视频放到时间线上。
适用场景
只要用户想要生成视频片段,就使用此技能——文本生成视频、图像生成视频、首尾帧过渡、基于参考内容生成,或以生成方式编辑/扩展现有视频(根据源片段生成新的素材;不包括时间线裁剪)。
模型
| 模型 | 参考 | 优势 |
|---|---|---|
seedance-2-5 | references/seedance25.md | 默认选项。支持 4-30 秒、最多 50 个多模态参考内容、仅音频参考、时间戳控制,以及 mp4/mov 输出。最适合用于新生成、编辑和扩展的 Seedance 模型。 |
seedance2 | references/seedance2.md | Seedance 2.0 完整模型。支持 4-15 秒、丰富的多模态参考内容,最高可输出 1080p。 |
seedance2fast | references/seedance2.md | Seedance 2.0 Fast——输入内容和 4-15 秒时长范围与 seedance2 相同,几分钟即可返回,而非约十分钟;价格低约 20%,最高为 720p。适合用户需要反复迭代且周转速度比最高保真度更重要的情况。 |
seedance2mini | references/seedance2.md | Seedance 2.0 mini——输入内容和 4-15 秒时长范围与 seedance2 相同;价格低约 50%,最高为 720p。适合低成本草稿和大批量生成,尤其是在不需要完整模型保真度时。 |
kling | references/kling.md | 可通过提示词使用镜头控制语言;在角色镜头的细腻情绪/表演控制方面表现出色。使用 mode:"pro" 可生成 1080p 视频。 |
minimax-h3 | references/minimax-h3.md | MiniMax H3。支持 4-15 秒、768p/2k、首尾帧,以及最多 9 张图像 + 3 段视频 + 3 段音频参考(共 12 个)。多模态参考遵循能力出色。 |
minimax-h3-max | references/minimax-h3-max.md | MiniMax H3 Max。支持 5-15 秒、480p/768p,以及文本生成或首尾帧生成。不支持参考模式或 2K 输出。 |
omni | references/omni.md | Gemini Omni 1.1 Flash。支持通过 continueFrom 定向编辑/扩展、首尾帧,以及低成本 360p 草稿。支持 3-10 秒;默认 720p,可升频至 1080p/4k。 |
**重要:**生成前,请阅读所选模型的参考文档,了解其功能、输入通道、模式、提示词结构和特定行为。
模型选择
生成新内容时,默认使用 seedance-2-5。只有在以下情况才切换:
- 用户明确指定了模型(“用 Kling”“use Kling”“用 Omni”“用 mini”“/kling”)——直接切换,无需再次询问。
- 用户明确要求使用 MiniMax H3,或需要结合图像/视频/音频参考的指导,并可选择 2K 输出——使用
minimax-h3。 - 用户明确要求使用 MiniMax H3 Max,或希望在没有多模态参考的情况下获得其最高保真度的文本/帧生成效果——使用
minimax-h3-max。 - Seedance 明显无法胜任,或效果不佳——遇到 Seedance 已知表现不佳的情况时,提议切换到
kling,并在提交前确认。 - 用户明确要求快速/低成本草稿,并且预期会进行修改——提议使用
omni(360p 草稿,≤10s,支持定向编辑),并在提交前确认。 - 用户需要 Seedance 以 1080p 输出——优先使用
seedance-2-5;它和完整的seedance2都支持 1080p。 - 用户想以较低成本使用 Seedance 2.0 的输入,或一次生成多个片段,并且接受 720p——提议使用
seedance2mini(4-15s,费用约为完整 2.0 模型的 50%),并在提交前确认。 - 用户正在迭代 2.0 风格的输出,并且重视周转速度——提议使用
seedance2fast(480p 或 720p,4-15s,费用约为完整 2.0 模型的 80%,返回速度快得多),并在提交前确认。
其他情况均继续使用 seedance-2-5。
修改已有片段时,应在步骤 4 中选择模型,而不是在此处选择。修改请求并不构成更改后续新内容默认模型的理由。Omni 1.1 取代了此前的 Omni 选择;保留 omni 别名,不要另行创建旧版选项。
访问说明:这八种模型都需要 ChatCut 付费视频生成权限(订阅或付费点数)。绝不要把其他模型说成是绕过订阅限制的免费替代方案;用户询问免费方案时,应提供免费的 Motion Graphic 动画。
工具参数
| 参数 | 值 | 默认值 |
|---|---|---|
prompt | 视频描述(必填) | — |
model | seedance-2-5、seedance2、seedance2fast、seedance2mini、kling、minimax-h3、minimax-h3-max、omni | seedance-2-5 |
durationSeconds | 秒 | 5 |
ratio | 参见模型文档 | 16:9 |
resolution | 因模型而异;H3:768p/2k;H3 Max:480p/768p;Seedance:480p/720p/1080p;Omni:360p/720p/1080p/4k | 720p(H3 模型为 768p) |
outputFormat | mp4、mov(仅限 seedance-2-5) | mp4(生成);mov(编辑/延长) |
taskMode | generate、edit、extend(seedance-2-5 或 omni) | generate |
name | 描述性素材名称(必填) | — |
firstFrame | 项目素材引用 | — |
lastFrame | 项目素材引用 | — |
continueFrom | 视频素材引用 — 仅限 omni,要编辑/延长的源素材 | — |
模型专属参数(例如,Kling 的 mode、Seedance 的 refImages / refVideos / refAudios)——参见模型参考文档。
输入分辨率
firstFrame / lastFrame / refImages / refVideos / refAudios 均接受项目素材引用。建议使用 browse_assets 返回的完整 UUID 或短前缀;也接受 asset://<id> 和素材工具返回的同项目素材 URL。各槽位的类型:帧槽位和 refImages → 图像;refVideos → 视频;refAudios → 音频。
不接受外部 URL 和 base64。如果源文件是公开 URL,请将其下载到沙盒工作区,通过 asset-import + push_asset 导入本地文件,并传入生成的素材 ID。
工作流
四步循环。每次生成新内容时,如果用户意图发生变化,请从步骤 1 重新开始。
步骤 1 — 与用户对齐范围
在编写任何提示词之前,先在三个方面达成一致:
-
时长与分段 — 总时长、镜头数量,以及这些镜头是放在一个片段中还是拆成多个片段。
如果用户已经明确了方向(如“做一段”“in one video”“分别生成”“split into N shots”等),就按用户的要求执行,不要再反复确认。
否则,列出两种方案供用户选择:
- 一个片段中的多镜头(参见模型参考)——一次推理,子镜头之间的主体/光线/风格保持物理一致;适合在单片段时长上限内讲述连贯的故事。
- 多个片段——每个片段都可以独立控制和重新生成,但需要借助锚点维持身份与风格的连贯性;适合时长超过上限或场景切换明显的情况。
说明两种方案的取舍,但不要替用户做决定。
-
内容 — 每个片段呈现什么。按片段总结你对用户需求的理解。当内容较模糊时(例如“生成一段女孩跳舞的视频”),用户通常没有说明以下一项或多项内容:
- 主体:主要主体是谁/是什么(外貌、服装、鲜明特征)?
- 动作:主体在做什么?(对于对话/情绪镜头,微表情如何?)
- 场景:地点在哪里——环境、时段、周围细节?
- 光线/色彩氛围:想要什么氛围?
- 摄像机:对景别/角度/运动有何偏好?
- 风格:视觉风格或参考(电影感/动漫/纪录片/……)。
重点关注对当前需求重要、且无法安全推断的项目——不要把这变成逐项填空。继续之前,先向用户复述你已理解的内容。
-
一致性锚点 — 仅当多个镜头重复使用同一角色、物体或场景时,才确定要在哪些镜头中固定使用哪个锚点(参考图像或视频)。锚点来源规则见下文 §镜头间的视觉一致性。
对于每个方面,都要检查用户的表述:
- 明确 — 继续执行。
- 模糊或缺失 — 向用户提问。不要猜测,也不要自行设定默认解释。往返确认的成本远低于生成失败。
不要做的事
- 不要“告知后直接提交”——宣布“我会把它做成 2 个片段”后立即提交,这不是对齐,而是单方面做决定并告知用户。
- **不要默认把单视频需求拆成多个片段。**一个片段可以包含多个子镜头(参见模型参考),并在镜头间保持主体/光线/风格的物理一致性。先说明两种方案的取舍,再让用户选择。
- 不要因为觉得答案显而易见就跳过提问。
强制优先遵循的规则(以用户明确表述为准)
- “one clip / single clip / 一条 / 一个镜头 / in 1 clip” → 绝不拆分,即使描述客观上很长。
- “N shots / N 段 / N 个镜头” → 严格生成 N 个。
- “use this image / 用这张图” → 将其用作参考,不要替换。
步骤 2 — 编写提示词
参照所选模型的提示词结构和参数组合说明(例如 Seedance 的 8 要素结构和模式、Kling 的提示技巧)。提交前检查:
name是一个描述性资源名称——要足够具体,让用户(以及你在后续对话中)能在项目库中识别此资源。避免使用“未命名”或“片段 1”等模糊名称。- 参数组合符合用户意图——参见模型参考中的模式部分。
- 生成视频的音频不是工具参数。Seedance 和 Kling 通过后端提交时均会启用音频。
- 验证失败时,阅读错误信息并修正输入——不要盲目重试相同的无效参数。
第 3 步 — 提交一个,等待并确认
一次只提交一个生成任务。 除非用户明确要求并行生成多个片段,否则在当前片段完成且用户审核后,再提交下一个片段。并行提交会掩盖问题:如果第一个镜头出现偏移或取景错误,用户宁愿只重做一次,也不愿丢弃多个对不齐的镜头。
submit_video.ratio仅控制生成的素材,不会更改项目时间线画布。如果用户要求最终输出采用特定宽高比(例如“9:16 竖屏”或“16:9 横屏”),请在放置已完成的素材前,使用manage_timelinesaction=update 将时间线画布设为相同的宽高比(例如 ratio:"9:16")。如果用户要求无黑边/全幅显示,请在设置画布或更新/添加视觉项时设置fit:"cover"。- 不要使用此技能管理任务;如需立即读取状态,请使用
track_progress,并遵循其中后续回查的指引。 - 提交后,结束当前轮次(告知用户任务已创建),除非已有后续任务排队等待处理。
- 任务完成后,先向用户展示结果供其审核,再继续处理下一个镜头。
- 对于 Omni 源编辑,在确认请求的更改成功前,请按照其参考资料检查首帧、中间帧和末帧。
- 模型特定的失败处理方式——请参阅该模型的参考资料。
步骤 4 — 迭代
当用户想要下一个片段、修改或续接时,首先判断现有片段在下一次调用中是什么:
| 现有片段是…… | 路径 |
|---|---|
| 要修改的对象 — 针对性更改;不要求像素级精确保留 | omni + continueFrom |
| 重新生成的来源 — 新动作 / 镜头、整体片段风格变化、延长、衔接 | seedance-2-5 + refVideos;编辑 / 延长时设置 taskMode |
| 不可复用 — 意图已改变 | 重新生成,从步骤 1 重新开始 |
局部更改默认使用 omni + continueFrom。 对于明确选择的 Omni 续接,使用 taskMode:"extend" + continueFrom;对于两张图像之间的转场,使用 firstFrame + lastFrame。除此之外,通常将 Seedance 2.5 作为编辑 / 延长路径。无需等用户说“其他内容都保持不变”——“把气球改成黄色” / “移除角落里的文字”本身就已表达这一要求。只有当更改确实需要重新推断(动作、镜头、时长、整体片段风格)时,才转到 seedance-2-5,不要仅仅因为你更熟悉 Seedance 就这么做。
omni 源编辑 / 延长要求项目视频不超过 10 秒。对于更长的视频源,使用 seedance-2-5 + refVideos,或先要求用户裁剪。此集成是无状态的:不要承诺上游的 40 秒多轮工作流。
任何生成式编辑都无法无损完成。 Omni 1.1 支持升频至 1080p/4k,但更高分辨率并不能保证细节或像素保持不变。替换时间线项目之前,请检查结果;原始素材仍可使用。
然后遵循以下规则:
- 如果这是多镜头序列中的下一个镜头 — 复用已确立的锚点(原则见下文“镜头间的视觉一致性”,标志级别的详细信息请参阅模型参考)。
- 如果用户的反馈含糊不清(“感觉不太对”)— 重新生成前,先询问具体要更改什么。
- 如果同一文本提示词调整已失败两次 — 停止调整文本。改用参考图像,或切换到编辑路径(针对性更改使用
omnicontinueFrom,重新生成使用 seedancerefVideos)。 - 每次新生成都会从步骤 1 重新开始循环——如果范围发生变化,请重新对齐。
submit_video会报告 omni 编辑轮次;如果它警告链深度,请将建议转告用户,而不是悄无声息地继续。
镜头间的视觉一致性
仅凭文本无法可靠地维持不同镜头间的视觉身份;视觉参考比文字更能精确约束输出。
锚点:一致性的基石
锚点是贯穿所有共享同一角色、物体或风格的镜头的参考图像或视频。任何包含重复视觉元素的多镜头序列都需要锚点——不要尝试仅凭文本复现它们。
获取锚点
保持对参考素材的关注。当用户的请求涉及重复出现的角色 / 物体 / 场景时,在编写提示词之前先考虑使用什么锚点:
- 先检查项目。 用户已经提供或批准了什么?上传的图像、之前生成并获批的镜头,或较早的项目素材都可以作为锚点。
- 符合用户意图。 如果用户指明了特定素材(“用这张照片”、“像上一段那样”),就使用它。如果用户只用文字描述了角色,则目前还没有锚点,必须先建立一个。
- 有疑问时,询问用户。 不要猜测要固定哪个素材,也不要在用户可能已有心仪素材时,悄悄生成新的锚点。
建立新的锚点(需征得用户同意)
如果没有合适的现有素材且必须生成新素材,请先向用户提议——这会消耗额度,并影响后续的每个镜头。模型专属路径请参阅所选模型的参考文档。
使用锚点
- 每个与角色、物体或风格相关的镜头都要传入锚点。具体使用哪些标志取决于模型——请参阅模型的参考文档。
- 在提示词中按外观描述锚点,而不是使用名称:“带镀铬排气管的黑色赛车”比“Fleetmaster”限制得更明确。如果角色混淆的可能性较大,请添加明确的否定描述:“这辆摩托车不会变形。”
- 在提示词中使用
@Image1/@Video1指代锚点,不要使用“之前那辆车”之类含糊的说法。 - 如果某个镜头依赖于之前生成的素材,请使用
track_progressaction=wait等待,并按照结果进行操作(支持时自动进行后续轮次,否则稍后再次检查),直到任务进入终态,然后将其outputAssetId用作锚点引用。这两个操作都不会阻塞。不要并行提交有依赖关系的镜头。
多角色项目
如果项目中有多个具有不同属性的命名角色(例如,拥有火焰能量的 Faz、拥有冰霜能量的 Kev),请将每个角色视为一个单独的锚点——每个角色对应一个参考素材。在每条提示词中:
- 指定当前角色并添加其鲜明属性(“Kev 拥有蓝色冰霜电能”)。
- 添加明确的否定描述,排除其他角色,防止属性串用(“不是红色火焰能量,不是 Faz 的外观”)。
- 固定使用正确角色的锚点(模型专属标志——请参阅模型参考文档)。不要误用其他角色的锚点。
如果缺少明确的属性归属或否定描述,就会导致角色之间的属性混杂。
同一画面中的多个角色。 多个角色同时出现的镜头(尤其是面朝镜头时)容易出现模型换脸或身体裁切问题。为每个角色添加明确的位置和服装锚点,并尽量让该镜头使用固定摄像机:
- “画面左侧的角色穿着灰蓝色战术夹克,留着短胡子,戴着银耳环”
- “画面右侧的角色披着镶金边的红色斗篷,留着长辫子”
- “固定摄像机,中景,两个角色清晰分开”
位置词(左侧/右侧/前景/背景)加上鲜明的服装颜色,能为模型提供足够的信息,让角色保持区分。
文本调整无效时升级处理
如果同一镜头经过两次提示词文本调整后,视觉身份问题(角色错误、外观漂移、颜色不匹配)仍然存在,请停止调整文本。文本不能替代锚点。请升级处理:
- 添加或更换锚点。
- 在模型支持时使用编辑模式(调用方式请参阅模型参考文档)。
遇到同一一致性问题时,不要第三次仅调整文本并重试。
何时跳过锚点
简单、一次性或探索性请求不需要锚点——直接生成即可。
运行
// Text-to-video (Seedance 2.5 default)
submit_video({
model: "seedance-2-5",
prompt: "A cat walks across a sunny windowsill",
name: "Cat on windowsill",
});
// Image-to-video with Seedance 2.5 — pass the project asset id directly
submit_video({
model: "seedance-2-5",
prompt: "The scene comes to life, gentle breeze rustles the curtains",
firstFrame: "abc12345",
name: "Living room animation",
});
// Kling text-to-video — only after Model Selection check
submit_video({
model: "kling",
prompt: "A sports car drifts around a wet corner",
name: "Car drift shot",
});
提交后,返回 jobId,默认结束本轮。只有在用户询问状态时(action=status),或某个依赖步骤需要已完成的素材时(action=wait,然后按照结果进行操作),才调用 track_progress。两者都会立即返回;不要循环调用。
配置模式
对于复杂的多模态任务,请预先构建完整的 args 对象,并在一次调用中传入:
submit_video({
model: "seedance-2-5",
prompt: "...",
name: "...",
refImages: ["def67890", "ghi24680"],
refVideos: ["abc99999"],
refAudios: ["jkl55555"],
durationSeconds: 8,
ratio: "9:16",
});
规则
- 始终提供
name,并为素材指定描述性名称。 - 默认只提交任务。提交后结束本轮,除非已安排后续任务。
- 不要尝试通过
submit_video管理任务——状态和后续检查应使用track_progress。 - 生成会消耗额度。提交前,简要告知用户即将生成的内容。