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生成的速度和质量。该模型采用两阶段方法:

  1. 多视角扩散模型:在约4秒内高效生成多视角RGB图像,捕捉3D资产的丰富细节。

  2. 前馈重建模型:在约7秒内根据生成的多视角图像快速重建3D资产,处理多视角生成中的噪声和不一致性,恢复3D结构。

        该框架集成了腾讯自研的文本生成图像模型“Hunyuan-DiT”,支持文本和图像条件的3D生成。标准版本的参数量是轻量版和其他现有模型的3倍,平衡了生成速度和质量,显著减少了生成时间,同时保持了生成资产的质量和多样性。

三、主要特性

  • 双模式支持:同时支持文本和图像输入,满足不同的3D生成需求。

  • 高效生成:在NVIDIA A100 GPU上,轻量版模型约10秒生成3D网格,标准版约25秒。

  • 开源计划:提供推理、检查点、烘焙相关、训练、ComfyUI、蒸馏版本和TensorRT版本的开源支持,方便开发者使用和二次开发。

四、使用方法

  1. 环境配置:建议使用Python 3.9和CUDA 11.7以上版本。可通过提供的env_install.sh脚本进行环境安装。

  2. 模型下载:从Hugging Face下载预训练模型,包括轻量版、标准版和稀疏视角重建模型。

  3. 推理:提供了文本生成3D和图像生成3D的推理脚本,可根据需求进行配置。

  4. 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_promptNone文本提示,用于3D生成
--image_promptNone图像路径,用于3D生成
--t2i_seed0文本生成图像的随机种子
--t2i_steps25文本生成图像的采样步数
--gen_seed03D生成的随机种子
--gen_steps503D生成的采样步数
--max_faces_num900003D网格的最大面数限制
--save_memoryFalse文生图将自动移至CPU
--do_texture_mappingFalse将顶点阴影更改为纹理阴影
--do_renderFalse是否渲染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 动态文件,展示模型的多角度视图。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/913043.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WPF在MVVM模式下怎么实现导航功能

在mvvm的模式下wpf通过frame实现页面跳转_哔哩哔哩_bilibili 视频讲解同步可观看 如下图,我们要实现点击左侧的菜单,在右侧展示不同的页面 实现代码如下: 一、如何从主窗体跳转到页面。 1、在mainwindow.xaml的菜单栏代码里加入如下代码 …

SpringBoot整合Sharding-JDBC实现读写分离

SpringBoot整合Sharding-JDBC实现读写分离 Sharding-JDBC实现读写分离,记得先要实现数据库的主从结构先。 1、Sharding-JDBC 简介 Sharding-JDBC 是的分布式数据库中间件解决方案。Sharding-JDBC、Sharding-Proxy 和 Sharding-Sidecar(计划 中)是 3 款相互独立的…

洛谷每日一题——P1036 [NOIP2002 普及组] 选数、P1045 [NOIP2003 普及组] 麦森数(高精度快速幂)

P1036 [NOIP2002 普及组] 选数 题目描述 [NOIP2002 普及组] 选数 - 洛谷 运行代码 #include <stdio.h> int n, k, a[25], t; int ss(int b) {int i;if (b < 2)return 0;for (i 2; i * i < b; i)if (b % i 0)return 0;return 1; } void dfs(int num, int sum, …

从零开始 blender插件开发

blender 插件开发 文章目录 blender 插件开发环境配置1. 偏好设置中开启相关功能2. 命令行打开运行脚本 API学习专有名词1. bpy.data 从当前打开的blend file中&#xff0c;加载数据。2. bpy.context 可用于获取活动对象、场景、工具设置以及许多其他属性。3. bpy.ops 用户通常…

【若依框架】代码生成详细教程,15分钟搭建Springboot+Vue3前后端分离项目,基于Mysql8数据库和Redis5,管理后台前端基于Vue3和Element Plus,开发小程序数据后台

今天我们来借助若依来快速的搭建一个基于springboot的Java管理后台&#xff0c;后台网页使用vue3和 Element Plus来快速搭建。这里我们可以借助若依自动生成Java和vue3代码&#xff0c;这就是若依的强大之处&#xff0c;即便你不会Java和vue开发&#xff0c;只要跟着石头哥也可…

Java基于SpringBoot+Vue的宠物共享平台的设计与实现(附源码,文档)

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

前端入门一之DOM、获取元素、DOM核心、事件高级、操作元素、事件基础、节点操作

前言 JS是前端三件套之一&#xff0c;也是核心&#xff0c;本人将会更新JS基础、JS对象、DOM、BOM、ES6等知识点&#xff0c;这篇是DOM;这篇文章是本人大一学习前端的笔记&#xff1b;欢迎点赞 收藏 关注&#xff0c;本人将会持续更新。 文章目录 DOMDOM简介1.1、什么是DOM1…

Python小游戏22——吃豆豆小游戏

运行效果图 【python】代码展示 import pygame import random # 初始化Pygame pygame.init() # 屏幕尺寸 WIDTH, HEIGHT 800, 600 WIN pygame.display.set_mode((WIDTH, HEIGHT)) pygame.display.set_caption("吃豆豆小游戏") # 颜色定义 WHITE (255, 255, 255) B…

