关于 scenario-seedance
这是通过 Scenario 使用 ByteDance Seedance 视频模型的技能,说明如何选择条件输入、设置生成模式,并处理音频、草稿、成本和审核问题。
主要功能
- 01文本、图像、参考、编辑与延长模式
- 02参考条件与提示词标签用法
- 03音频与草稿模式工作流
- 04模型规范、时长与成本检查
- 05审核拦截处理
适用场景
- 01根据文本或参考素材生成镜头
- 02通过视频参考延续或编辑片段
- 03先预览再完成选定镜头
- 04规划多个镜头的音频
MCP 相关
作为 Scenario 技能,它指导使用 search、model_schema_get、model_run 和资源操作等 MCP 工具运行 Seedance 模型。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scenario-labs/ skills --skill scenario-seedance安装后在 Claude Code 中输入/scenario-seedance确认已加载。
详细介绍
Scenario Seedance 视频
概览
Scenario 上的 Seedance(字节跳动的视频系列)将以下所有模式整合到一个模型中,并根据你的输入推断使用哪种模式,因此,你传入的条件比提示词措辞影响更大。使用 search 进行探索,并将 model_schema_get 视为约定:各个成员并行发布,结构一致,但每个数值都不同。
有关连接和核心流程,请参阅此仓库中的 scenario 技能;有关与模型无关的视频工作,请参阅 scenario-video 技能;有关基于分镜在剪辑间保持编排一致性,请参阅 scenario-seedance-storyboard 技能。如果你可用的技能中缺少此处提到的某个同系列技能,请让用户安装(npx skills add scenario-labs/skills --skill <name>);若需无人值守地继续,请根据工具架构操作,并指出这一缺失。
快速参考
模式取决于输入(名称来自实时架构):
| 模式 | 输入 | 行为 |
|---|---|---|
| 文本 | prompt | 遵循 aspectRatio(21:9 至 9:16) |
| 首帧 | image(+ prompt) | 从该帧开始;忽略 aspectRatio,尺寸遵循 resolution,比例可能只能接近目标值 |
| 首帧 + 尾帧 | image + lastFrameImage | lastFrameImage 仅在同时提供 image 时有效 |
| 参考 | referenceImages | 保留身份和世界设定,而非开场状态 |
| 编辑 | referenceVideos + 编辑提示词 | 需要 duration: -1;输出遵循源视频 |
| 延长 | referenceVideos + 延长提示词 | 根据措辞推断:“extend @video1”、需要保留的内容(角色、服装、光线)、延续的动作,以及不中断的要求;画面几何遵循源视频;duration 是追加的片段时长,输出仅包含该尾段(创作时,一段 10 秒的源视频设置 duration 为 15,返回了 15 秒的新片段;Auto 按源视频时长计价),因此请将源视频与尾段拼接,并通过 asset_get 查看交付时长 |
image 和参考数组不能同时使用。referenceVideos(动作条件)和 referenceAudio(节奏与能量,或说话者的声音)可与 referenceImages 组合使用;在 2.0 系列中,参考音频还需要一张图像或一个视频作为参考,而 2.5 可以单独使用参考音频。即使只有一个素材,参考参数也必须是数组。提示词标签按数组顺序绑定:@image1 对应 referenceImages[0],@video1 和 @audio1 也同理;提示词要说明每个标签控制什么、不控制什么(“@image1 定义瓶子和标签,不包括布景”),视频和音频标签也一样。如果将 3D 预演视频作为 @video1,视频里每个会动的肢体都会被带入,因此分步或带骨骼的行走动作会显得僵硬或滑步。使用无腿的胶囊体替身(scenario-blender-blockout 会构建这类替身),并用一句话说明它们仅标记位置、高度和速度,让模型自行生成步态。没有种子、遮罩或摄像机参数:摄像机运动写在提示词中,每个镜头只设一个主要运动和一个动作。多个动作按带时间码的节拍编写(“0-2s ... 2-4s ...”),每个节拍一个动作,最后一个节拍在 duration 结束前收尾,并将镜头描述为一个连续长镜头。 |
如果提示词没有明确说明某条参考音轨的用途,模型很容易忽略它,生成的语音尤其如此,因此要用文字明确绑定其角色:语音可写“@audio1 是她自己的声音;她对着镜头说出这段话,口型与声音同步”,音乐可写“摄像机运动和每个动作都与 @audio1 的节拍同步”。
duration 默认为 Auto;在编写本文时,2.5 会按完整的 30 秒上限为文生视频任务计价(同样的 480p 提示词报价约为 8 秒任务的四倍)。每次运行都应设置镜头所需的秒数;使用 referenceVideos 时,Auto 则会采用最长参考视频片段的时长。
各成员的上限各不相同,请通过 model_schema_get 查看。在编写本文时,2.5 支持 30 张参考图像、10 个视频、10 段音频、4 到 30 秒,最高 1080p;2.0、Fast 和 Mini 分别支持 9、3、3 和 4 到 15 秒,只有 2.0 支持 4k,Mini 不支持 lastFrameImage。不同成员之间的价格差异远大于上限差异:一个 4 秒 480p 任务的价格在整个系列中相差六倍,因此批量运行前,应先对两个成员使用同一任务执行 dry_run。
草稿模式。 在 Seedance 2.5 上设置 draft: true 可生成低成本的 480p 预览(忽略 resolution)。model_bytedance-seedance-2-5-draft-complete(编写本文时可用;输入为 draftVideo)可在 7 天内将其转为相同的 1080p 视频。只对最终选定的镜头执行完成操作:以 1080p 重新运行提示词会生成不同的视频。请参阅 scenario-seedance-drafts 技能。
条件控制规则
在参考模式下,第一帧会锚定到参考世界的基础状态,提示词措辞无法覆盖这一状态。如果镜头必须以特定状态开场,请将其渲染为静帧并作为 image 传入;如果只需要身份、世界和色彩风格,则使用 referenceImages。在生成前逐个镜头做出这个决定,比调整提示词更重要。
镜头内的声音,别处的音乐
generateAudio(默认值为 true)是控制整条音轨的开关:它既为镜头配乐,也生成声音。写在某个镜头里的配乐不会延续到剪辑点之后,因为每个镜头都会自行生成调性和节奏,而下一个镜头会重新开始。
因此,要把两条轨道分开处理。保留 generateAudio: true,生成画面本身产生的声音:脚步声、撞击声、室内环境音、对白,让每种声音都与画面同步,并且只描述这些声音(“仅限画内音:鞋跟踩在瓷砖上的声音、室内环境音”)。绝不要描述要排除的内容:“no music”会被音频过滤器读取;被 OutputAudioSensitiveContentDetected 拦截的音轨通常都与这类排除性描述有关。因此,在切换提供方之前,先在同一模型上重试,并正面描述所需声音:过滤器读取的是措辞,而非提供方(参见 scenario-moderation skill)。对白要加引号,长度要与片段时长相称,并注明说话者以及两三个词的表达方式。用音乐模型为整段序列配一次乐(参见 scenario-audio skill),再把这条音轨铺到剪辑完成的视频上(参见 scenario-video-assembly skill;如果先有歌曲,则参见 scenario-seedance-music-video skill):重新配乐只需运行一次音频模型,不必重新处理每个镜头。
提示词是唯一可调的手段,所以要听听生成结果:如果混入了音乐,就将该镜头的 generateAudio 设为 false 后重试,并用音效模型或视频转音频模型添加声音。
成片被拦截时
如果某一行状态为 failed,且错误中包含 OutputVideoSensitiveContentDetected(通常还包含 PolicyViolation,有时会表述为可能涉及版权),说明提供方正在筛查渲染完成的视频。过滤器适用于整个模型系列,所以 Seedance 的同系列模型也会拒绝相同的输入;原样重试只会再次生成同样的结果。按 scenario-moderation skill 中的说明处理:先切换到其他提供方,提示词保持不变,只需按照替代模型的 schema,将 @image 标签移到它专用的参考字段中。对于 recommend,文生视频使用 txt2video,首帧和参考图任务使用 img2video,编辑和延长任务使用 video2video。编写时的两项观察决定后续做法。屏幕上的角色如果被识别为现有知识产权,无论怎样措辞都会被拦截:某家工作室的知名角色生成失败,而同一工作室不太知名的角色在提示词不变的情况下却通过了。武器和伤害相关词汇(“axe”“blade”“eliminated”)即使在卡通场景中也会触发过滤;此时才应采用该 skill 中唯一适当的改写方式。如果切换提供方并进行改写后仍被拦截,例如涉及团队自有角色时,请告知用户可通过 [email protected] 联系支持团队,并提供失败任务 ID。无人值守时,只能在任务授权的预算范围内切换提供方;否则就停止操作,并报告拦截情况及失败任务 ID。
操作示例:使用参考图生成产品镜头
- 使用
target="models"、query="seedance"、public=true运行search。优先选择最新的、未弃用的结果,例如model_bytedance-seedance-2-5(编写时仍可用;每次会话都要重新发现)。 - 使用该 ID 运行
model_schema_get:先查看字段、限制和默认值,再进行其他操作。 - 使用
upload_asset上传产品静帧(参见scenarioskill),获取资源 ID。 - 使用该
model_id运行model_run,设置dry_run=true,并使用以下确切的parameters={"prompt": "@image1 defines the bottle and label. Slow dolly-in as condensation beads. Diegetic sound only: droplets on glass, soft room tone. No text, no captions.", "referenceImages": ["asset_a", "asset_b"], "duration": 8, "resolution": "720p", "generateAudio": true}估算费用;更改时长、分辨率或参考图后,都要重新估算。 - 再次运行
model_run并设置wait=false,然后使用返回的任务 ID 调用jobs_wait;超时时使用pending_job_ids再次调用,切勿第二次运行model_run。 - 使用
asset_display显示输出,并在添加音乐前播放视频和声音。
常见错误
- 在参考模式下提示开场状态:它不会出现;请将其作为
image传入。 - 在架构要求数组时传入裸字符串:即使只有一个参考项,也要使用
["asset_x"]。 - 同时使用
image与referenceImages或referenceVideos:这些输入互斥。 - 将
duration留在 Auto:对于 2.5,文生视频任务会按 30 秒上限计价,而非按镜头时长计价。 - 在角色参考旁传入一段语音轨,却不说明声音属于谁:模型可能会让角色面部动起来,并忽略语音轨。
- 将某个成员的上限或价格套用到另一个成员:30 个参考项、30 秒和 1080p,对某个成员成立,对另一个则不成立。
- 让各个镜头自行评分,然后再将它们剪在一起:音乐会在每次剪切时重新开始。
- 在启用音频的提示词中写“不要音乐”:此排除要求会触发音频过滤器;请正面描述声音,或关闭
generateAudio。 - 渲染字幕、价格、徽标或 UI:预留干净空间,并在后期合成文字。
- 在 Seedance 或 Seedance 同系列模型上重试被输出审核拦截的内容:过滤器适用于整个系列,因此请先切换提供商(
scenario-moderation技能)。