How to run TripoSR image-to-3D on a cloud GPU

Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install TripoSR from the official VAST-AI-Research/TripoSR repository the way the README prints, then run python run.py examples/chair.png --output-dir output/ or python gradio_app.py. Copy the mesh under output/ off the instance before you destroy it, because destroying the instance deletes its disk.

InstantMesh’s README, app.py, and run.py print no GPU GB figure: How to run InstantMesh image-to-3D on a cloud GPU. TRELLIS’s README says at least 16GB is necessary: How to run TRELLIS image-to-3D on a cloud GPU. Hunyuan3D-2.1’s README publishes 10 GB, 21 GB, and 29 GB: How to run Hunyuan3D on a cloud GPU. Rendering a .blend file is How to render a Blender scene on a cloud GPU. If the process runs out of memory: How to fix CUDA out of memory on a cloud GPU. The tunnel for the Gradio app is How to use SSH port forwarding on a cloud GPU.

The README says the model is released under the MIT license, and that this includes the source code, pretrained models, and an interactive online demo. The LICENSE file is the MIT License. Its copyright line names two organizations. This page does not print those names. The GitHub license field on 2026-11-13 was MIT. On 2026-11-13 the model API for the default pretrained id in run.py reported license mit and gated false, lastModified 2024-08-09T08:52:03.000Z, pipeline_tag image-to-3d. This page does not paste that Hub id. Read the LICENSE file before you redistribute the program or the weights.

The commands below are copied from the upstream files named in each step. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked. run.py and gradio_app.py pass a Hub id to from_pretrained. Copy that string from the file. This page does not paste it.

What the README says about memory

The README (commit 107cefdc244c39106fa830359024f6a2f1c78871, 2026-06-04, which is also repository HEAD) says the default options take about 6GB VRAM for a single image input. run.py’s --chunk-size help says a smaller chunk size reduces VRAM usage but increases computation time, and that 0 means no chunking. The default is 8192. That help text does not print a second GB figure. The README also names an NVIDIA A100 in a generation-time sentence. This page does not copy that timing and did not measure it. The README does not print 40 or 80. Catalog A100 40G is 40 and catalog A100 80G is 80. Those are catalog values.

GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from gpu-prices.json, updated_at 2026-11-13T18:00:59.357Z. GET /v1/public/gpu-catalog the same day (generated_at 2026-11-13T18:00:59.934Z) listed the same names and the same vram_gb values, plus Ascend 910B at 64, which is not in gpu-prices.json and is not listed here. The catalog response also includes an availability field. This page does not copy it. Every prices row has gpu_count 1. Every catalog row has min_gpu_count 1. Every printed vram_gb is greater than 6. That comparison is arithmetic against the README’s 6. This page did not run TripoSR and does not mark a row as enough. Which listing you can start is on Deploy.

The catalog template list had no TripoSR template.

Catalog name vram_gb
RTX 2080 8
RTX 3080 10
RTX 2080 Ti 11
RTX 3080 Ti 12
V100 16G 16
A30 24
RTX 3090 24
RTX 4090 24
RTX 4090D 24
RTX 4080 SUPER 32G 32
RTX 5090 32
RTX 5090D 32
V100 32G 32
A100 40G 40
A800 40G 40
A40 48
RTX 4090 48G 48
RTX 4090D 48G 48
RTX A6000 48
NVIDIA RTX PRO 5000 72G 72
RTX PRO 5000 72G 72
A100 80G 80
A800 80G 80
H800 80
RTX 6000D 83
H20 96G 96
RTX PRO 6000 96G 96
RTX PRO 6000 Max-Q 96
H20-3e 141G 141

Install

On Deploy, choose Raw GPU. The README says Python >= 3.8, install CUDA if available, and install PyTorch from the local install page it links. The bold sentence says the locally installed CUDA major version must match the PyTorch-shipped CUDA major version, and gives CUDA 11.x as the example. How to install a specific PyTorch CUDA version is the index check against the CUDA Version in the nvidia-smi header. The README does not pin a wheel. This page did not pick one.

