关于 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 中,它通过时间线实现:
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 |
| 梦幻高光 | 使用 glow 并设置 threshold,让辉光只作用于明亮部分 |
| 基础调色 | 项目字段: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 列表,外观才能保持一致。
只构建一次列表,并将它复制到每个片段上。第二个片段若使用了略有不同的 tint
amount,看起来就会不一致,这比完全没有外观还糟。
调整画面时要贴合镜头,而不是让镜头去迁就效果。不同时间生成的镜头在曝光和饱和度上会有差异;先用条目的 brightness 和 saturation 字段调整平衡,再应用共享列表。
参数在整个条目期间固定
时间线没有关键帧。效果的参数在条目的整个时长内保持不变:progress: 0.5 的 shine 是停在中间的光泽,而不是扫过画面的光泽;lightLeak 的 progress 则表示漏光的某个相位,并会保持不变。
实现动态效果有两种方式:
- 分段条目。 将时长拆成同一轨道上的多个短条目,使用同一个文件,并让每个条目的
start_from_in_seconds从上一个条目停止的位置继续,然后逐步提高progress。对于较短的光泽效果,分成四到六段就能呈现出动态感。 - 生成视频。 如果扫光必须流畅,就生成视频,并在提示词中描述动作(
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 片段两侧会留下黑边。架构提供的解决方法是:在较低轨道上放置该片段的第二个副本,设置全画幅 layout、is_auto_layout: false、content_fit: "cover"、较高的 blur、volume: 0,并调低其 brightness;然后在上方显示 content_fit: "contain" 的片段。这样画面就会用片段本身的颜色填满,而不是显示黑色。
完整示例
“给这四个已审核通过的游戏画面加上复古街机风格,并将我们拍摄于绿幕前的主持人放在最后一个画面上。”
- 五个片段都来自之前的运行,因此每个都有
file_id;无需上传。 - 为游戏画面构建一个列表:
[{type: "contrast", amount: 1.15}, {type: "scanlines", amount: 0.2, spacing: 4}, {type: "noise", amount: 0.12}, {type: "chromaticAberration", amount: 3}]。将该列表原样复制到 Track 2 上的四个游戏画面条目中。 - 将主持人放在 Track 1 上,时长覆盖最后一个画面,并应用
[{type: "colorKey"}, {type: "scanlines", amount: 0.2, spacing: 4}, {type: "noise", amount: 0.12}]: 先抠像,再添加相同的纹理,让主持人融入同一个世界。 - 在切入最后一个画面的地方添加一个三帧长的
tvSignalOff条目,并按上述方式从片段中拆分出来。 - 使用完整输入调用
estimate_video_timeline_price。展示表格;超过 20 CUs 时,等待明确答复。 - 使用相同输入调用
render_video_timeline。按返回结果给出的间隔,用返回的generation_id轮询get_generation_run,切勿使用固定等待时间。 - 从头到尾观看成片。如果主持人身上仍有绿色色块,就将
similarity调高一档并重新渲染;如果头发边缘被抠除,就降低它。
常见错误
- 原本应呈现相同效果的片段,使用了不同的效果列表或不同的参数。
- 在
colorKey前使用tint或exposure,导致画面不再匹配键控颜色。 - 期望
shine或lightLeak在片段中移动;参数对每个项目都是固定的。 - 将键控片段放在背景所在轨道的下方。
- 在没有透明度的片段上使用
dropShadow或outline;架构说明它们最适合用于抠像素材。 - 整个片段都加上故障效果,而冲击效果本应只出现在剪切处的几帧中。
- 想要调整素材的色彩,却选择生成内容,而时间线本身已经可以完成调色。
- 上传由 Layer 生成且已带有
file_id的片段。