File size: 5,265 Bytes
5927d82
434ad28
 
 
 
 
 
 
 
 
5927d82
434ad28
 
 
6f057d6
434ad28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8f104c0
 
 
 
 
 
 
 
 
 
434ad28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
8f104c0
 
 
6f057d6
8f104c0
 
434ad28
 
6f057d6
434ad28
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
---
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.

<table>
<tr><td><img src="https://huggingface.co/ChrisColeTech/TripoSG/resolve/main/samples/src-robot.png" width="330" alt="source photograph of a retro robot toy"></td><td><img src="https://huggingface.co/ChrisColeTech/TripoSG/resolve/main/samples/mesh-robot.png" width="330" alt="generated mesh, front three-quarter view"></td></tr>
<tr><td><sub>**source** β€” `a cute chunky retro robot toy standing upright, rounded metal body, simple friendly face, studio product photograph on a plain white background`</sub></td><td><sub>**mesh** β€” 15.2 MB `.glb`, generated in 30 s, seed 42</sub></td></tr>
<tr><td><img src="https://huggingface.co/ChrisColeTech/TripoSG/resolve/main/samples/src-teapot.png" width="330" alt="source photograph of a porcelain teapot"></td><td><img src="https://huggingface.co/ChrisColeTech/TripoSG/resolve/main/samples/mesh-teapot.png" width="330" alt="generated mesh, front three-quarter view"></td></tr>
<tr><td><sub>**source** β€” `an ornate ceramic teapot with a curved spout and handle, glazed blue and white porcelain, studio product photograph`</sub></td><td><sub>**mesh** β€” 37.6 MB `.glb`, generated in 18 s, seed 42</sub></td></tr>
</table>

### Textured (`img2mesh_textured`)

The same robot run through the full chain β€” TripoSG shape, then the paint
stage β€” instead of shape alone.

<table>
<tr><td><img src="https://huggingface.co/ChrisColeTech/TripoSG/resolve/main/samples/mesh-robot.png" width="330" alt="untextured shape output"></td><td><img src="https://huggingface.co/ChrisColeTech/TripoSG/resolve/main/samples/mesh-robot-textured.png" width="330" alt="same mesh after the paint stage"></td></tr>
<tr><td><sub>**`img2mesh`** β€” 15.2 MB, 845k faces, **18 s**</sub></td><td><sub>**`img2mesh_textured`** β€” 27.6 MB with a baked base-colour texture, **+24 min** for the paint stage</sub></td></tr>
</table>

### Turntable

Four views of the same mesh, 90Β° apart β€” the back is inferred, not copied.

![robot turntable](https://huggingface.co/ChrisColeTech/TripoSG/resolve/main/samples/turntable-robot.png)

![teapot turntable](https://huggingface.co/ChrisColeTech/TripoSG/resolve/main/samples/turntable-teapot.png)

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.