ai21.net
语言

循环播放的产品发布动态模板

演示视频

循环播放的产品发布动态模板 — 1循环播放的产品发布动态模板 — 2

提示词

<inputs>
Ask me for: my product's name (one lowercase word, it becomes a black wordmark with a period), the one job a user hands it before bed, the three results it reports by morning, two photos of the same place at night and by day (aligned, so a crossfade reads as a real sunrise), one sunny daytime photo for outside the logo, and a song with a big hit near its start. If I skip any, use the defaults: "nightshift", "book 10 sales calls this week", 200 leads found / 200 emails sent / 10 calls booked.
</inputs>

<direction>
A 24 second square product launch video, 1440x1440 at 60fps, 2D only, one continuous take that loops. The whole video happens inside the period of the wordmark. Outside it's daytime (the sunny photo behind a black wordmark). Inside it's the night photo under iOS-style glass panels (the blurred photo behind each panel, a tint, a rim light). Nothing cuts: every scene grows out of the last, shapes morph, dots fly, colours change under floods. Every morph glides 0.8s on cubic-bezier(.45,0,.15,1) and the camera zoom rides the same curve. Geist, the real macOS pointer, soft shadows that grow with each shape's height.
Banned: flat or gradient backgrounds made in code, camera zooms into tiny points, hard cuts, crossfades between scenes, bouncy springs, particles, glows, holds longer than 1s, cropped type.
</direction>