The install bullets do not print git clone. requirements.txt and run.py are files in that repository. The clone below is this page’s, and it comes first so those files exist. It was not run.

# The README install bullets do not print a clone. These two lines are this page's. They were not run.
git clone https://github.com/VAST-AI-Research/TripoSR.git
cd TripoSR

The dependency lines, copied:

pip install --upgrade setuptools
pip install -r requirements.txt

requirements.txt (commit 55f4995ab50696d624267bf4391ff6a99d71e329, 2024-05-07, same commit as run.py and gradio_app.py) lists torchmcubes from git+https://github.com/tatsy/torchmcubes.git, transformers==4.35.0, trimesh==4.0.5, rembg, huggingface-hub, gradio with no version, and xatlas==0.0.9. It does not pin torch. LICENSE was commit a0e314434c2f06ba1d207af19de0121bd8642ae4, committed 2024-03-04T07:08:51Z.

run.py

The README command, copied:

python run.py examples/chair.png --output-dir output/

The README says this saves the reconstructed 3D model to output/, and that you can pass more than one image path separated by spaces. It says --bake-texture outputs a texture instead of vertex colors, and --texture-resolution sets the texture resolution in pixels. It says python run.py --help prints the rest.

run.py defaults --output-dir to output/, --model-save-format to obj with choices obj and glb, --texture-resolution to 2048, --mc-resolution to 256, and --chunk-size to 8192. --device defaults to cuda:0, and the script sets the device to cpu when CUDA is not available. --pretrained-model-name-or-path defaults to a Hub id. Copy it from run.py. config is not a separate flag in this file. from_pretrained is called with that argument.

For each input index i, the script writes output/<i>/input.png and output/<i>/mesh.<format>. With --bake-texture it also writes output/<i>/texture.png. With --render it writes output/<i>/render_<ri>.png and output/<i>/render.mp4. This page did not run the script.

Gradio app

The README command, copied:

python gradio_app.py

gradio_app.py sets device to cuda:0 when torch.cuda.is_available() is true, and to cpu otherwise. It calls TSR.from_pretrained with a Hub id, config_name="config.yaml", and weight_name="model.ckpt". Copy the Hub id from the file. It then calls model.renderer.set_chunk_size(8192) and model.to(device). generate exports obj and glb through NamedTemporaryFile and mesh.export.

--port defaults to 7860. --listen sets server_name to 0.0.0.0. Without --listen, server_name is None. The README command does not pass --listen, --port, or --share. launch is called with server_port=args.port and share=args.share. This page did not pass --share and did not start the app. Forward the URL the process prints with how to use SSH port forwarding on a cloud GPU.

ComfyUI

The TripoSR README does not mention ComfyUI. The ComfyUI examples top-level directory list on 2026-11-13 had no TripoSR directory. 3d/README.md in that repository had no TripoSR section. Examples HEAD was f9431bb000ce792094ff345446e22cac1ea6cef3, committed 2025-11-26T20:33:58Z. Installing ComfyUI itself is How to install ComfyUI and ComfyUI-Manager on a cloud GPU. This page did not install a node.

When it fails

torchmcubes without CUDA. The README troubleshooting block quotes AttributeError: module 'torchmcubes_module' has no attribute 'mcubes_cuda' and torchmcubes was not compiled with CUDA support, use CPU version instead. It says to match the CUDA major version and to have setuptools>=49.6.0, then:

pip uninstall torchmcubes
pip install git+https://github.com/tatsy/torchmcubes.git

This page did not run that reinstall.

CUDA out of memory. The README’s memory sentence is about 6GB for the default options. --chunk-size is the flag whose help text says a smaller value reduces VRAM usage. If the process raises an out-of-memory error, use how to fix CUDA out of memory on a cloud GPU.

“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. The README does not pin a torch build. The RTX 5090 guide says that card is compute capability 12.0 (sm_120) and that PyTorch 2.7 and later, on a build for CUDA 12.8 or newer, is the line that announced support. This page did not re-test TripoSR on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32. That is the catalog number only.

Save the meshes, then destroy

