Speridlabs公开了Idol的权重与推理代码,可用单张照片生成能旋转查看的3D物体。开发者和设计师可一次完成从背景去除到3D生成的处理,并将结果保存为标准文件,在现有查看器中打开。
1. 从单张输入到3D资产
Idol接受渲染图像、生成图像和真实照片,生成包含不可见面的3D高斯泼溅,即用点云表示立体形状的表示方式。它通过聚合微小高斯元素来表示立体物体,元素数量可从32,768个调整至1,048,576个,默认值为262,144个。
结果文件采用标准3DGS .ply格式。通过命令行运行时,还会保存模型实际处理的预处理图像及输入的估计相机参数,即对拍摄方向与位置的估计值,便于检查结果和后续处理。
权重与代码仓库均采用Apache-2.0许可证。
2. 串联输入整理到生成各处理阶段的流水线
预处理阶段由BiRefNet去除背景。流水线根据输入模式调整物体周围的留白。照片模式比合成图像模式保留更多留白。
DINOv3与FLUX.2 VAE充当编码器,将输入图像转换为生成所需的线索。
随后,结合图像信息去除噪声的Transformer模型DiT负责生成阶段。它采用Euler方法,默认迭代计算50次。解码器将生成的模型输出解码为3D高斯表示。
3. 获得编码器访问许可后通过Python运行
代码仓库要求Python 3.10及以上版本、PyTorch 2.5及以上版本,以及支持CUDA的NVIDIA GPU。
DINOv3与FLUX.2 VAE属于受限访问模型,因此需要在Hugging Face同意各自的使用条款后登录。
首次运行时,约3 GB的Idol权重和两个图像编码器会自动下载到缓存中。
原文中通过Python调用流水线的示例如下。
from idol import IdolPipeline
pipeline = IdolPipeline.from_pretrained("speridlabs/idol")
output = pipeline("photo.jpg", mode="real", seed=42, num_gaussians=1_048_576)
output.gaussian.save_ply("photo.ply")
output.preprocessed_image.save("photo_input.png")4. 相同生成设置下,不同GPU的耗时差异
代码仓库称,该模型基于已有的单图3D生成模型TripoSplat。根据公司基准测试,在单张H100上以50步、262,144个高斯生成时,Idol的请求耗时为6.8秒,TripoSplat为9.9秒,Idol缩短约31%。输入视角与七个新视角的平均评估指标也以Idol更优。新视角的DINOv2平均分为Idol 0.781、TripoSplat 0.743,在这一越高越好的指标上Idol同样领先。
下列各GPU耗时来自公司公布的数据,是在50步下从单张图像生成262,144个高斯的结果。各GPU使用相同代码与设置,列出8张图像的中位数。
表:各GPU的Idol生成耗时
条件:50步,从1张图像生成262,144个高斯,相同代码与设置,各GPU处理8张图像的中位数,每台设备使用一张GPU
单位:显存(GB)、请求耗时(秒)
| GPU | 显存 | 请求耗时 |
|---|---|---|
| B300 | 269 | 3.4 |
| B200 | 179 | 3.6 |
| H200 | 140 | 6.6 |
| H100 | 80 | 6.7 |
| RTX 5090 | 32 | 14.1 |
| A100 | 80 | 16.3 |
| L40S | 45 | 16.6 |
| RTX 4090 | 24 | 19.1 |
| RTX 3080 | 10 | 46.2 |
| L4 | 22 | 54.6 |
如表中的RTX 4090所示,消费级GPU也能运行,因此开发者可根据现有设备的处理时间设计工作流程。
汇总模型信息和使用条款的模型卡还引用公司公布的数据,列出7.2 GB的显存占用和不到2秒的运行时间,但未同时注明测得该速度的GPU与设置。
5. 减少拍摄负担,同时调整存储需求与生成步数
单图输入与标准文件输出减少了多角度拍摄或额外格式转换的负担。但增加高斯数量也会增加存储负担。
根据公司项目页面标注的文件大小,32,768个高斯为0.4 MB,262,144个为3.2 MB,1,048,576个为12.2 MB。
代码仓库说明,减少生成步数可以加快速度,但细节表现会减少。调整速度时,宜同时确定处理时间和所需的细节水平。
Idol的核心在于,将单张图像的预处理、3D生成与标准文件输出整合为一条路径,减少制作3D资产的入门步骤。
