Taste(审美) 是做什么的?
大多数AI视频建议止步于“如何渲染帧”。这个技能是更上一层的东西:帧应该看起来如何,按什么顺序排列,以什么节奏剪辑,从而使结果读起来像一个有意图的整体,而不是一堆生成的碎片。
它编码了一种特定的审美——angelcore / cloud-trance / hyperpop 风格家族(Bladee "Silver Surfer" 时代的空灵 trance 与厚重 angelcore 的融合)——从保存的 Reels 语料库和一个约70个条目的视觉流派库中提炼而来。它是有意为之的。审美是一种观点,而不是一个菜单。
配套文件
references/genre-taxonomy.md包含完整的命名流派目录。 此文件是可操作层:情绪、语法、流程,以及一个节拍映射的镜头计划。
何时激活
- 制作音乐视频、歌词视频、粉丝动态或可视化作品。
- 制作感觉比信息更重要的短视频编辑/Reel。
- 驱动AI B-roll 生成(fal.ai、Veo、Kling 等),并且提示词需要连贯的方向而非零散的 vibe。
- 在渲染之前进行情绪板制作或选择视觉流派。
- 用户说“taste”、“make it feel like X”、“give it a direction”、“angelcore”、“cloud trance”、“hyperpop edit”、“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
直接从最强的参考Reels中提炼。这是具体的调色。
调色板
- 底色: 近黑虚空 (#05060a) 和骨白 (#f4f1ea)。大多数帧是两者之一。
- 神圣重点色: 熔金/琥珀橙 (#ffb24d → #ff7a18) ——黑暗中唯一的一束暖光。
- 晶体重点色: 彩虹紫→青→洋红散景 (#8a6bff, #4fc3ff, #ff6ad5) —— hyperpop 绽放,用于明亮帧。
- 危险重点色(谨慎使用): 单色上的一个发光红 (#ff2a2a) ——仅用于一两个冲击切。
- Hyperpop 主体: 糖果粉头发/镀铬/亮白配蓝天。
规则:每个镜头一个重点色。 金色用于暗帧;彩虹色用于亮帧;一个镜头中绝不两者兼用。
光和纹理
- 黑暗被单一暖光源(余烬绽放,神圣光柱)刺破。高对比度,深黑。
- 晶体/闪光散景、镜头光晕、绽放、漏光——神圣,而非肮脏。
- 暗帧上叠加胶片颗粒 + 轻微色差;亮帧上保持干净光洁。
- 负空间上的微距细节:一个英雄物体(钥匙、眼睛、齿轮、花瓣、水滴)位于黑色中心。
- 主体:有翼人物、云朵、光环、天使、晶体结构、糖果赛博肖像。
运动
- 缓慢、浮动、失重的摄像机(漂移、慢推、慢轨道)——云 trance。
- 仅在电子乐高潮处有速度爆发。否则一切都在呼吸。
- 粒子上升(余烬、尘埃、闪光)——向上运动 = 升天。
剪辑语法(提炼)
从参考剪辑中,反复出现并定义风格的技巧:
- 节拍锁定硬切。 在诗句/电子乐高潮段没有溶解。在底鼓上切。眼睛应该感觉到BPM。
- 英雄在黑色背景微距插入。 一个单独的尖锐物体置于黑色负空间中心,保持1-2拍,然后切。这些素材的节奏蒙太奇 = cloud-trance 标志。
- 绽放/爆炸揭示。 一个白色或余烬色的绽放,在瞬态上吹爆画面,然后过渡到下一个镜头。“神圣闪光”过渡。
- 单色上的颜色弹出。 将一段画面运行成黑白,然后在重拍上让一个彩色元素(红眼、金焰、粉头发)突显出来。
- 进入电子乐高潮的速度斜坡。 在电子乐高潮前的最后一小节,将素材从慢速斜坡到快速,在1拍上硬切到节奏。
- 字幕关键词高亮(仅限对白/歌词部分)。 全大写,用重点色高亮一或两个词,与声音同步。用于歌词视频,不用于纯可视化作品。
- 反应画中画(仅限讲解/剪辑评论)。 画中画对白人头覆盖在 B-roll 上。对于音乐视频本身不适用;因语料库大量使用而记录在此。
禁忌: 在节奏段落中使用交叉溶解过渡;每个镜头使用超过一个重点色;一个镜头保持超过其音乐短语;屏幕上显示可读的UI镀铬(裁剪掉);在同一个时间线上混合宽高比。
流程——混合 ECC 视频技能
本技能是指挥。每个 ECC 技能是一种乐器。不要跳过层。
0. TASTE(本技能) 在渲染任何东西之前决定流派 + 情绪 + 语法
1. STRUCTURE(video-editing) 映射歌曲:前奏/诗句/电子乐高潮/过渡/尾奏的时间戳
2. GENERATE(fal-ai-media) 根据流派提示预设制作 B-roll;扔掉80%
3. CUT(video-editing/FFmpeg) 节拍切 + 重构图到9:16;在网格上组装精选素材
4. COMPOSE(remotion-video-creation) 叠加层、绽放、歌词文本、节拍同步排序
5. MOTION(motion-* skills) 缓动曲线、漏光/粒子运动、过渡时间
6. AUDIO(fal-ai-media) 过渡上升/撞击音效以加持剪辑(音轨本身在 Ableton 中)
7. POLISH 按上方调色板调色、最终节奏梳理、导出
8. DISTRIBUTE(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.43478秒frames_per_beat = fps × 0.43478→ 24fps: 10.43,30fps: 13.04,60fps: 26.091 小节 (4 拍) = 1.7391秒→ 30fps: 52.17 帧8 小节乐句 = 13.913秒→ 从曲目得到的循环长度
在 Remotion 中,将每个 from={} 捕捉到一帧:
const FPS = 30;
const BPM = 138;
const beat = (n: number) => Math.round(n * (60 / BPM) * FPS); // beat(n) → frame
// 在拍子0,4,8,...上切 : <Sequence from={beat(0)} durationInFrames={beat(4)}> ...
节拍映射的镜头计划(本音乐视频)
歌曲编排(来自项目自己的笔记)为前奏 → 诗句 → 电子乐高潮 → 过渡 → 电子乐高潮 → 尾奏(~2:05)。将审美映射到每个部分:
| 部分 | 流派/情绪倾向 | 语法 | 镜头创意 |
|---|---|---|---|
| 前奏 | 空灵/神圣,近黑 | 慢推,无切 | 虚空中的余烬绽放;一束金色光束;尘埃上升 |
| 诗句 | 黑暗 + 微距英雄在黑色背景 | 每2拍硬切 | 钥匙、眼睛、齿轮、水滴、花瓣——节奏微距蒙太奇 |
| 电子乐高潮 | Hyperpop 绽放 + 晶体 | 速度斜坡进入,在1拍上切,快速 | 糖果粉人物、镀铬、彩虹散景、有翼升天 |
| 过渡 | 灵性,失重 | 一个长的保持镜头,颜色弹出 | 云朵 + 光环;一个红色重点色突然出现一次 |
| 电子乐高潮2 | 同电子乐高潮,增强 | 在瞬态上添加神圣闪光绽放 | 翅膀张开、闪光爆发、漏光最大化 |
| 尾奏 | 冰川民谣,冷寂 | 慢淡出到黑 | 晶体结构溶解;余烬熄灭 |
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
# 将剪辑节拍切割为BPM 138下的正好N拍(例如2拍=0.8696秒)
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>
{/* 电子乐高潮:晶体绽放 + 在1拍上的闪光 */}
<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。
关键原则
- 在第一次生成之前决定流派。 选择一个主要家族 + 一个辅助。
- 每个镜头一个重点色。 暗处用金色,亮处用彩虹色,红色只出现一次。
- 每个硬切落在节拍上。 使用节拍数学;节奏段落中无过渡。
- 英雄在黑色背景微距是标志性动作。 掌握它;它承载了
…
[因翻译而截断]