Intelligenza artificiale
Paint3D: Lighting-Less Diffusion Model per la Generazione di Immagini

Lo sviluppo rapido dei modelli generativi AI, in particolare dei modelli generativi AI profondi, ha notevolmente avanzato le capacità nella generazione di linguaggio naturale, generazione 3D, generazione di immagini e sintesi vocale. Questi modelli hanno rivoluzionato la produzione 3D in vari settori. Tuttavia, molti affrontano una sfida: i loro complessi circuiti e mesh generate spesso non sono compatibili con le tradizionali pipeline di rendering come il Physically Based Rendering (PBR). I modelli basati sulla diffusione, in particolare senza texture di illuminazione, dimostrano un’impressionante generazione di asset 3D diversi, migliorando i framework 3D nel cinema, nei giochi e nella realtà aumentata e virtuale.
Questo articolo introduce Paint3D, un framework innovativo per la produzione di mappe di texture 2K UV ad alta risoluzione per mesh 3D non testurate, condizionate su input visivi o testuali. La principale sfida di Paint3D è generare texture di alta qualità senza illuminazione incorporata, consentendo all’utente di rieditare o rielaborare all’interno delle moderne pipeline grafiche. Utilizza un modello di diffusione 2D pre-addestrato per la fusione di texture multi-vista, generando mappe di texture iniziali grezze. Tuttavia, queste mappe mostrano spesso artefatti di illuminazione e aree incomplete a causa delle limitazioni del modello 2D nel disabilitare gli effetti di illuminazione e rappresentare completamente le forme 3D. Esploreremo il funzionamento, l’architettura e le comparazioni di Paint3D con altri framework generativi profondi. Iniziamo.
Paint3D: Un’introduzione
Le capacità dei modelli generativi AI profondi nella generazione di linguaggio naturale, generazione 3D e sintesi di immagini sono ben note e implementate in applicazioni reali, rivoluzionando l’industria della generazione 3D. Nonostante le loro notevoli capacità, i moderni framework generativi AI profondi generano mesh caratterizzate da circuiti complessi e texture di illuminazione caotiche che sono spesso incompatibili con le pipeline di rendering convenzionali, compreso il PBR o Physically Based Rendering. Come i modelli generativi AI profondi, la sintesi di texture ha avanzato rapidamente, in particolare nell’utilizzo di modelli di diffusione 2D. I modelli di sintesi di texture utilizzano modelli di diffusione pre-addestrati efficacemente per utilizzare condizioni testuali per generare texture di alta qualità. Tuttavia, questi approcci affrontano problemi con texture pre-illuminate che possono avere un impatto significativo sui rendering finali dell’ambiente 3D e introdurre errori di illuminazione quando le luci vengono modificate all’interno dei flussi di lavoro comuni, come dimostrato nell’immagine seguente.

Come si può osservare, la mappa di texture con illuminazione libera funziona in sincronia con le pipeline di rendering tradizionali, fornendo risultati precisi, mentre la mappa di texture con pre-illuminazione include ombre inappropriate quando si applica la ri-illuminazione. D’altra parte, i framework di generazione di texture addestrati su dati 3D offrono un approccio alternativo in cui il framework genera le texture comprendendo la geometria completa di un oggetto 3D specifico. Sebbene possano fornire risultati migliori, i framework di generazione di texture addestrati su dati 3D mancano di capacità di generalizzazione, il che limita la loro capacità di applicare il modello a oggetti 3D al di fuori dei loro dati di addestramento.
I modelli di generazione di texture attuali affrontano due sfide critiche: utilizzare la guida delle immagini o prompt diversi per raggiungere un grado più ampio di generalizzazione su oggetti diversi e la seconda sfida è l’eliminazione dell’illuminazione accoppiata nei risultati ottenuti dal pre-addestramento. Le texture pre-illuminate possono potenzialmente interferire con i risultati finali degli oggetti testurati all’interno dei motori di rendering e, poiché i modelli di diffusione 2D pre-addestrati forniscono risultati 2D solo nel dominio della vista, mancano di una comprensione completa delle forme che porta a problemi di discontinuità di texture.
A causa delle sfide menzionate sopra, il framework Paint3D tenta di sviluppare un modello di diffusione di texture a due stadi per oggetti 3D che si generalizza a diversi modelli generativi pre-addestrati e mantiene la coerenza della vista mentre apprende la generazione di texture senza illuminazione.
Paint3D è un modello di generazione di texture a due stadi, grezzo-fine, che mira a sfruttare la forte guida dei prompt e le capacità di generazione di immagini dei modelli generativi AI pre-addestrati per testurare oggetti 3D. Nel primo stadio, il framework Paint3D campiona immagini multi-vista da un modello di diffusione 2D pre-addestrato progressivamente per abilitare la generalizzazione di risultati di texture di alta qualità e ricchi da prompt diversi. Il modello genera quindi una mappa di texture iniziale proiettando queste immagini sulla superficie della mesh. Nel secondo stadio, il modello si concentra sulla generazione di texture senza illuminazione implementando approcci utilizzati dai modelli di diffusione specializzati nella rimozione degli effetti di illuminazione e nel raffinamento delle aree incomplete. Durante il processo, il framework Paint3D è in grado di generare mappe di texture di alta qualità semanticamente e di eliminare gli effetti di illuminazione intrinseci.

