视频生成
每次调用提交一个视频生成任务,并返回一个 jobId。任务管理(等待/状态)属于 track_progress;此技能不会自动将视频放置到时间线上。
何时使用
当用户想要生成视频片段时——文生视频、图生视频、首尾帧过渡、参考引导生成、多镜头故事板,或是对现有视频进行生成式编辑/扩展(基于源片段生成新镜头;不是时间线裁剪)。
模型
| 模型 | 参考 | 优势 |
|---|---|---|
fal + falModel | references/fal.md | 显式的 Fal 目录;查看工具 schema 以了解每个模型的限制 |
seedance2 | references/seedance2.md | 配置时的默认模型。多模态参考、首尾帧、编辑/扩展/桥接,2–15 秒,480p/720p/1080p/4k,音频/种子/相机/水印/尾帧/任务控制。 |
kling | references/kling.md | 专业相机/性能;Omni 多镜头;图片 ≤7(使用一个功能 refVideos 时 ≤4);std/pro;3–15 秒。 |
hailuo | references/hailuo.md | MiniMax 海螺。T2V / I2V / 首帧+尾帧;6秒或10秒;512P (Hailuo-02)、720p→768P、1080P (6s);不支持多参考/多镜头。 |
grok-imagine-video | references/grok-imagine-video.md | xAI Grok Imagine。仅文生视频;1–15 秒;480p/720p/1080p;包含音轨。 |
ofox | references/ofox.md | OFox 多模型网关(Seedance/Wan 等使用同一密钥)。图/文生视频、首帧+尾帧、最多 9 张图片参考;2–30 秒,具体取决于每个模型的 API 限制;每个模型分辨率 480p/720p/1080p。 |
重要提示: 生成前,请阅读所选模型的参考文档,了解其能力、输入通道、模式、提示结构及模型特定行为。切勿发明参考文档中禁止的参数。
模型选择
遵守来自能力提示的已配置供应商(只调用密钥已开启的模型)。
- 用户指定了供应商("用海螺"、"MiniMax"、"Kling"、"Seedance")→ 使用该
model(如果已配置)。 - 如果 Fal.ai 被选中或请求,使用
model: "fal"和请求的falModel或从能力中保存的 Fal 默认模型。如果未选择 Fal 模型,请询问。阅读工具 schema 中的 Fal 目录限制;以下原生供应商限制不适用。 - 否则,当 Seedance 已配置时,默认使用
seedance2。 - 否则,如果只有 Kling 开启 →
kling。否则如果只有 MiniMax 开启 →hailuo。否则如果只有 xAI 开启 →grok-imagine-video。否则如果只有 OFox 开启 →ofox。 - 在以下情况切换默认模型:
- 需要多镜头自定义/智能 →
kling(如果不是用户指定的,需要确认)。 - 需要丰富的多模态参考(视频/音频参考、编辑/扩展) →
seedance2。 - 需要简短的单镜头且只有 MiniMax 可用,或用户想要 Hailuo →
hailuo,时长 6 或 10 秒。
- 需要多镜头自定义/智能 →
如果所需模型未配置,请告知用户并提供替代方案:其他已配置的视频供应商、上传或 Motion Graphic——不要假装 API 存在。
在提交之前,简短地告诉用户将要生成的内容。
工具参数
| 参数 | 值 | 默认值 |
|---|---|---|
model | seedance2、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 忽略 |
resolution | 480p、512p、720p、1080p、4k | 供应商特定;hailuo 增加了 Hailuo-02 的 512p;grok: 480p/720p/1080p |
refVideoMode | feature、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 / multiPrompts | Kling 多镜头 | 仅 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 — 与用户对齐范围
在编写任何提示之前,就三个维度进行对齐:
-
时长与分段 — 总长度、镜头数量,以及它们是在一个片段内还是多个片段中。
如果用户已经指明了方向("做一段"、"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是一个描述性的资产名称——描述性足够强,使用户(以及你在后续交互中)能在项目库中识别此资产。避免使用模糊的名称,如“Untitled”或“clip 1”。- 参数组合符合用户的意图——参见模型参考中的模式部分。
- 生成的视频音频不是工具参数(供应商端)。Hailuo 没有比例/多参考;不要发明这些参数。
- 验证失败时,读取错误并修复输入——不要盲目重试相同的无效参数。
步骤 3 — 提交一个,等待,确认
一次提交一个生成任务。 除非用户明确要求并行生成多个片段,否则在当前的片段完成并且用户审查之前,不要提交下一个片段。并行提交会隐藏问题:如果第一个镜头出现偏移或错误构图,用户更希望只重做一次,而不是有多个错位的镜头需要丢弃。
submit_video.ratio仅控制生成的资产;它不会改变项目时间画布。如果用户请求了最终输出宽高比(例如“9:16 竖屏”或“16:9 横屏”),在放置完成的资产之前,使用manage_timelinesaction=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]