Speridlabs Idol transforme une seule image en splat gaussien 3D
Speridlabs Idol crée un splat gaussien 3D à partir d'une seule image avec un modèle de 0,66B en 7,2 Go de VRAM, un SDK ouvert et un nœud ComfyUI communautaire.
.ply standard, y compris les faces que l'entrée n'a jamais montrées.
Le manque qu'Idol cible est celui qui demande habituellement une reconstruction multi-vues : vous disposez d'une seule image d'un objet et vous voulez quelque chose que vous pouvez pivoter. Idol supprime l'arrière-plan, cadre l'objet, encode l'image et échantillonne directement un ensemble de gaussiennes. La sortie s'ouvre dans n'importe quelle visionneuse de splats gaussiens et, à côté, le modèle écrit l'entrée recadrée qu'il a réellement vue ainsi qu'une caméra prédite au format JSON.
L'un des objets de la galerie. Chaque exemple de la page du projet part d'une seule image.
Une petite pile de diffusion avec deux décodeurs
Le cœur génératif d'Idol est un transformer de diffusion de 370,6 M de paramètres, un décodeur octree de 50,8 M de paramètres qui décide où vivent les gaussiennes, et un décodeur gaussien de 237,3 M de paramètres qui prédit leurs attributs, soit 0,66 Md de paramètres au total. Autour gravitent trois modèles de support : BiRefNet pour la suppression de l'arrière-plan, DINOv3 ViT-H+/16 comme encodeur d'image, et le VAE FLUX.2, ce qui porte la requête complète à environ 1,80 Md de paramètres.
| Composant | Paramètres | Poids en VRAM |
|---|---|---|
| Débruitant DiT | 370,6 M | ~0,8 à 1,0 Go |
| Décodeur octree | 50,8 M | ~0,1 à 0,2 Go |
| Décodeur gaussien | 237,3 M | ~0,5 à 0,9 Go |
| Suppression de l'arrière-plan BiRefNet | 220,7 M | ~0,44 Go |
| DINOv3 ViT-H+/16 | 840,6 M | ~1,68 Go |
| VAE FLUX.2 | 84,1 M | ~0,17 Go |
La carte établit le total à environ 3,7 à 4,4 Go de poids et un pic à 7,2 Go, ce qui permet au modèle de tourner sur une carte de 10 Go plutôt que sur un GPU de centre de données.
La nourriture et les petits objets font partie des catégories couvertes par la galerie, aux côtés des meubles et des personnages.
Le niveau de détail est un réglage, pas un budget fixe
Le nombre de gaussiennes est un argument d'exécution allant de 32 768 à 1 048 576 par multiples de 32, avec 262 144 par défaut. Sur la page du projet, la même lampe arrive à 0,4 Mo avec le réglage à 32 768 et à 12,2 Mo à 1 048 576 : le même objet peut donc être un blockout ou un asset final. Deux autres paramètres façonnent le résultat : 50 étapes d'échantillonnage par défaut, et un mode qui modifie l'espace laissé par le recadrage autour de l'objet, synthetic pour les rendus et les images générées, real pour les photographies.
L'échantillonnage plus rapide est activé par défaut sur GPU et apporte environ 1,7x à qualité égale : le débruitant est compilé avec torch.compile, les passes guidée et non guidée s'exécutent en un seul lot, et l'attention utilise cuDNN avec des matmuls TF32. La première image d'un processus paie le coût de compilation.
Les personnages et les créatures suivent la même recette, sans chemin de modèle séparé.
Benchmarks et temps d'exécution
La carte compare Idol à TripoSplat, TRELLIS et LGM à 262 144 gaussiennes sur un seul H100, en évaluant la vue d'entrée avec PSNR, SSIM, LPIPS et IoU, et sept nouvelles vues avec DINOv2, CLIP et une distance de netteté.
| Modèle | PSNR | SSIM | LPIPS | IoU | DINOv2 | CLIP | Distance de netteté | Temps de requête |
|---|---|---|---|---|---|---|---|---|
| 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 conserve le PSNR le plus élevé tout en produisant des résultats visiblement flous, ce que la carte attribue au fait que le PSNR moyenne l'erreur de pixel au carré.
Sur les cartes grand public, la même requête prend 14,1 s sur une RTX 5090, 19,1 s sur une RTX 4090 et 46,2 s sur une RTX 3080. La mention « moins de 2 secondes » de la carte n'a aucune ligne correspondante dans son propre tableau, où l'entrée la plus rapide est une B300 à 3,4 s pour 262 144 gaussiennes : considérez donc le tableau comme la référence et l'affirmation des deux secondes comme un meilleur cas que les chiffres publiés ne reproduisent pas.
| GPU | VRAM | Temps de requête |
|---|---|---|
| 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 |
Les structures fines et la translucidité sont les cas difficiles pour un décodeur de splats, et elles figurent dans la galerie aux côtés des meubles.
Disponibilité
Idol est distribué sous forme de code Python plutôt que de nœud ComfyUI. Le paquet idol-sdk requiert Python 3.10+, PyTorch 2.5+ et un GPU NVIDIA avec CUDA, et s'installe avec pip install -e .. Les poids, environ 3 Go, ainsi que les deux encodeurs se téléchargent depuis le Hub au premier lancement. Les deux encodeurs sont soumis à autorisation : facebook/dinov3-vith16plus-pretrain-lvd1689m doit être accepté sur le Hub, et black-forest-labs/FLUX.2-dev n'est utilisé que pour son VAE, donc un hf auth login ou un HF_TOKEN est requis avant la première génération.
Une seule image s'exécute en ligne de commande, avec --mode real pour les photographies :
python -m idol.sample --image photo.jpg --mode real
python -m idol.sample --image renders/ --mode synthetic --out outputsIl n'existe pas encore d'intégration ComfyUI officielle. Le nœud communautaire Nynxz/ComfyUI-Idol encapsule les mêmes poids pour ComfyUI, tandis que la démo du Space HF exécute le modèle dans le navigateur.
Commentaires
Connectez-vous avec GitHub pour rejoindre la discussion.