World Labs 开源 Atlas Camera Studio,为图像转视频提供显式相机控制
World Labs: Explicit camera control for image-to-video
World Labs 发布 Atlas Camera Studio,用 Marble 5 API 把静态图片转成带相机路径控制的视频,上传照片后重建深度、绘制相机轨迹,生成 48 帧 12 FPS 的四秒 MP4。
试用托管应用 · 探索示例 — 无需注册 · 加入 API 测试版等待名单 · API 快速入门
使用 Marble 5 API 将静态图像变成相机控制的镜头。上传一张照片,重建其深度,选择一条相机路径,然后生成一段四秒的 MP4。
此仓库包含完整的 React 编辑器、Express 服务器、相机数学、任务运行器,以及可选的托管演示计费。本地版本使用你自己的 API 密钥。托管模式增加了 Clerk 手机验证和一次性 Stripe 积分包;不依赖 Metronome。
示例视频
Jos 分享的两段相机控制视频。点击预览可打开完整 MP4;原始文件包含在 examples/ 中。
原始相机演示
来自 Jos 的“Ilya 看到了什么?”帖子的视频。这个较早的演示以 2560 × 1440、30 FPS、四秒提供。下载 MP4。
全息鱼环绕
提示词:“camera orbits around holographic fish”。使用 Camera Studio 生成:1280 × 720,48 帧,12 FPS,种子 42。下载 MP4。
当前应用以 12 FPS 生成四秒视频。这些是输出示例;原始源图像和保存的相机路径不包含在内。
无需注册即可探索
选择探索示例可打开一个准备好的冰屋场景,并带有可编辑的相机路径。移动或删除相机、调整其朝向、平滑路径,并在没有账户或 API 密钥的情况下预览运动。公共图像、EXR 深度和相机元数据打包在 public/example/ 中;探索时不会运行任何 API 任务。
在托管应用上,当你想排队生成视频或准备自己的图像时,请登录并验证手机号码。你的示例编辑会在登录过程中保留在标签页中。生成示例使用的积分和限制与任何其他视频相同。本地分支会使用你自己的 API 密钥发送打包场景;它不依赖我们的私有资产 ID。
本地运行
你需要 Node.js 22.12+(推荐 Node 24)、PATH 中的 FFmpeg,以及一个启用 API 的 World Labs 测试版账户。
- 克隆此仓库并运行
npm ci。 - 将
.env.example复制为.env。 - 将你的项目 API 密钥添加为
WLT_API_KEY。 - 运行
npm run build && npm start。 - 打开 localhost:3030,上传 JPG、PNG 或 WebP,以准备其 3D 场景。
编辑器会将输入裁剪为 16:9。旋转场景,在地图上绘制相机路径,调整相机方向,并在选择排队生成视频之前预览运动。每个视频包含 48 帧,12 FPS。MP4 编码使用 FFmpeg 在本地运行。
在 3D 视图中拖动相机或其编号点可移动它;拖动空白区域可旋转场景。使用平滑路径来柔化弯折,并在 Yaw 和 Pitch 下方找到看向点。Delete/Backspace 删除选中的相机。Cmd/Ctrl-Z 撤销编辑;Cmd/Ctrl-Shift-Z 重做。每次拖动或绘制笔画算作一个撤销步骤。
已保存包含草稿、生成结果和收藏。草稿保存在此浏览器中,按每个已登录账户分别保存(最多 30 个草稿),并且需要其源场景保持可用。生成的视频和场景数据将在七天后过期;请下载你想保留的视频。
开发时,请在单独的终端中运行 npm run dev 和 npx vite。Vite 应用会将 API 请求代理到端口 3030。
获取 API 密钥
如果你还没有访问权限,请加入 World Labs 测试版等待名单。注册即请求访问权限;它不会立即发放密钥。
账户启用后,打开 开发者门户,选择一个项目,并创建一个具有任务创建、操作读取以及资产创建/读取权限的 API 密钥。将密钥保存在服务器的 .env 中;切勿将其粘贴到前端源代码中或提交。
该 API 目前由 https://api.atlas-beta.worldlabs.ai/api/v2 提供服务。有关当前的访问和设置详情,请参阅 API 快速入门。API 费用将计入拥有你密钥的项目。
工作原理
- 浏览器将图像调整为 1280 × 720。
- 服务器调用
tasks:images2PosedRGBD并轮询返回的操作。 - 编辑器解码 EXR 深度图并重建彩色点云。
- 编辑器平滑绘制的路径,并将相机位置和方向插值为 48 个目标相机。
- 服务器调用
tasks:atlasGenerate,下载帧,并编码为 MP4。
预览是用于规划相机的点云。生成的视图可以揭示原始图像中不存在的细节。
托管演示
请参阅 托管设置。托管模式在准备图像或生成之前需要验证手机所有权。每部手机可一次性领取三次免费生成,即使跨账户也可领取。一次性积分包通过 Stripe Checkout 提供 3 次生成 5 美元、12 次 20 美元或 60 次 100 美元。
积分在生成前预留,并在最终失败时返还。重复的 webhook 和重复的作业请求不会重复计入积分或重复收费。中断的工作进程会恢复存储的操作 ID。作业输入和视频保留七天;请在过期前下载完成的镜头。
本地模式没有身份验证或付费墙,并且仅绑定到回环地址。对于任何共享部署,请使用托管模式。
验证更改
npm run typecheck
npm test
npm run build测试会检验原始轨迹绘制和相机数学、坐标变换、账本并发、支付验证、退款以及作业恢复。它们不能替代部署前真实的 Stripe Checkout、短信验证和 Marble API 冒烟测试。
许可证与致谢
MIT。编辑器、绘制控件和轨迹数学改编自 World Labs 的 Gowthami 的相机轨迹应用。使用 Three.js、React Three Fiber、Clerk、Stripe 和 FFmpeg 构建。World Labs API 的使用受该服务自身条款和费用的约束。
来源:Hacker News · github.com


