9231 个 Star,1031 个 Fork,仓库体积 49 KB。第一次点进去的人多半会愣一下,因为这个量级的关注通常对应几十万行代码,而这里连一行运行时都没有,只有一份 SKILL.md 加五个参考文件。
它卖的本来就不是代码。scroll-world 是给 Claude Code、Codex 以及任何认 SKILL.md 的 Agent 用的技能包,作用是把一个品牌变成一座能滚进去的小世界:你往下滚,镜头从场景外面钻进内部,再连着飞进下一个场景,全程没有一次硬切。Apple 产品页用的就是同一套手法,区别只在于 Apple 养着一支 CG 团队,而作者 oso95 把这套流程拆成了 Agent 能一步步跑完的指令。
我对这类”AI 一把梭”的技能包有本能的过敏,大部分只是把 README 写得好看。翻完它的 Issue 区之后,我的判断收窄了:它的核心价值非常具体,具体到一个能用 dB 数量化的技术细节上。
打动我的几个地方
最值钱的不是那段滚动脚本,是一条被写成硬性约束的规则,作者管它叫 seam rule,接缝规则。内容只有一句:相邻两段视频的接缝必须帧一致。这句话决定了整个项目的成败。
多数人踩的坑在连接器上。假设你要 6 个场景,每个场景生成一张静帧加一段俯冲镜头,场景之间再用一段连接器衔接。最直觉的做法是拿两张静帧去生成连接器,结果必然跳帧,因为视频模型不会老老实实复现你喂进去的那张图。
scroll-world 反过来做:先用 ffmpeg 把前后两段镜头的真实边界帧挖出来,拿这两张真实渲染帧去做首尾帧约束,生成连接器。引擎最后再叠几帧 crossfade 当保险。顺序不能反,crossfade 只能抹平像素级抖动,抹不平构图错位。
把这条链拆开看,它其实分四层,从上到下依次是访谈层、资产生成层、缝合层和交付层。缝合层是唯一会把前面所有努力一次性毁掉的环节,所以它单独占一层,而且有自己的回边。

图里最容易被忽略的,是缝合层往回指向资产生成的那条虚线。连接器不是新想出来的内容,它的两端必须来自已经渲染完成的相邻镜头。这条回边就是 seam rule 在工程上的样子,也是整个技能里最不能省的一步。
第二个让我改观的地方是相机架构的选择权。v0.8.0 之前架构是技能自己按审美拍板的,v0.8.0 之后相机风格变成访谈里的必问项,三种风格对应完全不同的镜头语法,也对应完全不同的失败方式。选错一个,成片气质就废一半,而重渲一遍是要真金白银的。
| 相机风格 | 镜头语法 | 适合什么 | 已知代价 |
|---|---|---|---|
| fly-through | 每场景俯冲进入,连接器拉出飞向下一场景 | 微缩立体模型、粘土风 | 每个接缝处相机方向反转,写实风会读成倒带 |
| continuous walkthrough | 一路向前,前一镜末帧作下一镜首帧 | 写实场景、产品内部 | 没有连接器,镜头不能回头 |
| locked isometric glide | 全片锁定同一等距角度 | Emons 式物流与工业风 | 角度漂移需要重 roll |
第三处是移动端。v0.3.0 之后手机端不再是把横屏视频中间裁一刀,而是单独渲染一条原生 9:16 竖屏链,连接器对着自己的竖屏渲染帧锁定。代价也很直白,视频生成量翻倍,所以移动端在访谈里是显式二选一,并且会明说成本。
第四处是预算门禁。技能会在开渲之前把渲染档次和预估花费摆出来,你点头才扣钱。公式是 N 张静帧加 2N-1 段视频,选了移动端视频部分再乘 2,另加约 15% 的重渲余量。这个门禁比它看上去重要得多,但光读文档体会不到,得装起来跑一次才知道。
装上试试,以及它对环境的挑剔程度
安装本身没什么难度,Claude Code 走插件市场最简单,Codex 和其他 20 多个 Agent 走 Vercel 的 skills CLI,懒得折腾就直接把目录拷进 skills 文件夹。
/plugin marketplace add oso95/scroll-world
/plugin install scroll-world@scroll-world
# Codex / Cursor / 其他 Agent
npx skills add oso95/scroll-world -a codex
# 手动安装
git clone https://github.com/oso95/scroll-world
cp -R scroll-world/skills/scroll-world ~/.claude/skills/
真正劝退人的不是安装,是依赖。它不是一个装上就能跑的玩具,背后挂着两家付费视频服务商、本地转码工具链和可选的订阅制图像通道,缺一样都会在 Step 0 的自检阶段卡住。
| 依赖 | 干什么 | 必需吗 |
|---|---|---|
| Monid CLI | 默认视频链后端,Seedance 2.0 按片计费 | 缺了就回退到 Higgsfield |
| Higgsfield CLI | 场景静帧、Kling 回退、整链积分计费 | 必需 |
| ffmpeg / ffprobe | 抽帧、编码、时长探测 | 必需 |
| Python 3 + Pillow | 竖屏画布与可选的背景抠图 | 移动端需要 |
| Codex CLI | 静帧走 image_gen,计入 ChatGPT 订阅 | 可选 |
跑之前我建议先把环境自检过一遍,别等到第六个场景渲到一半才发现余额不够或者 ffmpeg 没进 PATH。技能自己会做这一步,下面是它大致要确认的东西。

