layer-video-continuity について
layer-video-continuityは、AI生成動画のショット間で映像の一貫性を保つスキルです。複数クリップからなるシーケンス向けに、参照素材、ショット設計、モデル選定、ドラフト確認を案内します。
主な機能
- 01前ショットの最終フレームから接続
- 02キャラクターの参照ファイルを再利用
- 03対応するガイダンスタイプでモデル選定
- 04ショットごとに動作と画面方向を計画
- 05ドラフトでシーケンスを確認
活用シーン
- 01連続ショット間で動作をつなぐ
- 02カットシーンのキャラクターを統一
- 03シーン内の照明と画面方向を統一
- 04完成前に複数ショットをプレビュー
MCP 対応
Layerの`list_base_models`や`execute_forge`などのツールの使い方を説明します。MCP接続についての記載はありません。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ layerai/ skills --skill layer-video-continuityインストール後、Claude Code で/layer-video-continuityを入力して読み込まれたか確認します。
詳細
Layer Video Continuity
概要
1つのショット内では連続性が保たれます。しかし、シーケンス全体ではそうはいきません。ショット間で一貫性を保つものがなければ、生成のたびに顔、衣装、照明、セットが新たに作り直されます。このスキルでは、それらの一貫性を保つ方法を扱います。1ショット内の動きとカメラは layer-video と layer-video-direction、完成したショットの編集は layer-video-timeline、ストーリーボードは layer-art-direction が担当します。
連続性を保つ要素は3つあります。効果の高い順に並べています。
- 前のショットの最後のフレームを、次のショットの最初のフレームにします。
- キャラクターの要素:参照画像またはキャラクターのクリップを、すべてのショットに添付します。
- 承認済みの静止画1枚を、すべてのショットの元にします。
ここに記載されている関連スキルが利用可能なスキルに含まれていない場合は、ユーザーにインストールを依頼してください
(npx skills add layerai/skills --skill <name>)。ユーザーの対応を待たずに進める場合は、ツールのスキーマに基づいて作業し、不足している点を明示してください。
クイックリファレンス
| 必要なこと | 方法 |
|---|---|
| ショットN+1をショットNの終了位置から開始する | ショットNの動画 file_id を first_frame スロットに指定し、video_frame: "last" を設定します |
| 正確な時刻のフレームを使う | 同じガイダンスエントリーに video_frame_seconds を指定します。video_frame より優先されます |
| すべてのショットで同じキャラクターを使う | element_frontal_image、element_reference_image、または element_video のガイダンスファイル |
| 既存のクリップの動きを合わせる | reference_video |
| 上記すべてを受け付けるモデル | filter.guidance_file_types にシーケンスで使うすべてのタイプを指定して list_base_models を呼び出します |
| スロットが受け付けるものとその制限 | 選択したモデルに対して get_base_model を呼び出します |
| シーケンス全体を低コストで試す | すべてのショットで draft: true を指定し、採用するショットだけを完成させます |
ガイダンスエントリーは {file_id, type} に、任意の video_frame、video_frame_seconds、weight を加えたものです。画像スロット(first_frame、last_frame、reference_image、init_image)に動画を指定すると、1フレームが使われます。デフォルトでは最初のフレームが使われますが、last_frame では最後のフレームが使われます。そのため、前のショットの終了位置からショットを始めるには、video_frame: "last" を指定する必要があります。
受け付ける内容に基づいてモデルを選ぶ
連続性は、プロンプトの問題である前に、機能の問題です。filter.use_case: "image_to_video" を指定し、filter.guidance_file_types にシーケンスで必要なスロットをすべて設定して list_base_models を呼び出します。たとえば、["first_frame", "element_frontal_image"] のように指定します。リストに含めたタイプはすべて受け付けられる必要があります。そのため結果が空の場合は、この組み合わせは無理があります。モデルを作り出すのではなく、重要度が最も低いスロットを外してください。Seedance、Kling、Veo などのモデルファミリーでは受け付ける内容が異なります。そのため、判断基準になるのはファミリー名ではなくフィルターです。
次に、最初の結果に対して get_base_model を呼び出します。各スロットのファイルと長さの制限、およびそのファミリー独自のプロンプトガイドが確認できます。このガイドに沿った表現が、そのモデルに適しています。シーケンス全体で同じモデルを使ってください。異なるファミリーでは同じ要素でも描画が異なり、カットでそれが目立ちます。
要素でキャラクターを一貫させる
キャラクターが登場するすべてのショットに、同じ要素ファイルを変更せずに添付します。顔には正面画像、衣装には別の角度から撮影した参照画像を使い、モデルが対応していれば要素動画も使います。承認済みデザインからこれらを一度だけ作成し(キャラクターシートには layer-game-assets を使用)、file_id の値を再利用してください。シーケンスの途中で要素を再生成してはいけません。
要素が一貫させるのはキャラクターの同一性であり、位置ではありません。キャラクターの位置、動き、向きは、引き続きプロンプトで指定します。
シーケンスをショットリストにする
ストーリーボードから、何かを生成する前にショットごとに1行で書き出します。
- 1ショットにつき1つのアクション。 ドアを開ける、リアクションする、剣を抜く様子をすべて見せなければならないショットでは、どれもうまく見せられません。分割してください。
- 画面上の方向。 主人公が画面右から退出するなら、次のショットでは画面左から登場させます。両方のプロンプトに明記してください。
- 視線と光。 光の方向を一度指定し、シーン内のすべてのショットで同じ表現をそのまま繰り返します。
- カットの種類。 連続するアクションは前のショットの最終フレームにつなぎます。新しいアングルへのカットはつなぎません。承認済みの静止画または要素から開始してください。そうしないと、新しいアングルに前の構図が引き継がれます。
シーケンス全体を先にドラフトする
get_base_model で capabilities.draft が報告される場合は、すべてのショットを draft: true でレンダリングし、シーケンスをつないで確認してから、採用するショットだけを完成させます。完成させるには、2回目の execute_forge を実行します。base_model_id にはドラフトの draft.completion_base_model_id を設定し、batch_size: 1 を指定します。ドラフトの file_id を、タイプが draft.completion_guidance_type のガイダンスファイルとして指定し、プロンプトは指定しません。これにより、ドラフトのプロンプト、動き、長さが維持されます。完成版の見積もりには、完成用モデルとドラフトの duration_seconds を使用します。ドラフトには有効期限がある場合があるため(draft.status、expires_at)、速やかに完成させてください。
ドラフトをつなぐと、低コストでカットをプレビューできますが、完成版ではショット全体が再レンダリングされるため、最終フレームがドラフトからずれて、つなぎ目も変わります。つなぎ目を正確に合わせる必要がある場合は、先にショットNを完成させてから、完成版をもとにショットN+1を生成してください。この方法では、つなぐ各ショットを2回実行するコストがかかることを伝えてください。長さは duration_seconds で設定します。
実例
「4ショットのカットシーン:騎士が門まで歩き、押し開ける。ドラゴンが顔を上げ、騎士が剣を抜く。」
- 承認済みの騎士のデザインと正面画像には、すでに
file_idが割り当てられています。アップロードは不要です。 list_base_modelsをfilter.use_case: "image_to_video"およびfilter.guidance_file_types: ["first_frame", "element_frontal_image", "element_reference_image"]で実行します。最初の結果を選び、get_base_modelでスロットの上限、長さ、capabilities.draft、プロンプトガイドを確認します。- ショットリスト:(1)ワイドショット。騎士が左から右へ門に向かって歩く。(2)連続ショット。騎士が門を押し開ける。前のショットからつなぐ。(3)新しいアングル。承認済みのドラゴンの静止画から開始し、ドラゴンが頭を上げる。騎士の要素は使用しない。(4)ミディアムショット。騎士が右を向いて剣を抜く。要素を添付する。
- ジョブの料金を見積もります。種類ごとに1回ずつ見積もります(要素を使うショット、つなぐショット、ドラゴンのショット)。次に、ドラフトの長さに基づいて4つの完成版を見積もります。合計額を提示し、20 CUsを超える場合は明示的な承認を待ちます。
- 騎士の要素をそれぞれ
{file_id, type: "element_frontal_image"}と{file_id, type: "element_reference_image"}として指定し、4ショットすべてをドラフトします。ショット2には{file_id: <shot 1 video>, type: "first_frame", video_frame: "last"}を追加します。 - 各ショットを
poll_interval_secondsに従ってポーリングします。4ショットをシーケンスとして確認し、画面上の方向が崩れているショットがあればドラフトを作り直してから、採用したショットを完成させます。ショット2は、完成版のショット1をもとに再度つなぎます。 - 完成版の
file_idをlayer-video-timelineに渡して編集します。
よくある間違い
video_frame: "last"を指定せずに前のクリップをfirst_frameに指定し、ショットが前のクリップの冒頭から再開してしまう。guidance_file_typesではなく、モデルのファミリー名でモデルを選ぶ。- シーケンスの途中でモデルを変更する。
- ショットごとにキャラクターの要素画像を再生成する。
- 新しいアングルへのカットをまたいでつなぎ、新しいショットに前の構図が引き継がれてしまう。
- 1つのショットに複数のアクションを詰め込む。
- シーケンスをドラフトで確認する前に、高品質版の生成に料金を支払う。
- つなぎ目を正確に合わせる必要があるのに、ドラフトをもとにつなぐ。