mcpField
S
scenario-reel-recast

scenario-reel-recast

github.com/scenario-labs创意与媒体1.2k96 次安装1 天前更新
代码仓库

关于 scenario-reel-recast

用于指导 Scenario 中视频换演者重制的技能,面向制作人员和 Agent。它强调保留原片的编舞、时序与镜头,并通过静音参考片、草稿审核和后期合成完成流程。

主要功能

  1. 01替换舞者并保留动作与镜头
  2. 02按参考图绑定人物和服装
  3. 03可选编辑房间背景板
  4. 04生成草稿并审核挑选
  5. 05提取歌曲并合成最终视频

适用场景

  1. 01用新人物重制已有舞蹈视频
  2. 02为同一段舞蹈尝试多套服装
  3. 03更换房间装饰并保持原镜头
  4. 04将原曲重新合成到成片

MCP 相关

该技能使用 Scenario 工具模型完成素材上传、音频提取、视频剪辑、草稿生成与合成;依赖 `scenario` 及相关技能,并要求按流程发现 Seedance 工具。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/scenario-labs/skills --skill scenario-reel-recast

安装后在 Claude Code 中输入/scenario-reel-recast确认已加载。

详细介绍

场景片段换演者

概述

换演者是指让新的表演者重新演绎现有片段。Seedance 的编辑模式将片段作为 @video1,并保留其编舞、节奏、镜头和取景,同时通过提示词更换舞者、服装和房间布景。表演者会按片段中的比例渲染,因此任何自带镜头的素材都会破坏效果:从另一个角度拍摄的背景底板会导致表演者的比例失真。歌曲不会经过生成:先从片段中提取,再放回最终成片。

只能为用户拥有或有权使用的角色换演者;未经同意,绝不能使用真实人物的肖像。歌曲能否用于发布场景由用户决定。

编辑模式、参考素材和内容审核:scenario-seedance。变体、审核、排序和 1080p 成片:scenario-seedance-drafts。底板编辑:scenario-image。时间线和同步:scenario-video-assembly。连接和核心工作流:scenario。如果当前可用技能中缺少此处提到的某个相关技能,请让用户安装该技能 (npx skills add scenario-labs/skills --skill <name>);无人值守时,根据工具架构继续操作,并标明缺少的技能。

快速参考

步骤调用详情
上传upload_asset、upload_asset_complete然后调用 asset_get:获取 duration、frameRate,以及底板所基于的 firstFrame 资源 ID
保留歌曲model_scenario-audio-extract,outputFormat: "wav"返回内嵌内容
将参考素材静音model_scenario-video-cut,preserveAudio: false设置 startTime: 0 且不设置 endTime,即可保留整个片段;返回内嵌内容;探测下载文件,确认不再包含音频流
房间底板编辑片段的 firstFrame 图像(scenario-image)可选;参见“更换房间”,并在任何视频生成支出前检查结果
换演者草稿Seedance 编辑模式,"draft": truereferenceVideos: [muted reel],按标签顺序设置 referenceImages,duration: -1,generateAudio: false;参见“提示词配方”
选择并完成scenario-seedance-drafts审核每个版本,只完成选中的版本
加回歌曲model_scenario-compose-video一个视频图层和一个音频图层,两者的 startTime: 0

这三个工具 ID 是固定的:每个工具都是 Scenario 针对其任务提供的唯一确定性工具,重新发现只会重复推导。每次会话都按照 scenario-seedance 的说明发现 Seedance 成员。

根据输出而非源素材进行规划:创作时长为 30 fps 的片段,返回结果为 24 fps(草稿为 480x854,完成版本为 1080x1920),时长也会略有偏差(14.87 s 生成 14.71 s,6.00 s 生成 6.04 s);编辑模式草稿的价格为 15 s 需 366 CU、6 s 需 148 CU。

提示词配方

这种结构让三个造型、九次生成中的身份、服装和时序保持一致:

  1. 替换对象:“编辑 @video1:将跳舞的女人替换为 @image1 中的女人”,并在适用时补充 “穿着 @image2 中的连衣裙”和“按 @image3 所示重新布置房间”。 标签遵循 referenceImages 的顺序:没有服装图片时,场景底图是 @image2。
  2. 保留清单:“原样保留 @video1 中的内容:房间本身(墙壁、地板、窗户;如果有场景底图,只更改装饰)、摄像机位置、高度、镜头和取景、她在画面中的大小、比例和位置、光线,以及舞蹈编排,包括每个动作、手势和转头,时间点都保持不变。”
  3. 绑定角色设定图:“@image1 是她的角色设定图:用它参考她的脸、头发和服装。不要从 @image1 中取用其他内容:不要面板、标签或文字。”整张设定图作为一个整体使用:不要裁切其中的面板。如果另一张图片提供服装,就只用设定图参考脸和头发,并将服装图片限定为“只参考连衣裙:不要模特、背景、徽标或任何文字”。
  4. 保留视频中的服装:“只替换跳舞女人的脸和头发”,并在保留清单中列出服装。
  5. 明确易变的细节:头发(“在头顶高高扎起,垂在背后;从第一帧到最后一帧,长度、发束和颜色保持不变;绝不垂到肩前,也不与窗帘融为一体”)、配饰(“手套保持黑色,手指自然”)和道具。未明确说明的细节会发生偏移:一次生成中蕾丝手套消失了,长马尾也垂到了前面。

