|
--- |
|
library_name: hunyuan-dit |
|
license: other |
|
license_name: tencent-hunyuan-community |
|
license_link: https://huggingface.co/Tencent-Hunyuan/HunyuanDiT/blob/main/LICENSE.txt |
|
language: |
|
- en |
|
- zh |
|
--- |
|
# HunyuanDiT Distillation Acceleration |
|
|
|
Language: **English** | [**δΈζ**](https://huggingface.co/Tencent-Hunyuan/Distillation/blob/main/README_zh.md) |
|
|
|
We provide a distillation version of HunyuanDiT for your inference acceleration. |
|
|
|
Based on progressive distillation method, we accelerate Hunyuan-Dit two times without any performance drop. With the use of distillation model, It achieves the effect of halving the time consumption based on any inference mode. |
|
|
|
The following table shows the requirements for running the distillation model and the acceleration performance of our distillation model (batch size = 1). We evaluate the accelaration on various GPU (like H800,A100, 3090, 4090) as well as different inference mode. |
|
|
|
| GPU| CUDA version | model | inference mode | inference steps | GPU Peak Memory | inference time | |
|
| --- | --- | --- | --- | --- | --- | --- | |
|
| H800 | 12.1 | HunyuanDiT | PyTorch | 100 | 13G | 28s | |
|
| H800 | 12.1 | HunyuanDiT | TensorRT | 100 | 12G | 10s | |
|
| H800 | 12.1 | HunyuanDiT | Distill+PyTorch | 50 | 13G | 14s | |
|
| H800 | 12.1 | HunyuanDiT | Distill+TensorRT | 50 | 12G | 5s | |
|
| A100 | 11.7 | HunyuanDiT | PyTorch | 100 | 13GB | 54s | |
|
| A100 | 11.7 | HunyuanDiT | TensorRT | 100 | 11GB | 20s | |
|
| A100 | 11.7 | HunyuanDiT | Distill+PyTorch | 50 | 13GB | 25s | |
|
| A100 | 11.7 | HunyuanDiT | Distill+TensorRT | 50 | 11GB | 10s | |
|
| 3090 | 11.8 | HunyuanDiT | PyTorch | 100 | 14G | 98s | |
|
| 3090 | 11.8 | HunyuanDiT | TensorRT | 100 | 14G | 40s | |
|
| 3090 | 11.8 | HunyuanDiT | Distill+PyTorch | 50 | 14G | 49s | |
|
| 3090 | 11.8 | HunyuanDiT | Distill+TensorRT | 50 | 14G | 20s | |
|
| 4090 | 11.8 | HunyuanDiT | PyTorch | 100 | 14G | 54s | |
|
| 4090 | 11.8 | HunyuanDiT | TensorRT | 100 | 14G | 20s | |
|
| 4090 | 11.8 | HunyuanDiT | Distill+PyTorch | 50 | 14G | 27s | |
|
| 4090 | 11.8 | HunyuanDiT | Distill+TensorRT | 50 | 14G | 10s | |
|
|
|
Basically, the requirements for running the models is the same as the original model. |
|
|
|
## Instructions |
|
|
|
The dependencies and installation are basically the same as the [**original model**](https://huggingface.co/Tencent-Hunyuan/HunyuanDiT). |
|
|
|
Then download the model using the following commands: |
|
|
|
```bash |
|
cd HunyuanDiT |
|
# Use the huggingface-cli tool to download the model. |
|
huggingface-cli download Tencent-Hunyuan/Distillation ./pytorch_model_distill.pt --local-dir ./ckpts/t2i/model |
|
|
|
``` |
|
|
|
## Inference |
|
|
|
### Using Gradio |
|
|
|
Make sure you have activated the conda environment before running the following command. |
|
|
|
```shell |
|
# By default, we start a Chinese UI. |
|
python app/hydit_app.py --load-key distill |
|
|
|
# Using Flash Attention for acceleration. |
|
python app/hydit_app.py --infer-mode fa --load-key distill |
|
|
|
# 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 ---load-key distill |
|
|
|
# Start with English UI |
|
python app/hydit_app.py --lang en --load-key distill |
|
``` |
|
|
|
|
|
### Using Command Line |
|
|
|
We provide several commands to quick start: |
|
|
|
```shell |
|
# Prompt Enhancement + Text-to-Image. Torch mode |
|
python sample_t2i.py --prompt "ζΈθε±ζ" --load-key distill --infer-steps 50 |
|
|
|
# Only Text-to-Image. Torch mode |
|
python sample_t2i.py --prompt "ζΈθε±ζ" --no-enhance --load-key distill --infer-steps 50 |
|
|
|
# Only Text-to-Image. Flash Attention mode |
|
python sample_t2i.py --infer-mode fa --prompt "ζΈθε±ζ" --load-key distill --infer-steps 50 |
|
|
|
# Generate an image with other image sizes. |
|
python sample_t2i.py --prompt "ζΈθε±ζ" --image-size 1280 768 --load-key distill --infer-steps 50 |
|
``` |
|
|
|
More example prompts can be found in [example_prompts.txt](example_prompts.txt) |
|
|