Copy output/, including mesh.obj or mesh.glb, texture.png when you passed --bake-texture, and render.mp4 when you passed --render. The Gradio app writes temporary obj and glb files. Copy those paths before you destroy the instance. Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.

The pricing page FAQ states the billing rule in these words:

Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.

Frequently asked questions

How much VRAM does the TripoSR README publish?

The TripoSR README says the default options take about 6GB VRAM for a single image input (read 2026-11-13). run.py’s --chunk-size help says a smaller chunk size reduces VRAM usage and does not print a second GB figure. The README also names an NVIDIA A100 in a generation-time sentence. This page does not copy that timing. Catalog A100 rows are A100 40G at 40 and A100 80G at 80. The README does not print 40 or 80. This page does not mark a catalog vram_gb as enough. Which listing you can start is on https://cloudgpu.app/deploy.

Which license applies to TripoSR?

The README says the model is released under the MIT license, and that this includes the source code, pretrained models, and an interactive online demo. The LICENSE file is the MIT License. Its copyright line names two organizations. This page does not print those names. On 2026-11-13 the model API for the default pretrained id in run.py reported license mit and gated false. This page does not paste that Hub id. Read the LICENSE file before you redistribute the program or the weights.

Where does run.py save the mesh, and what does the Gradio app write?

The README command is python run.py examples/chair.png --output-dir output/. run.py writes output/ followed by the image index and mesh.obj by default. --model-save-format accepts obj or glb. --bake-texture writes texture.png next to the mesh, and --texture-resolution defaults to 2048. --render writes render.mp4 and numbered render png files. gradio_app.py exports obj and glb through NamedTemporaryFile. The README command python gradio_app.py does not pass --listen. The script sets server_port to 7860 and sets server_name to 0.0.0.0 only when --listen is set. This page did not start it.

Does the TripoSR README document ComfyUI?

The TripoSR README does not mention ComfyUI. The ComfyUI examples top-level directory list and the 3d README on 2026-11-13 had no TripoSR section. This page did not install a node.

Sources (read 2026-11-13, Asia/Shanghai)

  • TripoSR README (Python >= 3.8, CUDA major-version sentence, pip install -r requirements.txt, run.py command, about 6GB VRAM, --bake-texture, --texture-resolution, python gradio_app.py, torchmcubes reinstall, MIT sentence): https://github.com/VAST-AI-Research/TripoSR/blob/main/README.md commit 107cefdc244c39106fa830359024f6a2f1c78871. Repository HEAD is that commit, committed 2026-06-04T07:11:09Z
  • run.py (--output-dir default output/, --model-save-format obj or glb, --bake-texture, --texture-resolution 2048, --chunk-size 8192, mesh and render paths, Hub id not copied here): commit 55f4995ab50696d624267bf4391ff6a99d71e329
  • gradio_app.py (from_pretrained Hub id not copied, config.yaml, model.ckpt, chunk size 8192, NamedTemporaryFile obj and glb, --port 7860, --listen): same commit
  • requirements.txt (unpinned torch, git+https://github.com/tatsy/torchmcubes.git, unpinned gradio): same commit
  • LICENSE (MIT License; copyright line names two organizations this page does not print): commit a0e314434c2f06ba1d207af19de0121bd8642ae4. GitHub license field MIT
  • Model API for the default pretrained id in run.py (license mit, gated false, lastModified 2024-08-09T08:52:03.000Z). The Hub id is not copied here
  • ComfyUI examples (no TripoSR section): https://github.com/comfyanonymous/ComfyUI_examples commit f9431bb000ce792094ff345446e22cac1ea6cef3
  • Public GPU memory: https://cloudgpu.app/gpu-prices.json (updated_at 2026-11-13T18:00:59.357Z) and https://cloudgpu.app/v1/public/gpu-catalog (generated_at 2026-11-13T18:00:59.934Z). GET /v1/public/compute-capabilities returned feature flags and no GPU list. The catalog had no TripoSR template

Cards you can start are on the Deploy page. Prices are on https://cloudgpu.app/pricing and are not repeated here.

Last updated: 2026-11-13 (Asia/Shanghai).