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. 素材画像 | 見分けやすさを保つ必要がある出演者ごとに、複数のアングルの画像を1枚ずつ用意します。エキストラは一般的な外見にし、名前を付けません | recommend 経由の画像モデルを使用します。実際の出演者の、余計な要素のない静止画1枚でもかまいません |
| 3. 指示書 | パネルごとに1行。絵ではなく、カバー範囲を指定します | 最初にマスターを作成し、軸を維持し、ショットサイズを段階的に拡大し、アクセントを付けます |
| 4. パネル | パネルごとに1つの model_run | 素材画像を参照画像として使い、白紙に薄い鉛筆線で描き、納品時のアスペクト比に合わせます |
| 5. 審査 | パネルごとに2回のチェックを行い、その後、1つのパネルを修正します | board-craft に従って成果物と相違点を確認します |
| 6. 組み立て | 承認済みパネルをボードにまとめます | 明示的な座標で model_scenario-compose-image を使用します |
| 7. 承認 | 台本、素材画像、ボードをユーザーに提示します | パネル番号を指定して再撮影します。無人実行の場合は記録して続行します |
| 8. フレーム | 写実的なキーフレームを2〜3枚用意します | 同じ素材画像を使い、納品時のアスペクト比に合わせます。これらが納品物のルックを決定します |
| 9. 動画 | 台本に沿った1回の実行、または連結した複数回の実行 | 以下の2つのレーンのいずれかで Seedance の model_run を使用します |
| 10. 確認 | 納品物に問題がなく、トラックが維持されていることを確認します | カット箇所だけでなく、0.5秒ごとにサンプルを確認し、各カットを対応するパネルと照合します |
| 各パネルにはショットリストと同じ要領で、番号、ショットサイズ、アングル、レンズまたはカメラの動き、続けて3つの動作動詞を記します。12枚の絵ではなく、カバレッジとして構成します。まず地理関係を示すマスターショットで始め、軸の片側を保ってスクリーン方向が決して反転しないようにし、サイズの段階を上り、インサートまたはリアクションでアクセントを付けます。隣り合うショットは、構成上、つなぎ目を共有します。ショット3の終わりがショット4の始まりになります。 |
ボードは簡素に描きます。むき出しの紙に薄く淡い線で、設定は手早く2、3本の線で示し、環境を描き込みません。ボードを競合する画像として描くと、実際の画像として扱われ、その書き込みもオブジェクトとして生成結果に入り込むため、プロンプトの指示では除去できません。薄く描けば、同じ書き込みも何も転送しないので、人間が確認するボード上に番号、キャプション、矢印をすべて残せます。それを伝えるのは描画ではなくプロンプトの文言です。書き込みを禁止するのではなく、監督のための計画ガイドとして明示し、見た目の参照元を写真にするため、キーフレームをコンセプトアートとして渡します。どちらも video-prompt.md に記載されています。
パネルは1枚ずつ生成するため、不良パネルが出ても損失は1枚分です。動画生成の前に、2段階の審査を行います。アーティファクトに対するAI品質スコアの確認と、プレートとの間違い探しです。ボード全体での判定では不十分です。パネル単位では欠陥が平均化されてしまいます。
作業を進めながらファイルを整理します。シーケンスごとに1つのコレクションを最初の生成前に作成し、プレート、パネル、修正、ボード、動画をまとめて保管します(board-craft)。
最初の動画生成の前に承認を得ます。キーフレームをスクリプト、プレート、ボードと並べて提示し、パネル番号を指定した撮り直しを依頼できるようにします。無人で進める場合は、前提を記録して続行します。
2つのレーン
スクリプトによる1回の生成。 シーケンスが1ジョブの時間上限(執筆時点で2.5では30秒)に収まる場合は、プレート、ボード、キーフレームを referenceImages として渡し、video-prompt.md にある7セクション構成に沿ってプロンプトを作成します。1回の生成で内部のカットを処理します。プレートが同一性を保ち、ポーズの連鎖が連続性を保ちます。aspectRatio を指定します。ここではデフォルトが adaptive なので、縦長のボードからは縦長の動画が返されます。参照モードではフレーム1が参照世界の基本状態に固定されるため(scenario-seedance を参照)、正確なポーズから始める必要があるシーケンスには、チェーンレーンが適しています。
ショットごとのチェーン生成。 時間上限を超える場合、各ショットに個別の制御が必要な場合、またはシーケンスを正確なポーズから始める必要がある場合は、各境界ポーズを静止画としてレンダリングし、ショットNでは image に静止画N-1、lastFrameImage に静止画Nを指定します。こうすることで、隣り合うショットの両方に、双方が共有するフレームができます。この方法では referenceImages は使用しないため、静止画だけがショットの同一性を担い、NショットにはN+1枚の静止画とN回の生成が必要です。各生成には最短時間(執筆時点で2.5では整数秒で4秒)もあるため、Nショットの合計はそのN倍を下回れません。したがって、それ以上カットを増やすにはショット数を減らすか、秒数を増やす必要があります。手順と修正方法については references/chained-lane.md を参照してください。
実践例:1回の実行で12ショットのダンスを作成する
- スクリプトを作成します。24秒間に12ショットを収め、境界のポーズに名前を付け、各ショットの終了ポーズを次のショットの開始ポーズと一致させます。 まずユーザーに見せます。間違えても最も低コストで済む段階です。無人で実行する場合は書き留めてから 続行します。
- キャラクターごとに1枚のプレートを生成し、次に12枚のパネルを生成し、さらに同じプレートからフォトリアルなキーフレームを2~3枚生成します。ローカルにあるものは
upload_assetでアップロードします(scenarioスキルを参照)。先に進む前に、ボードとキーフレームをユーザーに見せます。 target="models"、query="seedance"、public=trueを指定してsearchします。検索結果は生成機能ではなく関連性順に並ぶため、最初の結果だけでなく、非推奨ではない最新のモデルをすべて確認します。執筆時点ではmodel_bytedance-seedance-2-5が該当します(セッションごとに再検索してください)。このモデルは最も多くの参照画像を受け入れ、同一性を最もよく保ちます。次にmodel_schema_getで上限を確認します。dry_run=trueとparameters={"prompt": "<the timecoded script>", "referenceImages": ["asset_dancer", "asset_board", "asset_key1", "asset_key2"], "duration": 24, "resolution": "1080p", "aspectRatio": "16:9"}を指定してmodel_runします。 変更を加えた場合は、再度見積もります。wait=falseで再実行してからjobs_waitを呼び出し、タイムアウトした場合はpending_job_idsを指定して再度呼び出します。タイムアウトは失敗ではなく、2回目のmodel_runを実行する理由にはなりません。- カットを1つずつ確認します。両側のポーズが一致し、パネルとも合っている必要があります。次に、クリップ全体を1秒あたり2フレームで確認します。ボード上のマークがショットの途中から薄く現れることがあるため、ショットごとに1フレームだけサンプリングすると、問題がないと誤判定されます。
asset_displayは動画のリンクを返しますが、フレームは返しません。そのため、フレームをローカルに取り込むか、model_scenario-video-to-image-seqを使います(固定IDです。Scenarioにある決定論的なフレーム抽出ツールはこれだけなので、検索しても同じ結果を再発見するだけです)。スクリプトよりカット数が少なくなることを想定してください。ほとんどのつなぎ目はカメラの動きとして描画されるため、納品するテイクをスクリプトで指定した12か所でカットします。
よくある間違い
- 振り付けを形容詞(「エネルギッシュに踊る」など)で指定すること:タイムコード付きの動詞と境界のポーズは生成後も維持されますが、雰囲気を表す言葉は維持されません。
- ポーズの名前だけ指定して位置を指定しないこと:2人のシーンでは、左右反転した境界も、間違った手足と同じようにカットを崩します。
- キャラクターがフレーム外に出て戻ってくる動きや、カメラの外で行われる変化を、1回の実行内でスクリプト化すること:フレーム外に出たものは、その実行の残りの間、戻ってきません。また、カメラ外で起きたことは、境界チェックでは検出できません。退場、再登場、状態の変化は、連結した境界で確実に行います(連結レーン)。
- スクリプトで指定したポーズから実行が始まると期待すること:参照モードでは1フレーム目がベース状態に固定されます。正確な開始ポーズを扱うのは連結レーンです。
- 何も指定せずに無音で納品すること:音源を指定してダイジェティック音響を求めます。楽器やジャンルを指定せず、「音楽なし」などの除外も指定しないでください。これらは音声生成の拒否を引き起こします。
generateAudio: falseはフォールバックであり、デフォルトではありません。 - プロンプトの
max_lengthを超えるスクリプトや、長さの上限を超えるタイムコードを指定すること:スクリプトを書く前に、両方の上限をmodel_schema_getで確認します。手順1は検索より先だからです。上限を超えると400エラーになり、切り詰められることはありません。その後、実行の長さにはスクリプトで指定した長さをdurationとして送ります。デフォルトはAuto(-1)ですが、スキーマでは参照クリップがある場合にしか定義されていないため、タイムコード付きスクリプトをdurationなしで送ると、指定されていない長さで実行されます。 - アスペクト比を誤ること:各パネルに納品時のアスペクト比を持たせます。リフレームすると、連鎖が依存するポーズが移動してしまうためです。また、合成したボードのアスペクト比は0.4~2.5の範囲内に収めてください。範囲外の場合、Seedanceは参照画像として受け付けず、実行に失敗します。