scenario-seedance について
Scenario で ByteDance の Seedance 動画モデルを使うためのスキルです。入力条件や生成モードの選び方に加え、音声、ドラフト、コスト、モデレーションへの対処を説明します。
主な機能
- 01テキスト、画像、参照、編集、延長モード
- 02参照条件とプロンプトタグの使い方
- 03音声とドラフトモードのワークフロー
- 04スキーマ、尺、コストの確認
- 05モデレーションによるブロックへの対処
活用シーン
- 01テキストや参照素材からショットを生成
- 02動画参照を使った映像の延長や編集
- 03採用するテイクを完成前にプレビュー
- 04複数ショットにまたがる音声の計画
MCP 対応
Scenario のスキルとして、search、model_schema_get、model_run、アセット操作などの MCP ツールを使った Seedance モデルの実行方法を案内します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scenario-labs/ skills --skill scenario-seedanceインストール後、Claude Code で/scenario-seedanceを入力して読み込まれたか確認します。
詳細
Scenario Seedance Video
概要
Scenario における ByteDance の動画モデルファミリー Seedance は、以下のすべてのモードを、入力からモードを推定する単一のモデルに統合しています。そのため、どの条件付けを指定するかが、プロンプトの表現以上に重要です。search で確認し、model_schema_get を仕様として扱ってください。各モデルは並行して提供され、構造は共通していますが、数値はそれぞれ異なります。
接続と基本的な使い方については、このリポジトリの scenario スキルを参照してください。モデルに依存しない動画制作については scenario-video スキルを、ストーリーボードをもとにカットをまたいで演出を統一する方法については scenario-seedance-storyboard スキルを参照してください。ここに記載されたスキルが利用可能なスキルに見つからない場合は、ユーザーにインストールを依頼してください(npx skills add scenario-labs/skills --skill <name>)。無人実行の場合は、ツールスキーマに従って進め、不足しているスキルについて報告してください。
クイックリファレンス
モードは入力によって決まります(名称は最新のスキーマに基づいています)。
| モード | 入力 | 動作 |
|---|---|---|
| テキスト | prompt | aspectRatio が適用されます(21:9 から 9:16 まで) |
| 最初のフレーム | image(+ prompt) | そのフレームから始まります。aspectRatio は無視され、サイズは resolution に従い、比率に近い値にしかならない場合があります |
| 最初+最後のフレーム | image + lastFrameImage | lastFrameImage は image と併用する場合にのみ有効です |
| 参照 | referenceImages | アイデンティティと世界観を引き継ぎますが、開始時の状態は引き継ぎません |
| 編集 | referenceVideos + 編集プロンプト | duration: -1 が必要です。出力はソースに従います |
| 延長 | referenceVideos + 延長プロンプト | 文言から推測されます。「extend @video1」、維持する要素(キャラクター、衣装、光)、続く動作、カットなしを指定します。画面構成はソースに従います。duration は追加される映像の長さで、出力にはその末尾部分のみが含まれます(10 秒のソースに対して duration 15 を指定した場合、作成時には新しい映像が 15 秒返されました。Auto の料金はソースの長さに基づきます)。そのため、ソースと末尾部分を連結し、asset_get から納品された長さを確認してください |
image と reference 配列は相互に排他的です。referenceVideos(動きの条件付け)と | ||
referenceAudio(タイミングとエネルギー、または話者の声)は referenceImages と組み合わせます。2.0 系では参照音声にも画像または動画の参照が1つ必要ですが、2.5 では参照音声だけで利用できます。 | ||
参照パラメーターは、アセットが1つでも配列にします。プロンプトのタグは配列の順序に紐づきます。@image1 は | ||
referenceImages[0]、同様に @video1 と @audio1 に対応します。画像だけでなく動画や音声のタグについても、各タグが何を制御し、何には影響しないのかをプロンプトで指定します(「@image1 はボトルとラベルを定義し、セットは定義しません」)。動きのある3Dブロックアウトのプレイブラストを @video1 として渡すと、そこで動いている手足の動きがすべて引き継がれるため、コマ送りやリグ付きの歩行はぎこちなくなったり、滑るようになったりします。脚のないカプセル状の代役(scenario-blender-blockout が生成します)を使い、位置、高さ、速度だけを示すものだと一文で伝えれば、モデルに歩き方を生成させられます。シード、マスク、カメラのパラメーターはありません。カメラワークはプロンプトで指定し、各ショットにつき主要な動きとアクションを1つずつにします。複数のアクションは「0-2s ... 2-4s ...」のようにタイムコード付きのビートとして指定し、各ビートにアクションを1つずつ割り当て、最後のビートは duration 内に収めます。また、ショットを1つの連続したテイクとして指定します。 |
プロンプトで役割を指定していない参照トラックは無視されやすく、特に生成されたセリフはその傾向が強いため、言葉で役割を明確に指定します。セリフの場合は「@audio1 は彼女自身の声です。カメラに向かって話し、口の動きが同期します」、音楽の場合は「カメラワークと各アクションは @audio1 のビートに合わせます」と指定します。
duration のデフォルトは Auto です。執筆時点では、2.5 の Auto はテキストから動画を生成するジョブを30秒の上限いっぱいとして料金計算していました(同じ480pのプロンプトでも、8秒の場合の約4倍の料金でした)。実行ごとに、ショットに必要な秒数を設定してください。ただし、referenceVideos がある場合、Auto は最も長い参照クリップに従います。
上限はモデルごとに異なるため、model_schema_get で確認してください。執筆時点で 2.5 が受け付けるのは、参照画像30枚、動画10本、音声10本、4~30秒、最大1080pです。2.0、Fast、Mini はそれぞれ9、3、3、4~15に対応し、4k に対応するのは 2.0 のみで、Mini では lastFrameImage を使用できません。料金の差は上限以上に大きく、同じ4秒・480pのジョブでもシリーズ内で最大6倍の差があります。バッチ処理の前に、同じジョブを2つのモデルで dry_run してください。
ドラフトモード。 Seedance 2.5 で draft: true を指定すると、低コストの480pプレビューがレンダリングされます(resolution は無視されます)。
model_bytedance-seedance-2-5-draft-complete(執筆時点。入力は draftVideo)を使うと、7日以内に同じ動画を1080pで生成できます。採用するテイクだけを完成させてください。プロンプトを1080pで再実行すると、別の動画が生成されます。scenario-seedance-drafts スキルを参照してください。
条件付けのルール
参照モードでは、最初のフレームは参照世界の基本状態を基準とし、プロンプトの文言でこれを上書きすることはできません。ショットを特定の状態で開始する必要がある場合は、その状態の静止画を生成して image として渡してください。アイデンティティ、世界観、カラーパレットだけが重要な場合は referenceImages を使います。生成を始める前に各ショットについてこれを決めることは、どんなプロンプト調整よりも効果があります。
ショットの音と、別途用意する音楽
generateAudio(デフォルトは true)は、トラック全体を制御する単一のスイッチです。ショットの採点と音声生成の両方を行います。ショット内で書かれた曲はカットをまたいで維持されません。各ショットで独自のキーとテンポが設定され、次のショットではそれらがリセットされるためです。
そのため、音声と音楽のレーンは分けて処理します。映像から生じる音、足音、衝撃音、環境音、セリフをフレームに合わせて生成するため、generateAudio: true のままにし、そうした音だけを指定します(「diegetic sound only: heels on tile, room tone」)。除外したいものは決して指定しないでください。「no music」と書くとオーディオフィルターに検知されます。OutputAudioSensitiveContentDetected でブロックされたトラックは、たいていそのような除外指定が原因です。その場合はプロバイダーを切り替える前に、同じモデルで音を肯定的に指定して再実行してください。フィルターが読み取ったのはプロバイダーではなく文言です(scenario-moderation スキルを参照)。セリフは引用符で囲み、クリップの長さに合う分量にして、話者名と、二、三語で表した話し方を添えます。シーケンス全体の音楽は音楽モデルで一度だけ作成し(scenario-audio スキルを参照)、そのトラックを編集済みのカットに重ねます(scenario-video-assembly スキルを参照。曲を先に作る場合は scenario-seedance-music-video を参照)。こうすれば、音楽を作り直す際に必要なのは音声生成の一回だけで、各ショットを再生成する必要はありません。
調整できるのはプロンプトだけなので、生成結果を聴いて確認してください。音楽が混ざった場合は、そのショットを generateAudio: false にして再実行し、効果音モデルまたは動画から音声を生成するモデルで音を追加します。
完成した動画がブロックされた場合
エラーに OutputVideoSensitiveContentDetected が記載された failed 行(多くの場合 PolicyViolation も含まれ、著作権の可能性として説明されることもあります)は、プロバイダーが完成したレンダリングを審査していることを示します。フィルターはモデルのファミリー単位で適用されるため、Seedance の同系モデルでも同じペイロードが拒否され、同じ内容の再試行では再びレンダリングされてしまいます。scenario-moderation スキルの説明どおりに対応してください。まず別のプロバイダーに切り替えます。プロンプトは変更せず、スキーマに従って @image タグを代替モデル固有の参照フィールドに移します。recommend の場合、テキストから動画への生成は txt2video、最初のフレームと参照画像を使うジョブは img2video、編集と延長は video2video です。執筆時点での二つの観察から、その後の対応を判断できます。画面上のキャラクターが既存の知的財産だと認識されると、文言を変えてもブロックされます。あるスタジオの有名なキャラクターは失敗しましたが、同じスタジオの知名度の低いキャラクターは、プロンプトを変えずに通過しました。また、「axe」「blade」「eliminated」といった武器や危害を示す語句は、漫画であってもフィルターに引っかかりました。この場合こそ、そのスキルで説明されている、正直な書き換えを行います。切り替えと書き換えを行ってもブロックが続く場合、たとえばチーム独自のキャラクターを使っている場合は、失敗したジョブ ID を添えて [email protected] に問い合わせるようユーザーに伝えてください。無人で処理する場合は、タスクで許可された費用の範囲内でのみプロバイダーを切り替えて再実行します。そうでなければ処理を停止し、失敗したジョブ ID とともにブロックされたことを報告してください。
作業例:参照画像から商品ショットを作成する
target="models"、query="seedance"、public=trueを指定してsearchを実行します。非推奨ではない最新の結果を優先します。例:model_bytedance-seedance-2-5(執筆時点で利用可能な結果です。セッションごとに再検索してください)。- その ID を指定して
model_schema_getを実行し、最初にフィールド、上限、デフォルト値を確認します。 - 商品の静止画を
upload_assetでアップロードし(scenarioスキルを参照)、アセット ID を取得します。 - コストを見積もるため、
model_id、dry_run=true、次の正確なparameters={"prompt": "@image1 defines the bottle and label. Slow dolly-in as condensation beads. Diegetic sound only: droplets on glass, soft room tone. No text, no captions.", "referenceImages": ["asset_a", "asset_b"], "duration": 8, "resolution": "720p", "generateAudio": true}を指定してmodel_runを実行します。長さ、解像度、参照画像を変更した場合は、再見積もりしてください。 wait=falseを指定してmodel_runを再度実行し、返されたジョブ ID を使ってjobs_waitを実行します。タイムアウトした場合はpending_job_idsを指定して再度呼び出します。model_runを二度実行してはいけません。- 音楽を重ねる前に、
asset_displayで出力を表示し、音声を含めて確認します。
よくある間違い
- 参照モードで冒頭の状態をプロンプトに指定する:表示されません。
imageとして渡してください。 - スキーマで配列が指定されているのに、文字列だけを渡す:参照画像が1つでも
["asset_x"]として渡してください。 imageとreferenceImagesまたはreferenceVideosを併用する:これらの入力は相互に排他的です。durationを Auto のままにする:2.5 では、テキストから動画を生成するジョブの料金がショットの長さではなく、上限の30秒分で計算されます。- キャラクター参照画像と一緒に音声トラックを渡すのに、誰の声かを指定しない:モデルは顔をアニメーション化して、音声トラックを無視することがあります。
- あるメンバーの上限や料金を別のメンバーにも当てはめる:参照画像30枚、30秒、1080pは、それぞれあるメンバーには当てはまりますが、次のメンバーには当てはまりません。
- ショットごとに音楽を生成してからつなぎ合わせる:カットのたびに音楽が最初から再生されます。
- 音声対応のプロンプトに「音楽なし」と書く:除外指定によって音声フィルターが作動します。音を肯定的に表現するか、
generateAudioをオフにしてください。 - キャプション、価格、ロゴ、UIをレンダリングする:空白を確保し、後処理でテキストを合成してください。
- Seedance または Seedance 系モデルで出力がモデレーションにブロックされた際、再試行する:フィルターはファミリー共通なので、まずプロバイダーを切り替えてください(
scenario-moderationスキル)。