How to run Hunyuan3D on a cloud GPU

Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install Hunyuan3D-2.1, the latest Hunyuan3D 2.x repository in that GitHub organization on 2026-11-12, download the weights the README names, and run the image-to-mesh snippet or the Gradio app. Copy the mesh off the instance before you destroy it. Destroying the instance deletes its disk.

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.

Hunyuan3D-2 is the earlier 2.x repository. Its news item dated June 13, 2025 points at 2.1. Its own memory lines are 6 GB for shape and 16 GB for shape and texture. Those lines belong to that repository. This page uses 2.1.

Memory the 2.1 README publishes

The Hunyuan3D-2.1 README (read 2026-11-12) says: “It takes 10 GB VRAM for shape generation, 21GB for texture generation and 29GB for shape and texture generation in total.”

The same Models Zoo lists:

Model Description Date Size Hub path
Hunyuan3D-Shape-v2-1 Image to Shape Model 2025-06-14 3.3B tencent/Hunyuan3D-2.1 subfolder hunyuan3d-dit-v2-1
Hunyuan3D-Paint-v2-1 Texture Generation Model 2025-06-14 2B tencent/Hunyuan3D-2.1 subfolder hunyuan3d-paintpbr-v2-1

The model card sets license_name to tencent-hunyuan-community, links the repository LICENSE, and sets extra_gated_eu_disallowed to true. The model API reported gated: false and pipeline_tag: image-to-3d. The card’s tags include image-to-3d and text-to-3d. Read the license file before you download. This page does not restate it.

GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from gpu-prices.json, read 2026-11-12. GET /v1/public/gpu-catalog on the same day listed the same names and the same vram_gb values. Which listing you can start is on Deploy. This page does not say which listings are available.

Catalog name vram_gb Against the README
RTX 4080 SUPER 32G 32 meets the 29GB total
RTX 5090 32 meets the 29GB total
RTX 5090D 32 meets the 29GB total
V100 32G 32 meets the 29GB total
A100 40G 40 meets the 29GB total
A800 40G 40 meets the 29GB total
A40 48 meets the 29GB total
RTX 4090 48G 48 meets the 29GB total
RTX 4090D 48G 48 meets the 29GB total
RTX A6000 48 meets the 29GB total
NVIDIA RTX PRO 5000 72G 72 meets the 29GB total
RTX PRO 5000 72G 72 meets the 29GB total
A100 80G 80 meets the 29GB total
A800 80G 80 meets the 29GB total
H800 80 meets the 29GB total
RTX 6000D 83 meets the 29GB total
H20 96G 96 meets the 29GB total
RTX PRO 6000 96G 96 meets the 29GB total
RTX PRO 6000 Max-Q 96 meets the 29GB total
A30 24 meets the 21GB texture line, below the 29GB total
RTX 3090 24 meets the 21GB texture line, below the 29GB total
RTX 4090 24 meets the 21GB texture line, below the 29GB total
RTX 4090D 24 meets the 21GB texture line, below the 29GB total
RTX 3080 10 meets the 10GB shape line, below 21GB and 29GB
RTX 2080 Ti 11 meets the 10GB shape line, below 21GB and 29GB
RTX 3080 Ti 12 meets the 10GB shape line, below 21GB and 29GB
V100 16G 16 meets the 10GB shape line, below 21GB and 29GB
RTX 2080 8 below the 10GB shape line

The README’s Gradio command includes --low_vram_mode and publishes no separate GB number for that flag. In gradio_app.py the texture CPU-offload lines under that flag are comments. The flag that remains calls torch.cuda.empty_cache(). This page did not measure a change to the 10 GB, 21 GB or 29 GB lines.

Install on Linux

On Deploy, choose Raw GPU. The README says: “We test our model with Python 3.10 and PyTorch 2.5.1+cu124.” The install block assumes you are already inside the repository. The clone below is not in the README.

git clone https://github.com/Tencent-Hunyuan/Hunyuan3D-2.1.git
cd Hunyuan3D-2.1

Copied from the install section:

pip install torch==2.5.1 torchvision==0.20.1 torchaudio==2.5.1 --index-url https://download.pytorch.org/whl/cu124
pip install -r requirements.txt

cd hy3dpaint/custom_rasterizer
pip install -e .
cd ../..
cd hy3dpaint/DifferentiableRenderer
bash compile_mesh_painter.sh
cd ../..

wget https://github.com/xinntao/Real-ESRGAN/releases/download/v0.1.0/RealESRGAN_x4plus.pth -P hy3dpaint/ckpt

The code sample, copied. It passes an image path. The paint call uses mesh_path, and the snippet never assigns mesh_path. The line above it assigns mesh_untextured. This page did not change the snippet and did not run it.

import sys
sys.path.insert(0, './hy3dshape')
sys.path.insert(0, './hy3dpaint')
from textureGenPipeline import Hunyuan3DPaintPipeline
from textureGenPipeline import Hunyuan3DPaintPipeline, Hunyuan3DPaintConfig
from hy3dshape.pipelines import Hunyuan3DDiTFlowMatchingPipeline

shape_pipeline = Hunyuan3DDiTFlowMatchingPipeline.from_pretrained('tencent/Hunyuan3D-2.1')
mesh_untextured = shape_pipeline(image='assets/demo.png')[0]

paint_pipeline = Hunyuan3DPaintPipeline(Hunyuan3DPaintConfig(max_num_view=6, resolution=512))
mesh_textured = paint_pipeline(mesh_path, image_path='assets/demo.png')

