ai21.net
语言

<inputs>

演示视频

<inputs> — 1

提示词

<inputs>
Ask me for: my product's name (one lowercase word), a 4-word tagline, the 3-step story of what it does, a launch date and domain, a royalty-free song with a clear drop, 4 vertical talking-to-camera clips and 12 portrait photos. If I skip any, use the defaults: "castr", "ugc ads, cast by ai", write a brief → scan 1,000 creators → cast 4, Mixkit "Cat Walk" (129.6 BPM, drop at 29.7s), free Pexels clips and portraits, and transparent stickers from Pixabay (serum, mic, megaphone, vintage camera, spotlight, lips).
</inputs>

<direction>
A 25 second square launch trailer, 1440x1440 at 60fps, loud poster style. Cobalt #2B3BFF, ink #0E0F1F, cream #F6E4C6, pink #FF7DC7, tangerine #FF5A1F. Archivo 900 extra-condensed for names, expanded for headlines, Geist and Geist Mono for labels. Op-art sunburst, scrolling waves, film grain. Real media only: the clips play inside the design, and the stickers get a white die-cut border and a soft shadow.
Motion rules: the camera never stops (a slow 1.03-1.07 push on every scene), nothing pops in (letters rise through a mask line one by one), nothing snaps to the beat (patterns rotate continuously), swaps are carousel glides of about 0.55s, colour changes fade over about 0.35s, stickers ease in and then keep a slow sway. No full stops after the wordmark or any headline.
Banned: beat-snapped rotations, pop-in slams, white flashes, crossfades between scenes, hard cuts, templates.
</direction>

<structure>
54 beats. The song starts 8 beats before its drop.
Beats 0-8: a cobalt sunburst turns around a breathing cream disc. The wordmark types in with a gliding caret and the tagline pill rises. The disc floods the frame into the drop.
Beat 8, the drop: the cream becomes the face of a 3D box and "ONE BRIEF" rises letter by letter. The camera pulls back to the box floating on waves. On beat 12 it turns to "1,000 CREATORS" (stacked, with outlined echoes), on beat 14 to "ZERO DMs".
Beats 16-22: a whip to a dark desk. A tangerine "BRIEF #042" ticket types its rows (product, vibe, cast, due), stickers drift on, a polaroid of a real clip drops onto the corner, and a "NOW CASTING" stamp presses down on beat 20.
Beats 22-34: the casting stage. A crowd of black and white portraits in an arc, a 3D stage block, and the creators gliding through like a carousel. Each plays live in a big disc in black and white, with their name in pink on the stage, their followers, and a MATCH % that counts up. One beat later a "CAST ✓" stamp lands and the clip fades to colour. A counter rolls 1/4 to 4/4.
Beats 34-39: pink floods out of the last disc. The disc morphs into a phone screen (the clip keeps playing) and fans into 4 phones playing all 4 creators, with views counting up. "4 ADS" and "BY FRIDAY" rise.
Beats 39-44, the music's break: the pink floor drops away and a cream "JOIN THE WAITLIST" ticket glides down onto the sunburst. On the pickup its stub tears off.
Beats 44-54: the ticket body morphs into a poster arch. The wordmark rises in, then the tagline, then an info bar slides up in 3 blocks (date, numbers, domain) and a ticker runs round the frame edge. Then it all folds back into the opening disc, so the last frame is the first.
</structure>

<build>
1. One HTML canvas. Every frame is a pure function of time inside seek(t).
2. A beat map in beats, B = 60/BPM, with the song placed so its drop lands on beat 8.
3. The 3D box is an orthographic projection: each face is a 1440px offscreen canvas drawn with an affine transform and shaded by its normal.
4. Cut the clips to 30fps JPEG sequences with ffmpeg, draw frame floor(t*30), and do the black and white with ctx.filter.
5. Trim the sticker PNGs and add the die-cut border by dilating their alpha.
6. Sound: a downloaded SFX for every event (a shutter on every cast, whooshes on the glides, key clicks on the typing), each placed by its measured peak. Loudnorm to -14 LUFS.
7. Render with Playwright at 60fps with 8 motion-blur subframes. Scan for single-frame pops, then compare its motion against a reference video (hard jumps per second, share of still frames).
</build>

<gotchas>
A pattern that rotates one notch per beat reads as stutter: rotate it continuously, and pick each ring's speed so it lands on the same pattern at the last frame. 4 subframes ghost on fast whips, so use 8. A layer whose background is a huge flood circle still covers the screen after sliding down one frame height, so switch it to a full-frame rect once it has flooded. Counters read the frame's time, not the subframe's. The disc must morph inside the same camera transform as the scene it leaves, or it jumps.
</gotchas>

<start>
Ask me for the inputs, then show me the beat map and 6 stills (open, box, brief, casting, phones, poster) before you render.
</start>

中文译文

<inputs>
向我询问:我产品的名字(一个小写单词)、一句 4 个词的标语、它做什么的 3 步故事、上线日期和域名、一首有清晰 drop 的免版税歌曲、4 段竖屏对镜口播片段和 12 张肖像照。如果我跳过了任何一项,就用默认值:“castr”、“ugc ads, cast by ai”、写 brief → 扫描 1,000 位创作者 → 挑选 4 位、Mixkit 的 “Cat Walk”(129.6 BPM,drop 在 29.7s)、Pexels 的免费片段和肖像照,以及来自 Pixabay 的透明贴纸(精华液、麦克风、扩音器、复古相机、聚光灯、嘴唇)。
</inputs>

