TripoSG image-to-3D, converted to run fully offline on a phone's NPU. This is the model set the Spotnack app downloads to turn a photo into a 3D mesh in about 3 minutes, with no server.
This is an unofficial conversion. It is not made or endorsed by VAST, Qualcomm or Meta.
Everything lives under v2-fp32-merged-50step/ (30 files, 6.9 GB). models_manifest.json lists every file with its size and SHA-256 hash.
| Part | Files | Size | Runs on |
|---|---|---|---|
| Transformer (1.44 B parameters), 23 parts merged into one session | dit_chain.onnx, head/, blk00/ … blk20/, tail/ |
5.2 GB | NPU, QNN context binaries, FP32 weights |
| VAE decoder (latent pass + point query) | vae_post/, vae_query/ |
0.4 GB | NPU, QNN context binaries, weights stored at 16 bits by the compiler |
| DINOv2 image encoder (ViT-Large) | dinov2_encoder.onnx |
1.1 GB | CPU, ONNX, FP32 |
| u2net background remover | u2net.onnx |
0.16 GB | CPU, ONNX, FP32 (unchanged rembg release file) |
fc5c4099 with the VAST-AI/TripoSG weights at revision 2c1c516d was exported to ONNX (FP32) one block at a time.Samsung Galaxy S25 (Family), which is SM8750) into a QNN context binary.dit_chain.onnx, EPContext nodes) so the NPU shares one scratch buffer. The output is bit-identical to running the 23 parts separately.Run with ONNX Runtime 1.29 and the QNN 2.50 runtime (onnxruntime-android-qnn, qnn-runtime). The full pipeline, scripts and step-by-step rebuild guide are in the Spotnack repository (ml/triposg-mobile/, docs/reproduce_from_scratch.md).
v2-fp32-merged-50step/dinov2_encoder.onnx 1.2 GBv2-fp32-merged-50step/vae_post/model.bin 413 MBv2-fp32-merged-50step/blk13/model.bin 281 MBv2-fp32-merged-50step/blk14/model.bin 281 MBv2-fp32-merged-50step/blk17/model.bin 281 MBv2-fp32-merged-50step/blk18/model.bin 281 MBv2-fp32-merged-50step/blk19/model.bin 281 MBv2-fp32-merged-50step/blk12/model.bin 281 MBv2-fp32-merged-50step/blk11/model.bin 281 MBv2-fp32-merged-50step/blk15/model.bin 281 MBv2-fp32-merged-50step/blk20/model.bin 281 MBv2-fp32-merged-50step/blk16/model.bin 281 MBv2-fp32-merged-50step/blk00/model.bin 247 MBv2-fp32-merged-50step/blk01/model.bin 247 MBv2-fp32-merged-50step/blk02/model.bin 247 MBv2-fp32-merged-50step/blk03/model.bin 247 MBv2-fp32-merged-50step/blk04/model.bin 247 MBv2-fp32-merged-50step/blk05/model.bin 247 MBv2-fp32-merged-50step/blk06/model.bin 247 MBv2-fp32-merged-50step/blk07/model.bin 247 MBv2-fp32-merged-50step/blk08/model.bin 247 MBv2-fp32-merged-50step/blk09/model.bin 247 MBv2-fp32-merged-50step/blk10/model.bin 247 MBv2-fp32-merged-50step/u2net.onnx 176 MBv2-fp32-merged-50step/head/model.bin 68 MBv2-fp32-merged-50step/vae_query/model.bin 27 MBv2-fp32-merged-50step/tail/model.bin 402.2 kBv2-fp32-merged-50step/dit_chain.onnx 5.3 kBv2-fp32-merged-50step/vae_query/model.onnx 0.4 kBv2-fp32-merged-50step/vae_post/model.onnx 0.3 kBHave the files? Submit a torrent.
Submit a torrentHave the complete files and permission to share them? Replace the example folder path. The script checks the files, makes a torrent and submits its magnet and checksums. Keep your torrent client seeding. Get your community key from your settings, and read the script before running it.
curl -fsSL https://pirateface.co/package.sh | bash -s -- --repo spotnack/triposg-sm8750-qnn ./model-folder