from_pretrained('tencent/Hunyuan3D-2.1') is the README’s download. How to download a Hugging Face model is the manual hf download reference. cloudgpu-net is not in the Hunyuan3D-2.1 README. The download speed guide says to leave it off during pip, then turn it on for a weight download. The snippet does not show a save call.

Gradio, and text to 3D

The README’s Gradio command, copied:

python3 gradio_app.py \
  --model_path tencent/Hunyuan3D-2.1 \
  --subfolder hunyuan3d-dit-v2-1 \
  --texgen_model_path tencent/Hunyuan3D-2.1 \
  --low_vram_mode

gradio_app.py (read 2026-11-12) defaults --port to 8080, --host to 0.0.0.0 and --cache-path to ./save_dir. export_mesh writes white_mesh.glb or white_mesh.obj for an untextured mesh, and the texture path uses textured_mesh.obj plus textured_mesh.glb. Copy that save_dir folder before you destroy the instance.

The README command does not set the host. How to use SSH port forwarding starts the app on 127.0.0.1. The same argparse accepts --host and --port. Adding them is a change to the README command. This page did not run it.

python3 gradio_app.py \
  --model_path tencent/Hunyuan3D-2.1 \
  --subfolder hunyuan3d-dit-v2-1 \
  --texgen_model_path tencent/Hunyuan3D-2.1 \
  --low_vram_mode \
  --host 127.0.0.1 \
  --port 8080

Forward local port 8080 to the instance’s port 8080, then open http://localhost:8080.

Text to 3D is a flag in that file, not a line in the README command. If no image is passed, gradio_app.py raises: “Text to 3D is disable. Please enable it by python gradio_app.py --enable_t23d.” With --enable_t23d, the same file constructs HunyuanDiTPipeline('Tencent-Hunyuan/HunyuanDiT-v1.1-Diffusers-Distilled'). The Hugging Face model API for that repository returned 200 on 2026-11-12. This page did not run the flag. The documented shape call remains the image path in the README.

ComfyUI

The 2.1 README’s community list links visualbruno/ComfyUI-Hunyuan3d-2-1. That link is under “Community Contribution Leaderboard”. The install section has no ComfyUI steps. The ComfyUI docs index read the same day did not list a Hunyuan3D-2.1 workflow page. This page does not copy the community wrapper. For the ComfyUI template itself, see how to choose a rental GPU for ComfyUI.

When it fails

CUDA out of memory. The published lines are 10 GB, 21 GB and 29 GB. A listing below the line you are using does not meet that line. --low_vram_mode adds no second number in the README. Then use how to fix CUDA out of memory on a cloud GPU.

“CUDA error: no kernel image is available” on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32 GB, which meets the 29GB total. The README pins torch==2.5.1 from the cu124 index. The RTX 5090 guide says that card needs a PyTorch build for CUDA 12.8 or newer. This page did not re-test the pinned cu124 wheel on an RTX 5090. How to install a specific PyTorch CUDA version is the wheel index.

Save the mesh, then destroy

Copy save_dir (the --cache-path default) off the instance before you destroy it. The code sample does not show a save call, so a run of that sample needs its own export 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 billing rule is on the pricing page. Prices are not copied here.

Frequently asked questions

How much VRAM does Hunyuan3D-2.1 publish?

The Hunyuan3D-2.1 README says it takes 10 GB VRAM for shape generation, 21GB for texture generation and 29GB for shape and texture generation in total (read 2026-11-12). The Gradio command includes --low_vram_mode and publishes no separate GB number for that flag. The Hunyuan3D-2 repository’s 6 GB and 16 GB lines belong to that earlier repository.

Which rented GPUs meet the 29GB total?

vram_gb of at least 29 on https://cloudgpu.app/gpu-prices.json, read 2026-11-12: RTX 4080 SUPER 32G, RTX 5090, RTX 5090D, V100 32G, A100 40G, A800 40G, A40, RTX 4090 48G, RTX 4090D 48G, RTX A6000, NVIDIA RTX PRO 5000 72G, RTX PRO 5000 72G, A100 80G, A800 80G, H800, RTX 6000D, H20 96G, RTX PRO 6000 96G and RTX PRO 6000 Max-Q. A30, RTX 3090, RTX 4090 and RTX 4090D are 24, which meets the 21GB texture line and is below the 29GB total. RTX 3080 (10), RTX 2080 Ti (11), RTX 3080 Ti (12) and V100 16G (16) meet the 10GB shape line only. RTX 2080 is 8, below the 10GB shape line. GET /v1/public/compute-capabilities returned feature flags and no GPU list. Which listing you can start is on https://cloudgpu.app/deploy. This page does not say which listings are available.

Does Hunyuan3D-2.1 take a text prompt?

The README’s code sample passes an image path to the shape pipeline. The model card tags include image-to-3d and text-to-3d. gradio_app.py tells you to add --enable_t23d when no image is passed, and that flag constructs HunyuanDiTPipeline with Tencent-Hunyuan/HunyuanDiT-v1.1-Diffusers-Distilled. The README’s printed Gradio command does not include --enable_t23d. This page did not run the flag.

Where is the mesh saved?

The README’s code sample does not show a save call, and its paint line uses mesh_path, which that snippet never assigns. gradio_app.py writes under --cache-path, default ./save_dir, including white_mesh.glb or white_mesh.obj and textured_mesh.glb. Copy that folder before you destroy the instance. The terms say data on local instance storage is permanently deleted when the instance is destroyed.

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


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-12 (Asia/Shanghai).