<structure>
Beats are the song's. The song enters on its big hit as the first pill appears.
Open: the letters slide into the period and vanish into it while it glides to the middle. The period opens like an iris onto the night inside it, and "you log off at 6", then "[product] doesn't", roll through one mask line over the night photo.
Ask: a glass "Ask [product]" pill springs in. The cursor clicks it, it glides into an input and the job types out.
Find: send shrinks the input to a dot that ripples into a 23x15 grid. A scan line sweeps it, 200 dots light up and a counter counts them.
Write: the lit dots pour into a glass email composer. A second, purple cursor labelled "[product]" types a personal opener and presses Send, and the counter runs to 200/200.
Night: the composer becomes a glass orb with a progress ring. A clock chip swaps 11:42 PM, 3:17 AM, 5:02 AM, 6:59 AM while the sky relights from night to dawn and "while you sleep" rolls in.
Results (beat 20): the orb turns black and goo-splits into the three result pills. The checks pop green.
Morning: the pills merge into a Dynamic Island that grows into a phone lock screen: the day photo, the date, a big 7:00, the bezel growing out of the screen edge. Three glass notifications stack in, and the cursor taps the first, which opens like iOS.
Proof: a week calendar (10 meetings pop in, a hover shows one's time), then a pipeline chart ($48,200 counts up, the line draws, a hover follows it). A black flood from the line's end becomes "Start your night shift →" and the cursor clicks it.
Out: the button shrinks into a dot, the whole scene closes down into it like an iris, and the letters slide back out of the period. The tagline rises. Last frame = first frame.
</structure>

<build>
1. One HTML canvas. Everything is a pure function of time inside seek(t): no timers, no state between frames.
2. One element morphs through every state (size, radius, colour, material) from a table of beat times, so retiming is one edit.
3. Render the inside world into an offscreen canvas and reveal it through the period with a circular mask. Never zoom the camera into the dot.
4. Glass: a pre-blurred copy of the photo clipped to the shape, then a tint and a gradient rim.
5. Goo: blur + alpha threshold on an offscreen layer for the split and the merge.
6. Sound: a downloaded SFX for every event, each placed by its measured peak. The song enters on its hit. Loudnorm to -14 LUFS.
7. Render with Playwright at 60fps with 4 motion-blur subframes. Scan every frame for single-frame jumps and fix each one.
</build>

<gotchas>
A camera zoom into an off-centre dot swings sideways and spikes, so open the dot instead. Ease a closing iris by area, not radius, or its first frames jump. A helper that sets globalAlpha must restore the caller's, or fading cards pop. Counters read the frame's time, not the subframe's, or the digits smear.
</gotchas>

<start>
Ask me for the inputs, then show me the beat map and 6 stills (open, find, write, results, phone, out) before you render.
</start>

中文译文

<inputs>
向我询问:我的产品名(一个小写单词,它会变成一个带句点的黑色字标)、用户在睡前交给它的那一项任务、它到早上汇报的三项结果、同一地点的两张照片——一张夜晚、一张白天(对齐,好让一次交叉淡化看起来像真实的日出)、一张用于标志外部的晴天白天照片,以及一首在开头附近有高潮爆点的歌曲。如果我跳过其中任何一项,就使用默认值:“nightshift”、“book 10 sales calls this week”、200 leads found / 200 emails sent / 10 calls booked。
</inputs>

<direction>
一支 24 秒的正方形产品发布视频,1440x1440、60fps,仅 2D,一个连续长镜头且循环播放。整支视频都发生在字标的那个句点内部。句点外是白天(黑色字标后面是那张晴天照片)。句点内是夜晚照片,覆着 iOS 风格的玻璃面板(每个面板后面是模糊后的照片、一层色调、一道边缘光)。没有任何切镜:每个场景都从上一个生长出来,形状变形,圆点飞散,颜色在泛光下变换。每次变形都以 0.8s 沿 cubic-bezier(.45,0,.15,1) 滑行,镜头缩放也走同一条曲线。Geist,真实的 macOS 指针,随每个形状高度增长的柔和阴影。
禁止:用代码制作的纯色或渐变背景、镜头推进到极小的点、硬切、场景之间的交叉淡化、弹跳式弹簧、粒子、辉光、超过 1s 的停留、被裁切的文字。
</direction>

<structure>
节拍跟着歌曲走。歌曲在第一个胶囊出现时随其高潮进入。
开场:字母滑入句点并消失其中,同时句点滑向中央。句点像光圈一样打开,露出它内部的夜晚,接着“you log off at 6”,然后“[product] doesn't”,在夜晚照片上方以一行遮罩滚过。
询问:一个玻璃质感的“Ask [product]”胶囊弹入。光标点击它,它滑入一个输入框,任务被逐字打出。
寻找:发送按钮把输入框缩成一个点,点泛起涟漪变成 23x15 的网格。一条扫描线扫过,200 个点亮起,一个计数器数着它们。
书写:亮起的点涌入一个玻璃质感的邮件撰写器。第二个紫色光标,标注为“[product]”,打出一句个性化的开场白并按下发送,计数器跑到 200/200。
夜晚:撰写器变成一个带进度环的玻璃球体。一个时钟小片依次切换 11:42 PM、3:17 AM、5:02 AM、6:59 AM,同时天空从夜色重新亮起到黎明,“while you sleep”滚入。
结果(第 20 拍):球体变黑,并以粘性分裂成三颗结果胶囊。勾选标记弹出为绿色。
早晨:胶囊合并成一个灵动岛,再生长成手机锁屏:白天照片、日期、一个大号的 7:00,边框从屏幕边缘生长出来。三条玻璃通知层叠进入,光标点按第一条,它像 iOS 一样打开。
证明:一个周历(10 个会议弹出,悬停显示其中一个的时间),然后是一张流水线图表($48,200 向上计数,线条绘制,悬停跟随它)。从线条末端涌来的黑色泛光变成“Start your night shift →”,光标点击它。
收尾:按钮缩成一个点,整个场景像光圈一样向它合拢,字母从句点里滑回来。标语升起。最后一帧 = 第一帧。
</structure>

<build>
1. 一个 HTML canvas。一切都只是 seek(t) 内时间的纯函数:没有定时器,帧与帧之间没有状态。
2. 一个元素通过一张节拍时间表变形走过每一个状态(尺寸、圆角、颜色、材质),所以重新定时只需改一处。
3. 把内部世界渲染到一块离屏 canvas,再用圆形遮罩通过句点揭示它。绝不要把镜头推进那个点里。
4. 玻璃:把照片预先模糊的副本裁剪到形状上,再加一层色调和一道渐变边缘。
5. 粘性:在离屏图层上用模糊 + alpha 阈值实现分裂与合并。
6. 声音:每个事件用一段下载的音效,按各自测得的峰值放置。歌曲在其高潮处进入。Loudnorm 到 -14 LUFS。
7. 用 Playwright 以 60fps 渲染,带 4 个运动模糊子帧。逐帧扫描单帧跳变,并逐一修复。
</build>

<gotchas>
镜头推进到偏离中心的点会横向甩动并出现尖峰,所以改为打开那个点。收拢的光圈要按面积而非半径做缓动,否则它的最初几帧会跳。设置 globalAlpha 的辅助函数必须恢复调用者的值,否则淡出的卡片会突跳。计数器读取所在帧的时间,而不是子帧的,否则数字会拖影。
</gotchas>

<start>
向我询问这些输入,然后在渲染之前给我看节拍图和 6 张静帧(open、find、write、results、phone、out)。
</start>

溯源

原作者
twoclipping
发布日期
2026-10-02(由推文 ID 反解)
原始出处
查看原帖 ↗
收录来源
yihui-dev/awesome-opus5-5-videos · twoclipping-747965 · MIT
zhuyansen/awesome-opus-5.5-video · 2105927781678747965 · 未声明许可
本条由 2 个来源合并去重得来