如何用Hunyuan3D-2从单张图片生成带纹理的高清3D资产,免费且最快28秒完成
2026/9/13 3:21:40 网站建设 项目流程

如何用Hunyuan3D-2从单张图片生成带纹理的高清3D资产,免费且最快28秒完成

【免费下载链接】Hunyuan3D-2High-Resolution 3D Assets Generation with Large Scale Hunyuan3D Diffusion Models.项目地址: https://gitcode.com/GitHub_Trending/hu/Hunyuan3D-2

Hunyuan3D-2 是腾讯混元团队开源的大规模 3D 资产生成系统:给它一张图片,它先重建出无纹理的 3D 网格,再为其合成高分辨率 PBR 纹理(PBR 是一种模拟真实材质光照反应的纹理表达)。官方给出的参考数据是:标准模式全流程约 2 分 47 秒,换成 Turbo 蒸馏模型后压缩到 5 步采样,形状生成约 28 秒;只做形状生成约 6 GB 显存,形状+纹理全流程约 16 GB 显存。本文不按"先讲原理再动手"的常规顺序,而是让你先跑出一个 glb 文件,再回头解释它为什么能做到。

先跑起来:安装与最小生成示例

整个环境是纯 Python,官方支持 macOS、Windows、Linux。下面的命令完成克隆与依赖安装;如果你只做形状生成,可以跳过最后两行 C++ 扩展(那是纹理渲染器专用的):

git clone https://gitcode.com/GitHub_Trending/hu/Hunyuan3D-2 cd Hunyuan3D-2 pip install -r requirements.txt pip install -e . # 纹理流程需要两个本地 CUDA 扩展(仅纹理用户需要) cd hy3dgen/texgen/custom_rasterizer && python3 setup.py install && cd ../../.. cd hy3dgen/texgen/differentiable_renderer && python3 setup.py install

装完后,最短的生成路径是加载 0.6B 的 Turbo 模型(模型权重名为tencent/Hunyuan3D-2mini,首次运行会自动下载),开启 FlashVDM 加速后 5 步采样即可出网格。FlashVDM 是一个步数蒸馏加速方案,把原本 50 步的扩散采样压到 5 步,代价是细节略有损失:

from hy3dgen.shapegen import Hunyuan3DDiTFlowMatchingPipeline pipeline = Hunyuan3DDiTFlowMatchingPipeline.from_pretrained( 'tencent/Hunyuan3D-2mini', subfolder='hunyuan3d-dit-v2-mini-turbo', use_safetensors=False, device='cuda' ) pipeline.enable_flashvdm(topk_mode='merge') # 启用 5 步采样 mesh = pipeline( image='assets/demo.png', num_inference_steps=5, octree_resolution=380, output_type='trimesh' )[0] mesh.export('shape.glb') # 输出是 trimesh 对象,glb/obj 都能存

仓库里对应的可运行脚本是 examples/faster_shape_gen_with_flashvdm_mini_turbo.py,直接python3执行即可看到单模型耗时。跑通之后,效果大概是这样:

能出结果了,下一个自然的问题是:它凭什么一张图就能定出完整的立体结构?

为什么快且稳:两阶段生成架构拆解

Hunyuan3D-2 把"图生 3D"拆成两个独立阶段,而不是一个大模型端到端出结果:

  1. 形状阶段(Hunyuan3D-DiT):基于流匹配的扩散 Transformer(Diffusion Transformer,用 Transformer 做扩散去噪),输入单张或多张 2D 图像,输出与图像在几何上对齐的裸网格。
  2. 纹理阶段(Hunyuan3D-Paint):接收上一步的网格和参考图,输出高分辨率纹理。README 中提到支持 4K 级纹理。

拆开的实际好处有两个:一是几何和纹理各自的难度被解耦,互不拖累;二是纹理阶段不挑输入——手工建模的网格同样能丢给 Hunyuan3D-Paint 上材质,这等于附赠了一个"给现成模型自动贴图"的能力。

速度上则靠两条路:Turbo 系列模型(如hunyuan3d-dit-v2-mini-turbo)是步数蒸馏版,5 步出形;hunyuan3d-dit-v2-*-fast系列是 guidance 蒸馏版,把 DiT 推理时间减半。显存方面,官方模型页标注形状生成约 6 GB、形状+纹理合计约 16 GB,1.1B 的完整模型跑在消费级显卡上是可行的;0.6B 的 mini 系列参数更小,显存压力更低。

架构清楚了,接下来看三类真实使用场景该怎么组合这些能力。

三个实战场景:多视图、纹理全流程与轻量部署

场景一:多视图形状生成,处理被遮挡的物体

单张图只能看到物体的一面,背面结构全靠模型"猜"。如果你的素材能拍出正面、左侧、背面三张同物照片(仓库自带样例如 assets/example_mv_images/),换用 1.1B 的多视图模型 Hunyuan3D-2mv,把三张图一起喂进去,遮挡面的几何一致性会明显更好。示例 examples/shape_gen_multiview.py 的写法:

from PIL import Image from hy3dgen.shapegen import Hunyuan3DDiTFlowMatchingPipeline images = { "front": Image.open("assets/example_mv_images/1/front.png"), "left": Image.open("assets/example_mv_images/1/left.png"), "back": Image.open("assets/example_mv_images/1/back.png"), } pipeline = Hunyuan3DDiTFlowMatchingPipeline.from_pretrained( 'tencent/Hunyuan3D-2mv', subfolder='hunyuan3d-dit-v2-mv', variant='fp16' ) mesh = pipeline( image=images, num_inference_steps=30, octree_resolution=380, num_chunks=20000 )[0] mesh.export('mv.glb')

