恶搞短片
一部为熟知片中人物或情景的观众打造的喜剧:将团队的重要夜晚包装成80年代动作片片头、万圣节怪物特辑、圣诞电视广告。团体可以是任何团体(销售团队、学校教师办公室、五人足球队、家庭),主题可以是他们共同经历的任何事。这些短片比工具包中的任何其他作品都更能引起共鸣,因为观众是在笑他们能认出的东西。该技能就是关于如何有目的地创作这样的短片。
本技能基于2026年11月为同一团队制作的三部视频(一次发布的动作片片头、它的万圣节姊妹篇、一部《圣诞颂歌》风格的圣诞广告)积累和总结而成。它们不在examples/目录下,因为片中主演是该团队的真实同事。随后又制作了两部使用虚构角色的公开短片(关于永无休止的视频通话的恐怖预告片、关于重返办公室的野生动物纪录片),每部都包含16:9和竖版两种格式,还有一个品牌定制版放在产品自己的界面中。
它们为什么有效(按重要程度排序)
- 真实面孔,动起来。 关键突破在于将团队的资料照片制作成动画。静态照片只会带来微笑;而同样的人抬起飞行员墨镜或用潘趣酒干杯则能引发笑声。识别度是核心引擎。参见
people.md。 - 真实的内部笑话。 在团队自有频道中找到的台词胜过任何原创笑料:同事的口头禅、某人硬塞进来的功能、某人一直念叨的事情。上下文挖掘比打磨剧本更有价值。参见
context.md。 - 节奏与事件契合的类型。 观众已经熟悉了基本框架(三个会被打破的规则;过去、现在和未来的幽灵;团队集结),所以视频只需要填充这些节拍即可。映射越紧密,剧本需要解释的内容就越少。参见
genres.md。 - 允许夸张。 这不是发布说明。一旦提出请求的人说事实不重要,数字就可以夸大到离谱,时间线也可以虚构。只问一次,尽早问;然后停止对笑话的真实性进行核查。
- 温情是底线。 每个人都是某个笑话的主角或参与者,绝不是受害者。这保证了视频的温暖感,同时也是安全规则(见下文)。
- 每种类型拥有独立的外观和声音。 专用字体、叠加效果和调色(VHS 磁带噪点、胶片颗粒和宽屏黑边、烛光效果)、原创歌曲或配乐、少量的音效,广告中最多一句旁白。任何东西都不应看起来像工具包模板。
- 短小精悍。 广告时长60-90秒。“节目片头”可长达2分钟。超过约2分30秒中间会开始拖沓;优先从这里开始裁剪。
- 精选每一个片段。 大约每三个LTX片段中就有一个会剪出陌生人的脸。一个错误的脸就会打破魔力,所以要对每个片段进行缩略图审查并重新生成。
两种演员阵容
- 真实人物(团体自己的照片):对于了解他们的观众来说,效果最强烈。默认仅限于内部使用;只有获得每个人的书面许可后才可以公开。
- 虚构角色(FLUX 肖像,或非人类角色):用于公开视频,或用于观众认出的是情境而非人物的共同主题(视频通话、办公室茶水间)。观众的认同感从面孔转移到情境,因此情境必须既普遍又具体:“你静音了”、有412个标签页的电子表格、热桌上被人落下的外套。参见
people.md步骤 0。 - 一次造型,到处使用。 在共享文件夹中一次性生成虚构角色阵容,然后为每个视频分配各自的服装和基于同一组面孔的片段。用同一组人制作的两部视频感觉就像系列作品,而它们之间的呼应(第二视频的最后一句话是第一视频的第一句话)是一个免费的笑点。
不能违反的规则
- 一切必须充满温情。 团体中的任何人都不能成为他们会在意的笑话对象。不许涉及表现、健康、个人生活或任何在私下里说过的事情。如有疑问,删掉那句台词。
- 真实人物仅限内部。 他们的肖像属于他们自己。作品仅限团体内部使用,通过链接分享,在发布到任何公开场合之前必须先征得本人同意。任何要求被排除在外的人都会被排除。
- 屏幕上的内容不敏感。 不能有客户或合作伙伴名称、主机名、机密值(机密应用模糊条或
••••代替)、内部URL。重命名真实系统(如“中继一”)。 - 原创台词和音乐。 借用某种类型的形式,但绝不能借用某部作品的角色、名称、台词、设计或主题曲。公有领域的故事(狄更斯、格林、莎士比亚)可以直接使用;电影或电视剧则不行,不管是否改名。任何歌曲都必须写原创歌词(
acestep技能)。 - 仅引用观众可能已看到的内容。 公开的团队频道可以。私信不可以。参见
context.md。
开始之前
- GPU 端点 (Modal,一次性的):
uv sync --extra modal && uv run modal setup,然后运行uv run tools/modal_setup.py flux2 image_edit ltx2 qwen3_tts。LTX 需要授权:它需要一个包含你的 Hugging Face 令牌的 Modal 机密(docs/modal-setup.md)。音乐:免费的ACEMUSIC_API_KEY放在.env中(acestep技能)。 - 项目 是一个普通的 Remotion 项目,位于
projects/<name>/;没有适合的模板,因为这里的东西不应该看起来像模板。从任意模板复制package.json和remotion.config.ts(配置使lib/中的导入能解析),在src/Root.tsx中为每个剪辑保留一个组合,并将角色的片段放在public/people/下。一个镜头是一个基于绝对帧且包含该角色的<Sequence>:
import { LivingPhoto } from '../../../lib/components/LivingPhoto';
// 播放片段一次,然后保留最后一个好帧;fit 可使略短的片段拉伸以填满镜头
<Sequence from={120} durationInFrames={180}>
<LivingPhoto src="people/sam-xmas.mp4" hold={140} fit={180} pos="center 30%" style={{ inset: 0 }} />
</Sequence>
工作流程
| 步骤 | 内容 | 参考文件 |
|---|---|---|
| 1. 简报 | 事件、受众、演员(3-6人)、类型、时长、“事实重要吗?” | 本文件 |
| 2. 上下文 | 挖掘团体的频道和工具;编写 public/bible.md | context.md |
| 3. 映射 | 将类型的节拍映射到事件上;每人一个节拍;从圣经中挑选台词 | genres.md |
| 4. 演员 | 照片或虚构角色,用 image_edit 做服装,用 LTX 制作动画,做缩略图审查 | people.md |
| 5. 世界 | FLUX 背景(无文字)、音效、音乐或原创歌词歌曲 | acestep、elevenlabs |
| 6. 构建 | 绝对帧上的 Remotion 镜头;用 LivingPhoto 制作角色;类型叠加 | people.md、video-design |
| 7. 检查 | 渲染后的缩略图审查、qc.py --render --fix、sync_check.py --cues,然后再次核对安全规则 | video-design/critique.md、CLAUDE.md |
| 8. 剪辑 | 竖版,以及品牌版(如需):在相同素材上使用新的布局 | formats.md |
镜头,而非场景。 这些短片像广告一样剪辑:一个固定的镜头列表,带有绝对的帧范围,镜头之间有10-20帧的溶解过渡,歌曲或配乐始终铺底。如果有旁白,则先生成旁白并以其为锚点(CLAUDE.md,音频锚定时间线);仅有一句结尾旁白的广告可以以音乐为主导。
动作上的音效:测量,不要目测。 打喷嚏、外套落地、徽章叮当:每个音效用 tools/sync_check.py --clip 放置(音效峰值与动作对齐的位置),将其列入项目的 sync-cues.json 列表中,并在每次渲染展示之前运行 sync_check.py --video ... --cues。一个手动放置的打喷嚏音效提前了半秒;另外三个音效提示相差0.8-1.0秒。如果某个片段冻结或剪切,它的音效也应同时结束。
文字是笑点的载体。 对话气泡、印章、舞会卡、墓碑、打印的标签。Remotion 渲染所有这些内容(FLUX 和 LTX 会混淆文字)。给每个屏幕上的笑点一个帧提示和一个音效。
声音。 对于不属于任何人的旁白,使用 Qwen VoiceDesign 根据书面简报设计一个(“一位温和的中年英国女性,以低沉的、缓慢有节奏的语速旁白野生动物纪录片”;“一位深沉、沙哑的电影预告片解说员”):qwen3_tts.py --design-instruct "..." --text "<一个20秒的该类型风格的种子段落,不是脚本>" --format wav。VoiceDesign 每次调用都会生成一个新声音,所以先设计一次,然后为每个句子克隆该参考声音(三个版本,pick_takes.py 选择最佳)。描述一种类型,绝不是真实人物;选择与该类型知名声音不同的旁白(例如野生动物电影用女声)可以确保其明显是原创的。
剪辑。 从一开始就规划竖版剪辑和任何品牌版;它们重复使用所有已生成的素材,每个版本仅需一次额外渲染。参见 formats.md。
跨类型复用。 一次动画化的角色阵容可以在下一个节日重新换装:照片、裁剪和上下文圣经都保留下来,只需更换服装、片段和世界。
成本(Modal,2026年11月)
LTX:大约每次5秒片段$0.08,image_edit:大约每次编辑(热启动)$0.01(冷启动约10分钟;先发送一个编辑任务再等待),FLUX:大约每个背景或肖像$0.01,ACE-Step 歌曲:几分钱。一个90秒的广告,包含五个角色以及重录的成本大约为$2。两部共享一个虚构角色阵容的80-100秒短片(9次服装编辑,16个片段,2个设计声音)加起来大约$2.50。acemusic API 在批次中可能出现502错误;失败的版本会被跳过,所以可以重新运行以获取更多。
相关文件
context.md、genres.md、people.md、formats.md;ltx2、qwen-edit、acestep、elevenlabs、video-design、remotion 技能;lib/components/LivingPhoto.tsx。