【大模型系列篇】动手部署实践国产文生图模型-腾讯混元DiT

news2024/11/24 0:12:59

首个中英双语DiT架构,混元-DiT,高性能细粒度中文理解-多分辨率扩散Transformer模型。

腾讯提出的混元DiT,是一个基于Diffusion transformer的文本到图像生成模型,此模型具有中英文细粒度理解能力。为了构建混元DiT,精心设计了Transformer结构、文本编码器和位置编码。腾讯构建了完整的数据管道,用于更新和评估数据,为模型优化迭代提供帮助。为了实现细粒度的文本理解,腾讯训练了多模态大语言模型来优化图像的文本描述。最终,混元DiT能够与用户进行多轮对话,根据上下文生成并完善图像。

官网:https://dit.hunyuan.tencent.com

论文:https://arxiv.org/pdf/2405.08748

代码:https://github.com/Tencent/HunyuanDiT

模型:https://huggingface.co/Tencent-Hunyuan/HunyuanDiT

一、conda环境部署

官方提供的方法为conda生成虚拟环境,代码如下:

git clone https://github.com/tencent/HunyuanDiT
 
cd HunyuanDiT
 
# 1. Prepare conda environment
conda env create -f environment.yml
 
# 2. Activate the environment
conda activate HunyuanDiT
 
# 3. Install pip dependencies
python -m pip install -r requirements.txt
 
# 4. (Optional) Install flash attention v2 for acceleration (requires CUDA 11.6 or above)
python -m pip install git+https://github.com/Dao-AILab/flash-attention.git@v2.1.2.post3

environment.yml文件内容如下,可以看到官方使用python 3.8.12版本部署。

name: HunyuanDiT
channels:
  - pytorch
  - nvidia
dependencies:
  - python=3.8.12
  - pytorch=1.13.1
  - pip

二、DiT模型下载 

该模型较大,共45GB,需要使用 huggingface_hub[cli] 工具下载。

该项目其他python文件中模型路径默认为 HunyuanDiT/ckpts,为避免找不到模型的问题,一定将模型文件下载到 HunyuanDiT/ckpts 下,我们本次下载HunyuanDiT-v1.2版本

模型下载代码:

python -m pip install "huggingface_hub[cli]"
 
cd ~/HunyuanDiT
 
mkdir ckpts
 
export HF_ENDPOINT=https://hf-mirror.com
 
huggingface-cli download Tencent-Hunyuan/HunyuanDiT-v1.2 --local-dir ./ckpts

三、运行

激活虚拟环境

每次运行前需要激活虚拟环境

cd HunyuanDiT

conda activate HunyuanDiT

运行模型

官方项目内提供两类运行方式,Gradio交互式界面或命令行模式,我们采用Gradio交互式界面启动。

Gradio交互式界面运行代码:

# By default, we start a Chinese UI. Using Flash Attention for acceleration.
python app/hydit_app.py --infer-mode fa

# You can disable the enhancement model if the GPU memory is insufficient.
# The enhancement will be unavailable until you restart the app without the `--no-enhance` flag. 
python app/hydit_app.py --no-enhance --infer-mode fa

# Start with English UI
python app/hydit_app.py --lang en --infer-mode fa

# Start a multi-turn T2I generation UI. 
# If your GPU memory is less than 32GB, use '--load-4bit' to enable 4-bit quantization, which requires at least 22GB of memory.
python app/multiTurnT2I_app.py --infer-mode fa

四、实践效果 

后台日志 

前端交互 

多轮对话验证效果 

长文本官方效果

模型进展

2024 年 7 月 15 日:🚀 HunYuanDiT 和 Shakker.Ai 共同发起了基于 HunYuanDiT 1.2 模型的微调活动。通过发布基于 HunYuanDiT 的 lora 或微调模型,你可以从 Shakker.Ai 获得高达 230 美元的奖金。更多详情请见 Shakker.Ai。

2024 年 7 月 15 日:🎉更新 ComfyUI 以支持标准化工作流程,并与 t2i 模块的权重以及 1.1/1.2 版本的 Lora 训练以及由 Kohya 或官方脚本训练的权重兼容。详情请见 ComfyUI。

2024 年 7 月 15 日:⚡我们提供适用于 CUDA 11/12 的 Docker 环境,让你无需进行复杂的安装,一键即可使用!详情请见 dockers。

2024 年 7 月 8 日:🎉HYDiT-v1.2 版本发布。更多详情请查看 HunyuanDiT-v1.2 和 Distillation-v1.2。

