layer-video-looks について
layer-video-looks は、Layer のタイムラインで動画や画像に一貫した仕上げを適用するスキルです。生成処理を使わずに、カラー調整、エフェクト、キーイング、合成を反復して行いたい動画編集者向けです。
主な機能
- 01順序付きエフェクトと項目単位の色調整
- 02複数クリップでのルック統一
- 03グリーンまたはブルースクリーンのキーイング
- 04タイムライン分割による短い効果の適用
- 05ぼかした映像で縦長画面の余白を補完
活用シーン
- 01複数ショットにフィルムやCRT風の仕上げを適用
- 02グリーンスクリーンの出演者を映像に合成
- 03カット位置に短いグリッチ効果を追加
- 04縦長画面で横長クリップの周囲を補完
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ layerai/ skills --skill layer-video-looksインストール後、Claude Code で/layer-video-looksを入力して読み込まれたか確認します。
詳細
Layer Video Looks
概要
ルックとは、別々のショットを一つの作品として見せる仕上げです。Layer ではタイムライン上で適用します。
render_video_timeline の各動画アイテムと画像アイテムは、effects リストと、それぞれの blur、
brightness、saturation、hue、opacity フィールドを受け取ります。適用にモデルは実行されないため、ルックを正確に再現できます。レンダリング料金は引き続き estimate_video_timeline_price で見積もられます。
組み立てそのもの(シーケンス、トランジション、オーバーレイ、音声)は layer-video-timeline の機能です。このスキルでは、その上に加える仕上げを扱います。ショットの照明を変えたり、内容のスタイルを変えたりするなど、タイムラインでは実現できないルックは生成にあたります。詳しくは layer-video-fixes をご覧ください。
ここで名前が挙がっている関連スキルが利用可能なスキルに見当たらない場合は、ユーザーにインストールを依頼してください
(npx skills add layerai/skills --skill <name>)。無人で作業を続ける場合は、ツールのスキーマをもとに進め、不足している点を明記してください。
クイックリファレンス
| ルック | エフェクト。この順番で適用します |
|---|---|
| ブランドカラーのウォッシュ | ブランドカラーの darkColor と lightColor を指定した duotone、または amount を指定した tint |
| レトロな CRT | scanlines、次に noise、続けて弱めの chromaticAberration |
| フィルム | noise(粒子)、vignette、lightLeak |
| カットに合わせたグリッチ | カット位置の短いアイテムに tvSignalOff または強めの chromaticAberration |
| グリーンまたはブルーのスクリーン | 最初に colorKey を適用し、keyColor にスクリーンの色を設定します |
| 背景を切り抜いたロゴやキャラクター | 透過画像に dropShadow または outline を適用します |
| 夢のようなハイライト | threshold を指定した glow で、明るい部分だけを発光させます |
| シンプルなカラーグレーディング | アイテムのフィールド:brightness、saturation、hue。エフェクト:contrast、exposure、vibrance |
各エフェクトは {type: "<name>", ...params} の形式で、パラメーター名は camelCase です。すべてのパラメーターにはデフォルト値があるため、{type: "vignette"} だけでも有効です。色は {red, green, blue, alpha} オブジェクトで指定し、値の範囲は 0〜255 です。
blur、brightness、saturation、hue、opacity はエフェクトではなくアイテムのフィールドです。brightness と
saturation は 0〜2 の倍率(1 は変化なし)、hue は -180〜180 度の回転量です。
render_video_timeline は {workspace_id, template, videos, images, audios} を受け取ります。template は
{width, height, fps, tracks: [{id, name, items, transitions}]} です。アイテムは {id, type, start_frame, duration_in_frames} と file_id または slot を指定し、必要に応じて layout {left, top, width, height}、
effects、クリップの先頭をトリミングする start_from_in_seconds、および volume を指定します。solid には
color {red, green, blue, alpha} を指定します。レンダリング結果には get_generation_run で取得する generation_id が含まれます。
順番がルックを決めます
エフェクトはリストの順に適用され、それぞれ直前のエフェクトの結果に作用します。順番によって映像の見え方が変わります。
- キーイングを最初に。
colorKeyにはスクリーンの本来の色を読み取らせる必要があります。その前にtintやexposureを適用すると緑色が変わり、キーイング後に色むらが残ります。 - テクスチャより先にカラーグレーディング。
tint、duotone、contrastはnoiseやscanlinesより前に配置します。そうすることで、粒子に色が付け直されず、色の上に重なります。 - 歪みは最後に。
wave、fisheye、zoomBlurは、それまでの結果を歪ませます。走査線も映像と一緒に曲がるよう、テクスチャの後に配置してください。
すべてのクリップで同じリストを使う
同じ見た目を共有するすべてのクリップに、同じパラメーターの同じeffectsリストが適用されている場合に限り、その見た目は統一されます。
リストは一度だけ作成し、各アイテムにコピーしてください。2つ目のクリップのtintのamountがわずかに異なるだけでも不統一に見え、何も加工しないほうがましです。
ショットから離れるのではなく、ショットに合わせて調整してください。異なるタイミングで生成されたショットは、露出や彩度が異なります。まずアイテムのbrightnessフィールドとsaturationフィールドで調整し、その後に共通のリストを適用してください。
パラメーターはアイテム全体で固定
タイムラインにはキーフレームがありません。エフェクトのパラメーターはアイテムの全区間で固定されます。progress: 0.5のshineは中央で止まった光沢であり、横切っていく光沢ではありません。また、lightLeakのprogressはリークのある一つの位相で固定されます。
動きをつける方法は2つあります。
- アイテムを分割する。 区間を同じファイルの短いアイテムに分割し、同じトラックに配置します。それぞれの
start_from_in_secondsを直前のアイテムが終わった位置から続け、progressを増やします。短い光沢に動きをつけるなら、4〜6段階で動きに見えます。 - 生成する。 滑らかに動かす必要がある場合は、タイムラインエフェクトではなく、プロンプトに動きを指定した動画生成(
layer-video)を使います。
同じ分割方法で、エフェクトを一瞬だけに限定できます。クリップを前、衝撃、後のアイテムに分割して同じトラックに配置し、数フレームの衝撃アイテムだけにtvSignalOffを適用します。各パーツを別々のトラックに重ねてはいけません。同じトラック上のアイテムは、時間的に重なってはいけません。
画面をキーイングする
colorKeyのデフォルトは緑です({red: 0, green: 255, blue: 0})。ブルースクリーンの場合は、keyColorを{red: 0, green: 0, blue: 255}に設定します。スキーマに記載された順に調整してください。画面の色が部分的に残る場合はsimilarityを上げ、被写体の輪郭が削られる場合は下げます。被写体に色の縁取りが残る場合はspillSuppressionを上げます。smoothnessはキーイングした縁を滑らかにします。
トラックは逆順に合成されるため、Track 1が最前面になります。キーイングしたクリップは、表示させたい背景より上のトラックに配置します。
画面内に収まったクリップの周囲を埋める
9:16フレームに16:9クリップを配置すると、余白ができます。スキーマにある方法で解消できます。クリップをもう1つ複製して下のトラックに置き、フレーム全体に広がるlayout、is_auto_layout: false、content_fit: "cover"、高いblur、volume: 0、下げたbrightnessを設定します。その上にcontent_fit: "contain"でクリップを表示します。黒ではなく、クリップ自身の色でフレームが埋まります。
作業例
「承認済みのゲームプレイショット4本にレトロなアーケード風の見た目を適用し、グリーンスクリーンで撮影したプレゼンターを最後のショットに重ねてください。」
- 5本すべてのクリップは以前の実行で作成されたものなので、それぞれに
file_idがあります。アップロードは不要です。 - ゲームプレイクリップ用にリストを1つ作成します。
[{type: "contrast", amount: 1.15}, {type: "scanlines", amount: 0.2, spacing: 4}, {type: "noise", amount: 0.12}, {type: "chromaticAberration", amount: 3}]。これを変更せずに、Track 2上のゲームプレイアイテム4つすべてにコピーします。 - プレゼンターは最後のショットにまたがるようにTrack 1に配置し、次を適用します。
[{type: "colorKey"}, {type: "scanlines", amount: 0.2, spacing: 4}, {type: "noise", amount: 0.12}]。 最初にキーイングし、その後に同じ質感を加えることで、プレゼンターも同じ世界にいるように見せます。 - 前述のようにクリップを分割し、最後のショットに切り替わる箇所に3フレームの
tvSignalOffアイテムを配置します。 - すべての入力を指定して
estimate_video_timeline_priceを実行します。表を提示し、20 CUを超える場合は、明示的な承認を待ちます。 - 同じ入力で
render_video_timelineを実行します。返されたgeneration_idを使ってget_generation_runを呼び出し、固定時間のスリープではなく、指定された間隔でポーリングします。 - 最初から最後まで確認します。プレゼンターに緑の部分が残っている場合は、
similarityを1段階上げて再レンダリングします。髪の輪郭が削られている場合は下げます。
よくある間違い
- 同じルックにするクリップ間で、エフェクトリストやパラメータが異なっている。
colorKeyの前にtintやexposureを置いたため、画面がキーの色と一致しなくなっている。shineやlightLeakがクリップ上を移動すると期待している。パラメータはアイテムごとに固定されています。- キーイングしたクリップを背景より下のトラックに配置している。
- 透明部分のないクリップに
dropShadowやoutlineを適用している。スキーマでは、これらは切り抜き素材に最適とされています。 - カットの数フレームだけに当てたいグリッチを、クリップ全体に適用している。
- タイムラインでカラーグレーディングできる映像を、生成機能で色変更しようとしている。
- Layer が生成した、すでに
file_idを持つクリップをアップロードしている。