In sintesi, Paint3D è un modello generativo AI innovativo a due stadi che mira a produrre mappe di texture 2K UV ad alta risoluzione, diverse e senza illuminazione per mesh 3D non testurate, per raggiungere prestazioni di stato dell’arte nella testurazione di oggetti 3D con input condizionali diversi, compresi testo e immagini, e offre un vantaggio significativo per le attività di sintesi e editing grafico.
Metodologia e Architettura
Il framework Paint3D genera e raffina le mappe di texture progressivamente per generare mappe di texture diverse e di alta qualità per modelli 3D utilizzando input condizionali desiderati, comprese immagini e prompt, come dimostrato nell’immagine seguente.

Nel primo stadio, il modello Paint3D utilizza modelli di diffusione 2D pre-addestrati per campionare immagini multi-vista e crea quindi le mappe di texture iniziali proiettando queste immagini sulla superficie della mesh. Nel secondo stadio, ovvero lo stadio di raffinamento, il modello Paint3D utilizza un processo di diffusione nello spazio UV per migliorare le mappe di texture grezze, raggiungendo una funzione di alta qualità, di inpainting e senza illuminazione che garantisce l’appeal visivo e la completezza della texture finale.
Stadio 1: Generazione di Texture Grezza Progressiva
Nel primo stadio di generazione di texture grezza progressiva, il modello Paint3D genera una mappa di texture UV grezza per le mesh 3D che utilizza un modello di diffusione 2D pre-addestrato consapevole della profondità. Per essere più specifici, il modello utilizza prima diverse viste della telecamera per renderizzare la mappa di profondità, quindi campiona immagini dal modello di diffusione dell’immagine in base alle condizioni di profondità e infine proietta queste immagini sulla superficie della mesh. Il framework esegue gli approcci di rendering, campionamento e proiezione alternativamente per migliorare la coerenza della texture della mesh, il che aiuta nel processo di generazione progressiva della mappa di texture.
Il modello inizia a generare la texture della regione visibile con le viste della telecamera concentrate sulla mesh 3D e renderizza la mesh 3D in una mappa di profondità dalla prima vista. Il modello campiona quindi un’immagine di texture per una condizione di aspetto e una condizione di profondità. Il modello proietta quindi l’immagine sulla mesh 3D. Per le viste, il modello Paint3D esegue un approccio simile ma con una leggera modifica eseguendo il processo di campionamento della texture utilizzando un approccio di pittura di immagini. Inoltre, il modello prende in considerazione le aree testurate dalle viste precedenti, consentendo al processo di rendering di non produrre solo un’immagine di profondità, ma anche un’immagine RGB parzialmente colorata con una maschera non colorata nella vista corrente.
Il modello utilizza quindi un modello di inpainting consapevole della profondità con un encoder di inpainting per riempire l’area non colorata all’interno dell’immagine RGB. Il modello genera quindi la mappa di texture dalla vista proiettando l’immagine ritoccata nella mesh 3D sotto la vista corrente, consentendo al modello di generare la mappa di texture progressivamente e arrivando alla struttura grezza completa. Infine, il modello estende il processo di campionamento della texture a una scena o oggetto con più viste. Per essere più specifici, il modello utilizza una coppia di telecamere per catturare due mappe di profondità durante il campionamento iniziale della texture da viste simmetriche. Il modello combina quindi le due mappe di profondità e compone una griglia di profondità. Il modello sostituisce l’immagine di profondità singola con la griglia di profondità per eseguire il campionamento della texture consapevole della profondità multi-vista.
Stadio 2: Raffinamento della Texture nello Spazio UV
Sebbene l’aspetto delle mappe di texture grezze sia logico, affronta alcune sfide come i buchi di texture causati durante il processo di rendering a causa dell’auto-occlusione o delle ombre di illuminazione a causa dell’utilizzo di modelli di diffusione 2D. Il modello Paint3D mira a eseguire un processo di diffusione nello spazio UV in base alla mappa di texture grezza, cercando di mitigare i problemi e migliorare ulteriormente l’appeal visivo della mappa di texture durante il raffinamento della texture. Tuttavia, il raffinamento del modello di diffusione dell’immagine mainstream con le mappe di texture nello spazio UV introduce la discontinuità della texture, poiché la mappa di texture è generata dalla mappatura UV della texture della superficie 3D che taglia la texture continua in una serie di frammenti individuali nello spazio UV. Come risultato della frammentazione, il modello trova difficile imparare le relazioni di adiacenza 3D tra i frammenti, il che porta a problemi di discontinuità della texture.
Il modello raffina la mappa di texture nello spazio UV eseguendo il processo di diffusione sotto la guida delle informazioni di adiacenza dei frammenti di texture. È importante notare che nello spazio UV, è la mappa di posizione che rappresenta le informazioni di adiacenza 3D dei frammenti di texture, con il modello che tratta ogni elemento non di sfondo come una coordinata di punto 3D. Durante il processo di diffusione, il modello fonde le informazioni di adiacenza 3D aggiungendo un encoder di posizione individuale al modello di diffusione dell’immagine pre-addestrato. Il nuovo encoder assomiglia al design del framework ControlNet e ha la stessa architettura dell’encoder implementato nel modello di diffusione dell’immagine, con lo strato di convoluzione zero che collega i due. Inoltre, il modello di diffusione della texture è addestrato su un set di dati che comprende mappe di texture e mappe di posizione, e il modello impara a prevedere il rumore aggiunto al rumore latente. Il modello ottimizza quindi l’encoder di posizione e congela il denoiser addestrato per il suo compito di diffusione dell’immagine.
Il modello utilizza quindi contemporaneamente la posizione dell’encoder condizionale e altri encoder per eseguire compiti di raffinamento nello spazio UV. A questo proposito, il modello ha due capacità di raffinamento: UVHD o UV Alta Definizione e UV inpainting. Il metodo UVHD è strutturato per migliorare l’appeal visivo e l’estetica della mappa di texture. Per raggiungere UVHD, il modello utilizza un encoder di miglioramento dell’immagine e un encoder di posizione con il modello di diffusione. Il modello utilizza il metodo di inpainting UV per riempire i buchi di texture all’interno del piano UV, che è in grado di evitare problemi di auto-occlusione generati durante il rendering. Nello stadio di raffinamento, il modello Paint3D esegue prima l’inpainting UV e poi UVHD per generare la mappa di texture raffinata finale. Integrando i due metodi di raffinamento, il framework Paint3D è in grado di produrre mappe di texture UV complete, diverse, ad alta risoluzione e senza illuminazione.
Paint3D: Esperimenti e Risultati
Il modello Paint3D utilizza il modello di diffusione stabile text2image per assistere nella generazione di texture, mentre utilizza il componente encoder di immagine per gestire le condizioni di immagine. Per migliorare ulteriormente la presa sui controlli condizionali come l’inpainting di immagini, la profondità e l’alta definizione di immagini, il framework Paint3D utilizza encoder di dominio ControlNet. Il modello è implementato sul framework PyTorch con il rendering e le proiezioni di texture implementate su Kaolin.
Confronto Testo-Texture
Per analizzare le sue prestazioni, iniziamo valutando l’effetto di generazione di texture di Paint3D quando condizionato utilizzando prompt testuali e lo confrontiamo con framework di stato dell’arte, tra cui Text2Tex, TEXTure e LatentPaint. Come si può osservare nell’immagine seguente, il framework Paint3D non solo eccelle nella generazione di dettagli di texture di alta qualità, ma sintetizza anche una mappa di texture senza illuminazione in modo ragionevole.