自检里最有价值的一行是余额校准。Higgsfield 的 CLI 不暴露单价,技能的做法是先跑一张静帧加一段视频,用 workspace list 的前后差值外推出单价,估算超余额 70% 就直接警告你。这个设计我认为比任何文档说明都实在。
一次完整构建要走完六步,中间没有任何一步能跳,尤其是第四步那次抽帧。少了它,连接器就退回用静帧生成,整条链的无缝前提当场失效。下面这张图是按 SKILL.md 整理出来的顺序。

六步里最耗时的是第三步和第五步,也就是两段真正花钱的视频生成。Higgsfield 单次生成要 3 到 8 分钟,技能会把任务丢到后台轮询,绝不在前台阻塞。你要做的是别关终端,以及别在轮询期间改 prompt 文件。
mountScrollWorld(document.getElementById('world'), {
brand: { name: 'Pearl & Co.' },
diveScroll: 1.3, connScroll: 0.9,
sections: [
{ id: 'farms', label: 'The Farms', still: 'farms.webp',
clip: 'farms-dive.mp4', clipMobile: 'farms-dive-m.mp4',
stillMobile: 'farms-m.webp', eyebrow: 'FROM LEAF TO LAST SIP',
title: 'It starts in the hills.', body: '...', tags: [...] }
],
connectors: ['conn-farms-kitchen.mp4']
});
产出物最终挂到页面上只需要上面这段配置,滚动引擎是纯原生 JS,自己建 DOM 自己注 CSS,塞进 Next.js、Vue 或者 Python 起的静态页都行,没有任何框架假设。不过能不能跑通是一回事,跑一次要花多少钱是另一回事。
钱花在哪,以及一个被社区抓出来的算错
先说数量级。Monid 按 token 计价,公式是宽乘高乘 24 乘秒数除以 1024,480p 和 720p 为 7 美元每百万,1080p 为 7.7 美元每百万。落到具体镜头上,是这个样子。
| 环节 | 480p | 720p | 1080p |
|---|---|---|---|
| 8 秒俯冲镜头 | $0.28 | $1.21 | $2.99 |
| 5 秒连接器 | $0.35 | $0.76 | $1.87 |
| 6 场景整链(11 段) | 约 $3 | 约 $11 | 约 $27 |
Higgsfield 走的是积分制,2026 年 7 月的 Plus 计划实测标准视频约 40 到 55 积分、静帧约 15 积分,按月订阅 32 美元或 16 美元两档,月底清零。Monid 按片付费大约省 15%,而且没有月度过期,这是 v0.7.0 把它设成默认后端的原因。
有意思的是这张表被 Issue #15 抓出一个错。贡献者 onedaydigital 按公式复算,480p 的 8 秒俯冲应该是 0.538 美元,文档里写的 0.28 其实是 4 秒探测片的价钱,而且这么写会让 5 秒连接器比 8 秒正片还贵。这个 Issue 到今天还开着,没人回。钱的账算完了,真正的问题是该不该花,往下看场景。
什么时候用,什么时候别用
我的判断是它只适合一类页面:需要靠视觉冲击一次性建立品牌印象的首屏叙事页。除此之外都有更便宜的做法。
| 场景 | 典型用户 | 优势 | 局限 |
|---|---|---|---|
| 品牌故事页 | 消费品牌、餐饮连锁 | 一条镜头把供应链讲完 | 6 场景起,成本下不来 |
| 产品发布首屏 | 硬件、汽车、家居 | 沉浸感接近 CG 团队产出 | 需要 CSP 与移动端适配 |
| 创意作品集 | 设计师、工作室 | 差异化极强 | 迭代一次就是一笔钱 |
| 常规官网改版 | 中小企业 | 无 | 杀鸡用牛刀,Framer 够了 |
放到替代方案里看它的位置会更清楚。它不是”滚动视频库”的同类工具,而是把素材生产这一环也包进去了,这既是它的护城河,也是它的成本来源。
| 维度 | scroll-world | ScrollyVideo.js 这类滚动刷帧库 | 外包视频团队 |
|---|---|---|---|
| 素材从哪来 | AI 生成,全包 | 你自己准备成片 | 对方拍摄制作 |
| 单页成本 | 约 27 美元起 | 几乎为零 | 数万到数十万元 |
| 无缝衔接 | 帧锁定,有方法论 | 取决于你的素材 | 取决于预算 |
| 迭代方式 | 改 prompt 重渲 | 换视频文件 | 重新排期 |
一句话总结这个对照:如果你手上已经有一段拍好的成片,用滚动刷帧库就够了,没必要上 scroll-world;如果你手上什么都没有,只有品牌名和一句话卖点,那它的替代方案只剩外包。
社区怎么样了
先看一组数字。9231 个 Star 摆在那里很唬人,但真正能说明维护状态的,是提交次数、最近提交时间和 Issue 的响应速度这三栏。
| 指标 | 数值(截至 2026 年 9 月 12 日) |
|---|---|
| Stars / Forks | 9231 / 1031 |
| 贡献者 | 1 人,累计 19 次提交 |
| 最近一次提交 | 2026-07-29(v0.8.0),距本文写作 45 天 |
| Open Issues | 8 |
| 开源协议 | MIT |
| 仓库体积 | 49 KB |
Star 数曲线和提交频率是两条完全不重合的线。7 月 6 日到 7 月 29 日密集迭代了 8 个版本,之后停摆,而 Issue 还在持续进来,8 月 22 日、9 月 1 日各有一个,全部零回复。
最能说明问题的是 Issue #9。贡献者 yepgent 用它完整跑了一个 6 场景的页面并上线,发现两个只在生产环境发作的问题,附了复现步骤和前后对比数据,还主动说愿意提 PR。另一位贡献者跟帖想接手,问能不能 assign,yepgent 的回复挺扎心的:我没法 assign,我不是维护者,@oso95 才说了算。到今天这个 Issue 仍然没有维护者回过一句话。
还有一个更明显的信号是第三方 fork。cth9191/scroll-world 截至同一时间有 537 个 Star 和 78 个 Fork,README 里明确写着这是 hardened fork,加了预算门禁、SSIM 接缝自动校验、iOS 低电量兜底、按设备分级出片和可爬取的 SEO 文案块。一个 fork 要专门补上”预算门禁”和”可爬取 SEO 文案”,反过来说明上游在这两块是缺的,但真正决定你要不要跟的,还是维护带宽这件事。
我的真实看法
值不值得跟?值得,但有两个前提:你要能接受为它花钱,也要能接受自己修坑。第一个坑来自 Issue #9,也是我认为最狠的一个。
滚动引擎用 blob URL 加载视频,这是为了解决静态托管不支持 byte-range 导致的卡死问题,思路是对的。但 blob: 不被 default-src ‘self’ 覆盖,任何上了 CSP 的站点都会全片变静帧。
Content-Security-Policy: default-src 'self'; media-src 'self' blob:;
这个坑的阴险之处在于本地怎么测都测不出来,因为 python -m http.server 根本不发 CSP 头,本地环境永远比生产环境宽松。yepgent 的实测数据很干脆:加这一条之前 readyState 和 videoWidth 都是 0,加了之后变成 4 和 1280。第二个坑是 Issue #13,专业技术含量最高的一条。SKILL.md 告诉你每片都要显式传 ratio,但贡献者 domtisdell 实测证明对于首尾帧锁定的片子这是错的,模型会重新拟合你钉死的那一帧,误差还会沿链条累积。
同一段镜头只改 ratio 参数,输出首帧对比钉死帧的匹配度:480p 传 16:9 是 33.7 dB,720p 掉到 16.0 dB,1080p 是 16.1 dB,而 1080p 改成 adaptive 回到 37.1 dB。六场景整链平均 36.2 dB。480p 看着没问题是那个档位根本没理你传的比例。
第三个坑相对轻,但踩上了很浪费钱:Seedance 的 NSFW 过滤比较敏感,卧室、泳池、水疗这类词容易触发,静帧也得重滚两三次。SKILL.md 给的解法是去掉触发词加”空旷无人物”,或者换 Kling 单独渲那一段。
趋势怎么判断。我的看法是它在产品定义这一层已经打磨得相当到位,接缝方法论、相机语法、预算门禁、原生竖屏链,这几件事想清楚之后剩下的都是体力活。但维护带宽是实打实的风险,一个人、19 次提交、45 天没动,Issue 区堆着带数据的报告和等着被 assign 的贡献者。版本节奏也能印证这一点,7 月一个月里从 v0.3.0 冲到 v0.8.0,然后归零。
| 版本 | 时间 | 关键变更 |
|---|---|---|
| v0.3.0 | 2026-07-16 | 移动端改为原生 9:16 竖屏链 |
| v0.4.0 | 2026-07-16 | 预算访谈,先报成本再渲染 |
| v0.5.0 | 2026-07-17 | Monid 后端接入与能力探测协议 |
| v0.6.0 | 2026-07-25 | Monid seedance 2.0 通过验证 |
| v0.7.0 | 2026-07-28 | Monid 成为默认视频链后端 |
| v0.8.0 | 2026-07-29 | 相机风格交由用户在访谈中选择 |
资源地址
| 项目 | 地址 |
|---|---|
| 主仓库 | https://github.com/oso95/scroll-world |
| 硬化的第三方 fork | https://github.com/cth9191/scroll-world |
| Monid(默认视频后端) | https://monid.ai |
| Higgsfield(静帧与回退链路) | https://higgsfield.ai |
| 接缝实测 Issue #13 | https://github.com/oso95/scroll-world/issues/13 |
| CSP 与降级 Issue #9 | https://github.com/oso95/scroll-world/issues/9 |
仓库、fork 和两条关键 Issue 都在上面了。回到最开始那个问题:这东西现在到底值不值得跟?
值得用,但别指望有人替你兜底
scroll-world 不是那种”装上就惊艳,用三天就删”的玩具。它把一件原本需要 CG 团队的事,压缩成了一次访谈加一次预算确认,而且核心方法论是真想明白了,不是堆 prompt 堆出来的。
真正劝退人的地方在钱和维护。一个 6 场景的 1080p 成片约 27 美元,重渲一次就是再来一遍;而维护者只有一个人,最近一次提交停在 45 天前。你要是打算把它用在客户项目上,建议先 fork 一份,或者直接用 cth9191 那个硬化版本。
我的建议很具体:先用 480p 的草稿档跑通整条链,确认接缝没问题再上 1080p。这一条能帮你省掉大部分冤枉钱,比任何 prompt 技巧都管用。

