库名称: hunyuan3d-2
许可证: other
许可证名称: tencent-hunyuan-community
许可证链接: https://huggingface.co/tencent/Hunyuan3D-1/blob/main/LICENSE.txt
语言:
- 英文
- 中文
标签:
- 图像转3D
- 文本转3D
管道标签: 图像转3D
腾讯混元3D-1.0:文本到3D与图像到3D生成的统一框架
🔥🔥🔥 最新动态!!
- 2024年11月5日:💬 现已支持图像到3D生成的演示运行,请查看下方脚本。
- 2024年11月5日:💬 现已支持文本到3D生成的演示运行,请查看下方脚本。
📑 开源计划
- [x] 推理
- [x] 模型
- [ ] 烘焙相关
- [ ] 训练
- [ ] ComfyUI
- [ ] 蒸馏版本
- [ ] TensorRT版本
摘要
尽管3D生成模型极大地提升了艺术家的工作流程,但现有的3D生成扩散模型存在生成速度慢和泛化能力差的问题。为解决这一问题,我们提出了名为混元3D-1.0的两阶段方法,包括轻量版和标准版,均支持文本和图像条件生成。
在第一阶段,我们采用多视角扩散模型,可在约4秒内高效生成多视角RGB图像。这些多视角图像从不同角度捕捉3D资产的丰富细节,将任务从单视角重建放宽至多视角重建。在第二阶段,我们引入前馈重建模型,可在约7秒内快速且忠实地根据生成的多视角图像重建3D资产。重建网络学习处理多视角扩散引入的噪声和不一致性,并利用条件图像中的可用信息高效恢复3D结构。
我们的框架整合了文本到图像模型(即混元DiT),使其成为支持文本和图像条件3D生成的统一框架。我们的标准版参数数量是轻量版和其他现有模型的3倍。混元3D-1.0在速度与质量之间实现了令人印象深刻的平衡,显著缩短生成时间的同时保持了生成资产的质量和多样性。
🎉 混元3D-1架构
📈 对比
我们评估了混元3D-1.0与其他开源3D生成方法,混元3D-1.0在5项指标上获得了最高的用户偏好。详情见左下角图片。
轻量模型在NVIDIA A100 GPU上从单张图像生成3D网格约需10秒,而标准模型约需25秒。右下方的图表显示,混元3D-1.0在质量与效率之间达到了最佳平衡。
快速开始
首先克隆仓库:
git clone https://github.com/tencent/Hunyuan3D-1
cd Hunyuan3D-1
Linux安装指南
我们提供了env_install.sh脚本文件用于设置环境。
# 第一步,创建conda环境
conda create -n hunyuan3d-1 python=3.9 或 3.10 或 3.11 或 3.12
conda activate hunyuan3d-1
# 第二步,安装torch相关包
which pip # 检查pip对应的python
# 根据机器修改cuda版本(推荐)
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121
# 第三步,安装其他包
bash env_install.sh
💡环境安装的其他提示
可选安装xformers或flash_attn以加速计算:
pip install xformers --index-url https://download.pytorch.org/whl/cu121
pip install flash_attn
大多数环境错误由机器与包版本不匹配引起。可以尝试手动指定版本,如下成功案例:
# python3.9
pip install torch==2.0.1 torchvision==0.15.2 --index-url https://download.pytorch.org/whl/cu118
安装pytorch3d时,gcc版本最好大于9,且GPU驱动不宜过旧。
下载预训练模型
模型可在https://huggingface.co/tencent/Hunyuan3D-1获取:
Hunyuan3D-1/lite
,用于多视角生成的轻量模型。
Hunyuan3D-1/std
,用于多视角生成的标准模型。
Hunyuan3D-1/svrm
,稀疏视角重建模型。
下载模型前,先安装huggingface-cli。(详细说明见此处。)
python3 -m pip install "huggingface_hub[cli]"
然后使用以下命令下载模型:
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
推理
对于文本到3D生成,我们支持中英双语,可使用以下命令推理。
python3 main.py \
--text_prompt "一只可爱的兔子" \
--save_folder ./outputs/test/ \
--max_faces_num 90000 \
--do_texture_mapping \
--do_render
对于图像到3D生成,可使用以下命令推理。
python3 main.py \
--image_prompt "/路径/到/你的/图像" \
--save_folder ./outputs/test/ \
--max_faces_num 90000 \
--do_texture_mapping \
--do_render
我们列出了一些更实用的配置以便使用:
参数 |
默认值 |
描述 |
--text_prompt |
None |
用于3D生成的文本提示 |
--image_prompt |
None |
用于3D生成的图像提示 |
--t2i_seed |
0 |
生成图像的随机种子 |
--t2i_steps |
25 |
文本到图像采样的步数 |
--gen_seed |
0 |
3D生成的随机种子 |
--gen_steps |
50 |
3D生成采样的步数 |
--max_faces_numm |
90000 |
3D网格的面数限制 |
--save_memory |
False |
模块将自动移至CPU |
--do_texture_mapping |
False |
将顶点着色改为纹理着色 |
--do_render |
False |
渲染GIF |
我们还准备了不同配置的脚本供参考
- 推理标准流程需要30GB显存(使用--save_memory时为24G)。
- 推理轻量流程需要22GB显存(使用--save_memory时为18G)。
- 注意:--save_memory会增加推理时间
bash scripts/text_to_3d_std.sh
bash scripts/text_to_3d_lite.sh
bash scripts/image_to_3d_std.sh
bash scripts/image_to_3d_lite.sh
如果GPU显存为16G,可以尝试分别运行流程中的模块:
bash scripts/text_to_3d_std_separately.sh '一只可爱的兔子' ./outputs/test
bash scripts/text_to_3d_lite_separately.sh '一只可爱的兔子' ./outputs/test
bash scripts/image_to_3d_std_separately.sh ./demos/example_000.png ./outputs/test
bash scripts/image_to_3d_lite_separately.sh ./demos/example_000.png ./outputs/test
使用Gradio
我们准备了多视角生成的标准版和轻量版。
# 标准版
python3 app.py
python3 app.py --save_memory
# 轻量版
python3 app.py --use_lite
python3 app.py --use_lite --save_memory
然后可通过http://0.0.0.0:8080访问演示。注意这里的0.0.0.0需替换为服务器IP。
相机参数
输出视角为一组固定的相机位姿:
- 方位角(相对于输入视角):
+0, +60, +120, +180, +240, +300
。
引用
如果本仓库对您有帮助,请引用我们的报告:
@misc{yang2024tencent,
title={腾讯混元3D-1.0:文本到3D与图像到3D生成的统一框架},
author={杨向辉 and 施慧文 and 张博文 and 杨帆 and 王嘉诚 and 赵鸿旭 and 刘鑫海 and 王新洲 and 林清祥 and 于佳傲 and 王力夫 and 陈卓 and 刘思聪 and 刘宇宏 and 杨勇 and 王迪 and 姜杰 and 郭春超},
year={2024},
eprint={2411.02293},
archivePrefix={arXiv},
primaryClass={cs.CV}
}