In confronto, il framework Latent-Paint è propenso a generare texture sfocate che risultano in effetti visivi subottimali. D’altra parte, sebbene il framework TEXTure generi texture chiare, manca di levigatezza e presenta splicing e cuciture evidenti. Infine, il framework Text2Tex genera texture lisce in modo notevole, ma non riesce a replicare le prestazioni per la generazione di texture fini con dettagli intricati.
L’immagine seguente confronta il framework Paint3D con framework di stato dell’arte in modo quantitativo.

Come si può osservare, il framework Paint3D supera tutti i modelli esistenti e con un margine significativo, con un miglioramento del 30% nella baseline FID e circa il 40% nella baseline KID. Il miglioramento nei punteggi delle baseline FID e KID dimostra la capacità di Paint3D di generare texture di alta qualità su oggetti e categorie diversi.
Confronto Immagine-Texture
Per generare le capacità generative di Paint3D utilizzando prompt visivi, utilizziamo il modello TEXTure come baseline. Come menzionato in precedenza, il modello Paint3D utilizza un encoder di immagine derivato dal modello text2image di Stable Diffusion. Come si può vedere nell’immagine seguente, il framework Paint3D sintetizza texture eccellenti in modo notevole e mantiene ancora una fedeltà alta rispetto alla condizione di immagine.

D’altra parte, il framework TEXTure è in grado di generare una texture simile a Paint3D, ma non riesce a rappresentare i dettagli di texture nella condizione di immagine in modo preciso. Inoltre, come dimostrato nell’immagine seguente, il framework Paint3D consegna punteggi FID e KID baseline migliori rispetto al framework TEXTure, con il primo che scende da 40,83 a 26,86, mentre il secondo mostra un calo da 9,76 a 4,94.

Pensieri Finali
In questo articolo, abbiamo parlato di Paint3D, un framework innovativo a due stadi in grado di produrre mappe di texture 2K UV ad alta risoluzione, diverse e senza illuminazione per mesh 3D non testurate, condizionate su input visivi o testuali. Il punto di forza principale del framework Paint3D è che è in grado di generare mappe di texture 2K UV ad alta risoluzione senza illuminazione che sono semanticamente coerenti senza essere condizionate su input di immagini o testo. Grazie al suo approccio a due stadi, il framework Paint3D produce mappe di texture senza illuminazione, diverse e ad alta risoluzione e consegna prestazioni migliori rispetto ai framework di stato dell’arte attuali.












