SuperAPI AI 工具集

photo-slideshow

设计与创作

查看项目

更新于 10-15 17:37

技能介绍

用途

该技能用于将一组照片制作成一支成品视频(MP4),使其呈现出被拍摄而非被拼装的感觉。核心场景包括:把一个照片文件夹渲染为一段带音乐的成片;制作回忆、回顾、年度总结、婚礼或旅行剪辑;为任何需要运动、转场和同步节奏的静态图像集生成视频。

主要能力

逐照片的 Ken Burns 运动:每张照片从一小组运动中选取一种,使整组既有节奏又不重复。缩放通常为放大 1.0→1.12 或缩小 1.12→1.0;位移为左/右/上/下/对角线之一;缓动使用 easeInOutSine;锚点朝向主体。运动由索引通过种子随机数决定,因此同一张照片在重复渲染时运动一致,但不同照片之间互不相同。起始缩放需 ≥ 1.05,以避免平移时露出空白边缘。

照片间转场:选定一种转场并保持一致。0.4–0.6 秒的交叉淡入是安全且经久不衰的默认选择;柔和推入适合旅行序列。进出幻灯片重叠,除非在节拍上做硬切。

节拍/音乐同步:先锁定音轨、获取节拍时间戳,然后将每次画面切换对齐节拍。节拍检测离线执行一次并写入 props,不在每帧分析音频。每张照片通常保持一个音乐单位(如每第 2 或第 4 拍),每一拍切换过于频繁。若不便分析音频,可使用固定 BPM 网格回退方案。

混合宽高比处理:针对竖屏手机照与横屏相机照混排,有三种策略,按优先顺序为:模糊填充(照片适应画面,模糊放大的副本填满条带,适用于混合方向,默认选择)、填满(cover,照片填满画面、边缘裁切)、适应(letterbox,照片完整可见于纯色/渐变背景)。绝不拉伸。

字幕、日期与片头片尾:字幕/日期可来自文件名、EXIF 或同名 JSON,固定在下方三分之一区域,画面稳定后约 0.3 秒淡入,离开前淡出。片头卡为标题加日期范围,保持 1.5–2 秒;片尾卡为结束语或联系方式/号召,保持 2–3 秒。

文件夹模板化:将合成指向一个文件夹,从文件列表推导时间线,渲染一次。照片数量、顺序、字幕和时长全部来自数据,不硬编码。颜色、字体、转场和时长放在一个主题对象中,每次渲染保持一致,只有照片变化。

使用方式

使用 Remotion 项目,注册合成(Composition + zod schema + defaultProps)。所有运动为 useCurrentFrame() 的纯函数,不使用 CSS 过渡、计时器、Date.now() 或 Math.random()。照片通过 staticFile() 加载,并用 delayRender/continueRender 确保每张图片(及字幕字体)在其帧渲染前就位。时长由照片数量决定,在 calculateMetadata 中计算。

典型命令包括:从文件夹构建清单 node scripts/build-manifest.mjs ./photos > photos.json;渲染 npx remotion render Slideshow out/slideshow.mp4 --props=photos.json;导出静帧用于检查 npx remotion still Slideshow out/f-intro.png --frame=15 --props=photos.json;可选导出 GIF --codec=gif。节拍提取示例使用 librosa 将节拍起始时间写入 beats.json。

适用场景

适合将照片文件夹批量制作成回忆、回顾、年度总结、婚礼或旅行等带音乐的蒙太奇视频,也用于任何需要运动、转场和节拍同步的静态图像集。同一模板可批量套用到多个照片文件夹。

限制与要求

交付物为渲染出的 MP4 文件,而非在线页面。该技能属于重型层级。验证环节主要检查每张照片是否真正加载并在不扭曲的情况下重新构图。渲染前需用静帧检查:各幻灯片照片是否正确、字幕/日期文本是否正确、模糊填充是否在不拉伸的情况下填满混合宽高比,以及是否存在图像空白/未加载、照片拉伸变形、平移露出空边、字幕超出安全区、宽高比或黑边错误等问题。批量处理多个照片集时,应先对其中一个代表性文件夹的清单通过静帧验证,再批量渲染其余,以便一次性发现空白图像或拉伸宽高比的问题。

资料中未提供具体的收费、价格信息,也未提供明确的平台限制说明。