>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
Python

Como a Microsoft ensinou redes neurais a montar modelos 3D em segundos

Pense em quanto tempo costuma levar para criar um asset 3D de qualidade. Mesmo que você não modele manualmente, mas use redes neurais de primeira geração, o processo muitas vezes parece uma loteria: as texturas "derivam", a geometria vira uma bagunça, ou a GPU trava por falta de memória. A Microsoft lançou o TRELLIS.2, e esta é provavelmente uma das tentativas mais sensatas de tornar a geração de objetos 3D a partir de uma única imagem realmente rápida e de alta qualidade.

O que é e por que precisamos disso

TRELLIS.2 é um grande modelo generativo com 4 bilhões de parâmetros. Simplificando, ele pega uma imagem 2D comum e a transforma em um objeto 3D completo. Mas diferentemente de muitos projetos acadêmicos que geram uma "nuvem de pontos" ou uma malha quebrada, aqui você obtém um asset pronto para renderização com materiais PBR (cor, metallic, roughness).

O interessante é que os desenvolvedores abandonaram os tradicionais Signed Distance Fields (SDF) em favor de uma estrutura que chamaram de O-Voxel. Isso permitiu que o modelo "entendesse" topologias complexas: roupas, folhas de árvores, ou objetos com cavidades internas que algoritmos anteriores engasgavam.

Teaser

O que diferencia o TRELLIS.2 dos demais

Eu frequentemente vejo projetos que prometem "fotorrealismo", mas na realidade exigem um H100 e meia hora para uma única cadeira. A situação aqui é diferente.

Velocidade e resolução

O modelo roda em um Sparse 3D VAE com compressão espacial de 16x. Isso torna possível gerar objetos em resolução 512³ em apenas 3 segundos. Se você precisa de algo mais sério, como 1024³, terá que esperar cerca de 17 segundos. Para comparação: muitas alternativas gastam minutos nisso, e o resultado muitas vezes fica pior.

Trabalhando com materiais

Não é apenas uma figurinha colorida. O modelo gera atributos completos de superfície:

  • Base Color
  • Roughness
  • Metallic
  • Opacity

O último ponto é especialmente interessante. Agora você pode gerar objetos de vidro ou tecidos semi-transparentes, e eles terão uma aparência decente quando renderizados.

Versatilidade de topologia

Graças ao O-Voxel, o modelo não tenta "tapar" todos os buracos de um objeto. Ele lida facilmente com superfícies abertas (como uma folha de papel fina ou a barra de um vestido) sem corromper a geometria onde as superfícies não se tocam.

O lado técnico da questão

Por baixo dos panos, o TRELLIS.2 roda em um DiT (Diffusion Transformer). Para fazer tudo isso funcionar, a equipe da Microsoft escreveu várias bibliotecas auxiliares que vêm no pacote:

  1. FlexGEMM — implementação de convolução esparsa em Triton.
  2. CuMesh — utilitários CUDA para processamento rápido de malhas, unwrapping de UV e decimação.
  3. O-Voxel — o núcleo em si para trabalhar com sua nova representação de dados.

Curiosamente, o processo de conversão de malha para voxels e vice-versa leva apenas milissegundos na GPU. Isso é crítico se você planeja incorporar essa solução em um pipeline de desenvolvimento de jogos.

Como executar isso você mesmo

Vou dizer logo: o projeto é exigente. Você vai precisar de Linux e uma GPU NVIDIA com pelo menos 24 GB de VRAM (RTX 3090/4090 ou servidor A100/H100). No Windows, provavelmente você só conseguirá rodar através do WSL2, mas os desenvolvedores testaram estritamente no Linux.

A instalação parece padrão para projetos assim, mas requer compilação de extensões 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 tudo correu bem, você pode executar a geração em apenas algumas linhas de código:

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 a pena tentar

O projeto parece uma ferramenta sólida para quem precisa popular rapidamente cenas com objetos únicos. Sim, os requisitos do sistema são altos, mas 4 bilhões de parâmetros e PBR real valem o preço.

O que eu gosto especialmente é que a Microsoft lançou não apenas os pesos e a inferência, mas também o código de treinamento completo. Isso significa que em breve veremos modelos ajustados para estilos específicos ou categorias de objetos. Se você trabalha com geração 3D ou simplesmente gosta de fuçar em modelos SOTA recentes, o TRELLIS.2 definitivamente merece uma noite do seu tempo para estudar. Apenas certifique-se de ter o CUDA 12.4 instalado, caso contrário o processo de configuração vai virar uma aventura emocionante para corrigir erros de compilação.

Projetos relacionados