【大模型系列篇】动手部署实践国产文生图模型-腾讯混元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

### 如何在本地环境中部署文本生成片的大规模预训练模型 #### 准备环境 要在本地环境中成功部署文本生成像的大规模预训练模型,首先需要准备合适的运行环境。这通常涉及到安装必要的依赖库以及配置硬件资源。 对于大多数现代的深度学习框架而言,推荐使用Python作为编程语言,并确保已安装最新版本的CUDA驱动程序以便利用GPU加速计算过程[^2]。具体来说: - 安装Anaconda或Miniconda来管理不同的虚拟环境; - 创建一个新的Conda环境并激活它; -n text_to_image python=3.9 conda activate text_to_image pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu113 ``` #### 下载预训练模型 接下来是从官方渠道下载所需的预训练权重文件。许多知名的开源项目都托管于GitHub仓库内,可以直接克隆整个项目获取完整的源码与参数文件。例如,在HuggingFace平台上存在大量高质量的多模态预训练模型可供选择。 假设要加载名为`CompVis/stable-diffusion-v1-4`的文字转画模型,则可以通过如下方式完成初始化操作: ```python from diffusers import StableDiffusionPipeline import torch model_id = "CompVis/stable-diffusion-v1-4" device = "cuda" pipe = StableDiffusionPipeline.from_pretrained(model_id, torch_dtype=torch.float16).to(device) ``` #### 配置服务接口 为了让其他应用程序能够方便地调用这个API端口,建议采用Flask或者FastAPI这样的轻量级Web框架搭建RESTful API服务器。这样不仅可以简化前后端交互逻辑,还便于后续维护升级。 以下是基于FastAPI创建简单HTTP POST请求处理器的例子: ```python from fastapi import FastAPI, UploadFile, File from PIL import Image import io app = FastAPI() @app.post("/generate/") async def generate(image: UploadFile = File(...), prompt: str = ""): img_bytes = await image.read() pil_img = Image.open(io.BytesIO(img_bytes)) with torch.no_grad(): output = pipe(prompt=prompt, image=pil_img) return {"result": output} ``` #### 测试与优化 最后一步是对上述设置进行全面测试,确认各项功能正常运作之后再考虑进一步优化性能表现。可能涉及调整批处理大小(batch size),启用混合精度(half precision)运算等方式减少推理延迟时间。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值