Shivam P. Kumar publiserte porten på Show HN tidligere i uken, og repoet bytter ut alle CUDA-avhengigheter i TRELLIS.2 med rene PyTorch- og Python-alternativer. Det betyr at en Microsoft-modell som til nå krevde en Nvidia-maskin kjører direkte på Apple Silicon via PyTorch MPS og Metal.
De konkrete grepene i porten er interessante for alle som har vurdert å flytte en CUDA-modell til Mac. flex_gemm er erstattet med sparse 3D-konvolusjon via gather-scatter i backends/conv_none.py. CUDA-hashmap-operasjonene i mesh-ekstraksjon er skrevet om til rene Python-dictionaries i backends/mesh_extract.py. flash_attn er byttet ut med PyTorchs innebygde scaled_dot_product_attention. Alle hardkodede .cuda()-kall er patchet til å bruke aktiv enhet.
Ytelsestallene fra repoet på en M4 Pro med 24 GB minne og pipeline-type 512 er konkrete: modellinnlasting tar 45 sekunder, shape SLat-sampling tar 90 sekunder, teksture SLat-sampling tar 50 sekunder, mesh-dekoding tar 30 sekunder. Total kjøretid er rundt 3,5 minutter per bilde, og minnebruken topper ut rundt 18 GB unified memory under generering.
flex_gemmBegrensningene er reelle og må med i vurderingen. Tekstureksport krever nvdiffrast som er CUDA-bare, så porten eksporterer vertex-farger og ikke fulle PBR-teksturer. Hole-filling er deaktivert fordi det krever CUDA-biblioteket cumesh, slik at meshes kan ha små hull. Hastigheten på ren PyTorch sparse-konvolusjon er rundt ti ganger tregere enn CUDA-kjernen, og dette er hovedflaskehalsen. Bare inferens, ikke trening.
Hva bør du gjøre?
- Sjekk at du har minst 24 GB unified memory og Python 3.11+ på Apple Silicon før du prøver. 4B-modellen er stor nok til å slå ut maskinen om den ikke har rom.
- Søk om tilgang til DINOv3 og RMBG-2.0 på HuggingFace før
setup.sh. De er gated, godkjenningen er vanligvis umiddelbar, men setup-scriptet stopper uten. - Les lisensene før du bygger kommersielt. DINOv3 har Metas custom license, og RMBG-2.0 er CC BY-NC 4.0. Porten selv er MIT, men vektene er gated av sine egne vilkår.