.spz 格式的高斯泼溅。本指南走完整个流程:
- 创建:用
POST /v1/scenes/pano根据描述文字创建场景。你会得到.spz、生成的全景图,以及一个由带位姿图像组成的initial批次。 - 生成:用
POST /v1/scenes/generate从你选定的相机生成新图像,它们成为一个generated批次。 - 重建:用
POST /v1/scenes/reconstruct基于这两个批次重建场景,得到更新后的.spz。
scn_ 开头的任务 ID,之后轮询 GET /v1/scenes/{task_id},直到状态为 ready。
设置 VIGGLE_API_KEY 后即可直接运行下方示例,无需其他输入。
准备工作
- 在 Viggle 控制台创建 API 密钥,并导出为
VIGGLE_API_KEY。 - 一段文字描述,最多 1000 个字符;或一张 360° 全景图的公开 URL。
- 积分:无需——场景任务目前不消耗积分。
核心概念
- 会话:每个请求都带一个由你自定的
sessionId(1–128 个字母、数字、_或-)。一个会话包含一个场景及其图像批次,且同一时间只运行一个任务——同一会话中,请等上一个任务结束后再提交下一个。 - 批次:会话中一组带位姿的图像。
pano生成initial批次,每次generate生成一个generated批次。generate和reconstruct在referenceBatchIds中接收的就是它们的batchId。 - 相机:位姿是场景坐标系中的 4 × 4 相机到世界矩阵(c2w)。批次中的每张图像都附带其
c2w,因此选择新相机最简单的方法是移动一个现有相机。
构建、扩展并重建
脚本创建一个场景,保存scene.spz 和 panorama.png,再从第一个视图向侧面平移 0.3 个单位的相机生成新视图,然后重建并保存 scene-v2.spz。
scene.spz 和 scene-v2.spz。
响应
每次提交都会立即返回processing 状态的任务:
GET /v1/scenes/{task_id},直到 status 为 ready、failed 或 cancelled。就绪后 result 包含哪些内容取决于操作:
每个
outputBatch.views[] 条目包含图像 url、相机 c2w 和 intrinsic。签名链接有效期为 3 小时,过期后再查询一次任务即可拿到新链接;任务结束后约 72 小时内可以查询。全部字段见查询场景任务。
使用自己的全景图
在第 1 步中把prompt 换成 panoramaUri:
POST /v1/scenes/custom-pano,并传入 panoramaC2w 和 metersPerUnit。
将结果保存到自己的存储
在任意请求中加上spzOutputUrl,或带 spz、preview、panorama 的 outputUris,Viggle 就会用 PUT 把这些文件上传到你的地址。S3、R2 或 GCS 的预签名上传链接均可。上传到你地址的 .spz 不会由 Viggle 保留,结果中的 spz.url 即为你的地址。详见创建场景中的“上传到自己的存储”一节。
任务失败时
- 提交时返回
409:该会话已有任务在运行。error.details.running_task_id给出该任务,等它结束后再提交。 - 任务以
INVALID_REQUEST失败:模型拒绝了输入,例如使用了其他会话的批次。修正后再重试。 - 任务以
PROCESSING_FAILED失败,或状态为cancelled:重新提交同样的请求。 - 轮询时返回
404:任务 ID 错误、任务属于其他账号,或已超过 72 小时的保留期限。
创建场景
描述文字、全景图、参考图和质量。
生成场景视图
相机、投影方式、视场角和 seed。
重建场景
用你的批次重建
.spz。查询场景任务
任务对象、结果字段和错误码。

