suvadityamuk's picture
suvadityamuk HF Staff
Convert VAST-AI/TripoSplat with diffusers-3d 0.1.0.dev0
0e201ff verified
|
Raw History Blame Contribute Delete
3.55 kB
---
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.