TRELLIS.2 Image-to-3D auf Apple Silicon nativ portiert

✍️ OpenClawRadar📅 Veröffentlicht: 20. April 2026🔗 Source
TRELLIS.2 Image-to-3D auf Apple Silicon nativ portiert
Ad

Was das ist

Ein Port von Microsofts TRELLIS.2-Bild-zu-3D-Modell, der nativ auf Apple Silicon über PyTorch MPS läuft und CUDA-exklusive Abhängigkeiten durch reine PyTorch-Alternativen ersetzt.

Wichtige Details

Das ursprüngliche TRELLIS.2 erfordert CUDA mit flash_attn, nvdiffrast und benutzerdefinierten Sparse-Convolution-Kerneln, die auf dem Mac nicht funktionieren. Dieser Port ersetzt diese durch:

  • Eine Gather-Scatter-Sparse-3D-Convolution-Implementierung (backends/conv_none.py)
  • SDPA-Attention für Sparse-Transformatoren mit PyTorchs scaled_dot_product_attention
  • Python-basierte Meshextraktion, die CUDA-Hashmap-Operationen ersetzt (backends/mesh_extract.py)

Die Gesamtänderungen umfassen einige hundert Zeilen über 9 Dateien. Alle fest codierten .cuda()-Aufrufe wurden gepatcht, um das aktive Gerät zu verwenden.

Leistung & Anforderungen

Auf dem M4 Pro (24 GB) erzeugt es ~400.000 Vertex-Meshes aus einzelnen Fotos in etwa 3,5 Minuten. Der Speicherverbrauch erreicht während der Generierung einen Spitzenwert von etwa 18 GB Unified Memory.

Anforderungen:

  • macOS auf Apple Silicon (M1 oder neuer)
  • Python 3.11+
  • 24 GB+ Unified Memory empfohlen
  • ~15 GB Festplattenspeicher für Modellgewichte
Ad

Einrichtung & Nutzung

Schnellstart:

git clone https://github.com/shivampkumar/trellis-mac.git
cd trellis-mac
hf auth login
bash setup.sh
source .venv/bin/activate
python generate.py path/to/image.png

Sie müssen Zugriff auf geschützte Modelle auf HuggingFace anfordern: facebook/dinov3-vitl16-pretrain-lvd1689m und briaai/RMBG-2.0.

Grundlegende Nutzung:

python generate.py photo.png
python generate.py photo.png --seed 123 --output my_model --pipeline-type 512

Einschränkungen

  • Kein Texturexport (Meshes werden nur mit Vertex-Farben exportiert)
  • Lochfüllung deaktiviert (Meshes können kleine Löcher haben)
  • Langsamer als CUDA (~10x langsamer für Sparse Convolution)
  • Nur Inferenz, kein Trainingssupport

Technische Implementierung

Die Sparse-3D-Convolution baut einen räumlichen Hash aktiver Voxel auf, sammelt Nachbarfeatures für jede Kernelposition, wendet Gewichte über Matrixmultiplikation an und streut Ergebnisse zurück. Die Meshextraktion implementiert flexible_dual_grid_to_mesh mit Python-Dictionaries anstelle von CUDA-Hashmap-Operationen neu.

Benchmarks auf M4 Pro (24 GB), Pipeline-Typ 512:

  • Modellladen: ~45s
  • Bildvorverarbeitung: ~5s
  • Sparse-Struktur-Sampling: ~15s
  • Shape-SLat-Sampling: ~90s
  • Texture-SLat-Sampling: ~50s
  • Mesh-Decodierung: ~30s
  • Gesamt: ~3,5 min

📖 Source: HN LLM Tools

Ad

👀 Siehe auch