🚀 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
除非適用法律要求或書面同意,否則根據許可證分發的軟件按“原樣”分發,
不附帶任何形式的明示或暗示保證。
請參閱許可證以瞭解管理權限和限制的具體語言。
