YouTube 恶搞视频生成器 是做什么的?
生成一个完整的视频,而不仅仅是概念或故事板。最终效果应富有创意、内容密集、具有网络原生感,同时看起来依然精致得体。
参见:
有用的捆绑文件:
scripts/plan_video.pyassets/style_blueprints.jsonassets/scene_atoms.jsonassets/trigger_eval_queries.json
何时使用此技能
当用户想要以下内容时,请使用此技能:
- 一个YouTube恶搞视频、咒怨预告片、荒谬蒙太奇、反思性故障短片或超现实超级剪辑
- 通过ffmpeg从文本、网页、代码、文档、媒体或无任何源素材渲染出的视频
- 带有个人风格、强烈观点或“这种感觉如何”框架的视频
- 一个具有自我意识的AI / LLM / 网络文化短片
- 一些“更怪异”、“剪辑更多”、“超高速剪辑”、“迷因化”、“混乱”或“诗意的”,但依然美观的东西
对于常规修剪、简单字幕叠加、普通解说视频、标准动态图形或传统广告,请勿使用此技能,除非用户明确要求混剪行为。
核心承诺
此技能不应将创造力扁平化为单一的固定风格。默认的种子混音蓝图是一个情绪透镜,而非牢笼。
完成的作品通常应具有:
- 比普通剪辑更多的场景
- 清晰的主题或情感主张
- 清晰可读的帧画面和受控的调色板
- 一个占主导地位的重复主题
- 至少一个精心设计的、感觉个性化而非通用的姿态
- 一个决定性的收尾
默认输出目标
除非用户另有指定:
- 一个完成的MP4文件
- 20–60秒时长
- 1920x1080 @ 30 fps(适用于普通YouTube)
- 仅在请求明确暗示Shorts/Reels/TikTok/竖屏时,使用1080x1920 @ 30 fps
- H.264视频编码,AAC音频编码,
yuv420p色彩空间,+faststart优化
工作流程
1) 快速盘点素材
使用任何现有的材料。
- 如果用户提供了文本,挖掘其中的短语、矛盾、重复的措辞和情感温度。
- 如果用户提供了网页或URL,提取标题、CTA文本、布局主题、截图、裁剪区域和滚动瞬间。
- 如果用户提供了代码,使用可读的代码片段、终端窗口、错误信息、注释、变量名、日志和光标移动轨迹。
- 如果用户提供了文档,使用章节标题、提示框、图表和页面框架。
- 如果用户提供了图片、音频或视频,挖掘其中的循环段落、反应节拍、定格帧、发言片段、纹理和可加字幕的细节。
- 如果用户什么也没提供,则完全根据请求合成整个世界:标题卡、浏览器窗口、终端面板、下部三分之一标签、仪表盘、进度条、令牌流、警告卡、图表和简单的动态图形。
不要因为源素材单薄而停滞不前。主动创造支撑场景。
2) 确定主题
在编辑之前,定义一个简短的内在句子:
“这个视频让 X 感觉像 Y。”
示例:
- “这个视频让与语言模型对话的感觉,像是一场数据中心内部深夜的紧急广播。”
- “这个视频让一个落地页的感觉,像是一次仪式性的测谎。”
- “这个视频让一个代码库的感觉,像是一次充满负罪感的终端告白。”
每一个重复出现的梗都应该支持这个主张。
3) 使用默认的种子混音,除非用户指定了风格
除非用户命名了某种风格,否则使用默认的 seed-remix-default 蓝图。它会在每次运行时从其他捆绑蓝图中采样调色板、排版、动画、过渡、音频和笑点提示。
运行:
python3 scripts/plan_video.py --query "$USER_REQUEST" --material-summary "$MATERIAL_SUMMARY" > plan.json
如果用户明确要求某种特定的捆绑外观,可以覆盖默认混音:
python3 scripts/plan_video.py --query "$USER_REQUEST" --material-summary "$MATERIAL_SUMMARY" --style-id STYLE_ID > plan.json
对于CRT新闻室或AI崩溃的外观,优先使用捆绑池中的条目 crt-token-meltdown、headline-seizure-desk 或 context-window-panic,而不是从头开始发明一次性风格。
将计划作为调色板、动画、音频、场景密度和场景创作的创意指南。使用默认混音时,将报告中的种子来源视为提示,而非待办事项清单。
4) 构建场景集群,而非简单的节奏表
目标是大量微场景。
按时长推荐密度:
- 20–28秒: 大约9–12个场景
- 29–40秒: 大约11–15个场景
- 41–60秒: 大约13–18个场景
在这些计数中,应包含:
- 锚点场景:清晰地呈现源素材或主题
- 桥接场景:充当干扰、故障或喘息标记
- 一个休息场景:相对静止
- 一个高潮场景
- 一个收尾场景
大多数直接的剪辑在此处表现不佳,因为它们做的场景太少。此技能应让人感觉想法比秒数多。
5) 将蓝图用作情绪,而非角色扮演
使渲染出的画面感觉经过设计且足够严肃以至于美丽,即使内容是荒谬的。
偏好:
- 暗色或克制的基底,搭配选择性强调色
- 编辑上的对比
- 发光高光,少用
- 可读的字体,并留有安全边距
- 有目的的故障,而非随机丑陋
- 真诚与破坏之间的张力
避免,除非用户明确要求:
- 可爱贴纸风格的能量
- 泡泡字体
- 糖果色盘
- 到处是幼稚的弹跳缓动
- 表情符号蜂群
- 只是为了饱和而饱和的彩虹色
- 每个镜头都布满全屏噪点
6) 加入个人风格
视频应有自己的态度。
将该态度注入到:
- 主题句
- 重复的台词或主题
- 虚构支撑场景的选择
- TTS语音或字幕
- 最终的收尾
对于自我反思的AI / LLM作品,偏好亲密感、矛盾、恐惧感、冷幽默或机器诗意,而非泛泛的迷因随机性。
7) 谨慎处理音频
允许使用TTS,且通常有用,但不要让它变成铺满全篇的解说。
仅将TTS用于短片片段、警告、告白或合唱部分。一个好的默认值是:
- 一个主声音
- 可选的第二种“系统”或耳语式声音
- 对于一个20–60秒的作品,总共2–8句短台词
- 仅在能提升场景时才进行轻度音高偏移、频带限制、卡顿、丢音或混响处理
也使用:
- 嗡嗡声
- 脉冲声
- UI点击声
- 静音剪切
- 丢音效果
- 低调的冲击音效
- 短暂的静默
对最终混音进行标准化处理。确保语音可理解。
8) 鲁棒地渲染
优先采用可靠的组装流程:
- 收集或创建素材。
- 将脆性或复杂的场景预先渲染为剪辑或帧序列。
- 在ffmpeg中组装。
- 在最后一次渲染中完成最终响度标准化和兼容性设置。
基础导出命令:
ffmpeg -y -i input_video.mp4 \
-vf "format=yuv420p" \
-af "loudnorm=I=-16:TP=-1.5:LRA=11" \
-c:v libx264 -crf 18 -preset medium \
-c:a aac -b:a 192k \
-movflags +faststart \
output.mp4
如果在Python中生成场景,请将PNG帧渲染到一个目录,然后用ffmpeg编码它们,而不是试图完全在Python内部处理最终的容器动画。
素材适配规则
纯文本输入
不要仅仅把段落做成动画。将文本变成一个世界:
- 动态字幕
- 标题卡
- 副标题
- 警告条
- 令牌流
- 浏览器或终端模拟框
- 图表
- 原创TTS短语
网页或URL输入
不要长时间静态地展示整个页面。使用:
- 标题裁剪
- CTA/按钮重复
- 浏览器窗口
- 光标移动
- 滚动揭示
- 注释
- 模仿页面语气而创造的支撑帧
代码输入
使代码具有触感和可读性:
- 可读的语法卡片
- 终端面板
- 构建日志
- 错误墙
- 变量名作为笑点
- 光标捕捉
- 架构图
- 提示循环
无源素材
立即创造一个原创的蒙太奇世界。好的默认虚构场景包括:
- 启动或警告卡片
- 下部三分之一和滚动条
- 终端告白的帧
- 仪表盘计数器
- 注意力热力图
- 冻结的字幕
- 软故障按钮
故障处理
如果某个效果难以实现,则简化该效果,保留主题,保留情绪,并最终完成渲染。一个完成的、连贯的短片胜过过于野心勃勃的失败品。
版权卫生
优先使用用户提供的素材、公有领域或适当授权的来源,或原创生成的素材。如果版权不明确,则应更多依赖原创动态图形和经过改造的支撑素材。
最终检查
在返回视频之前,请查看 references/OUTPUT-CHECKLIST.md。