Instructions to use amd/Nitro-1-SD with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use amd/Nitro-1-SD with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("amd/Nitro-1-SD", dtype=torch.bfloat16, device_map="cuda") prompt = "Astronaut in a jungle, cold color palette, muted colors, detailed, 8k" image = pipe(prompt).images[0] - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- Draw Things
- DiffusionBee
| license: apache-2.0 | |
| datasets: | |
| - poloclub/diffusiondb | |
| base_model: | |
| - stabilityai/stable-diffusion-2-1-base | |
| pipeline_tag: text-to-image | |
| library_name: diffusers | |
| # AMD Nitro-1 | |
|  | |
| ## Introduction | |
| Nitro-1 is a series of efficient text-to-image generation models that are distilled from popular diffusion models on AMD Instinct™ GPUs. The release consists of: | |
| * [Nitro-1-SD](https://huggingface.co/amd/SD2.1-Nitro): a UNet-based one-step model distilled from [Stable Diffusion 2.1](https://huggingface.co/stabilityai/stable-diffusion-2-1-base). | |
| * [Nitro-1-PixArt](https://huggingface.co/amd/PixArt-Sigma-Nitro): a high resolution transformer-based one-step model distilled from [PixArt-Sigma](https://pixart-alpha.github.io/PixArt-sigma-project/). | |
| ⚡️ [Open-source code](https://github.com/AMD-AIG-AIMA/AMD-Diffusion-Distillation)! The models are based on our re-implementation of [Latent Adversarial Diffusion Distillation](https://arxiv.org/abs/2403.12015), the method used to build the popular Stable Diffusion 3 Turbo model. Since the original authors didn't provide training code, we release our re-implementation to help advance further research in the field. | |
| ## Details | |
| * **Model architecture**: Nitro-1-SD has the same architecture as Stable Diffusion 2.1 and is compatible with the diffusers pipeline. | |
| * **Inference steps**: This model is distilled to perform inference in just a single step. However, the training code also supports distilling a model for 2, 4 or 8 steps. | |
| * **Hardware**: We use a single node consisting of 4 AMD Instinct™ MI250 GPUs for distilling Nitro-1-SD. | |
| * **Dataset**: We use 1M prompts from [DiffusionDB](https://huggingface.co/datasets/poloclub/diffusiondb) and generate the corresponding images from the base Stable Diffusion 2.1 model. | |
| * **Training cost**: The distillation process achieves reasonable results in less than 2 days on a single node. | |
| ## Quickstart | |
| ```python | |
| 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] | |
| ``` | |
| For more details on training and evaluation please visit the [GitHub repo](https://github.com/AMD-AIG-AIMA/AMD-Diffusion-Distillation). | |
| ## Results | |
| Compared to the [Stable Diffusion 2.1 base model](https://huggingface.co/stabilityai/stable-diffusion-2-1-base), we achieve 95.9% reduction in FLOPs at the cost of just 2.5% lower CLIP score and 2.2% higher FID. | |
| | Model | FID ↓ | CLIP ↑ |FLOPs| Latency on AMD Instinct MI250 (sec) | |
| | :---: | :---: | :---: | :---: | :---: | |
| | Stable Diffusion 2.1 base, 50 steps (cfg=7.5) | 25.47 | 0.3286 |83.04 | 4.94 | |
| | **Nitro-1-SD**, 1 step | 26.04 | 0.3204|3.36 | 0.18 | |
| ## License | |
| Copyright (c) 2018-2024 Advanced Micro Devices, Inc. All Rights Reserved. | |
| Licensed under the Apache License, Version 2.0 (the "License"); | |
| you may not use this file except in compliance with the License. | |
| You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software | |
| distributed under the License is distributed on an "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| See the License for the specific language governing permissions and | |
| limitations under the License. |