「Mac畅玩鸿蒙与硬件32」UI互动应用篇9 - 番茄钟倒计时应用

本篇将带你实现一个番茄钟倒计时应用&#xff0c;用户可以设置专注时间和休息时间的时长&#xff0c;点击“开始专注”或“开始休息”按钮启动计时&#xff0c;应用会在倒计时结束时进行提醒。番茄钟应用对于管理时间、提升工作效率非常有帮助&#xff0c;并且还会加入猫咪图片…

2024 网鼎杯 - 青龙组 Web WP

2024 网鼎杯 - 青龙组 WEB - 02 打开容器一个登录界面&#xff0c;随便输入账号密码可以进到漏洞界面 这里有一个发送给boss的功能&#xff0c;一眼xss 有三个接口&#xff1a;/flag 、/update 、/submit /flag &#xff1a;要求boss才能访问&#xff0c;/update &#xf…

【笔记】自动驾驶预测与决策规划_Part6_不确定性感知的决策过程

文章目录 0. 前言1. 部分观测的马尔可夫决策过程1.1 POMDP的思想以及与MDP的联系1.1.1 MDP的过程回顾1.1.2 POMDP定义1.1.3 与MDP的联系及区别POMDP 视角MDP 视角决策次数对最优解的影响 1.2 POMDP的3种常规解法1.2.1 连续状态的“Belief MDP”方法1. 信念状态的定义2. Belief …

ffmpeg 视频滤镜:屏蔽边框杂色- fillborders

滤镜描述 fillborders 官网链接 > FFmpeg Filters Documentation fillborders滤镜有几种方式帮你屏蔽边框的杂色、不好的图案。 滤镜使用 参数 left <int> ..FV.....T. set the left fill border (from 0 to INT_MAX) (default 0)right …

Java基础——类和对象的定义链表的创建,输出

目录 什么是类&#xff1f; 什么是对象? 如何创建链表&#xff1f; 尾插法&#xff1a; 头插法&#xff1a; 输出链表的长度 输出链表的值 什么是类&#xff1f; 创建Java程序必须创建一个类class. .java程序需要经过javac指令将文件翻译为.class字节码文件&#xff0c…

简单的 docker 部署ELK

简单的 docker 部署ELK 这是我的运维同事部署ELK的文档&#xff0c;我这里记录转载一下 服务规划 架构: Filebeat->kafka->logstash->ES kafka集群部署参照: kafka集群部署 部署服务程序路径/数据目录端口配置文件elasticsearch/data/elasticsearch9200/data/elas…

【初阶数据结构篇】二叉树OJ题

文章目录 须知 &#x1f4ac; 欢迎讨论&#xff1a;如果你在学习过程中有任何问题或想法&#xff0c;欢迎在评论区留言&#xff0c;我们一起交流学习。你的支持是我继续创作的动力&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;觉得这篇文章对你有帮助吗&#xff1…

5分钟科普:AI网关是什么?应用场景是什么?有没有开源的选择?

AI网关的功能及其定义 AI网关位于企业应用与内外部大模型调用的交汇点&#xff0c;能够灵活地将请求转发给内部自建模型或外部大模型服务提供商&#xff0c;甚至海外的服务商。它管理着企业所有的AI出口流量&#xff0c;为企业内的不同团队提供了多方面的优势。 对于开发团队…

Ansys Zemax | 手机镜头设计 - 第 4 部分:用LS-DYNA进行冲击性能分析

该系列文章将讨论智能手机镜头模组设计的挑战&#xff0c;从概念和设计到制造和结构变形分析。本文是四部分系列中的第四部分&#xff0c;它涵盖了相机镜头的显式动态模拟&#xff0c;以及对光学性能的影响。使用Ansys Mechanical和LS-DYNA对相机在地板上的一系列冲击和弹跳过程…

凸优化理论,凸二次规划问题,对偶问题及KKT条件

凸优化理论 ​ 研究凸优化之前我们不妨提出几个小问题&#xff1a; 什么是优化问题&#xff1f;优化问题的解是什么&#xff1f;什么是凸优化问题&#xff1f;凸优化问题的解决方案是什么&#xff1f; 1.1 优化问题 ​ 理解优化问题其实很简单&#xff0c;我们其实从高中事…

实战攻略 | ClickHouse优化之FINAL查询加速

【本文作者&#xff1a;擎创科技资深研发 禹鼎侯】 查询时为什么要加FINAL 我们在使用ClickHouse存储数据时&#xff0c;通常会有一些去重的需求&#xff0c;这时候我们可以使用ReplacingMergeTree引擎。这个引擎允许你存储重复数据&#xff0c;但是在merge的时候会根据order …

3DGS与NeRF的区别

0 论文链接 nerf&#xff1a;https://arxiv.org/abs/2003.08934 3dgs&#xff1a;https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/3d_gaussian_splatting_low.pdf 1 简要 1.1 nerf neural radiance fields神经辐射场 作者提出了一种优化来自一组输入图像的场景…