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主页

相关推荐
PhotonixBay2 天前
3D共聚焦显微镜与探针式粗糙度仪:谁更适合亚表面损伤检测?
图像处理·人工智能·测试工具·3d
自动化监测Learner2 天前
Cesium 加载大雁塔 3D Tiles 实录:从模型结构剖析到局部虚拟化(剖切 + 骨架线)实现
3d
FOORIR 客流统计2 天前
智能客流系统未来趋势:3D视觉、AI识别与数据分析的融合架构
人工智能·3d·数据分析
3D小将2 天前
3D格式转换之Rhino转换为IGS格式技术
3d·stp模型·igs模型·glb模型
PhotonixBay3 天前
InGaAs微透镜3D形貌怎么测?共聚焦显微镜在光通信的应用实践
功能测试·测试工具·3d·测试标准
学习星球3 天前
AI 一句话生成 3D 游戏世界:腾讯 HY-World 2.0 开源深度解析与本地实战
开发语言·人工智能·游戏·3d·ai·课程设计·ai编程
ai小陈3 天前
Hunyuan3D-2云端部署实战:图生3D、文生3D怎么跑更稳
人工智能·科技·3d·ai·音视频·gpu算力
独立开发之道4 天前
Three.js 创建 VR 内容:四步把一个普通 3D 场景送进头显
javascript·3d·vr
k4m7v2pz4 天前
Bevy 0.18.1 雨雪天气粒子系统排障实录:四个“想当然“如何让 3D/2D 粒子全部不可见
3d·游戏开发·3d渲染·bevy·天气粒子·2d渲染
戴西软件4 天前
戴西iDWS.3DViz Suite数据轻量化可视化软件,从传统桌面软件向云端协同的重大突破
大数据·运维·网络·人工智能·机器学习·3d