关于 scenario-seedance-storyboard
这是一个介绍如何依据分镜规划并生成 Seedance 视频的 Scenario 技能。它通过角色参考图、姿势衔接的分镜边界和审核步骤,引导镜头间动作保持连续。
主要功能
- 01规划带时间码的镜头脚本
- 02制作角色参考图和分镜面板
- 03衔接镜头边界姿势
- 04单次运行与逐镜头串联流程
- 05审核分镜面板和视频
适用场景
- 01规划多镜头舞蹈片段
- 02保持不同镜头中的角色形象
- 03根据审核通过的分镜生成视频
MCP 相关
通过 `model_run`、`model_schema_get`、`search` 和资源工具等 Scenario MCP 工具查找 Seedance 模型、生成分镜与视频并检查输出。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ scenario-labs/ skills --skill scenario-seedance-storyboard安装后在 Claude Code 中输入/scenario-seedance-storyboard确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
README.mdreferences/board-craft.mdchained-lane.mdvideo-prompt.md详细介绍
Scenario Seedance 分镜
概述
逐镜头编写提示词,生成的动作还是会崩坏:四肢突然位移,脚步滑动,每次切镜都会让表演重置。因此,与其反复打磨提示词,不如先做分镜。这样生成的是衔接处动作连续的画面,而不是彼此独立、具有剪辑感的镜头:如果想让观众感受到切镜,请使用 scenario-video-editing 自行剪辑生成的视频。编写带时间码的镜头脚本,绘制角色设定表和每个镜头对应的编号分镜格,并遵守一条规则:每个镜头结束时的姿势必须与下一个镜头开始时的姿势一致。固定边界后,动作就无从重置,所有镜头便能呈现为一段连续表演。
连接方式和核心循环:scenario 技能;Seedance 参数规范、条件控制陷阱和音轨:scenario-seedance 技能;静帧中的身份一致性和可复用角色设定表:scenario-consistency 和 scenario-identity-library 技能;将分镜板或漫画页本身作为交付成果:scenario-storyboards 技能;拆分和重新拼接镜头:scenario-video-editing 和 scenario-video-assembly 技能。如果你可用的技能中缺少此处提到的同系列技能,请让用户安装(npx skills add scenario-labs/skills --skill <name>);在无人值守的情况下,根据工具架构继续操作,并标明缺失项。
快速参考
| 步骤 | 内容 | 方法 |
|---|---|---|
| 1. 脚本 | 先确认带时间码的清单、演员和场景 | 每个镜头包含:编号、景别、角度、镜头或运镜、动作动词、入场和出场姿势 |
| 2. 参考图 | 为每位必须保持可辨识的表演者各准备一张图片,包含多个角度;临时演员使用通用形象且不命名 | 通过 recommend 调用图像模型;真实表演者的一张清晰静帧也可以 |
| 3. 简报 | 每个分镜格写一行,描述镜头覆盖范围而非画面内容 | 先确定整体基调,保持轴线,逐步扩大景别,安排节奏点 |
| 4. 分镜格 | 每个分镜格调用一次 model_run | 以参考图作为依据,在空白纸面上绘制简洁的铅笔线稿,每格都采用最终交付比例 |
| 5. 检查 | 每个分镜格检查两轮,然后修复其中一格 | 查看产物和差异,参照 board-craft |
| 6. 组装 | 将获批的分镜格组装成分镜板 | 使用 model_scenario-compose-image 并指定明确坐标 |
| 7. 审批 | 向用户展示脚本、参考图和分镜板 | 按分镜格编号重拍;无人值守时,记录并继续 |
| 8. 关键帧 | 制作两到三张照片级真实感关键帧 | 使用相同的参考图和交付比例;它们将确定最终画面的风格 |
| 9. 视频 | 一次脚本化运行,或串联多次运行 | 使用 Seedance model_run,并选择下方两种路线之一 |
| 10. 检查 | 确保交付内容干净且保留其轨迹 | 每隔半秒采样一次,而不只是检查切镜处,并将每次切镜与对应分镜格核对 |
| 像镜头清单一样为每个分镜标注:编号、景别、角度、镜头或运镜,然后列出三个动作动词。将它们编排成覆盖镜头,而不是十二张独立图片:以交代空间关系的全景镜头开场,始终留在轴线同一侧,确保画面方向不会翻转,逐步推进景别,并用一个插入镜头或反应镜头点缀。相邻镜头通过设计衔接:镜头 3 的结尾就是镜头 4 的开头。 |
分镜画得简洁些:在空白纸上用浅色细线勾勒,场景只用两三笔快速画出,不要绘制完整环境。分镜如果画成一幅有竞争力的画面,就会被当成画面处理;其中的标记也会作为物体呈现在成片中,任何提示词条款都无法消除这些标记。轻描的线条则不会传递这些标记,因此编号、说明文字和箭头都可以留在供人审阅的分镜上。关键在于提示词的措辞,而不是画法:要说明这些标记是导演的规划指引,而非禁止出现的内容;再将关键帧作为概念艺术图提供,让外观有摄影图像作为来源。这两点都写在 video-prompt.md 中。
分镜逐张生成,因此某一张出错只会损失这一张;开始生成视频前,还要通过两轮检查:一轮由 AI 评估瑕疵,另一轮将分镜与底图进行差异比对。不能只看整组分镜的结论:平均结果会掩盖单张分镜的缺陷。
边做边归档:每个片段建立一个集合,在首次生成前创建,并存放底图、分镜、修复版本、故事板和视频(board-craft)。
在首次生成视频前暂停并征求批准,同时展示关键帧、脚本、底图和故事板,并邀请对方按分镜编号要求重拍;若流程无人值守,则记录所作假设并继续。
两种流程
一次脚本生成。 当片段时长符合单次任务的时长上限时(在编写时,2.5 的上限为 30 秒),将底图、故事板和关键帧作为 referenceImages 传入,并按照 video-prompt.md 中的七部分结构编写提示词。一次生成即可包含内部剪切:底图保持身份一致,姿势链保持连续性。指定 aspectRatio;这里默认值为 adaptive,因此竖屏故事板会生成竖屏视频。参考模式会将第一帧锚定到参考世界的基础状态(参见 scenario-seedance),因此必须以精确姿势开场的片段应使用串接流程。
逐镜头串接生成。 超出时长上限、每个镜头需要单独控制,或片段必须以精确姿势开场时:将每个边界姿势渲染为静帧,然后生成镜头 N 时,将静帧 N-1 设为 image,将静帧 N 设为 lastFrameImage,这样相邻镜头的两端就会共享双方一致认可的帧。此流程不使用 referenceImages,因此静帧是每个镜头唯一的身份参考;N 个镜头需要 N+1 张静帧和 N 次生成。每次生成还有时长下限(在编写时,2.5 的下限为 4 个整秒),因此 N 个镜头的总时长不能少于 N 乘以下限;如果剪切次数超过这个限制,就需要减少镜头数量或增加秒数。相关规范和修复流程见 references/chained-lane.md。
示例:一次运行中完成 12 个镜头的舞蹈
- 编写脚本:24 秒内安排 12 个镜头,注明每个镜头的边缘姿势,并确保每个镜头的结束姿势与下一个镜头的入场姿势匹配。 先展示给用户;这是出错代价最低的环节。若无人值守,则写下来并继续。
- 为每个角色生成一张底图,然后生成 12 格分镜,接着基于相同的底图生成两三张照片级写实关键帧。使用
upload_asset上传任何本地文件(参见scenario技能)。继续之前,先向用户展示分镜板和关键帧。 - 使用
target="models"、query="seedance"、public=true进行search。搜索结果按相关性排序,而非生成时间排序,因此要逐一查看,找出最新且未弃用的模型,而不是直接选第一个:在撰写本文时,该模型是model_bytedance-seedance-2-5(每次会话都要重新发现),它支持最多的参考素材,且最能保持角色身份一致。然后调用model_schema_get查看能力限制。 - 调用
model_run,设置dry_run=true,并使用parameters={"prompt": "<the timecoded script>", "referenceImages": ["asset_dancer", "asset_board", "asset_key1", "asset_key2"], "duration": 24, "resolution": "1080p", "aspectRatio": "16:9"}; 任何更改后都要重新估算。 - 使用
wait=false重新运行,然后调用jobs_wait;若超时,使用pending_job_ids再次调用。超时不代表失败,绝不能因此再次调用model_run。 - 逐个检查剪辑点:两侧的姿势必须一致,并与分镜格匹配。然后以每秒两帧的速度检查整个片段,因为分镜板上的标记可能在镜头中途短暂显现,因此每个镜头只采样一帧会导致误判为干净。
asset_display对视频返回的是链接,而不是帧,因此要在本地提取帧,或使用model_scenario-video-to-image-seq(这是一个固定 ID:Scenario 唯一确定性的帧提取工具,因此重新发现它只会得到同一个结果)。预期剪辑点会少于脚本中的数量:大多数镜头衔接会渲染为镜头运动,因此要在交付成片中按脚本设定的 12 个时间点剪辑。
常见错误
- 用形容词描述舞蹈编排(“跳得很有活力”):带时间码的动词和边缘姿势能在生成后保留下来;情绪词则不能。
- 只写姿势,不写位置:在双角色场景中,即使镜像的边界姿势也会像肢体错误一样严重破坏剪辑衔接。
- 在一次运行中编写角色离开画面后又返回,或在镜头外发生状态变化的脚本:角色一旦离开画面,就会在这次运行的剩余部分中消失;而且任何边界检查都无法捕捉镜头外发生的情况。要将离场、返场和状态变化安排在串联边界仍然可见的位置(chained-lane)。
- 期待脚本运行从提示词描述的姿势开始:参考模式会将第一帧锚定在基础状态;精确开场是串联流程要处理的事。
- 默认交付静音:通过点明声源来要求场景内音效,并且不要提及任何乐器、流派或“无音乐”之类的排除要求,因为这些会触发音频拒绝。
generateAudio: false是后备选项,不是默认值。 - 脚本超出提示词的
max_length,或时间码超出时长上限:编写脚本前先通过model_schema_get查看这两项限制,因为步骤 1 早于模型发现;超限会返回 400 错误,而不是自动删减。然后将脚本的运行时长作为duration发送:其默认值为 Auto (-1),而架构仅在提供参考片段时才定义该值,因此不带duration发送带时间码的脚本会导致运行时长不明确。 - 比例设置错误:每格分镜都必须采用交付视频的比例,因为重新构图会移动串联流程依赖的姿势;此外,合成后的分镜板必须满足 0.4 到 2.5 的纵横比,否则 Seedance 会拒绝将其作为参考素材,运行也会失败。