<direction>
一支 25 秒的方形发布预告片,1440x1440、60fps,张扬的海报风格。钴蓝 #2B3BFF、墨黑 #0E0F1F、奶油 #F6E4C6、粉 #FF7DC7、橘 #FF5A1F。名字用 Archivo 900 特窄体,标题用展开体,标签用 Geist 和 Geist Mono。欧普艺术太阳光芒、滚动波浪、胶片颗粒。只用真实素材:片段在设计内部播放,贴纸加白色模切边框和柔和阴影。
运动规则:镜头永不停下(每个场景都以 1.03-1.07 缓慢推近),没有东西弹入(字母逐个穿过遮罩线升起),没有东西跟着节拍卡点切换(图案持续旋转),切换是约 0.55s 的旋转木马式滑移,颜色变化在约 0.35s 内淡变,贴纸缓入后保持缓慢摇摆。字标或任何标题后面都不加句号。
禁止:卡节拍的旋转、弹入式重击、白闪、场景之间的交叉淡化、硬切、模板。
</direction>

<structure>
54 拍。歌曲在它的 drop 之前 8 拍开始。
第 0-8 拍:一轮钴蓝太阳光芒绕着一块呼吸起伏的奶油圆盘旋转。字标带着滑动的光标逐字打出,标语胶囊升起。圆盘漫过画面,进入 drop。
第 8 拍,drop:奶油色变成 3D 盒子的一个面,“ONE BRIEF” 逐字母升起。镜头拉远到漂浮在波浪上的盒子。第 12 拍它转向 “1,000 CREATORS”(堆叠,带描边回声),第 14 拍转向 “ZERO DMs”。
第 16-22 拍:甩镜到一张深色桌子。一张橘色 “BRIEF #042” 票券把它的各行逐行打出(product、vibe、cast、due),贴纸飘入,一张真实片段的拍立得掉到角上,第 20 拍一枚 “NOW CASTING” 印章压下。
第 22-34 拍:选角舞台。弧形排列的一群黑白肖像,一个 3D 舞台方块,创作者们像旋转木马一样滑过。每个人都在一个大圆盘里以黑白实时播放,他们的名字以粉色出现在舞台上,还有他们的粉丝数,以及一个不断累加的 MATCH %。一拍之后一枚 “CAST ✓” 印章落下,片段淡入彩色。一个计数器从 1/4 滚到 4/4。
第 34-39 拍:粉色从最后一个圆盘涌出。圆盘变成一块手机屏幕(片段继续播放),并展开成 4 部手机,播放全部 4 位创作者,播放量累加。“4 ADS” 和 “BY FRIDAY” 升起。
第 39-44 拍,音乐的 break:粉色地面坠落消失,一张奶油色 “JOIN THE WAITLIST” 票券滑落到太阳光芒上。在 pickup 处它的票根被撕下。
第 44-54 拍:票券主体变成海报拱门。字标升起,然后是标语,然后一条信息栏以 3 个块滑上来(日期、数字、域名),一条滚动字幕沿画面边缘环绕跑动。然后一切折回开场的圆盘,让最后一帧就是第一帧。
</structure>

<build>
1. 一个 HTML canvas。每一帧都是 seek(t) 内时间的纯函数。
2. 一张以拍为单位的节拍图,B = 60/BPM,歌曲的摆放要让它的 drop 落在第 8 拍。
3. 3D 盒子是正交投影:每个面都是一块 1440px 的离屏 canvas,用仿射变换绘制,并按其法线着色。
4. 用 ffmpeg 把片段切成 30fps 的 JPEG 序列,绘制 frame floor(t*30),用 ctx.filter 做黑白。
5. 裁切贴纸 PNG,并通过膨胀它们的 alpha 加上模切边框。
6. 声音:每个事件配一个下载好的 SFX(每次选角一声快门、滑移时风声、打字时按键声),每个都按它测得的峰值摆放。Loudnorm 到 -14 LUFS。
7. 用 Playwright 以 60fps、8 个运动模糊子帧渲染。扫描单帧跳变,然后把它的运动与一段参考视频做对比(每秒硬跳数、静止帧占比)。
</build>

<gotchas>
每拍转动一格的图案看起来像卡顿:让它持续旋转,并为每个圆环挑选速度,使其在最后一帧落在同样的图案上。4 个子帧在快速甩镜时会有拖影,所以用 8 个。背景是巨大漫溢圆形的图层,在下滑一个画面高度之后仍然覆盖屏幕,所以在它完成漫溢后把它切换成整幅矩形。计数器读取的是帧的时间,而不是子帧的时间。圆盘必须在与它离开的那个场景相同的摄像机变换内变形,否则它会跳。
</gotchas>

<start>
先向我索要输入,然后在渲染之前给我看节拍图和 6 张静帧(open、box、brief、casting、phones、poster)。
</start>

溯源

原作者
twoclipping
发布日期
2026-10-02(由推文 ID 反解)
原始出处
查看原帖 ↗
收录来源
yihui-dev/awesome-opus5-5-videos · twoclipping-551116 · MIT