>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicurezza
Python

Come Microsoft ha insegnato alle reti neurali ad assemblare modelli 3D in pochi secondi

Pensate a quanto tempo richiede di solito creare un asset 3D di qualità. Anche se non modellate a mano ma usate reti neurali di prima generazione, il processo spesso sembra una lotteria: le texture "derivano", la geometria diventa un disastro, o la GPU si blocca per memoria. Microsoft ha lanciato TRELLIS.2, e questa è probabilmente uno dei tentativi più sensati per rendere la generazione di oggetti 3D da una singola immagine veramente veloce e di alta qualità.

Cos'è e perché ne abbiamo bisogno

TRELLIS.2 è un modello generativo di grandi dimensioni con 4 miliardi di parametri. In parole povere, prende un'immagine 2D normale e la trasforma in un oggetto 3D completo. Ma a differenza di molti progetti accademici che producono una "nuvola di punti" o una mesh difettosa, qui ottieni un asset pronto per il rendering con materiali PBR (colore, metallic, roughness).

Ciò che è interessante è che gli sviluppatori hanno abbandonato i tradizionali Signed Distance Fields (SDF) a favore di una struttura che hanno chiamato O-Voxel. Questo ha permesso al modello di "comprendere" topologie complesse: vestiti, foglie di alberi, o oggetti con cavità interne che gli algoritmi precedenti non riuscivano a gestire.

Teaser

Cosa distingue TRELLIS.2 dal resto

Vedo spesso progetti che promettono "fotorealismo", ma in realtà richiedono un H100 e mezz'ora per una singola sedia. Qui la situazione è diversa.

Velocità e risoluzione

Il modello funziona su un Sparse 3D VAE con compressione spaziale 16x. Questo rende possibile generare oggetti a risoluzione 512³ in soli 3 secondi. Se hai bisogno di qualcosa di più serio, come 1024³, dovrai aspettare circa 17 secondi. Per confronto: molte alternative ci mettono minuti, e il risultato spesso sembra peggiore.

Lavorare con i materiali

Non è solo una figurina colorata. Il modello genera attributi completi della superficie:

  • Base Color
  • Roughness
  • Metallic
  • Opacity

L'ultimo punto è particolarmente interessante. Ora puoi generare oggetti in vetro o tessuti semi-trasparenti, e avranno un aspetto decente quando renderizzati.

Versatilità della topologia

Grazie a O-Voxel, il modello non cerca di "rattoppare" tutti i buchi in un oggetto. Gestisce facilmente le superfici aperte (come un sottile foglio di carta o l'orlo di un vestito) senza corrompere la geometria dove le superfici non si toccano.

Il lato tecnico della questione

Sotto il cofano, TRELLIS.2 funziona su un DiT (Diffusion Transformer). Per far volare tutto questo, il team Microsoft ha scritto diverse librerie di supporto che vengono fornite in bundle:

  1. FlexGEMM — implementazione della convoluzione sparsa su Triton.
  2. CuMesh — utility CUDA per elaborazione rapida di mesh, unwrapping UV e decimazione.
  3. O-Voxel — il nucleo stesso per lavorare con la loro nuova rappresentazione dei dati.

Interessantemente, il processo di conversione da mesh a voxel e viceversa richiede solo millisecondi sulla GPU. Questo è fondamentale se prevedi di integrare una soluzione del genere in una pipeline di sviluppo di giochi.

Come eseguire tutto questo da solo

Lo dico subito: il progetto è esigente. Avrai bisogno di Linux e una GPU NVIDIA con almeno 24 GB di VRAM (RTX 3090/4090 o server A100/H100). Su Windows, probabilmente potrai eseguirlo solo tramite WSL2, ma gli sviluppatori hanno testato rigorosamente su Linux.

L'installazione sembra standard per progetti come questo, ma richiede la compilazione di estensioni CUDA:

git clone -b main https://github.com/microsoft/TRELLIS.2.git --recursive
cd TRELLIS.2
# Скрипт создаст окружение и поставит все зависимости, включая специфичные либы
. ./setup.sh --new-env --basic --flash-attn --nvdiffrast --nvdiffrec --cumesh --o-voxel --flexgemm

Se tutto è andato liscio, puoi eseguire la generazione con poche righe di codice:

from trellis2.pipelines import Trellis2ImageTo3DPipeline
from PIL import Image

# Загружаем модель (веса подтянутся с Hugging Face)
pipeline = Trellis2ImageTo3DPipeline.from_pretrained("microsoft/TRELLIS.2-4B")
pipeline.cuda()

# Берем картинку и запускаем магию
image = Image.open("your_image.png")
mesh = pipeline.run(image)[0]

# Экспортируем в GLB с текстурами
# (в коде репозитория есть подробный пример в example.py)

Vale la pena provarlo?

Il progetto sembra uno strumento solido per chiunque abbia bisogno di popolare rapidamente le scene con oggetti unici. Sì, i requisiti di sistema sono elevati, ma 4 miliardi di parametri e PBR reali ne valgono la pena.

Ciò che mi piace particolarmente è che Microsoft ha rilasciato non solo pesi e inferenza, ma anche il codice di training completo. Questo significa che presto vedremo modelli fine-tuned per stili o categorie di oggetti specifici. Se lavori con la generazione 3D o ti piace esplorare nuovi modelli SOTA, TRELLIS.2 merita sicuramente una serata del tuo tempo per studiarlo. Assicurati solo di avere CUDA 12.4 installato, altrimenti il processo di setup si trasformerà in un'avventura emozionante per correggere errori di compilazione.

Progetti correlati