>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Python

Comment Microsoft a appris aux réseaux de neurones à assembler des modèles 3D en quelques secondes

Réfléchissez au temps qu'il faut habituellement pour créer un asset 3D de qualité. Même si vous ne modelisez pas à la main mais utilisez des réseaux de neurones de première génération, le processus ressemble souvent à une loterie : les textures « dérivent », la géométrie devient un désordre, ou le GPU s'étouffe sur la mémoire. Microsoft a lancé TRELLIS.2, et c'est probablement l'une des tentatives les plus sensées pour rendre la génération d'objets 3D à partir d'une seule image vraiment rapide et de haute qualité.

Ce que c'est et pourquoi on en a besoin

TRELLIS.2 est un grand modèle génératif de 4 milliards de paramètres. Pour faire simple, il prend une image 2D ordinaire et la transforme en un objet 3D à part entière. Mais contrairement à de nombreux projets académiques qui sortent un « nuage de points » ou un maillage défaillant, ici vous obtenez un asset prêt au rendu avec des matériaux PBR (couleur, métallique, rugosité).

Ce qui est intéressant, c'est que les développeurs ont abandonné les Signed Distance Fields (SDF) conventionnels au profit d'une structure qu'ils ont appelée O-Voxel. Cela a permis au modèle de « comprendre » les topologies complexes : vêtements, feuilles d'arbres, ou objets avec des cavités internes sur lesquels les algorithmes précédents s'étouffaient.

Teaser

Ce qui distingue TRELLIS.2 du reste

Je vois souvent des projets qui promettent du « photoréalisme », mais en réalité ils nécessitent un H100 et une demi-heure pour une seule chaise. La situation ici est différente.

Vitesse et résolution

Le modèle fonctionne sur un Sparse 3D VAE avec une compression spatiale 16x. Cela permet de générer des objets en résolution 512³ en seulement 3 secondes. Si vous avez besoin de quelque chose de plus sérieux, comme 1024³, il faudra attendre environ 17 secondes. Pour comparaison : de nombreuses alternatives y passent des minutes, et le résultat est souvent moins beau.

Travail avec les matériaux

Ce n'est pas juste une figurine colorée. Le modèle génère des attributs de surface complets :

  • Base Color
  • Roughness
  • Metallic
  • Opacity

Ce dernier point est particulièrement appréciable. Maintenant vous pouvez générer des objets en verre ou des tissus semi-transparents, et ils auront un rendu correct.

Polyvalence topologique

Grâce à O-Voxel, le modèle n'essaie pas de « boucher » tous les trous d'un objet. Il gère facilement les surfaces ouvertes (comme une fine feuille de papier ou un ourlet de robe) sans corrompre la géométrie là où les surfaces ne se touchent pas.

L'aspect technique

Sous le capot, TRELLIS.2 fonctionne sur un DiT (Diffusion Transformer). Pour que tout cela fonctionne, l'équipe Microsoft a écrit plusieurs bibliothèques utilitaires qui sont incluses :

  1. FlexGEMM — implémentation de convolution creuse sur Triton.
  2. CuMesh — utilitaires CUDA pour le traitement rapide des maillages, le dépliage UV et la décimation.
  3. O-Voxel — le cœur lui-même pour travailler avec leur nouvelle représentation de données.

Il est intéressant de noter que le processus de conversion du maillage vers les voxels et inversement ne prend que quelques millisecondes sur GPU. C'est critique si vous prévoyez d'intégrer une telle solution dans un pipeline de développement de jeux.

Comment exécuter cela vous-même

Je dis d'emblée : le projet est exigeant. Vous aurez besoin de Linux et d'un GPU NVIDIA avec au moins 24 Go de VRAM (RTX 3090/4090 ou serveur A100/H100). Sous Windows, vous ne pourrez probablement l'exécuter qu'à travers WSL2, mais les développeurs ont testé strictement sur Linux.

L'installation semble standard pour des projets comme celui-ci, mais nécessite de compiler des extensions 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

Si tout s'est bien passé, vous pouvez exécuter la génération en quelques lignes de code :

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)

Cela vaut-il la peine d'essayer

Le projet ressemble à un outil solide pour quiconque a besoin de peupler rapidement des scènes avec des objets uniques. Oui, les exigences système sont élevées, mais 4 milliards de paramètres et de vrais PBR valent le coup.

Ce que j'aime particulièrement, c'est que Microsoft a publié non seulement les poids et l'inférence, mais aussi le code d'entraînement complet. Cela signifie que nous verrons bientôt des modèles affinés pour des styles ou des catégories d'objets spécifiques. Si vous travaillez avec la génération 3D ou si vous aimez simplement explorer les derniers modèles SOTA, TRELLIS.2 mérite définitivement une soirée de votre temps pour l'étudier. Assurez-vous juste d'avoir CUDA 12.4 installé, sinon le processus d'installation deviendra une passionnante quête pour corriger les erreurs de compilation.

Projets similaires