Tencent Hunyuan3D
一、前言
腾讯于2024年11月5日正式开源了最新的MoE模型“混元Large”以及混元3D生成大模型“Hunyuan3D-1.0”,支持企业及开发者在精调、部署等不同场景下的使用需求。
GitHub - Tencent/Hunyuan3D-1
二、技术与原理
Hunyuan3D-1.0 是一款支持文本生成3D(Text-to-3D)和图像生成3D(Image-to-3D)的统一框架,旨在提升3D生成的速度和质量。该模型采用两阶段方法:
-
多视角扩散模型:在约4秒内高效生成多视角RGB图像,捕捉3D资产的丰富细节。
-
前馈重建模型:在约7秒内根据生成的多视角图像快速重建3D资产,处理多视角生成中的噪声和不一致性,恢复3D结构。
该框架集成了腾讯自研的文本生成图像模型“Hunyuan-DiT”,支持文本和图像条件的3D生成。标准版本的参数量是轻量版和其他现有模型的3倍,平衡了生成速度和质量,显著减少了生成时间,同时保持了生成资产的质量和多样性。
三、主要特性
-
双模式支持:同时支持文本和图像输入,满足不同的3D生成需求。
-
高效生成:在NVIDIA A100 GPU上,轻量版模型约10秒生成3D网格,标准版约25秒。
-
开源计划:提供推理、检查点、烘焙相关、训练、ComfyUI、蒸馏版本和TensorRT版本的开源支持,方便开发者使用和二次开发。
四、使用方法
-
环境配置:建议使用Python 3.9和CUDA 11.7以上版本。可通过提供的
env_install.sh
脚本进行环境安装。 -
模型下载:从Hugging Face下载预训练模型,包括轻量版、标准版和稀疏视角重建模型。
-
推理:提供了文本生成3D和图像生成3D的推理脚本,可根据需求进行配置。
-
Gradio界面:提供了基于Gradio的Web界面,方便用户进行交互式操作。
五、当前瓶颈
尽管Hunyuan3D-1.0在生成速度和质量上取得了显著进展,但仍存在以下挑战:
-
生成质量的提升:在复杂场景或细节丰富的对象上,生成的3D模型可能存在细节缺失或不准确的情况,需要进一步优化模型以提升生成质量。
-
多样性与泛化能力:模型在处理多样化输入时的泛化能力有待增强,特别是在处理未见过的输入或复杂场景时,可能无法生成高质量的3D模型。
-
计算资源需求:尽管生成速度有所提升,但在高分辨率或复杂场景下,仍需要大量计算资源,限制了模型的实际应用范围。
六、教程汉化
1. 开始安装
首先,克隆仓库并进入项目目录:
git clone https://github.com/tencent/Hunyuan3D-1 cd Hunyuan3D-1
2. 环境配置(适用于Linux)
项目提供了 env_install.sh
脚本来配置环境,建议使用 Python 3.9 和 CUDA 11.7 以上版本。
安装步骤:
conda create -n hunyuan3d-1 python=3.9 conda activate hunyuan3d-1 bash env_install.sh
安装 xformers 或 flash_attn 来加速计算
pip install xformers --index-url https://download.pytorch.org/whl/cu121
pip install flash_attn
先前已经创建好?
如果先前已经创建好环境,直接激活进入即可
conda activate hunyuan3d-1-py311
先前已经创建好但是忘记了?
conda env list
这个命令将列出系统中所有的 Python 版本和 Conda 虚拟环境
检查环境是否切换成功,pip是否对应虚拟环境
which pip
3. 下载预训练模型
预训练模型可以从 Hugging Face 获取:https://huggingface.co/spaces/tencent/Hunyuan3D-1
提供以下三种模型:
- Hunyuan3D-1/lite:轻量版模型,用于多视角生成。
- Hunyuan3D-1/std:标准版模型,用于多视角生成。
- Hunyuan3D-1/svrm:稀疏视角重建模型。
下载模型的步骤:
1.首先安装 Hugging Face CLI 工具:
python3 -m pip install "huggingface_hub[cli]"
2.下载模型文件:
mkdir weights huggingface-cli download tencent/Hunyuan3D-1 --local-dir ./weights mkdir weights/hunyuanDiT huggingface-cli download Tencent-Hunyuan/HunyuanDiT-v1.1-Diffusers-Distilled --local-dir ./weights/hunyuanDiT
4. 推理生成
文本生成3D
支持中英文输入,可以使用以下命令进行文本生成3D:
python3 main.py \ --text_prompt "a lovely rabbit" \ --save_folder ./outputs/test/ \ --max_faces_num 90000 \ --do_texture_mapping \ --do_render
图像生成3D
使用以下命令进行图像生成3D,将 /path/to/your/image
替换为图像路径:
python3 main.py \ --image_prompt "/path/to/your/image" \ --save_folder ./outputs/test/ \ --max_faces_num 90000 \ --do_texture_mapping \ --do_render
5. 常用参数配置
参数 | 默认值 | 描述 |
---|---|---|
--text_prompt | None | 文本提示,用于3D生成 |
--image_prompt | None | 图像路径,用于3D生成 |
--t2i_seed | 0 | 文本生成图像的随机种子 |
--t2i_steps | 25 | 文本生成图像的采样步数 |
--gen_seed | 0 | 3D生成的随机种子 |
--gen_steps | 50 | 3D生成的采样步数 |
--max_faces_num | 90000 | 3D网格的最大面数限制 |
--save_memory | False | 文生图将自动移至CPU |
--do_texture_mapping | False | 将顶点阴影更改为纹理阴影 |
--do_render | False | 是否渲染GIF |
6. 预设脚本
项目还提供了以下快捷脚本来帮助用户快速执行不同配置的任务:
bash scripts/text_to_3d_demo.sh # 文本生成3D的示例脚本 bash scripts/text_to_3d_fast_demo.sh # 快速文本生成3D的示例脚本 bash scripts/image_to_3d_demo.sh # 图像生成3D的示例脚本 bash scripts/image_to_3d_fast_demo.sh # 快速图像生成3D的示例脚本
注意:运行这些示例脚本通常需要约40GB的显存。
7. 使用 Gradio 进行交互操作
项目提供了基于 Gradio 的 Web 界面,方便用户进行交互式操作。
-
标准版(更好的生成效果):
python3 app.py
-
轻量版(更快的生成速度):
python3 app.py --use_lite
运行后,可通过 http://0.0.0.0:8080
访问Web界面。请将 0.0.0.0
替换为您的服务器IP地址。
8. 摄像机参数
输出视图固定为一组摄像机姿势,默认视角设置如下:
- 方位角 (相对于输入视角)
- Azimuth (relative to input view):0度,60度,120度,180度,240度,300度。
七、Gradio界面使用教程
Text to 3D
1. Text to 3D功能介绍
- Text to 3D:将输入的文字描述转换为3D模型。
2. 输入选项
- Input text:输入描述3D模型的文字。例如,“一只黑白相间的熊猫在白色背景上居中坐着,呈现出卡通风格和可爱氛围”。这会生成一个符合描述的3D模型。
3. 参数设置
- T2I seed:用于文字转图像的随机种子。数值的变化会导致生成的图像略有不同。默认值为
0
,但如果结果不理想,可以尝试更改此值。 - T2I step:生成文字到图像时的步数。步数越多,生成的图像质量可能越高,但生成时间也会更长。默认值是
25
。 - Gen seed:用于图像到3D模型的随机种子。默认值为
0
,但如果结果不满意,可以更改此值。 - Gen step:生成3D模型时的步数,数值越高生成的细节可能越多,默认是
50
。 - Max number of faces:控制生成3D模型的面数。默认值是
90000
,较高的面数会带来更精细的模型,但处理速度可能会变慢。
4. 导出选项
- Texture mapping:勾选后,生成的3D模型会包含纹理贴图,更加逼真。
- Render gif:勾选后,会导出一个
.gif
动态图片,展示3D模型的多角度视图。
5. 输出格式
- Multi views:多角度视图预览。
- Obj:生成
.obj
格式的3D模型文件。 - Glb:生成
.glb
格式的3D模型文件,适合Web应用。 - GIF:导出
.gif
动态图片,展示模型的360度视图。 - rembg image:移除背景图像。
Image to 3D
1. Image to 3D功能介绍
- Image to 3D:将输入的图像转换为3D模型。您可以上传一张图像(例如某个物体的图片),系统将尝试生成相应的3D模型。
2. 输入选项
- Input image:在这里上传要转换为3D模型的图像。
3. 参数设置
- Gen seed:用于生成3D模型的随机种子。数值的变化会影响生成的模型略有不同。如果对结果不满意,可以更改这个值(默认是
0
)。 - Gen step:生成3D模型时的步数,数值越高,生成的模型可能更精细,默认是
50
。 - Max number of faces:控制生成3D模型的面数。默认值是
90000
,较高的面数可以带来更细致的模型,但处理速度可能变慢。
4. 导出选项
- Texture mapping:勾选后,生成的3D模型会包含纹理贴图,使模型更真实。
- Render gif:勾选后,会导出一个
.gif
文件,以动态方式展示生成的3D模型。
5. 输出格式
- rembg image:移除图像的背景。
- Multi views:展示生成的3D模型的多角度视图。
- Obj:导出为
.obj
格式的3D模型文件。 - Glb:导出为
.glb
格式的3D模型文件,更适合Web应用。 - GIF:导出
.gif
动态文件,展示模型的多角度视图。
相关文章:

Tencent Hunyuan3D
一、前言 腾讯于2024年11月5日正式开源了最新的MoE模型“混元Large”以及混元3D生成大模型“Hunyuan3D-1.0”,支持企业及开发者在精调、部署等不同场景下的使用需求。 GitHub - Tencent/Hunyuan3D-1 二、技术与原理 Hunyuan3D-1.0 是一款支持文本生成3D(…...
[ABC239E] Subtree K-th Max
[ABC239E] Subtree K-th Max 题面翻译 给定一棵 n n n 个节点的树,每个节点的权值为 x i x_i xi。 现有 Q Q Q 个询问,每个询问给定 v , k v,k v,k,求节点 v v v 的子树第 k k k 大的数。 0 ≤ x i ≤ 1 0 9 , 2 ≤ n ≤ 1 0 5 , …...

Axure设计之左右滚动组件教程(动态面板)
很多项目产品设计经常会遇到左右滚动的导航、图片展示、内容区域等,接下来我们用Axure来实现一下左右滚动的菜单导航。通过案例我们可以举一反三进行其他方式的滚动组件设计,如常见的上下滚动、翻页滚动等等。 一、效果展示: 1、点击“向左箭…...

善用Git LFS来降低模型文件对磁盘的占用
将讲一个实际的例子:对于模型文件,动辄就是好几个G,而有的仓库更是高达几十G,拉一个仓库到本地,稍不注意直接磁盘拉满都有可能。 比如:meta-llama-3.1-8b-instruct,拉到本地后发现居然占用了60G…...
Oracle RAC的thread
参考文档: Real Application Clusters Administration and Deployment Guide 3 Administering Database Instances and Cluster Databases Initialization Parameter Use in Oracle RAC Table 3-3 Initialization Parameters Specific to Oracle RAC THREAD Sp…...

如何创建备份设备以简化 SQL Server 备份过程?
SQL Server 中的备份设备是什么? 在 SQL Server 中,备份设备是用于存储备份数据的物理或逻辑介质。备份设备可以是文件、设备或其他存储介质。主要类型包括: 文件备份设备:通常是本地文件系统中的一个或多个文件。可以是 .bak 文…...

DeBiFormer实战:使用DeBiFormer实现图像分类任务(一)
摘要 一、论文介绍 研究背景:视觉Transformer在计算机视觉领域展现出巨大潜力,能够捕获长距离依赖关系,具有高并行性,有利于大型模型的训练和推理。现有问题:尽管大量研究设计了高效的注意力模式,但查询并…...

【go从零单排】迭代器(Iterators)
🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在 Go 语言中,迭代器的实现通常不是通过语言内置的迭代器类型&#x…...
Java与HTML:构建静态网页
在Web开发领域,HTML是构建网页的基础标记语言,而Java作为一种强大的编程语言,也能够在创建HTML内容方面发挥重要作用。今天,我们就来探讨一下如何使用Java来制作一个不那么简单的静态网页。 一、项目准备 首先,我们需…...

软件测试:测试用例详解
🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 一、通用测试用例八要素 1、用例编号; 2、测试项目; 3、测试标题; 4、重要级别; 5、预置…...
FreeSWITCH Ubuntu 18.04 源码编译
应朋友邀请,试了试 FreeSWITCH Ubuntu 18.04 源码编译,交的作业如下: #!/bin/bash####### Ubuntu 18.04 LTS ####### ARM64 ####### FreeSWITCH 1.10.12apt update && \ apt install -y --fix-missing git sed bison build-essentia…...

spring—boot(整合redis)
整合redis 第一步导入数据源 <!--redis--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId> </dependency> RedisConfig(默认有RedisTemplate&#…...
Python 包镜像源
阿里云、清华大学和豆瓣之外,还有许多其他的 Python 包镜像源。下面是更新后的代码,增加了更多常用的镜像源,如华为云、腾讯云等 import tkinter as tk from tkinter import messagebox import os# 定义 pip 配置文件路径 pip_config_file …...

Sigrity SPEED2000 Power Ground Noise Simulation模式如何进行电源阻抗仿真分析操作指导(一)-无电容
Sigrity SPEED2000 Power Ground Noise Simulation模式如何进行电源阻抗仿真分析操作指导(一)-无电容 Sigrity Power Ground Noise Simulation模式同样可以用来观测电源网络的自阻抗,以下图为例进行说明 2D 视图 3D view 本例要观测的是U17端口处的自阻抗࿰…...
Unity3D ASTC贴图压缩格式详解
一、技术详解 ASTC(Adaptive Scalable Texture Compression)是一种先进的纹理压缩格式,特别适用于OpenGL ES 3.0及更高版本。ASTC在2012年推出,自那以后已经成为游戏开发中重要的纹理压缩技术。它不仅在iOS设备上得到广泛应用&am…...

Docker的轻量级可视化工具Portainer
docker目录 1 Portainer官方链接2 是什么?3 下载安装4 跑通一次5 后记 1 Portainer官方链接 这里给出portainer的官方链接:https://www.portainer.io/ portainer安装的官方链接:https://docs.portainer.io/start/install-ce/server/docker/l…...
udp丢包问题
udp或者tcp丢包问题监测方式: netstat -su 问题分析: 1. 内存 2. cpu 3. 发送接收缓存 动画图解 socket 缓冲区的那些事儿-CSDN博客...

儿童安全座椅行业全面深入分析
儿童安全座椅就是一种专为不同体重(或年龄段)的儿童设计,将孩子束缚在安全座椅内,能有效提高儿童乘车安全的座椅。欧洲强制性执行标准ECE R44/03的定义是:能够固定到机动车辆上,带有ISOFIX接口、LATCH接口的…...

【笔记】扩散模型(九):Imagen 理论与实现
论文链接:Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding 非官方实现:lucidrains/imagen-pytorch Imagen 是 Google Research 的文生图工作,这个工作并没有沿用 Stable Diffusion 的架构,而是级…...

05 SQL炼金术:深入探索与实战优化
文章目录 SQL炼金术:深入探索与实战优化一、SQL解析与执行计划1.1 获取执行计划1.2 解读执行计划 二、统计信息与执行上下文2.1 收集统计信息2.2 执行上下文 三、SQL优化工具与实战3.1 SQL Profile3.2 Hint3.3 Plan Baselines3.4 实战优化示例 SQL炼金术:…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门 
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
拉力测试cuda pytorch 把 4070显卡拉满
import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试,通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小,增大可提高计算复杂度duration: 测试持续时间(秒&…...

2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
【Android】Android 开发 ADB 常用指令
查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器
一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...