多视图推理比单图重一些(1.1B 模型 + 三份图像条件),步数可以按需在 5(turbo 子文件夹)到 50 之间取舍。

场景二:单图出带纹理的完整资产

只出白模往往不够用,加一行纹理管线就是完整资产。形状和纹理是两个独立的 pipeline,先后调用即可(完整示例见 examples/textured_shape_gen.py):

from hy3dgen.shapegen import Hunyuan3DDiTFlowMatchingPipeline from hy3dgen.texgen import Hunyuan3DPaintPipeline model_path = 'tencent/Hunyuan3D-2' pipeline_shapegen = Hunyuan3DDiTFlowMatchingPipeline.from_pretrained(model_path) pipeline_texgen = Hunyuan3DPaintPipeline.from_pretrained(model_path) mesh = pipeline_shapegen(image='assets/demo.png')[0] # 阶段一:几何 mesh = pipeline_texgen(mesh, image='assets/demo.png') # 阶段二:纹理 mesh.export('demo.glb')

如果手里已经有手工建模的网格、只想要贴图,跳过阶段一直接调用Hunyuan3DPaintPipeline即可;多视图贴图可以进一步看 examples/fast_texture_gen_multiview.py。带纹理的完整流程效果:

场景三:不想写代码,用 Web 界面或 API

如果你要把 Hunyuan3D-2 接进自己的工作流,仓库自带三种入口:Gradio 网页端、HTTP API 服务器,以及依赖 API 服务器的 Blender 插件(blender_addon.py)。前两种各一条命令:

# Gradio 网页界面:mini + Turbo + 低显存模式 python3 gradio_app.py --model_path tencent/Hunyuan3D-2mini \ --subfolder hunyuan3d-dit-v2-mini-turbo \ --texgen_model_path tencent/Hunyuan3D-2 \ --low_vram_mode --enable_flashvdm # API 服务器:对 8080 端口 POST 一张 base64 图片,直接落盘 glb python3 api_server.py --host 0.0.0.0 --port 8080

--low_vram_mode会做显存优化调度,小显存机器上跑网页端时建议常驻。批量生成或给其他软件(比如 Blender 插件、内部工具)供数时,API 服务器是更合适的形态。

参数调节与常见故障排查

生成调用里真正需要碰的参数不多,默认值来自 hy3dgen/shapegen/pipelines.py 的__call__签名:

参数默认值作用调节建议
num_inference_steps50扩散采样步数Turbo 模型 5 步;标准模型 30-50 步,步数越多细节越稳
octree_resolution384八叉树表面重建分辨率越高边缘细节越好,显存/耗时同步上升;380-420 是常用区间
num_chunks8000网格重建的并行块数显存紧张时调小(如 4000),余量充足时可加大
guidance_scale7.5图像条件引导强度一般不动;输出偏软时可适度上调
dual_guidance_scale10.5双引导(CLIP/DINO 双特征)强度一般不动
generatorNone随机种子torch.manual_seed(12345)固定,保证结果可复现

⚠️ 几个高频问题的定位思路(原因 → 解法):

  • CUDA OOM→ 先用 0.6B 的 mini 系列模型;或降低octree_resolutionnum_chunks;跑网页端时加--low_vram_mode
  • 边缘发虚、轮廓锯齿octree_resolution偏低,从 380 提到 420 左右,并适当增加采样步数。
  • 多视图结果背面跳变→ 输入三张图的光照、背景不一致。用仓库自带的 hy3dgen/rembg.py 做背景移除,尽量统一拍摄条件。
  • 网格像"白板"→ 只跑了形状阶段,补上Hunyuan3DPaintPipeline纹理阶段即可。
  • 同图两次结果不同→ 没有固定种子,传入generator=torch.manual_seed(...)

选哪个模型:一张对照表和后续索引

官方模型矩阵(大小与定位来自 README 的 Models Zoo):

模型子文件夹参数定位
hunyuan3d-dit-v2-mini0.6B轻量单图→形状
hunyuan3d-dit-v2-mini-turbo/-fast0.6B轻量加速(步数蒸馏 / guidance 蒸馏)
hunyuan3d-dit-v2-01.1B完整单图→形状
hunyuan3d-dit-v2-0-turbo/-fast1.1B完整模型加速版
hunyuan3d-dit-v2-mv(含 turbo/fast)1.1B多视图→形状
hunyuan3d-paint-v2-0(含 turbo)1.3B纹理合成

选择逻辑可以压缩成三句话:快速迭代选 mini-turbo + 5 步;交付质量选 v2-0 全量模型 + 30 步以上并接 Paint;输入有遮挡就切到 mv 多视图系列。

想继续深入的话,仓库内几个入口各有分工:examples/ 下按"单图/多视图/纹理/Turbo"分好了十来个可运行脚本;hy3dgen/shapegen/ 是形状生成核心(DiT、VAE、调度器);hy3dgen/texgen/ 是纹理管线与可微渲染器;docs/source/started/ 下有按 Gradio、API、Blender 等入口拆分的文档;minimal_demo.py 则演示了含纹理增强的端到端调用。先把第一节的那个小脚本跑通,再顺着 examples 逐个替换参数,基本就覆盖了这套系统日常会用到的全部能力。

【免费下载链接】Hunyuan3D-2High-Resolution 3D Assets Generation with Large Scale Hunyuan3D Diffusion Models.项目地址: https://gitcode.com/GitHub_Trending/hu/Hunyuan3D-2

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询