2024 年 7 月 3 日:🎉Kohya-hydit 版本现在适用于 v1.1 和 v1.2 模型,并带有用于推理的图形用户界面。官方 Kohya 版本正在审核中。详情请见 kohya。

2024 年 6 月 27 日:🎨发布 Hunyuan-Captioner,为训练数据提供精细的字幕。详情请见 mllm。

2024 年 6 月 27 日:🎉在 diffusers 中支持 LoRa 和 ControlNet。详情请见 diffusers。

2024 年 6 月 27 日:🎉发布 6GB GPU VRAM 推理脚本。详情请见 lite。

2024 年 6 月 19 日:🎉发布 ControlNet,支持边缘检测(canny)、姿态和深度控制。详情请见训练 / 推理代码。

2024 年 6 月 13 日:⚡HYDiT-v1.1 版本发布,缓解了图像过饱和问题并减轻了水印问题。更多详情请查看 HunyuanDiT-v1.1 和 Distillation-v1.1。

2024 年 6 月 13 日:🚚发布训练代码,提供全参数训练和 LoRA 训练。

2024 年 6 月 6 日:🎉Hunyuan-DiT 现在可在 ComfyUI 中使用。更多详情请查看 ComfyUI。

2024 年 6 月 6 日:🚀我们为 Hunyuan-DiT 加速推出蒸馏版本,在 NVIDIA GPU 上实现了 50% 的加速。更多详情请查看 Distillation。

2024 年 6 月 5 日:🤗Hunyuan-DiT 现在可在Diffusers 中使用!请查看下面的示例。

2024 年 6 月 4 日:🌐支持腾讯云链接下载预训练模型!请查看下面的链接。

2024 年 5 月 22 日:🚀我们为 Hunyuan-DiT 加速推出 TensorRT 版本,在 NVIDIA GPU 上实现了 47% 的加速。请查看 TensorRT-libs 以获取说明。

2024 年 5 月 22 日:💬我们现在支持演示运行多轮文本到图像生成。请查看下面的脚本。

更多内容请关注:https://github.com/Tencent/HunyuanDiT

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

plt绘画三维曲面

目录 前言实战 前言 如果想绘画三维曲面,需导入Axes3D 模块,具体语法可参考: from mpl_toolkits.mplot3d import Axes3D问题的关键是需要三维坐标对象与figure相关联,这里可以使用如下两种方法,亲测可用!…

安卓使用memtester进行内存压力测试

memteser简介 memtester 是一个用于测试内存可靠性的工具。 它可以对计算机的内存进行压力测试,以检测内存中的错误,例如位翻转、随机存取错误等。memtester 可以在不同的操作系统上运行,并且可以针对不同大小的内存进行测试。 下载源码 m…

企业微信hook协议接口,群发,标签,客户管理。

服务提供了丰富的API和SDK,可以在企微的功能之上进行应用开发和功能扩展 自建应用可以调用企微hook或协议提供的接口来实现数据交互,可以直接调用hook或协议接口提供的功能来进行消息的发送与接收、用户管理、应用管理等操作,通过接口可以实…

用Python实现运筹学——Day 8: 对偶理论的经济解释

一、学习内容 1. 对偶价格的经济含义 对偶价格(Dual Price),也称为影子价格(Shadow Price),反映了在线性规划问题中的某个约束条件下,单位资源的边际价值。影子价格是对每一单位资源的增加所带…

