# HunyuanDiT 蒸馏加速 语言: [**English**](https://huggingface.co/Tencent-Hunyuan/Distillation/blob/main/README.md) | **中文** 我们提供了蒸馏模型。 通过蒸馏可以降低扩散模型迭代的步数实现加速。 混元文生图大模型通过渐进式方法进行步数蒸馏,将原始DIT模型采样步数压缩50%,同时生成效果几乎无损。并且蒸馏模型可以在任何推理模式下使用。 下面的表格展示了使用蒸馏模型进行推理需要的设备,以及设备上的加速效果。这里我们在包括H800,A100, 3090, 4090等各种型号的gpu上, 以及torch 推理模式以及TensorRT模式上均进行了测速,供开发者参考。(batch size = 1)。 | 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 | ## Instructions 蒸馏模型推理所需要的安装包、依赖和 [**混元原始模型**](https://huggingface.co/Tencent-Hunyuan/HunyuanDiT) 一致。 模型下载使用下述指令: ```bash cd HunyuanDiT # 使用 huggingface-cli 工具下载模型. huggingface-cli download Tencent-Hunyuan/Distillation t2i/model/pytorch_model_distill.pt --local-dir ./ckpts/t2i/model ``` ## Inference ### Using Gradio 在执行如下命令前,请确保已经进入conda 环境。 ```shell # 默认指令,启动中文Gradio界面,界面中可以将采样步数降低至50步,出图效果基本无损耗 python app/hydit_app.py --load-key distill # 使用flash attention加速 python app/hydit_app.py --infer-mode fa --load-key distill # 设置`--no-enhance`,prompt增强功能不可用,以降低显存占用. python app/hydit_app.py --no-enhance ---load-key distill # 启动英文Gradio界面 python app/hydit_app.py --lang en --load-key distill ``` ### Using Command Line 一些使用蒸馏模型的demo: ```shell # Prompt增强 + 文生图. Torch 模式 python sample_t2i.py --prompt "渔舟唱晚" --load-key distill --infer-steps 50 # 文生图. Torch 模式 python sample_t2i.py --prompt "渔舟唱晚" --no-enhance --load-key distill --infer-steps 50 # 文生图. Flash Attention 模式 python sample_t2i.py --infer-mode fa --prompt "渔舟唱晚" --load-key distill --infer-steps 50 # 切换生图分辨率. python sample_t2i.py --prompt "渔舟唱晚" --image-size 1280 768 --load-key distill --infer-steps 50 ```