Hunyuan3D本地部署

1.环境准备

新建一个python 3.10的环境并激活进入该环境

Hunyuan3D要求CUDA版本为12.1,先查一下有没有对应版本

复制代码
ls -l /usr/local/ | grep cuda-12.1

有的话我们需要在该虚拟环境中指向该CUDA版本的路径

复制代码
# 手动创建 activate.d 目录(按 conda 规范路径)
mkdir -p $CONDA_PREFIX/etc/conda/activate.d/

# 进入刚创建的 activate.d 目录
cd $CONDA_PREFIX/etc/conda/activate.d/

# 创建环境变量配置文件
touch cuda121_env.sh
echo 'export PATH=/usr/local/cuda-12.1/bin:$PATH' >> cuda121_env.sh
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-12.1/lib64:$LD_LIBRARY_PATH' >> cuda121_env.sh

# 赋予执行权限
chmod +x cuda121_env.sh

# 先退出环境
conda deactivate

# 重新激活环境,加载新配置
conda activate hunyuan3d

指向后,可以nvcc -V查看一下当前虚拟环境对应的CUDA版本

无误后,从GitHub上把项目拉下来。如果外网下载不下来,或者比较慢的话,可以手动去官网下载zip,再上传服务器,再unzip即可。

复制代码
git clone https://github.com/Tencent/Hunyuan3D-2.git

而后先指定下pip镜像源,再进行安装

复制代码
# 更换 pypi 源加速库
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

cd ./Hunyuan3D-2
pip install -r requirements.txt

# for texture
cd hy3dgen/texgen/custom_rasterizer
python3 setup.py install
cd ../../..
cd hy3dgen/texgen/differentiable_renderer
python3 setup.py install

2.下载模型

截至2025.3.20,Hunyuan3D-2模型仓库大小约为56GB,Hunyuan3D-2mv为28GB,Hunyuan3D-2mini为23GB,请参考官方运行硬件要求以及显存消耗拉取所需模型仓库,完整拉取供需106GB硬盘空间。先df -h指令查看一下硬盘存储情况,按需安装即可。模型下载指令中记得将'---local-dir'后或'cache_dir'的路径替换为自己存放的本地数据盘路径

复制代码
export HF_ENDPOINT="https://hf-mirror.com"
source ~/.bashrc
# Hunyuan3D-2
huggingface-cli download --resume-download tencent/Hunyuan3D-2 --local-dir /root/autodl-tmp/weights/Hunyuan3D-2
# Hunyuan3D-2mv
huggingface-cli download --resume-download tencent/Hunyuan3D-2mv --local-dir /root/autodl-tmp/weights/Hunyuan3D-2mv
#Hunyuan3D-2mini
huggingface-cli download --resume-download tencent/Hunyuan3D-2mini --local-dir /root/autodl-tmp/weights/Hunyuan3D-2mini

3.模型调用

我只拉了Hunyuan3D-2,也就是单视图白模生成+纹理生成

3.1单视图白模生成

在项目仓库下(Hunyuan3D-2/hy3dgen/shapegen/utils.py:83)更改模型加载路径base_dir

新建一个测试脚本

python 复制代码
import time
import torch
from PIL import Image

from hy3dgen.rembg import BackgroundRemover
from hy3dgen.shapegen import Hunyuan3DDiTFlowMatchingPipeline

image_path = '输入图像路径'
image = Image.open(image_path).convert("RGBA")
if image.mode == 'RGB':
    rembg = BackgroundRemover()
    image = rembg(image)

pipeline = Hunyuan3DDiTFlowMatchingPipeline.from_pretrained(
    '模型上一层文件路径/Hunyuan3D-2-main/model/Hunyuan3D-2',
    subfolder='hunyuan3d-dit-v2-0',
    variant='fp16'
)

start_time = time.time()
mesh = pipeline(image=image,
                num_inference_steps=50,
                octree_resolution=380,
                num_chunks=20000,
                generator=torch.manual_seed(12345),
                output_type='trimesh'
                )[0]
print("--- %s seconds ---" % (time.time() - start_time))
mesh.export(f'输出路径/Hunyuan3D-2-main/output/yaya.glb')

执行该脚本,大概30s内就生成了

生成的文件是glb文件,可以在线查看,也可以blender导入。这里是我随手放的一个手托乌鸦玩偶的图片。

3.2单视图纹理生成

同理先去改一下模型的读取路径,在Hunyuan3D-2/hy3dgen/texgen/pipelines.py:55,这边要改两个地方,一个是base_dir,一个是multiview_model_path的第二个参数

再新建一个测试脚本

python 复制代码
from PIL import Image

from hy3dgen.rembg import BackgroundRemover
from hy3dgen.shapegen import Hunyuan3DDiTFlowMatchingPipeline
from hy3dgen.texgen import Hunyuan3DPaintPipeline

model_path = '调用的模型的本地路径Hunyuan3D-2-main/model/Hunyuan3D-2/AI-ModelScope/Hunyuan3D-2'
pipeline_shapegen = Hunyuan3DDiTFlowMatchingPipeline.from_pretrained(model_path)
pipeline_texgen = Hunyuan3DPaintPipeline.from_pretrained(model_path)

image_path = '自己图像的输入路径"
image = Image.open(image_path).convert("RGBA")

if image.mode == 'RGB':
    rembg = BackgroundRemover()
    image = rembg(image)

mesh = pipeline_shapegen(image=image)[0]
mesh = pipeline_texgen(mesh, image=image)
mesh.export('输出保存路径Hunyuan3D-2-main/output/rixiang_textured.glb')

运行脚本,输出信息如下,这里需要的时间会很长,可以直接扔后台去输出

用blender打开输出的模型。blender刚打开还是白模,需要 z 快捷键选择blender进行渲染一下

4.致谢

多谢datawhale官方提供的指导手册

Hunyuan3D官方GitHub主页

相关推荐
众趣科技1 天前
众趣科技:以空间数字孪生技术重构VR内容制作新生态
3d·vr·空间计算
墨绿色的摆渡人1 天前
零碎的知识点(二十):3D 高斯为什么是椭球
决策树·机器学习·3d
CG_MAGIC2 天前
3DMAX VR渲染器局部渲染设置教程
3d·vr·效果图渲染·渲云渲染·渲染插件
GISer_Jing2 天前
3DThreeJS渲染核心架构深度解析
javascript·3d·架构·webgl
suxuyu012 天前
3D空间表征基础
3d·robotics
Renderbus瑞云渲染农场2 天前
什么叫云渲染?云渲染是干嘛的?
3d·图形渲染·3dsmax
平行云3 天前
World Labs & Paraverse:统一3D世界的创造与访问
3d·unity·ai·ue5·aigc·实时云渲染·云xr
3DVisionary3 天前
微米级精度:小尺寸手机零部件的高效3D检测与质量控制案例
3d·智能手机·工业4.0·3d扫描技术·高精度测量·手机零部件检测·质量控制 qc