---
license: mit
pipeline_tag: image-to-3d
tags:
- image-to-3d
- 3d-generation
- mesh-generation
- triposg
base_model:
- VAST-AI/TripoSG
---
# TripoSG — image-to-3D mesh
1.5B rectified-flow image-to-mesh generator. **≈20–30 s** per mesh on an
RTX 5090, producing dense watertight geometry straight from a single photo.
> **What this repo is:** the TripoSG and TripoSG-scribble pipelines plus the
> RMBG-1.4 background remover they need — weights only, not a retrain. The
> samples below were generated with this build, not copied from upstream.
---
## Samples
Single image in, mesh out. Source images were rendered with Z-Image Turbo;
the meshes are Blender Workbench clay renders of the raw `.glb` output — no
cleanup, no retopology, no texturing.
 |  |
| **source** — `a cute chunky retro robot toy standing upright, rounded metal body, simple friendly face, studio product photograph on a plain white background` | **mesh** — 15.2 MB `.glb`, generated in 30 s, seed 42 |
 |  |
| **source** — `an ornate ceramic teapot with a curved spout and handle, glazed blue and white porcelain, studio product photograph` | **mesh** — 37.6 MB `.glb`, generated in 18 s, seed 42 |
### Textured (`img2mesh_textured`)
The same robot run through the full chain — TripoSG shape, then the paint
stage — instead of shape alone.
 |  |
| **`img2mesh`** — 15.2 MB, 845k faces, **18 s** | **`img2mesh_textured`** — 27.6 MB with a baked base-colour texture, **+24 min** for the paint stage |
### Turntable
Four views of the same mesh, 90° apart — the back is inferred, not copied.


The chest panel, hand hooks and boot flare survive on the front; the unseen
back is plausibly closed rather than hollow or spiked. Fine surface text and
sub-millimetre detail do **not** survive — this is a shape model.
## Recommended settings
| Parameter | Production value | Meaning |
|---|---|---|
| `seed` | any | Deterministic per seed |
| input | one RGB(A) image | Background is removed automatically via RMBG-1.4 |
| output | `.glb` | Watertight triangle mesh, no texture |
**Supported modes:** `img2mesh`, `img2mesh_textured` (texturing is a separate paint stage — see gotchas)
### Notes and gotchas
- **Give it one clean, centred subject on a plain background.** The pipeline
runs RMBG-1.4 first; a busy background costs you geometry, not just time.
- **Mesh sizes vary hugely with subject complexity** — 15 MB for the robot,
38 MB for the teapot at identical settings. Budget disk accordingly if you
are generating in bulk.
- **`img2mesh` output is untextured; texturing is a separate paint stage.**
`img2mesh_textured` chains a paint model after the shape model and does
produce a correctly textured mesh — but budget for it: on an 845k-face mesh
the paint stage took **≈24 minutes** (versus 18 s for the shape stage), and
nearly all of that is a pure-Python UV hole-filling loop rather than GPU
work. Plan the textured path as a batch job, not an interactive one.
- **Orientation is consistent**: generated meshes come out facing +Y with the
source image's front as the front, so a fixed camera works across batches.
- ≈10 GB VRAM resident at default settings.
---
## Files
| Path | Size | Role |
|---|---|---|
| `split/TripoSG/transformer/` | 5.76 GB | main rectified-flow transformer |
| `split/TripoSG/vae/` | 971 MB | shape VAE |
| `split/TripoSG/image_encoder_dinov2/` | 1.22 GB | DINOv2 image encoder |
| `split/TripoSG-scribble/` | 4.7 GB | scribble-conditioned variant (transformer + VAE + CLIP text encoder) |
| `split/RMBG-1.4/` | 176 MB | background remover (run before meshing) |
---
## Provenance
- **Upstream base model:** [`VAST-AI/TripoSG`](https://huggingface.co/VAST-AI/TripoSG) (MIT)
- **This build:** redistributed as a split component tree alongside the scribble variant and RMBG-1.4. Weights are not retrained here.
- **License:** MIT, per upstream.