scenario-reel-recast について
Scenarioで動画の出演者を差し替える手順を案内するスキルです。振り付け、タイミング、カメラを保ちながら、無音の参照動画、ドラフトの確認、音声の合成を進めます。
主な機能
- 01動きとカメラを保ってダンサーを差し替え
- 02参照画像で人物と衣装を指定
- 03任意で部屋の背景プレートを編集
- 04ドラフトを生成・確認して選択
- 05曲を抽出して最終動画に合成
活用シーン
- 01既存のダンス動画を別の出演者で作り直す
- 02同じ振り付けで複数の衣装を試す
- 03元のカメラを保って部屋の装飾を変える
- 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": true | referenceVideos: [muted reel]、タグ順の referenceImages、duration: -1、generateAudio: false を指定します。「プロンプトのレシピ」を参照してください |
| 選択して仕上げる | scenario-seedance-drafts | すべてのテイクをレビューし、選んだものだけを完成させます |
| 曲を戻す | model_scenario-compose-video | 動画レイヤーと音声レイヤーを、それぞれ startTime: 0 にして配置します |
3 つのツール ID は固定です。それぞれの用途に対応する Scenario の決定的な単一ツールなので、検出しても ID を再度特定するだけです。Seedance のメンバーは、scenario-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 でした。
プロンプトのレシピ
この構成により、3種類の衣装と9回のテイクを通じて、人物の特徴、衣装、タイミングを維持できました。
- 置き換え:「@video1 を編集し、踊っている女性を @image1 の女性に置き換える」に加え、該当する場合は「@image2 のドレスを着用する」と「@image3 に示されているように部屋を模様替えする」も指定します。
タグは
referenceImagesの順序に従います。衣装画像がない場合、プレートは@image2です。 - 維持する要素のリスト:「@video1 から次の要素を正確に維持する:部屋そのもの(壁、床、窓。プレートがある場合、変わるのは装飾のみ)、カメラの位置、高さ、レンズ、フレーミング、フレーム内での彼女の大きさ、プロポーション、位置、照明、そしてすべての動き、ジェスチャー、首を回す動作を同じタイミングで行う振り付け。」
- シートの指定:「@image1 は彼女のキャラクター参照シートです。顔、髪、衣装の参照に使用してください。@image1 からそれ以外のものは何も取り込まないでください。パネル、ラベル、テキストは含めないでください。」シート全体を1つの参照として使い、パネルごとに切り抜かないようにします。別の画像で衣装を指定する場合、シートは顔と髪のみに、衣装画像は「ドレスのみ:マネキン、背景、ロゴ、テキストは一切含めない」と指定します。
- リールの衣装を維持:「踊っている女性の顔と髪のみを置き換える」とし、衣装は維持する要素のリストに含めます。
- 崩れやすいディテールを明示:髪(「頭頂部で高く結び、背中に垂らす。最初のフレームから最後のフレームまで、長さ、束、色を同じに保ち、肩の前に垂らしたりカーテンと混ざったりしない」)、アクセサリー(「手袋は黒のまま、指は自然な形に保つ」)、小道具。明示しないと、これらは変わってしまいました。あるテイクではレースの手袋が消え、長いポニーテールが前に垂れました。
部屋を変更する
作成時点での結果を、良かった順に示します。
- リールの部屋を模様替えする:成功。
firstFrameを、そのフレームだけを参照として編集します。ダンサーを消し、壁、床、窓、カメラ、照明を維持し、言葉で装飾を追加し、床の中央を空け、出力をフレーム本来のピクセルサイズに設定して、2つを重ね合わせます。次に、プレートをフレームにローカルで重ねます(ffmpeg -filter_complex "[0][1]blend=all_mode=average")。壁、床の境目、窓が数ピクセル以内で一致し、横方向にずれず、元のダンサーが本来の大きさで空いた床に収まる必要があります。プレートは最後のreferenceImagesエントリとして渡し、「同じカメラから見た同じ部屋で、装飾だけを変更したもの。装飾は彼女の後ろに固定された小道具であり、その場に留まり、動いたり、変形したり、増えたり、彼女に重なったりしない」と指定します。 - フレームをもとに新しい場所を再構築:場所を言葉で説明して、同じく単一参照で編集します。カメラ位置は重ね合わせで維持できましたが、ユーザーは結果を却下しました。模様替えのほうを優先してください。
- テキストから生成した場所のプレート、または2枚目のシーン画像を参照として指定して編集したプレート:失敗します。プレートは独自のカメラ位置を維持し(2枚目の参照画像を指定すると、エディターはそのシーンの角度をコピーしました)、Seedance はその上にリールと同じスケールで人物を描画するため、プロポーションが崩れます。
作業例:1本のリール、3種類の衣装、ハロウィーンの部屋
- リールに対して
upload_assetを実行し、upload_asset_completeの後、asset_getで取得します。 - 音声抽出モデルとミュート版のカットに対して
model_runを実行します。カットをダウンロードし、動画ストリームのみであることを確認します。 capability="img2img"を指定してrecommendを実行し、ユーザーの言葉で装飾を指定します。前述のようにfirstFrameを編集し、オーバーレイチェックを実行します。動画生成に費用をかける前に、ユーザーにプレートを見せます(無人実行の場合:オーバーレイチェックの合格が実行の条件です。不合格なら、ドラフトを生成する前に実行を停止します)。- Seedanceを検出して
model_schema_getを実行します。ドラフトのペイロードを1つdry_runし、衣装ごとのテイク数Nにその料金を掛けた金額を伝えます。 - 3種類のペイロード(シートの衣装、衣装画像、リール自体の衣装)をそれぞれN回送信します。各ペイロードには
"draft": trueとwait=falseを指定し、すべてのジョブに対してjobs_waitを実行します。すべての行が完了するまで、返されたpending_job_idsを指定して再度呼び出します(7~8分)。2回目の起動は絶対に行いません。 - 各ドラフトに、ドラフトの長さに合わせた楽曲レビュー用コピー(手順8のレシピ)を用意し、その後、
scenario-seedance-draftsに従ってレビューします。タイミングチェックも追加し、リールとドラフトを並べて、同じ時刻の4つのフレームを確認します。 - 採用するものは、楽曲コピーではなく、ドラフトのジョブ自体のアセットIDを使って完成させます。
- 完成ごとに合成します。動画と抽出した楽曲をレイヤーとして配置し、
startTime: 0を指定します。durationMode: "custom"を指定し、完成動画のdurationをフィールドの0.1秒刻みに切り下げます。canvasMode: "custom"を指定し、完成動画のサイズに合わせた数値のcanvasWidthとcanvasHeightを設定し、フレームレートにはfpsを設定します。その後asset_downloadを実行し、そのファイルで同期を測定します(「よくある間違い」を参照)。
よくある間違い
- ローカルのffmpegで楽曲をミュート、抽出、または多重化すること:各ステップに対応するツールモデルが上にあります。ローカルのffmpegはダウンロードしたファイルの確認に使います。
- プレートに新しい出演者を描き込むこと:背景に2人目の人物として残ってしまいます。プレートは何もない部屋です。
- プレートがオーバーレイチェックに合格する前に、動画生成に費用をかけること。
- ソースのフレームレートや正確な長さを期待したり、ソースの長さに合わせて合成したりすること:どちらも出力に対して
asset_getを実行して確認します。 - 楽曲が0秒で同期すると決めつけること:オフセットは実行ごとに異なります(ある再キャストではダンスが、トラックが110ミリ秒早い状態に対して83ミリ秒早く、別の再キャストでは、正確なトラックに対して57ミリ秒遅れていました)。最終版で測定します。音声エンベロープをリールの音声と相互相関させ、フレーム差分の動きエンベロープをリールと相互相関させます。楽曲はリールの音声ではなく、ダンスに合わせます。コンポーザーはレイヤーを0.1秒刻みで移動するため、楽曲の
startTime: 0.1(ダンスが遅い場合)、楽曲のtrimStart: 0.1(ダンスが早い場合)、またはどちらも指定しない設定のうち、残差が最も小さくなるものを選びます。 - 部屋だけを変えて、承認済みの出演者はそのまま使えると約束すること:編集のたびに出演者が再レンダリングされるため、部屋を変えるには新しいテイクが必要です。費用をかける前にそのことを伝えます(無人実行の場合:承認済みのプロンプトから新しいテイクを生成し、その旨を報告します)。