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

news/2024/9/30 12:18:14 标签: 大模型, 文生图, 扩散模型, Transformer, GPU, Gradio, DiT

首个中英双语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.niftyadmin.cn/n/5685086.html

相关文章

采购订单管理:如何驱动业务效率和增长

采购订单是一份具有法律约束力的文件,明确了买方在未来特定日期从供应商处购买商品或服务的意图。 该文件对于买卖双方均具有重要价值。对于买方而言,采购订单有助于其进行未来数月的财务规划,明确资金的支出时间点。对于供应商而言&#x…

鸿蒙开发(NEXT/API 12)【硬件(取消注册出行业务事件监听)】车载系统

取消注册出行业务事件监听。 接口说明 接口名描述[off] (type: ‘smartMobilityEvent’, smartMobilityTypes: SmartMobilityType[], callback?: Callback): void取消注册出行业务事件监听。 开发步骤 导入Car Kit模块。 import { smartMobilityCommon } from kit.CarKit;获…

揭秘福派斯牛肉高脂乳鸽猫粮的神奇魅力!

🐾 亲爱的宠物家长们,今天我们来聊聊福派斯牛肉高脂乳鸽全价通用猫粮,让你的小宝贝在享受美味的同时,也能健康长肉哦!🌟 1️⃣ 美味诱惑,猫咪的味蕾盛宴 首先说说这款猫粮的口味,它精…

【从零开始实现stm32无刷电机FOC】【实践】【7.1/7 硬件设计】

目录 stm32电路磁编码器电路电机驱动电路电流采样电路电机选择本文示例硬件说明 为了承载和验证本文的FOC代码工程,本节设计了一个简易的三相无刷电机 硬件套件,主控采用非常常用的stm32f103c8t6单片机,电机编码器采用MT6701,电机…

国产长芯微LDC5693数模转换芯片DAC完全P2P替代AD5693

描述 LDC5693均属于 nanoDAC 系列,分别是低功耗、单通道、16位缓冲电压输出DAC。 除了LDC5693,这些器件均内部集成默认2.5 V基准电压源,提供2 ppm/C漂移。 输出范围可编程设置为0 V至VREF或0 V至2 VREF。 采用2.7 V至5.5 V单电源供电&#…

【FastAPI】使用 FastAPI 实现后台多任务(BackgroundTasks和Celery两种方案)

在现代 Web 应用程序中,处理后台任务(如发送邮件、生成报告等)是非常常见的需求。FastAPI 作为一个高效、现代的 Python Web 框架,提供了处理后台任务的简单方式。在这篇文章中,我们将探讨如何使用 FastAPI 内置的 Bac…

CHI trans--Home节点发起的操作

总目录: CHI协议简读汇总-CSDN博客https://blog.csdn.net/zhangshangjie1/article/details/131877216 Home节点能够发起的操作,包含如下几类: Home to Subordinate Read transactionsHome to Subordinate Write transactionsHome to Subor…

ECMAScript标准的详细解析

ECMAScript(简称ES)是一种由Ecma国际(前身为欧洲计算机制造商协会)制定的标准化脚本语言规范,它在ECMA-262标准中被定义。ECMAScript是JavaScript的基础,定义了JavaScript的核心语法和功能。以下是对ECMASc…