Idol: da una singola immagine a Gaussian Splat 3D
Idol di Speridlabs converte singole immagini in splat Gaussiani 3D ruotabili, predicendo i lati non visibili ed esportando file PLY standard con densità regolabile.
Punti salienti e risultati
Idol, di Speridlabs, trasforma una fotografia, un rendering o un'immagine generata di un oggetto in uno splat 3D Gaussiano ruotabile. Predice i lati non visibili dell'oggetto ed esporta un PLY 3DGS standard contenente da 32.768 a 1.048.576 Gaussiane. Il suo interesse pratico risiede in un SDK pubblico per l'inferenza, con densità di output controllabile e requisiti di memoria compatibili con GPU consumer, anziché in una sessione obbligatoria di acquisizione multi-view. Pagina ufficiale della ricerca.
Il confronto degli autori utilizza un H100 per modello. Con 50 passaggi di campionamento e 262.144 Gaussiane, Idol riporta 6,8 secondi per richiesta, un SSIM della vista di input pari a 0,726 e una similarità DINOv2 sulle sette nuove viste pari a 0,781, rispetto ai valori di 0,716 e 0,754 di TRELLIS nella configurazione indicata da 50 + 50 passaggi. LGM è più veloce, con 1,1 secondi, quindi Idol non è in testa in ogni metrica. Questi sono risultati riportati dagli autori; il confronto visualizzato non identifica un dataset benchmark denominato né il numero di campioni. Benchmark.
Una tabella separata dei tempi riporta 19,1 secondi su una RTX 4090 nella stessa configurazione da 50 passaggi e 262.144 Gaussiane, calcolando la mediana su otto immagini. La scheda del modello riporta 7,2 GB di memoria di picco. Il titolo “meno di due secondi” non dovrebbe quindi essere interpretato come il tempo di esecuzione misurato per questa configurazione standard su 4090. Scheda del modello e impostazioni hardware.

Come funziona
Il percorso di inferenza è preparazione dell'immagine → codifica duale dell'immagine → campionamento congiunto del flusso oggetto-fotocamera → posizionamento degli anchor dell'octree → decodifica Gaussiana → esportazione di PLY e fotocamera. BiRefNet rimuove lo sfondo e l'oggetto viene inquadrato a 1024 × 1024 pixel. Le modalità fotografica e sintetica utilizzano margini di ritaglio diversi, rispettivamente 1,7 e 1,2. Pipeline.
DINOv3 fornisce token di caratteristiche visive, mentre il VAE FLUX.2 fornisce informazioni compresse sull'immagine. Dopo la proiezione nella dimensione di lavoro del trasformatore, i loro embedding vengono sommati per formare il condizionamento dell'immagine. La generazione parte da due tensori casuali: un latent dell'oggetto con 8.192 token da 16 canali e un token della fotocamera a cinque canali. I flussi vengono perfezionati separatamente prima che l'attenzione congiunta elabori insieme i token latent, immagine e fotocamera. Il modello predice le velocità sia per l'oggetto sia per la fotocamera, rendendo il punto di vista parte della generazione anziché un input assunto indipendentemente. Implementazione del trasformatore.
Il campionatore integra il flusso rettificato dal rumore a t = 1 ai dati a t = 0 con passaggi di Eulero. I valori predefiniti sono 50 passaggi, il parametro di guida w = 3 e uno shift temporale pari a 3. L'equazione di guida effettiva è v = (1 + w)v_cond − wv_uncond; la griglia temporale con shift assegna più passaggi alle regioni con rumore elevato. Queste operazioni modificano il latent compatto e lo stato della fotocamera, non milioni di Gaussiane esplicite a ogni iterazione. Campionatore del flusso.
La decodifica espande spazialmente quel risultato compatto. Un decoder octree si basa sul latent dell'oggetto e distribuisce un numero richiesto di anchor tra otto celle figlie a ogni livello. Un decoder Gaussiano legge lo stesso latent tramite attenzione incrociata ed emette 32 Gaussiane per anchor, predicendo offset di posizione, colore, scala, rotazione e opacità. Pertanto, 262.144 Gaussiane richiedono 8.192 anchor. La densità dell'output viene controllata durante la decodifica; non corrisponde al numero di token latent né a un livello di suddivisione della mesh. Decoder.
Il denoiser contiene 370,6M di parametri e i due decoder circa 288,1M, per un totale di circa 0,66B per questi componenti fondamentali. Includendo gli encoder delle immagini e la rimozione dello sfondo, la richiesta completa arriva a circa 1,80B di parametri. L'SDK restituisce lo splat, l'immagine di input elaborata e i parametri della fotocamera predetti. Le ottimizzazioni della GPU compilano il denoiser ed elaborano in batch i passaggi condizionale e incondizionale, con un costo di avvio aggiuntivo alla prima generazione. Conteggio dei componenti e runtime.
Applicazioni, disponibilità e direzioni future
L'output è adatto ad anteprime di oggetti basate su splat, presentazioni interattive ed esperimenti nella generazione da immagine a 3D. Un PLY Gaussiano non è una mesh poligonale a tenuta stagna, un solido CAD o un personaggio sottoposto automaticamente a rigging. Le superfici nascoste vengono inferite anziché misurate. L'SDK e i pesi sono pubblicati con licenza Apache-2.0, mentre i componenti encoder DINOv3 e FLUX.2 richiesti necessitano di un accesso gated separato e dei relativi termini applicabili. Requisiti di rilascio e accesso.
Questa recensione utilizza la pagina ufficiale della ricerca, la scheda del modello e il commit dell'SDK 4702a7f, verificati il 6 novembre 2026. In questi materiali non è stato trovato alcun documento tecnico autonomo né una roadmap esplicita delle attività future specifiche di Idol. Il repository esaminato fornisce l'inferenza e una demo, quindi i suoi componenti interni non stabiliscono una ricetta di addestramento non divulgata. Per questo articolo non sono state ripetute inferenze del modello né benchmark.
Domande frequenti
Il PLY può essere inviato direttamente a una stampante 3D?
No. Memorizza primitive gaussiane per il rendering, non una superficie chiusa stampabile. La ricostruzione della superficie e la preparazione per la stampa sarebbero processi separati, al di fuori dell'output documentato di questo SDK.
Aumentare il numero di gaussiane garantisce un lato nascosto più accurato?
No. Aumenta la densità di decodifica. Il lato non osservato proviene comunque dal modello generativo condizionato dall'immagine, quindi un numero maggiore di primitive non fornisce misurazioni mancanti.
Cosa devo aspettarmi quando lo eseguo localmente?
La configurazione documentata utilizza Python 3.10+, PyTorch 2.5+ e una GPU NVIDIA CUDA, con accesso a entrambi gli encoder di immagini. Confronta i tempi con impostazioni di campionamento corrispondenti e tieni conto dei download e della compilazione alla prima esecuzione.




