--- license: mit base_model: VAST-AI/TripoSplat pipeline_tag: image-to-3d tags: - diffusers-3d - triposplat - 3d - image-to-3d - gaussian-splatting --- # TripoSplat for diffusers-3d [VAST-AI/TripoSplat](https://huggingface.co/VAST-AI/TripoSplat) converted into a [diffusers-3d](https://github.com/suvadityamuk/diffusers-3d) pipeline: ordinary Diffusers and Transformers component folders that the installed package loads. Nothing here requires remote code. ## Install ```bash pip install git+https://github.com/suvadityamuk/diffusers-3d.git pip install "git+https://github.com/suvadityamuk/diffusers-3d.git#subdirectory=packages/diffusers-3d" ``` `diffusers-3d` runs every network in plain PyTorch on CPU or GPU. Rendering Gaussian splats needs the optional `gsplat` backend; the PBR-textured mesh for TRELLIS.2 needs CuMesh (see the package docs). ## Usage ```python import torch from diffusers_3d import AutoPipelineForImageTo3D, ImageCondition pipeline = AutoPipelineForImageTo3D.from_pretrained("suvadityamuk/TripoSplat-diffusers-3d").to("cuda") splat = pipeline(ImageCondition(image=rgba), generator=torch.Generator("cuda").manual_seed(42)).objects[0] ``` **DINOv3 and the FLUX.2 VAE are not included.** Both are gated third-party weights, so `from_pretrained` loads `image_encoder` from [facebook/dinov3-vith16plus-pretrain-lvd1689m](https://huggingface.co/facebook/dinov3-vith16plus-pretrain-lvd1689m) (DINOv3 License) and `vae` from the `vae/` folder of [black-forest-labs/FLUX.2-dev](https://huggingface.co/black-forest-labs/FLUX.2-dev) (FLUX non-commercial license), each at a pinned revision. Accept both licenses and log in (`hf auth login`) first; without access, loading raises an error that says so. Inputs without usable alpha are cut out with BiRefNet using [ZhengPeng7/BiRefNet](https://huggingface.co/ZhengPeng7/BiRefNet) weights (MIT), as upstream does (`pipeline.disable_background_removal()` skips it for inputs that already carry alpha). The result is a `GaussianSplatAsset` (SH degree 0, inside `[-0.5, 0.5]^3`, Z-up). Defaults match upstream: 20 steps, guidance 3.0, 262144 Gaussians. Without `dtype`, each component loads in upstream's precision (DINOv3 and the VAE in bfloat16, the transformer and decoder in their released float16); pass `dtype=torch.float32` on CPU. ## Components | Folder | Class | |---|---| | `decoder` | `diffusers_3d.families.triposplat.decoder.TripoSplatGaussianDecoder` | | `image_encoder` | `transformers.DINOv3ViTModel` (not included; loads from `facebook/dinov3-vith16plus-pretrain-lvd1689m`) | | `scheduler` | `diffusers.FlowMatchEulerDiscreteScheduler` | | `transformer` | `diffusers_3d.families.triposplat.models.TripoSplatTransformerModel` | | `vae` | `diffusers_3d.families.triposplat.models.TripoSplatImageVAE` (not included; loads from `black-forest-labs/FLUX.2-dev`) | ## Provenance Converted with `diffusers-3d-convert-triposplat` from `diffusers-3d 0.1.0.dev0`; the package's family README lists the pinned upstream revisions and how the conversion maps each tensor. Parity tests against the pinned upstream code are part of the package test suite. ## License and attribution TripoSplat weights and code: MIT License, Copyright (c) 2026 VAST. Only TripoSplat's own flow transformer and Gaussian decoder are included; the DINOv3 and FLUX.2 VAE copies bundled in the release are not redistributed and load from their original repositories under their own licenses. See `LICENSE-MIT` and `NOTICE`. Not affiliated with or endorsed by VAST, Meta, or Black Forest Labs.