Speridlabs Idol Turns One Image Into a 3D Gaussian Splat
Speridlabs Idol builds a 3D Gaussian splat from a single image with a 0.66B parameter model in 7.2 GB of VRAM, with an open SDK and a community ComfyUI node.
.ply, including the sides the input never showed.
The gap Idol targets is the one that usually needs a multi-view reconstruction: you have a single picture of an object and want something you can rotate. Idol removes the background, frames the object, encodes the picture, and samples a set of Gaussians directly. The output opens in any Gaussian splat viewer, and next to it the model writes the cropped input it actually saw and a predicted camera in JSON.
One of the gallery objects. Every example on the project page starts from a single image.
A small diffusion stack with two decoders
Idol's generative core is a 370.6M parameter diffusion transformer, an octree decoder of 50.8M parameters that decides where Gaussians live, and a 237.3M parameter Gaussian decoder that predicts their attributes, for 0.66B parameters in total. Around it sit three supporting models: BiRefNet for background removal, DINOv3 ViT-H+/16 as the image encoder, and the FLUX.2 VAE, which brings the full request to roughly 1.80B parameters.
| Component | Parameters | Weights in VRAM |
|---|---|---|
| DiT denoiser | 370.6M | ~0.8 to 1.0 GB |
| Octree decoder | 50.8M | ~0.1 to 0.2 GB |
| Gaussian decoder | 237.3M | ~0.5 to 0.9 GB |
| BiRefNet background removal | 220.7M | ~0.44 GB |
| DINOv3 ViT-H+/16 | 840.6M | ~1.68 GB |
| FLUX.2 VAE | 84.1M | ~0.17 GB |
The card puts the total at about 3.7 to 4.4 GB of weights and a 7.2 GB peak, which is what lets the model run on a 10 GB card instead of a datacentre GPU.
Food and small objects are one of the categories the gallery covers, alongside furniture and characters.
Detail is a dial, not a fixed budget
The number of Gaussians is a runtime argument from 32,768 to 1,048,576 in multiples of 32, defaulting to 262,144. On the project page the same lamp arrives at 0.4 MB for the 32,768 setting and 12.2 MB at 1,048,576, so the same object can be a blockout or a final asset. Two other settings shape the result: 50 sampling steps by default, and a mode that changes how much room the crop leaves around the object, synthetic for renders and generated images and real for photographs.
Faster sampling is on by default on GPU and is worth about 1.7x at equal quality: the denoiser is compiled with torch.compile, the guided and unguided passes run as one batch, and attention uses cuDNN with TF32 matmuls. The first image in a process pays the compile cost.
Characters and creatures come from the same recipe, with no separate model path.
Benchmarks and timings
The card compares Idol against TripoSplat, TRELLIS and LGM at 262,144 Gaussians on one H100, scoring the input view with PSNR, SSIM, LPIPS and IoU and seven new views with DINOv2, CLIP and a sharpness distance.
| Model | PSNR | SSIM | LPIPS | IoU | DINOv2 | CLIP | Sharpness distance | Request time |
|---|---|---|---|---|---|---|---|---|
| Idol | 12.25 | 0.726 | 0.213 | 0.862 | 0.781 | 0.885 | 0.81 | 6.8 s |
| TripoSplat | 11.76 | 0.712 | 0.225 | 0.860 | 0.743 | 0.868 | 1.03 | 9.9 s |
| TRELLIS | 11.89 | 0.716 | 0.235 | 0.845 | 0.754 | 0.868 | 0.97 | 7.1 s |
| LGM | 12.46 | 0.722 | 0.237 | 0.834 | 0.575 | 0.784 | 1.22 | 1.1 s |
LGM keeps the highest PSNR while producing visibly blurry results, which the card attributes to PSNR averaging squared pixel error.
Across consumer cards the same request takes 14.1 s on an RTX 5090, 19.1 s on an RTX 4090 and 46.2 s on an RTX 3080. The card's "under 2 seconds" line has no matching row in its own table, where the fastest entry is a B300 at 3.4 s for 262,144 Gaussians, so treat the table as the reference and the sub-two-second claim as a best case that the published numbers do not reproduce.
| GPU | VRAM | Request time |
|---|---|---|
| B300 | 269 GB | 3.4 s |
| H100 | 80 GB | 6.7 s |
| RTX 5090 | 32 GB | 14.1 s |
| RTX 4090 | 24 GB | 19.1 s |
| RTX 3080 | 10 GB | 46.2 s |
| L4 | 22 GB | 54.6 s |
Thin structures and translucency are the hard cases for a splat decoder, and they appear in the gallery alongside furniture.
Availability
Idol ships as Python code rather than as a ComfyUI node. The idol-sdk package needs Python 3.10+, PyTorch 2.5+ and an NVIDIA GPU with CUDA, and installs with pip install -e .. Weights, about 3 GB, plus the two encoders download from the Hub on the first run. Both encoders are gated: facebook/dinov3-vith16plus-pretrain-lvd1689m must be accepted on the Hub, and black-forest-labs/FLUX.2-dev is used for its VAE only, so an hf auth login or HF_TOKEN is required before the first generation.
A single image runs from the command line, with --mode real for photographs:
python -m idol.sample --image photo.jpg --mode real
python -m idol.sample --image renders/ --mode synthetic --out outputsThere is no first-party ComfyUI integration yet. The community node Nynxz/ComfyUI-Idol wraps the same weights for ComfyUI, while the HF Space demo runs the model in the browser.
Comments
Sign in with GitHub to join the discussion.