🚀 AMD Nitro Diffusion
AMD Nitro Diffusion是一系列高效的文本到图像生成模型,在AMD Instinct™ GPU上从流行的扩散模型中提炼而来,能有效解决文本到图像生成的效率问题,为图像生成领域提供了更高效的解决方案。
🚀 快速开始
from diffusers import DDPMScheduler, DiffusionPipeline
import torch
scheduler = DDPMScheduler.from_pretrained("stabilityai/stable-diffusion-2-1-base", subfolder="scheduler")
pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1-base", scheduler=scheduler)
ckpt_path = '<path to distilled checkpoint>'
unet_state_dict = torch.load(ckpt_path)
pipe.unet.load_state_dict(unet_state_dict)
pipe = pipe.to("cuda")
image = pipe(prompt='a photo of a cat',
num_inference_steps=1,
guidance_scale=0,
timesteps=[999]).images[0]
更多训练和评估的详细信息,请访问 GitHub仓库。
✨ 主要特性
AMD Nitro Diffusion是一系列高效的文本到图像生成模型,在AMD Instinct™ GPU上从流行的扩散模型中提炼而来。此次发布包含以下模型:
⚡️ 开源代码!这些模型基于我们对 Latent Adversarial Diffusion Distillation 的重新实现,该方法用于构建流行的Stable Diffusion 3 Turbo模型。由于原作者未提供训练代码,我们发布重新实现的代码,以推动该领域的进一步研究。
🔧 技术细节
- 模型架构:Stable Diffusion 2.1 Nitro与Stable Diffusion 2.1具有相同的架构,并且与diffusers管道兼容。
- 推理步骤:该模型经过提炼,只需单步即可进行推理。不过,训练代码也支持提炼2步、4步或8步的模型。
- 硬件:我们使用由4个AMD Instinct™ MI250 GPU组成的单节点来提炼Stable Diffusion 2.1 Nitro。
- 数据集:我们使用来自 DiffusionDB 的100万个提示,并从基础的Stable Diffusion 2.1 Nitro模型生成相应的图像。
- 训练成本:在单节点上,提炼过程在不到2天的时间内就能取得合理的结果。
📚 详细文档
与 Stable Diffusion 2.1基础模型 相比,我们在FLOPs上实现了95.9%的减少,代价是CLIP得分仅降低2.5%,FID仅提高2.2%。
模型 |
FID ↓ |
CLIP ↑ |
FLOPs |
AMD Instinct MI250上的延迟 (秒) |
Stable Diffusion 2.1 base, 50 steps (cfg=7.5) |
25.47 |
0.3286 |
83.04 |
4.94 |
Stable Diffusion 2.1 Nitro, 1 step |
26.04 |
0.3204 |
3.36 |
0.18 |
📄 许可证
版权所有 (c) 2018 - 2024 Advanced Micro Devices, Inc. 保留所有权利。
根据Apache许可证2.0版(“许可证”)许可;
除非符合许可证要求,否则不得使用此文件。
您可以在以下网址获取许可证副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”分发,
不附带任何形式的明示或暗示保证。
请参阅许可证以了解管理权限和限制的具体语言。
