HunyuanDiT
论文
Hunyuan-DiT : A Powerful Multi-Resolution Diffusion Transformer with Fine-Grained Chinese Understanding
https://arxiv.org/pdf/2405.08748模型结构
模型基于transformer decoder
结构,在DiT
基础上重新设计了Time Embedding
以及positional Embedding
的添加方式,Text Prompt
通过两个text encoder
进行编码,其余与DiT一致。
算法原理
使用self-attention
捕获图像内部的结构信息,使用cross attention
对齐文本与图像。
环境配置
Docker(方法一)
docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:2.1.0-centos7.6-dtk24.04-py310
docker run --shm-size 10g --network=host --name=hunyuan --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v 项目地址(绝对路径):/home/ -v /opt/hyhal:/opt/hyhal:ro -it <your IMAGE ID> bash
pip install -r requirements.txt
pip install timm --no-deps
pip install flash_attn-2.0.4+das1.0+82379d7.abi0.dtk2404.torch2.1-cp310-cp310-manylinux2014_x86_64.whl (开发者社区)
pip install bitsandbytes-0.42.0-py3-none-any.whl (whl文件夹中)
Dockerfile(方法二)
docker build -t <IMAGE_NAME>:<TAG> .
docker run --shm-size 10g --network=host --name=hunyuan --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v 项目地址(绝对路径):/home/ -v /opt/hyhal:/opt/hyhal:ro -it <your IMAGE ID> bash
pip install -r requirements.txt
pip install timm --no-deps
pip install flash_attn-2.0.4+das1.0+82379d7.abi0.dtk2404.torch2.1-cp310-cp310-manylinux2014_x86_64.whl (开发者社区)
pip install bitsandbytes-0.42.0-py3-none-any.whl (whl文件夹中)
Anaconda (方法三)
1、关于本项目DCU显卡所需的特殊深度学习库可从光合开发者社区下载安装: https://developer.hpccube.com/tool/
DTK驱动:dtk24.04
python:python3.10
torch: 2.1.0
torchvision: 0.16.0
onnx: 1.15.0
flash-attn: 2.0.4
Tips:以上dtk驱动、python、torch等DCU相关工具版本需要严格一一对应
2、其它非特殊库参照requirements.txt安装
pip install -r requirements.txt
pip install timm --no-deps
pip install bitsandbytes-0.42.0-py3-none-any.whl (whl文件夹中)
数据集
无
推理
命令行
# Prompt Enhancement + Text-to-Image. Torch mode
python sample_t2i.py --prompt "千里冰封万里雪飘"
# Prompt Enhancement + Text-to-Image. Torch mode(在最新硬件上可用)
python sample_t2i.py --prompt "千里冰封万里雪飘" --infer-mode fa
# Only Text-to-Image. Torch mode
python sample_t2i.py --prompt "飞流直下三千尺疑是银河落九天" --no-enhance
# Generate an image with other image sizes.
python sample_t2i.py --prompt "飞流直下三千尺疑是银河落九天" --image-size 1280 768
# Prompt Enhancement + Text-to-Image. DialogGen loads with 4-bit quantization, but it may loss performance.
python sample_t2i.py --prompt "飞流直下三千尺疑是银河落九天" --load-4bit
参数列表
Argument Default Description--prompt
None
The text prompt for image generation
--image-size
1024 1024
The size of the generated image
--seed
42
The random seed for generating images
--infer-steps
100
The number of steps for sampling
--negative
-
The negative prompt for image generation
--infer-mode
torch
The inference mode (torch, fa)
--sampler
ddpm
The diffusion sampler (ddpm, ddim, or dpmms)
--no-enhance
False
Disable the prompt enhancement model
--model-root
ckpts
The root directory of the model checkpoints
--load-key
ema
Load the student model or EMA model (ema or module)
--load-4bit
Fasle
Load DialogGen model with 4bit quantization
webui(推荐)
# By default, we start a Chinese UI.
python app/hydit_app.py
# 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
# Start with English UI
python app/hydit_app.py --lang en
# Start a multi-turn(对话形式) T2I generation UI.
# If your DCU 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
result
结果 prompt 千里冰封万里雪飘 飞流直下三千尺疑是银河落九天 一只金毛犬叼着一个RTX4090显卡精度
无
应用场景
算法类别
AIGC
热点应用行业
零售,广媒,电商
预训练权重
预训练权重快速下载中心:SCNet AlModels ,项目中的预训练权重可从快速下载通道下载:HunyuanDiT。
下载链接中的所有模型文件,并放入ckpts
文件中。
ckpts/
├── dialoggen
│ ├── config.json
│ ├── generation_config.json
│ ├── model-00001-of-00004.safetensors
│ ├── model-00002-of-00004.safetensors
│ ├── model-00003-of-00004.safetensors
│ ├── model-00004-of-00004.safetensors
│ ├── model.safetensors.index.json
│ ├── openai
│ │ └── clip-vit-large-patch14-336
│ │ ├── config.json
│ │ ├── merges.txt
│ │ ├── preprocessor_config.json
│ │ ├── pytorch_model.bin
│ │ ├── README.md
│ │ ├── special_tokens_map.json
│ │ ├── tokenizer_config.json
│ │ ├── tokenizer.json
│ │ └── vocab.json
│ ├── special_tokens_map.json
│ ├── tokenizer_config.json
│ └── tokenizer.model
└── t2i
├── clip_text_encoder
│ ├── config.json
│ └── pytorch_model.bin
├── model
│ ├── pytorch_model_ema.pt
│ └── pytorch_model_module.pt
├── mt5
│ ├── config.json
│ ├── download.sh
│ ├── generation_config.json
│ ├── nohup.out
│ ├── pytorch_model.bin
│ ├── README.md
│ ├── special_tokens_map.json
│ ├── spiece.model
│ └── tokenizer_config.json
├── sdxl-vae-fp16-fix
│ ├── config.json
│ ├── diffusion_pytorch_model.bin
│ └── diffusion_pytorch_model.safetensors
└── tokenizer
├── special_tokens_map.json
├── tokenizer_config.json
├── vocab_org.txt
└── vocab.txt
源码仓库及问题反馈
ModelZoo / HunyuanDiT_pytorch · GitLab参考资料
GitHub - Tencent/HunyuanDiT: Hunyuan-DiT : A Powerful Multi-Resolution Diffusion Transformer with Fine-Grained Chinese Understanding总结
### HunyuanDiT 文章总结#### 一、模型概述
**模型名称**:Hunyuan-DiT
- **目的**:实现具备细粒度中文理解能力的多分辨率扩散Transformer模型,用于文本到图像的生成。
- **基础架构**:基于`Transformer Decoder`结构,在`DiT`(Diffusion Transformer)基础上增强了`Time Embedding`和`Positional Embedding`的添加方式,通过两个`Text Encoder`对`Text Prompt`进行编码。
#### 二、算法原理
- **结构信息捕获**:使用`self-attention`机制捕获图像内部的结构信息。
- **文本图像对齐**:通过`cross attention`机制对齐文本与图像的表示。
#### 三、环境配置
##### 方法一:Docker
1. 拉取预配置基础镜像。
2. 启动Docker容器,设置适当的权限和内存。
3. 安装必要的Python库,包括从特定渠道下载的轮子包。
##### 方法二:Dockerfile
1. 构建并标记新的Docker镜像。
2. 以相似的方式启动容器并安装依赖。
##### 方法三:Anaconda
1. 下载并安装与DCU显卡兼容的特定版本软件(如DTK驱动、Python和PyTorch等)。
2. 安装项目需要的非特殊依赖库。
#### 四、数据集
文章未提及特定数据集的使用。
#### 五、推理
##### 命令行
- 提供了一系列使用`python`脚本执行文本到图像生成的命令及其参数详解。
- 可选项包括是否使用增强模式、图像尺寸、随机种子、采样步骤数等。
##### WebUI
- 推荐使用Web UI界面,支持中文和英文 UI,同时提供多轮对话形式的生成。
- 可通过添加`--no-enhance`和`--infer-mode fa`等参数调整性能和功能。
#### 六、结果展示
展示了不同`prompt`下生成的图像示例。
#### 七、应用场景
- **算法类别**:属于AIGC(Artificial Intelligence Generated Content)领域。
- **热点应用行业**:适用于零售、广媒和电商领域。
#### 八、预训练权重
- 提供了预训练权重的快速下载链接,并详细说明了模型文件的结构和存放位置。
#### 九、源码仓库及问题反馈
- 源码仓库位于GitLab: ModelZoo / HunyuanDiT_pytorch。
- 问题反馈可在相关仓库中进行。
#### 十、参考资料
- 提供了GitHub上Tencent官方仓库的链接,提供更详细的模型信息。
### 结语
HunyuanDiT是一个基于改进扩散Transformer的新型文本到图像生成模型,专为中文理解优化,具有灵活的配置和多样的生成选项,广泛应用于AIGC相关行业。