风格品味 是做什么的?
大多数 AI 视频建议停留在如何渲染帧这一步。本技能是更高一层:帧应该长什么样、按什么顺序、以什么节奏剪辑,从而使结果感觉像一个有意图的整体,而不是一堆生成内容的拼凑。
它编码了一个特定的品味——angelcore / cloud-trance / hyperpop 家族(Bladee "Silver Surfer" 时代的飘渺出神音乐与厚重 angelcore 的融合)——从保存的 Reels 语料库和遍历约 70 条视觉流派库中提炼而来。它是有意为之的。品味是一种观点,而不是菜单。
配套文件
references/genre-taxonomy.md包含了完整的命名流派目录。 本文件是可操作层:情绪、语法、管线、以及一个节拍映射镜头计划。
何时激活
- 制作音乐视频、歌词视频、粉丝剪辑或视觉化器。
- 制作一个感觉比信息更重要的短视频剪辑/Reel。
- 驱动 AI B-roll 生成(fal.ai、Veo、Kling 等),需要提示词有连贯的方向,而不是零散的氛围。
- 在渲染之前组装情绪板或选择视觉流派。
- 用户说“品味”、“让它感觉像 X”、“给个方向”、“angelcore”、“cloud trance”、“hyperpop 剪辑”、“Bladee”、“dreamcore”或提到了一个保存的参考。
- 当前的剪辑有效但读起来扁平、泛化、像AI垃圾或风格不连贯。
本技能位于 video-editing(操作细节)和 remotion-video-creation(渲染器)之上。将那些技能用于如何做。将本技能用于做什么和为什么做。
核心论点
- 品味是最后的一层,但它必须首先决定。
video-editing正确地指出品味是最终的人工校验步骤。陷阱是:如果你只在最后决定品味,那么之前的每一次生成和剪辑都是瞎猜。在第一个提示词之前选定方向,然后让方向约束一切。 - 连贯性胜过新颖性。 一个视觉风格贯穿 30 个镜头,胜过 30 个不同风格。一个命名流派(见下文)是一种约束,可以免费获得连贯性。
- 按歌曲剪辑,而不是按素材剪辑。 在音乐视频中,时间轴就是波形。每个硬切都落在一个节拍或瞬态上。帧计算见管线部分。
- 有选择地生成,无情地编辑。 AI 生成不存在的 B-roll;它不会生成品味。你仍然要丢掉 80%。
美学词汇(提炼版)
参考语料库遍历了大量命名的视觉流派库。完整列表见 references/genre-taxonomy.md。有用的做法不是记住 70 个名字——而是看到一个流派名称就是一个完整的提示词和调色预设。 当你选择一个时,你就继承了它的调色板、纹理、光照和主题作为一个整体。
流派聚集成家族。选择一个主要家族和至多一个重音家族:
| 家族 | 包含的流派 | 感觉 |
|---|---|---|
| 飘渺 / 神圣 | 精神主义、冰川民谣、信标、禅意核心、童话 | 无重、圣洁、发光、柔和 |
| Hyperpop / Y2K 赛博 | 赛博迪莉娅、酸房子、酸诺拉、新侵略、新液体 | 光滑、铬色、霓虹、卡哇伊赛博 |
| 黑暗 / 神秘 | 黑暗学院、烟雾怀旧、共产核心、抽象科技 | 高对比度、不祥、颗粒感 |
| 复古 / 印刷 | 复古冲浪者、装饰艺术、冒险通俗、经典广告、杂志拼贴、保险杠贴纸 | 扁平、图形化、网目调、怀旧 |
| 有机 / 质感 | 微生物核心、编织图案、水果复古、舒适毛毯、太平洋朋克浪潮 | 触感、微距、编织、湿润 |
| 系统 / 数据 | 数字、迷宫、代码网、热力图、像素、8-bit | 网格化、生成式、示意图 |
对于当前项目,主要的为飘渺 / 神圣,重音为Hyperpop / Y2K 赛博——即圣光与水晶光芒,间以铬色和霓虹。这种配对就是 angelcore × cloud-trance 的需求。
情绪系统 — angelcore × cloud-trance
直接从最强的参考 Reel 中提炼。这是具体的调色。
调色板
- 基底: 近黑虚空(#05060a)和骨白(#f4f1ea)。大多数帧是其中一种。
- 神圣重音: 熔金 / 炭橙色(#ffb24d → #ff7a18)——黑暗中的唯一暖光。
- 水晶重音: 虹彩紫→青→品红散景(#8a6bff、#4fc3ff、#ff6ad5)——Hyperpop 光芒,用于明亮帧。
- 危险重音(谨慎使用): 在单色背景上一个发光的红色(#ff2a2a)——仅用于一两个冲击剪切。
- Hyperpop 主体: 糖果粉头发 / 铬色 / 蓝天下光泽白色。
规则:每个镜头只用一个重音。 金色存在于黑暗帧中;虹彩存在于明亮帧中;绝不同时出现在一个镜头中。
光与质感
- 黑暗被一个温暖光源刺穿(炭火光芒、神圣光柱)。高对比度,深黑。
- 水晶 / 闪光散景、镜头光晕、光芒、漏光——天国般,而不是脏污。
- 黑暗帧使用胶片颗粒 + 微妙色差;明亮帧使用洁净光泽。
- 负空间上的微距细节:一个主体物体位于黑色中央(钥匙、眼睛、齿轮、花瓣、水)。
- 主题:带翅膀的人物、云朵、光环、天使、水晶结构、糖果赛博肖像。
运动
- 缓慢、漂浮、无重量的摄像机运动(漂流、缓慢推进、缓慢环绕)——云 trance。
- 仅在强拍处出现速度爆发。否则一切都在呼吸。
- 粒子上升(火星、尘埃、闪光)——向上运动 = 升腾。
剪辑语法(提炼版)
从参考剪辑中,反复出现并定义风格的技巧:
- 节拍锁定硬切。 在诗节/强拍部分没有溶解。在鼓点上剪切。眼睛应该感受到 BPM。
- 主角-在-黑色 微距插入。 一个单一锐利物体位于黑色负空间中央,持续 1–2 拍,然后剪切。这些的节奏性蒙太奇 = cloud-trance 标志。
- 光晕 / 爆炸揭示。 一个白色或炭火光芒在瞬态处炸毁画面,然后解析到下一个镜头。“神圣闪光”转场。
- 单色上的色彩弹出。 以黑白运行一段,然后一个单一彩色元素(红色眼睛、金色火焰、粉色头发)在强拍上突显。
- 速度变速进入强拍。 在强拍前的最后一小节,将素材从慢速变速到快速,在第一拍上硬切到 tempo。
- 字幕关键词高亮(仅用于说话头 / 歌词部分)。 全部大写,一个或两个单词用重音颜色高亮,与声音同步。用于歌词视频,不用于纯粹视觉化。
- 反应画中画(仅用于讲解 / 编辑评论)。 画中画说话头在 B-roll 上。不适用于音乐视频本身;因语料库大量使用而记录。
不要做: 节奏部分中的交叉淡变转场;每个镜头超过一种重音颜色;镜头持续时间超过其音乐短语;可读的屏幕上 UI 铬色(裁剪掉);时间轴上混合宽高比。
管线 — 混合 ECC 视频技能
本技能是指挥。每个 ECC 技能是一个乐器。不要跳过层。
0. 风格品味(本技能) 在渲染任何东西之前决定流派 + 情绪 + 语法
1. 结构(video-editing) 映射歌曲:前奏/诗节/强拍/桥段/尾奏的时间戳
2. 生成(fal-ai-media) 按流派提示预设制作 B-roll;扔掉 80%
3. 剪切(video-editing/FFmpeg) 节拍剪切 + 重新构图到 9:16;在网格上组装选择
4. 合成(remotion-video-creation) 叠加层、光晕、歌词文本、节拍同步序列
5. 运动(motion-* 技能) 缓动曲线、漏光/粒子运动、转场时间控制
6. 音频(fal-ai-media) 过渡升调/冲击声来强化剪切(曲目本身在 Ableton 中)
7. 精修 按上方调色板调色、最终节奏调整、导出
8. 分发(content-engine) 平台原生版本 + 字幕/封面
| 步骤 | 要加载的 ECC 技能 | 做什么 |
|---|---|---|
| 结构与剪切 | video-editing | FFmpeg 剪切/连接/重构图、EDL、场景/静音检测 |
| 生成 B-roll | fal-ai-media | 按流派预设的图像/视频模型 |
| 合成与叠加 | remotion-video-creation | 节拍同步 <Sequence>、文本、光晕、遮罩 |
| 运动节奏 | motion-foundations、motion-patterns、motion-advanced | 缓动、弹簧、光/粒子运动 |
| 服务端视频 | videodb | 智能重构图、如果素材量大则索引 |
| 分发 | content-engine | 按平台剪切、封面、字幕 |
| 语音/歌词 VO | video-editing(ElevenLabs 部分) | 仅在需要口语层时使用 |
节拍计算(将剪切锁定到歌曲)
当前曲目为 138 BPM,B 小调。常量:
seconds_per_beat = 60 / 138 = 0.43478sframes_per_beat = fps × 0.43478→ 24fps: 10.43,30fps: 13.04,60fps: 26.091 bar (4 beats) = 1.7391s→ 30fps: 52.17 帧8-bar phrase = 13.913s→ 曲目中的循环长度
在 Remotion 中,将每个 from={} 捕捉到节拍:
const FPS = 30;
const BPM = 138;
const beat = (n: number) => Math.round(n * (60 / BPM) * FPS); // beat(n) → 帧
// 在节拍 0、4、8... 处剪切: <Sequence from={beat(0)} durationInFrames={beat(4)}> ...
节拍映射镜头计划(此音乐视频)
歌曲编排(来自项目自己的笔记)为 前奏 → 诗节 → 强拍 → 桥段 → 强拍 → 尾奏(约 2:05)。将品味映射到每个部分:
| 部分 | 流派/情绪倾向 | 语法 | 镜头想法 |
|---|---|---|---|
| 前奏 | 飘渺/神圣,近黑 | 缓慢推进,无剪切 | 虚空中炭火光芒;一束金色;尘埃上升 |
| 诗节 | 黑暗 + 微距英雄在黑色上 | 每 2 拍硬切 | 钥匙、眼睛、齿轮、水滴、花瓣 — 节奏微距蒙太奇 |
| 强拍 | Hyperpop 光芒 + 水晶 | 变速进入,在第一拍剪切,快速 | 糖果粉人物、铬色、虹彩散景、带翅膀的升腾 |
| 桥段 | 精神主义,无重量 | 一个长持镜头,色彩弹出 | 云朵 + 光环;一个红色重音突显一次 |
| 第二次强拍 | 同强拍,强化 | 在瞬态处添加神圣闪光光晕 | 翅膀展开、闪光爆发、漏光最大化 |
| 尾奏 | 冰川民谣,冷平静 | 缓慢淡出到黑色 | 水晶结构溶解;炭火熄灭 |
fal.ai 提示预设(按情绪)
与 fal-ai-media 配合使用。每个预设是将流派渲染到项目调色板。为所有追加 9:16,竖屏,电影感,胶片颗粒,体积光,无文字,无水印。
- 神圣虚空: "一个单点熔金炭火光芒在无限近黑虚空中上升,深阴影,一个温暖光源,无重量尘埃粒子,神圣,高对比度"
- 微距英雄: "一个老式黄铜钥匙 / 人类眼睛 / 咬合齿轮的极端微距,位于纯黑负空间中央,极锐细节,单边光"
- 水晶光芒: "虹彩紫-青-品红水晶散景,闪光折射,梦幻镜头光晕,天国光芒,柔焦,hyperpop angelcore"
- 糖果赛博肖像: "糖果粉色头发人物,光泽铬色重音,明亮蓝天,Y2K hyperpop,洁净光泽,高饱和,卡哇伊赛博"
- 带翅膀的升腾: "一个带翅膀的人物升入云层,光环,骨白和金色,体积光,飘渺,宗教意象,柔和"
- 冷尾奏: "苍白水晶冰结构缓慢溶解,冰川民谣,冷蓝和骨白,极简,平静,淡出到黑色"
每个预设生成 6–10 个,保留 2–3 个。为运动,使用图像到视频模型动画化静态图或直接生成短视频;根据运动规则保持摄像机移动缓慢。
FFmpeg 配方(剪切 + 重构图)
# 将风景/原始剪辑重构图到 9:16(中心裁剪)
ffmpeg -i in.mp4 -vf "crop=ih*9/16:ih,scale=1080:1920" v.mp4
# 将剪辑节拍剪切到精确 N 拍,在 138 BPM(例如 2 拍 = 0.8696s)
ffmpeg -i in.mp4 -t 0.8696 -c copy beat2.mp4
# 将节拍选择连接成诗节蒙太奇
for f in selects/*.mp4; do echo "file '$f'"; done > concat.txt
ffmpeg -f concat -safe 0 -i concat.txt -c copy verse.mp4
# 从屏幕录制参考中去除 UI 铬色 / 状态栏(裁剪顶部+底部)
ffmpeg -i reel.mp4 -vf "crop=iw:ih-300:0:150" clean.mp4
Remotion 合成骨架(节拍同步)
import { AbsoluteFill, Sequence, Video, Img, useCurrentFrame, interpolate } from "remotion";
const FPS = 30, BPM = 138;
const beat = (n: number) => Math.round(n * (60 / BPM) * FPS);
const Bloom: React.FC = () => {
const f = useCurrentFrame();
const o = interpolate(f, [0, 3, 12], [0, 1, 0], { extrapolateRight: "clamp" }); // 瞬态上的神圣闪光
return <AbsoluteFill style={{ background: "radial-gradient(#fff,#ffb24d)", opacity: o, mixBlendMode: "screen" }} />;
};
export const AngelcoreMV: React.FC = () => (
<AbsoluteFill style={{ background: "#05060a" }}>
{/* 诗节:微距英雄在黑色上,每 2 拍硬切 */}
<Sequence from={beat(0)} durationInFrames={beat(2)}><Video src="/selects/key.mp4" /></Sequence>
<Sequence from={beat(2)} durationInFrames={beat(2)}><Video src="/selects/eye.mp4" /></Sequence>
<Sequence from={beat(4)} durationInFrames={beat(2)}><Video src="/selects/gear.mp4" /></Sequence>
{/* 强拍:水晶光芒 + 闪光在第一拍 */}
<Sequence from={beat(8)} durationInFrames={beat(16)}><Video src="/selects/crystalline.mp4" /></Sequence>
<Sequence from={beat(8)} durationInFrames={beat(1)}><Bloom /></Sequence>
</AbsoluteFill>
);
渲染:npx remotion render src/index.ts AngelcoreMV out.mp4。关于项目设置、音轨绑定和渲染标志,请参见 remotion-video-creation。
关键原则
- 在第一次生成之前决定流派。 选择一个主要家族 + 至多一个重音。
- 每个镜头一种重音颜色。 金色在黑暗中,虹彩在光明中,红色一次。
- 每个硬切都落在一个节拍上。 使用节拍计算;节奏部分中无转场。
- 主角-在-黑色微距是标志性动作。 掌握它;它承载着 t