1.7 编码与调制

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅! 文章目录 前言前言1 基本术语2 常用的编码方法2.1 不归零编码2.2 归零编码2.3 反向归零编码2.4 曼彻斯特编码2.5 差分曼彻斯特编码 3 常用的调制方法3.1 调幅(AM&#xff09…

plt等高线图的绘制

目录 np.meshgrid()plt.contour()实战 np.meshgrid() np.meshgrid 是 NumPy 中的一个函数,用于生成多维坐标网格。它通常用于在多维空间中创建坐标点的组合,以便进行向量化的计算或者绘制三维图形。 基本语法: X, Y np.meshgrid(x, y) 参…

车视界系统小程序的设计

管理员账户功能包括:系统首页,个人中心,汽车品牌管理,汽车颜色管理,用户管理,汽车信息管理,汽车订单管理系统管理 微信端账号功能包括:系统首页,汽车信息,我…

【C++】多态练习题(面试常考)

学习之前,建议观看:【C】多态:深度剖析(多态、虚函数、抽象类、底层原理)_c 多态和虚函数,虚函数的实现原理-CSDN博客https://blog.csdn.net/2301_80555259/article/details/142178677?spm1001.2014.3001.5501 一.概念…

echarts X轴出现小数点问题解决方案

问题描述 当X轴数据较小时,X轴的坐标会用小数点将数据撑开,使其均匀显示,如下图所示: 因业务需要不希望出现小数点,该怎么解决呢? 查找一番,解决方案如下: xAxis: {minInterval:…

2-108 基于matlab的模板匹配法实现车牌识别

基于matlab的模板匹配法实现车牌识别,包含完整的字符库和案例车牌。选择待识别车牌,对车牌图像进行边缘检测、腐蚀、平滑、定位彩色、滤波、最小化区域等一系列操作,分割出字符区域,并与全字符模板库比较,得到最终的车…

【LeetCode每日一题】——95.不同的二叉搜索树 II

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目示例】六【题目提示】七【解题思路】八【时间频度】九【代码实现】十【提交结果】 一【题目类别】 回溯 二【题目难度】 中等 三【题目编号】 95.不同的二叉搜索树 II 四【题目描述】 给你一…

NASA数据集:ATLAS/ICESat-2 L3B 每日和每月网格化海冰自由面高度,第 4 版

目录 简介 摘要 代码 引用 网址推荐 0代码在线构建地图应用 机器学习 ATLAS/ICESat-2 L3B Daily and Monthly Gridded Sea Ice Freeboard, Version 4 简介 ATLAS/ICESat-2 L3B Daily and Monthly Gridded Sea Ice Freeboard, Version 4数据是由NASA的ATLAS&#xff08…

idea.vmoptions 最佳配置

1. 推荐的 idea64.exe.vmoptions 配置: -Xms1024m -Xmx4096m -XX:ReservedCodeCacheSize512m -XX:UseG1GC -XX:SoftRefLRUPolicyMSPerMB50 -XX:CICompilerCount4 -XX:HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow -Dsun.io.useCanonCachesfalse -Dj…

【React 】入门Day01 —— 从基础概念到实战应用

目录 一、React 概述 二、开发环境创建 三、JSX 基础 四、React 的事件绑定 五、React 组件基础使用 六、组件状态管理 - useState 七、组件的基础样式处理 快速入门 – React 中文文档 一、React 概述 React 是什么 由 Meta 公司开发,是用于构建 Web 和原生…

RabbitMQ的应用问题

一、幂等性保障 幂等性是数学和计算机科学中某些运算的性质, 它们可以被多次应⽤, ⽽不会改变初始应⽤的结果 数学上的幂等性: f(x)f(f(x)) |x| 数据库操作幂等性: 数据库的 select 操作. 不同时间两次查询的结果可能不同, 但是这个操作是符合幂等性…

MetaShape+CloudCompare的一些基本操作(一)

一、前言 由于要做一些小小的数据处理,要进行无人机影像的拼接,上网一搜发现metashape(前photoscan)很好用。由于一些影像涉及到未发布的论文和知识版权,所以进行了打码处理,请见谅!&#xff01…

实验5 预备实验2-配置单个的路由器

配置单个的路由器 一、实验目的 此次试验目的是了解思科网络设备的配置基本特点及IOS命令基本操作方法。这些是配置思科设备的重要前提。 二、实验内容及结果 1、实验环境搭建 添加一个模块化的路由器,单击Packet Tracer 5.3的工作区中刚添加的路由器,…

【老生常谈、查漏补缺】SpringBoot接收参数的几种方式图文详解

前言 在实际开发过程中,我们经常会遇到各种不同的场景,需要从客户端接收不同的参数。Spring Boot 提供了多种方式来接收这些参数,使得我们的开发更加灵活便捷。这篇文章主要介绍了 SpringBoot 在接收参数的几种常用方式详解。随着前后端的分离…

如何从huggingface下载

我尝试了一下若干步骤,莫名奇妙就成功了 命令行代理 如果有使用魔法上网,可以使用命令行代码,解决所有命令行连不上外网的问题: #配置http git config --global http.proxy 127.0.0.1:xxxx git config --global https.proxy 127…

Redis入门第二步:Redis数据类型详解

摘要: 欢迎继续跟随《Redis新手指南:从入门到精通》专栏的步伐!在本文中,我们将深入探讨Redis支持的各种数据类型,这些类型是Redis强大功能的核心。通过学习不同的数据类型,你将能够根据具体的应用需求选择…