mcpField
S
scenario-reel-recast

scenario-reel-recast

github.com/scenario-labsクリエイティブ・メディア1.2k96 回インストール1 日前に更新
リポジトリ

scenario-reel-recast について

Scenarioで動画の出演者を差し替える手順を案内するスキルです。振り付け、タイミング、カメラを保ちながら、無音の参照動画、ドラフトの確認、音声の合成を進めます。

主な機能

  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: falsestartTime: 0 を指定し、endTime を指定しなければクリップ全体が保持されます。インラインで返されます。ダウンロードをプローブし、音声ストリームが残っていないことを確認してください
部屋のプレートリールの firstFrame を画像編集(scenario-image)任意です。「部屋を変更する」を参照し、動画の生成に費用をかける前に確認してください
リキャストの下書きSeedance 編集モード、"draft": truereferenceVideos: [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回のテイクを通じて、人物の特徴、衣装、タイミングを維持できました。

  1. 置き換え:「@video1 を編集し、踊っている女性を @image1 の女性に置き換える」に加え、該当する場合は「@image2 のドレスを着用する」と「@image3 に示されているように部屋を模様替えする」も指定します。 タグは referenceImages の順序に従います。衣装画像がない場合、プレートは @image2 です。
  2. 維持する要素のリスト:「@video1 から次の要素を正確に維持する:部屋そのもの(壁、床、窓。プレートがある場合、変わるのは装飾のみ)、カメラの位置、高さ、レンズ、フレーミング、フレーム内での彼女の大きさ、プロポーション、位置、照明、そしてすべての動き、ジェスチャー、首を回す動作を同じタイミングで行う振り付け。」
  3. シートの指定:「@image1 は彼女のキャラクター参照シートです。顔、髪、衣装の参照に使用してください。@image1 からそれ以外のものは何も取り込まないでください。パネル、ラベル、テキストは含めないでください。」シート全体を1つの参照として使い、パネルごとに切り抜かないようにします。別の画像で衣装を指定する場合、シートは顔と髪のみに、衣装画像は「ドレスのみ:マネキン、背景、ロゴ、テキストは一切含めない」と指定します。
  4. リールの衣装を維持:「踊っている女性の顔と髪のみを置き換える」とし、衣装は維持する要素のリストに含めます。
  5. 崩れやすいディテールを明示:髪(「頭頂部で高く結び、背中に垂らす。最初のフレームから最後のフレームまで、長さ、束、色を同じに保ち、肩の前に垂らしたりカーテンと混ざったりしない」)、アクセサリー(「手袋は黒のまま、指は自然な形に保つ」)、小道具。明示しないと、これらは変わってしまいました。あるテイクではレースの手袋が消え、長いポニーテールが前に垂れました。

部屋を変更する

作成時点での結果を、良かった順に示します。

  • リールの部屋を模様替えする:成功。 firstFrame を、そのフレームだけを参照として編集します。ダンサーを消し、壁、床、窓、カメラ、照明を維持し、言葉で装飾を追加し、床の中央を空け、出力をフレーム本来のピクセルサイズに設定して、2つを重ね合わせます。次に、プレートをフレームにローカルで重ねます(ffmpeg -filter_complex "[0][1]blend=all_mode=average")。壁、床の境目、窓が数ピクセル以内で一致し、横方向にずれず、元のダンサーが本来の大きさで空いた床に収まる必要があります。プレートは最後の referenceImages エントリとして渡し、「同じカメラから見た同じ部屋で、装飾だけを変更したもの。装飾は彼女の後ろに固定された小道具であり、その場に留まり、動いたり、変形したり、増えたり、彼女に重なったりしない」と指定します。
  • フレームをもとに新しい場所を再構築:場所を言葉で説明して、同じく単一参照で編集します。カメラ位置は重ね合わせで維持できましたが、ユーザーは結果を却下しました。模様替えのほうを優先してください。
  • テキストから生成した場所のプレート、または2枚目のシーン画像を参照として指定して編集したプレート:失敗します。プレートは独自のカメラ位置を維持し(2枚目の参照画像を指定すると、エディターはそのシーンの角度をコピーしました)、Seedance はその上にリールと同じスケールで人物を描画するため、プロポーションが崩れます。

作業例:1本のリール、3種類の衣装、ハロウィーンの部屋

  1. リールに対してupload_assetを実行し、upload_asset_completeの後、asset_getで取得します。
  2. 音声抽出モデルとミュート版のカットに対してmodel_runを実行します。カットをダウンロードし、動画ストリームのみであることを確認します。
  3. capability="img2img"を指定してrecommendを実行し、ユーザーの言葉で装飾を指定します。前述のようにfirstFrameを編集し、オーバーレイチェックを実行します。動画生成に費用をかける前に、ユーザーにプレートを見せます(無人実行の場合:オーバーレイチェックの合格が実行の条件です。不合格なら、ドラフトを生成する前に実行を停止します)。
  4. Seedanceを検出してmodel_schema_getを実行します。ドラフトのペイロードを1つdry_runし、衣装ごとのテイク数Nにその料金を掛けた金額を伝えます。
  5. 3種類のペイロード(シートの衣装、衣装画像、リール自体の衣装)をそれぞれN回送信します。各ペイロードには"draft": trueとwait=falseを指定し、すべてのジョブに対してjobs_waitを実行します。すべての行が完了するまで、返されたpending_job_idsを指定して再度呼び出します(7~8分)。2回目の起動は絶対に行いません。
  6. 各ドラフトに、ドラフトの長さに合わせた楽曲レビュー用コピー(手順8のレシピ)を用意し、その後、scenario-seedance-draftsに従ってレビューします。タイミングチェックも追加し、リールとドラフトを並べて、同じ時刻の4つのフレームを確認します。
  7. 採用するものは、楽曲コピーではなく、ドラフトのジョブ自体のアセットIDを使って完成させます。
  8. 完成ごとに合成します。動画と抽出した楽曲をレイヤーとして配置し、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(ダンスが早い場合)、またはどちらも指定しない設定のうち、残差が最も小さくなるものを選びます。
  • 部屋だけを変えて、承認済みの出演者はそのまま使えると約束すること:編集のたびに出演者が再レンダリングされるため、部屋を変えるには新しいテイクが必要です。費用をかける前にそのことを伝えます(無人実行の場合:承認済みのプロンプトから新しいテイクを生成し、その旨を報告します)。

コメント