用于需要色彩校正、白平衡或曝光修复、Log转Rec.709转换、命名创意风格、肤色审查或便携式...
视频颜色等级( asses = 正确 = 外观 = 选择 = + LUT + 应用)
功能概述
视频颜色等级( asses = 正确 = 外观 = 选择 = + LUT + 应用)是一项面向实际任务的技能,主要用于从零开始将级别写入代码, 生成多个在真实上不同的命名外观;footage, 通过明确选择一个。
核心要点
- 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
- 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
- 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
使用与执行
从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
结果检查与注意事项
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
视频调色(评估 → 校正 → 风格化 → 选择 → 生成并应用 LUT)
从零开始以代码方式编写调色方案,在真实素材上生成若干个明确命名的 风格化效果(looks),再通过人工显式选择或交由代理(agent)判断来选定其一,最后烘焙出一个便携式的 .cube LUT 并将其完整应用于整段视频。不使用任何预设包(preset packs)。
核心理念 —— 先校正,再风格化。 每一种风格均由 校正基础层 + 创意叠加层 构成:
- 校正基础层 使画面保持 真实性:对平面 LOG/HLG 素材,即完成 log→Rec.709 转换;对已为 Rec.709 的素材,则执行白平衡中性化 + 曝光调整 + 轻度对比度增强。所有风格共享此基础层,因此“中性”始终具有明确意义,各风格差异仅体现于 创作意图。
- 创意叠加层 是叠加在基础层之上的风格部分(如暖调 / 冷调 / 青橙配色 / 饱满有力 / 褪色感等)。
肤色是质量基准线。 对人物(尤其是深色肤色者),teal_orange 和 cool_desat 常导致肤色偏绿/灰。务必首先在人脸区域评估每种风格;保留中间调的暖感,将色调倾向推至阴影/高光/背景区域;优先使用 vibrance 而非原始 saturation。切勿将白平衡完全拉至中性,否则肤色会失去生气。
依赖项:PATH 中需存在 ffmpeg/ffprobe,Python 环境需安装 numpy + Pillow。
契约规范(Contract)
- 每种风格 =
基础层 + 创意层;所有风格共用同一基础层。 - 所有风格均渲染于 同一张 具代表性的帧上(确保公平、可控的横向对比),带标签且为全分辨率输出。
- 最终全片应用时必须使用
-c:a copy(音频永不重编码 → 音画同步完全一致),并保持源文件的 时长、帧率、分辨率 不变。 - 交付前须完成全部风格选择流程。当用户明确要求自行选择时,启用
human模式;当用户委托决策或请求全自动运行时,则启用agent模式且不暂停。两种模式下,均须将选择依据持久化写入计划文件(durable plan)。
项目协议工作流
将持久化决策存于 work/color-grade/grade-plan.json:
{
"schema_version": 1,
"target": "base-video",
"base": "eq=contrast=1.05",
"looks": [{"name": "clean", "chain": "null"}],
"selected_look": "clean",
"selection_mode": "agent",
"selection_rationale": "Neutral correction preserves natural skin and source lighting.",
"selected_lut": "../../final/selected-color-look.cube",
"evidence_refs": ["media:source"]
}
默认使用 base-video,以避免内容卡片与字幕被重新着色。composite 仅在明确需要对已合成像素进行调色时才有效。读取共享的 work/understand/media.json 及视觉证据。生成 review/02-color-grade/choose-color-look.jpg 和 review/02-color-grade/skin-tone-check.jpg;可选生成短片 selected-look-preview.mp4。将最终决策及依据记录于 review/02-color-grade/selected-look.md。
在用户做出显式选择后,将 selection_mode 设为 human;当用户委托决策或要求无中断流程时,则设为 agent,并以肤色还原度、高光保留能力、白平衡中性为首要考量进行保守选择。始终填写非空的 selection_rationale;agent 模式下不得暂停。
将选定风格烘焙为 final/selected-color-look.cube。该 LUT 一旦交付,须在调色计划中设置 selected_lut 字段,以便共享渲染器精确加载该文件。已烘焙的全风格 LUT 已内含校正基础层;渲染器仅需应用 lut3d 滤镜,**不可**再叠加额外的 base 层(即禁止 base + lut3d)。
在 based_on 字段中精确记录本次操作所依赖的输入版本;当计划或选定输入发生变更时,递增其整型 revision 字段;仅当所有审查文件(review files)均已完备后,方可将操作检查状态设为 pass;并提交完整的协议字段:
{
"target": {"sequence": "main", "scope": "base-video"},
"effects": {
"changes_timeline": false,
"changes_geometry": false,
"changes_video_pixels": true,
"changes_audio": false,
"adds_track": null
},
"check": {
"status": "pass",
"report": "../review/02-color-grade/selected-look.md"
},
"render": {
"kind": "video-filter",
"target": "base-video",
"plan": "color-grade/grade-plan.json"
}
}
共享渲染器将验证 selected_look 是否存在,确保在时间线变换之后、图层叠加之前应用调色,并对最终视频仅编码一次:
python skills/video-understand/scripts/build_render_plan.py . python skills/video-understand/scripts/render_project.py work/render/render-plan.json
独立兼容性输入
- 源视频文件。
looks.json文件(含base及命名的looks);建议从looks.example.json启动,并根据assess.py的报告 重新调优base。
所有现有脚本继续支持旧版 looks.json。同时 gradelib.load_spec() 也支持标准格式的 grade-plan.json,因此样张生成(contact-sheet)、片段裁剪(clip)、LUT 烘焙及独立应用(standalone apply)等命令在迁移期间仍保持兼容。
looks.json 结构定义
{
"base": "<校正基础层:log→Rec.709 转换;或普通素材的 WB+曝光+对比度调整>",
"looks": [
{ "name": "clean_neutral", "label": "1 · CLEAN NEUTRAL", "desc": "仅校正", "chain": "eq=contrast=1.02" },
{ "name": "teal_orange", "label": "4 · TEAL & ORANGE", "desc": "电影感", "chain": "colorbalance=...,eq=..." }
// 单个风格的完整 ffmpeg 滤镜链 = base + "," + chain。若设 "prepend_base": false,则 chain 将独立使用。
]
}
工作流
评估 —— 绝不盲目调色。
python scripts/assess.py SOURCE.mp4 --out work/
报告素材是否为 LOG 或 Rec.709 格式、白平衡偏色情况(signalstats U/V 值 vs 128)、亮度(Y 值),选取一张代表性帧(
work/assess/frame.png),并建议基础层调优方向。据此重新调优looks.json中的base(例如:检测到暖偏色 → 加入少量蓝色补偿;检测为 LOG → 将 log→709 转换写入base)。- 代表性帧按中位亮度(median luma)选取,而非基于人脸检测。 对单镜头人像口播类素材,通常能落在合适的人脸帧上;但在 B-roll 占比高或多镜头素材中,可能选中无人脸的帧 — 此时
face_skin_check.png将失效(而肤色正是质量基准)。可通过--frame-time SECONDS强制指定已知含人脸的时间点。 - 白平衡/曝光统计值来源于 时长约为 10 秒、位于总时长 10% 处的
signalstats分析窗口 —— 适用于光照恒定场景;若素材光照变化明显,请使用--win-start SECONDS/--win-dur SECONDS手动调整窗口位置与时长。
- 代表性帧按中位亮度(median luma)选取,而非基于人脸检测。 对单镜头人像口播类素材,通常能落在合适的人脸帧上;但在 B-roll 占比高或多镜头素材中,可能选中无人脸的帧 — 此时
渲染风格样张用于选择。
python scripts/render_looks.py work/assess/frame.png looks.json --out work/looks
生成
work/looks/looks_compare.png(原始帧 + 所有风格,带标签、全分辨率)和face_skin_check.png(局部放大肤色条)。请务必同时查看这两张图。 肤色是唯一基准线 —— 任何导致肤色发灰/发绿的风格均需重新调优或剔除,然后重新渲染。若主体偏离画面中心?添加参数--face-crop W:H:X:Y。将这些 PNG 视为中间工作产物;经确认后发布的审查副本应为review/02-color-grade/choose-color-look.jpg和review/02-color-grade/skin-tone-check.jpg。(可选) 动态预览:针对排名前 2–3 的风格生成带音频的运动片段:
python scripts/make_clips.py SOURCE.mp4 looks.json --out work/clips --pick clean_neutral,warm_filmic,teal_orange --with-original --ss 148 --t 8
选定一种风格。 展示样张图,仅当用户明确要求自行选择时才等待;其余情况在 agent 模式下自动完成选择并继续流程,无需暂停。交付前须完成
selected_look、selection_mode和selection_rationale的填写。选定后 —— 烘焙 LUT 并全片应用。
python scripts/bake_lut.py looks.json --name CHOSEN --out final/selected-color-look.cube --verify-frame work/assess/frame.png python scripts/apply_grade.py SOURCE.mp4 --looks looks.json --name CHOSEN --out out/graded.mp4 # 或直接应用已交付的 LUT:--lut final/selected-color-look.cube
apply_grade.py将校验时长与音频是否保持不变,打印白平衡偏移量(U/V 向 128 的偏移),并输出一帧采样图像供目视核查。- 应用过程仅对视频重编码一次(有损);音频始终使用
-c:a copy。 画质与耗时由--crf(默认 18)和--preset(默认slow)控制。slow对于小/短片适用,但对 1080p/4K、时长一小时的素材而言,将带来显著且无声的时间开销 —— 发布交付时请降级为--preset medium(快速预览可用veryfast),仅最终成片使用slow。 - 确保交付视频与交付 LUT 完全匹配: 滤镜链(
--name)与烘焙生成的 33³.cube(--lut)在陡峭曲线区域可能存在最多约 5/255 的偏差(bake_lut.py会报告该max|d|值)。多数场景下不可见,但若你 需交付.cube文件 并要求渲染视频与其严格一致,请务必使用--lut final/selected-color-look.cube进行应用,而非--name。
- 应用过程仅对视频重编码一次(有损);音频始终使用
设计说明 / 注意事项(Design notes / gotchas)
- 先对 CLEAN 版本调色,再将图层叠加于已调色的画面上。 若必须对已烧录字幕/卡片的视频进行调色,请 切勿信任
assess.py:其白平衡/曝光统计与代表性帧选取均会被图形元素干扰(顶部/底部暗边会拉低 Y 值,明亮字幕文本或青色点缀会扭曲 U/V,代表性帧也可能落在字幕密集帧上)—— 此时你校正的将是叠加层,而非原始画面。应复用在 CLEAN 版本上调优过的base,并接受调色对叠加层的染色效应,因此仅可选用细微/校正型风格(如clean_neutral);teal_orange/vintage_faded将明显改变文字/点缀色。 - 一种风格/LUT 覆盖所有关联片段。 选定风格后,请在所有相关片段(例如 CLEAN 版本 + 已叠加字幕版本)中复用同一份
looks.json/.cube—— 切勿 对每个片段单独重复两阶段选择流程。 - 先校正,再风格化。
base是对 S-Log3→Rec.709 标准转换步骤的泛化表达。对普通素材,base即白平衡+曝光+对比度;对 LOG 素材,则应将转换逻辑置于其中。 - 肤色优先。
teal_orange/cool_desat在深色肤色主体上最易引发问题 —— 保持中间调暖感,将色调倾向施加于阴影/高光/背景,善用vibrance;切勿将 U/V 完全中性化。 - 标签(Labels)由 PIL 生成 PNG 后经 ffmpeg 叠加 —— 绝不使用
drawtext。 Windows 下drawtext的fontfile路径(含盘符冒号)不可靠。字体配置统一在gradelib.py顶部设定。 - 含盘符路径(drive-colon paths)会导致 ffmpeg filtergraph 中路径型选项(如
lut3d、metadata=print:file=)失效。 所有脚本均以目标文件所在目录为当前工作路径(cwd),并在 filter 中仅引用 文件名(basename)。新增任何路径型 filter 时,请延续此模式。 - 输出均落于你传入的
--out目录下(持久化存储),而非系统临时目录。 - 人脸/肤色条采用固定居中上中部裁剪,不依赖人脸检测。 若主体未大致居中,请向
render_looks.py传入--face-crop W:H:X:Y,否则肤色条将显示错误区域。 apply_grade.py的校验采样帧位于总时长的 20% —— 与风格选择所用帧为 不同 帧。若该 20% 时间点无人脸,请手动另选一帧观察肤色(或在assess.py中使用--frame-time确保选择帧为已知含人脸时刻)。- LUT 烘焙是精确的,因本流程中所有滤镜均为逐像素点运算(point op):
bake_lut.py将 33³ 单位网格(identity grid)送入实际滤镜链,并自我校验(mean|d|应远低于 1/255;数级max|d|仅为插值误差)。 - 交付前必须完成选择,且始终如此。 人工选择与代理选择均属有效,但计划文件必须如实记录发生的是哪一种,以及原因。
热门AI工具
相关专题
本专题聚焦Go-Zero的API开发,拆解.api描述文件的语法结构、路由与分组定义、参数绑定与校验规则,说明统一响应体、JWT鉴权、跨域与接口文档生成的落地方式,并给出网关聚合与接口测试的实践建议。
0
2026.11.12
本专题围绕Go-Zero的安装与工具链配置展开,讲清Go版本要求、goctl安装方式、代理镜像、protoc依赖与环境变量设置,说明多版本共存、升级回退与CI流水线安装的做法,并整理安装阶段的常见报错与验证步骤。
0
2026.11.12
本专题整理Go-Zero的入门知识,从框架定位、环境准备到跑通第一个API服务,讲清目录分层、配置加载、日志与中间件的基本用法,并对比Gin、Kratos的差异,帮助Go开发者建立整体认知,判断它是否适合当前项目。
0
2026.11.12
本专题从实际API接口调试场景出发,讲解Postman身份认证的完整配置流程,包括常见认证协议介绍、授权参数设置、访问令牌填写、OAuth 2.0授权及认证失败排查,帮助用户正确完成接口授权与访问验证。
0
2026.11.06
围绕Postman HTTP请求头配置展开,讲解Headers选项的具体使用方式,包括Key和Value参数填写、请求头信息添加、常见Header字段设置及请求头修改方法,帮助用户解决接口调试过程中遇到的请求头配置问题。
0
2026.11.06
详细介绍Postman接口请求的创建与发送方法,涵盖GET和POST请求、URL配置、请求参数、Headers请求头、Body请求体设置以及响应结果查看,帮助用户掌握Postman接口请求的完整操作流程。
0
2026.11.06
DBeaver数据导入专题,整理Excel、CSV、SQL、TXT等常见文件的数据导入方法,涵盖目标数据库选择、数据表创建、字段映射、数据类型设置及导入参数配置等操作,帮助用户将本地文件中的数据写入数据库,并了解批量导入、重复数据处理和导入失败等常见问题的解决方法。
0
2026.11.05
DBeaver安全防护专题,围绕数据库连接安全、账号密码保护和访问权限管理展开,整理SSL/TLS加密连接、SSH隧道、数据库凭据保存及证书验证等配置方法,同时介绍敏感信息保护、远程连接风险和高权限账号使用等注意事项,帮助用户提高数据库日常管理的安全性。
0
2026.11.05
本专题聚焦DBeaver数据库连接配置与管理,覆盖从新建连接、选择数据库类型到填写连接参数和验证连接的完整流程。针对MySQL、PostgreSQL、SQL Server等常见数据库,整理相应的连接设置方法,并提供驱动缺失、认证失败和连接异常等问题的排查方向。
0
2026.11.04
热门下载
相关下载
精品课程
共6课时 | 12.1万人学习
共79课时 | 161.8万人学习
共6课时 | 54.7万人学习
最新文章