更改房间

创作时的结果,按效果从好到差排列:

  • **重新布置视频中的房间:有效。**编辑 firstFrame,并仅将该帧作为参考:移除舞者,保留墙壁、地板、窗户、摄像机和光线,用文字添加装饰,保持地板中央空旷,并将输出设为该帧本身的像素尺寸,以便两者叠加。然后在本地将场景底图叠加到该帧上 (ffmpeg -filter_complex "[0][1]blend=all_mode=average"):墙壁、地板线和窗户必须在几像素范围内对齐,不得左右偏移,而且原来的舞者必须能以自身大小恰好放入空出的地板区域。将场景底图作为最后一个 referenceImages 条目传入:“同一台摄像机拍摄的同一个房间,只更改了装饰;装饰是固定道具,始终留在她身后,不会移动、变形、增多或与她重叠。”
  • 根据视频帧重建的新地点:用文字描述地点,并采用相同的单参考图编辑方式。叠加时摄像机保持不变,但用户不接受结果。优先重新布置房间。
  • 通过文生图生成的地点场景底图,或以第二张场景图片为参考编辑的场景底图:无效。场景底图沿用自身的摄像机视角(第二张参考图会让编辑器照搬其场景角度),Seedance 会按视频中的比例将表演者渲染在其上,导致比例失调。

示例:一条 Reels、三套服装、一个万圣节房间

  1. 对 Reels 使用 upload_asset,然后调用 upload_asset_complete,再调用 asset_get。
  2. 对音频提取器和静音剪辑调用 model_run。下载剪辑并确认其中只有视频流。
  3. 使用 capability="img2img" 和用户描述的装饰调用 recommend;按上文编辑 firstFrame,运行叠加检查,并在消耗任何视频额度之前向用户展示背景底图(无人值守时:叠加检查通过才可继续,未通过则停止运行,不生成任何草稿)。
  4. 查找 Seedance 并对其调用 model_schema_get。对一个草稿负载调用 dry_run,并按每套服装 N 次的次数乘以单次价格报价。
  5. 准备三个负载(服装表中的服装、一张服装图片、Reels 中原有的服装),每个负载都发送 N 次,并设置 "draft": true 和 wait=false;对所有任务调用 jobs_wait,之后使用返回的 pending_job_ids 再次调用,直到每一项都完成(需 7 到 8 分钟),绝不重复启动任务。
  6. 为每个草稿制作一份配有音乐的审核副本(按步骤 8 的方案,时长设为草稿时长),然后按照 scenario-seedance-drafts 进行审核,并增加一项时序检查:在四个匹配的时间戳处并排对比 Reels 和草稿。
  7. 使用草稿任务自身的资源 ID 完成所选内容,绝不使用配乐副本的资源 ID。
  8. 合成每个完成项:将视频和提取的歌曲作为图层,设置 startTime: 0,将 durationMode: "custom" 设为完成项的 duration 向下取整到字段的 0.1 秒步长,将 canvasMode: "custom" 设为画布尺寸对应的数值型 canvasWidth 和 canvasHeight,并将 fps 设为帧率。然后调用 asset_download 下载,并在该文件上测量同步情况(见“常见错误”)。

常见错误

  • 使用本地 ffmpeg 静音、提取或混合歌曲:以上每个步骤都有对应的工具模型。本地 ffmpeg 用于检查下载内容。
  • 将新的表演者写入背景底图:这样表演者就会作为第二个人物留在背景中。背景底图应为空房间。
  • 背景底图尚未通过叠加检查,就开始消耗视频额度。
  • 期待输出沿用源素材的帧率和精确时长,或按源素材时长进行合成:这两项都要从输出的 asset_get 结果中获取。
  • 以为歌曲从 0 开始就能同步:偏移量因运行而异(一次重拍的舞蹈比提前 110 ms 的音轨还早了 83 ms,另一次则比精确同步的音轨晚了 57 ms)。在最终文件上测量:将其音频包络与 Reels 的音频包络做互相关,并将其帧差运动包络与 Reels 的帧差运动包络进行对比。让歌曲与舞蹈同步,而不是与 Reels 的音频同步:合成器以 0.1 秒为步长移动图层,因此在歌曲设置 startTime: 0.1(舞蹈较晚)、歌曲设置 trimStart: 0.1(舞蹈较早)或两者都不设置这三种方案中,选择残余偏差较小的一种。
  • 承诺在只更换房间的情况下保留已获批准的表演者:每次编辑都会重新渲染表演者,因此更换房间就意味着要生成新片段。开始消耗额度前应说明这一点(无人值守时:根据已批准的提示词生成新片段,并报告结果)。

评论

支持 Markdown