Unconditional Image Generation
Diffusers
Safetensors
English
afm
adversarial-flow-models
class-conditional
imagenet
Instructions to use BiliSakura/AFM-diffusers with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use BiliSakura/AFM-diffusers with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("BiliSakura/AFM-diffusers", torch_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
| license: mit | |
| library_name: diffusers | |
| pipeline_tag: unconditional-image-generation | |
| tags: | |
| - diffusers | |
| - afm | |
| - adversarial-flow-models | |
| - class-conditional | |
| - imagenet | |
| inference: true | |
| widget: | |
| - output: | |
| url: AFM-XL-2-56layer-1NFE-guided/demo.png | |
| language: | |
| - en | |
| # BiliSakura/AFM-diffusers | |
| Self-contained [Adversarial Flow Models](https://arxiv.org/abs/2511.22475) checkpoints for Hugging Face diffusers. | |
| Converted from `ByteDance-Seed/Adversarial-Flow-Models` using `libs/AFM-diffusers/scripts/convert_afm_to_diffusers.py`. | |
| All models use LDM (Rombach et al., 2022) latent space with `sd-vae-ft-mse`. Guidance abbreviations: **CG** = classifier guidance (Dhariwal & Nichol, 2021), **DA** = data augmentation (Karras et al., 2020a). | |
| ## Demo | |
| `AFM-XL-2-2NFE-noguide` — class **207** (*golden retriever*), seed **0**, 2 NFE: | |
| <p align="center"> | |
| <img src="AFM-XL-2-2NFE-noguide/demo.png" alt="AFM-XL-2-2NFE-noguide demo (class 207, seed 0)" width="256"/> | |
| </p> | |
| Each variant folder includes `demo.png` generated with the same prompt settings. | |
| ## Benchmark results (ImageNet 256×256) | |
| | Model | Params | Guidance | NFE | FID | sFID | IS | Prec. | Recall | Checkpoint | | |
| | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | |
| | AFM-B/2 | 130M | None | 1 | 6.07 | 5.31 | 169.51 | 0.72 | 0.49 | `AFM-B-2-1NFE-noguide/` | | |
| | AFM-M/2 | 306M | None | 1 | 5.21 | 5.60 | 178.48 | 0.75 | 0.54 | `AFM-M-2-1NFE-noguide/` | | |
| | AFM-L/2 | 457M | None | 1 | 4.36 | 5.39 | 186.21 | 0.77 | 0.53 | `AFM-L-2-1NFE-noguide/` | | |
| | AFM-XL/2 | 673M | None | 1 | 3.98 | 5.40 | 201.85 | 0.78 | 0.52 | `AFM-XL-2-1NFE-noguide/` | | |
| | AFM-XL/2 | 673M | None | 2 | 2.36 | 4.35 | 235.77 | 0.81 | 0.52 | `AFM-XL-2-2NFE-noguide/` | | |
| | AFM-B/2 | 130M | CG+DA | 1 | 3.05 | 5.32 | 269.18 | 0.81 | 0.51 | `AFM-B-2-1NFE-guided/` | | |
| | AFM-M/2 | 306M | CG+DA | 1 | 2.82 | 5.20 | 279.12 | 0.81 | 0.50 | `AFM-M-2-1NFE-guided/` | | |
| | AFM-L/2 | 457M | CG+DA | 1 | 2.63 | 5.10 | 277.96 | 0.81 | 0.52 | `AFM-L-2-1NFE-guided/` | | |
| | AFM-XL/2 | 673M | CG+DA | 1 | 2.38 | 4.87 | 284.18 | 0.81 | 0.52 | `AFM-XL-2-1NFE-guided/` | | |
| | AFM-XL/2 | 675M | CG+DA | 2 | 2.11 | 4.33 | 273.84 | 0.82 | 0.55 | `AFM-XL-2-2NFE-guided/` | | |
| | AFM-XL/2 (2× deep, 56-layer) | 675M | CG+DA | 1 | 2.08 | 4.79 | 298.33 | 0.79 | 0.56 | `AFM-XL-2-56layer-1NFE-guided/` | | |
| | AFM-XL/2 | 675M | CG+DA | 4 | 2.03 | 4.59 | 259.66 | 0.78 | 0.59 | `AFM-XL-2-4NFE-guided/` | | |
| | AFM-XL/2 (4× deep, 112-layer) | 675M | CG+DA | 1 | 1.94 | 4.54 | 292.20 | 0.79 | 0.56 | `AFM-XL-2-112layer-1NFE-guided/` | | |
| ## Available checkpoints | |
| | Variant | Model | Steps | Guidance | | |
| | --- | --- | ---: | --- | | |
| | `AFM-B-2-1NFE-guided/` | AFM-B/2 | 1 | guided | | |
| | `AFM-B-2-1NFE-noguide/` | AFM-B/2 | 1 | noguide | | |
| | `AFM-M-2-1NFE-guided/` | AFM-M/2 | 1 | guided | | |
| | `AFM-M-2-1NFE-noguide/` | AFM-M/2 | 1 | noguide | | |
| | `AFM-L-2-1NFE-guided/` | AFM-L/2 | 1 | guided | | |
| | `AFM-L-2-1NFE-noguide/` | AFM-L/2 | 1 | noguide | | |
| | `AFM-XL-2-1NFE-guided/` | AFM-XL/2 | 1 | guided | | |
| | `AFM-XL-2-1NFE-noguide/` | AFM-XL/2 | 1 | noguide | | |
| | `AFM-XL-2-2NFE-guided/` | AFM-XL/2 | 2 | guided | | |
| | `AFM-XL-2-2NFE-noguide/` | AFM-XL/2 | 2 | noguide | | |
| | `AFM-XL-2-4NFE-guided/` | AFM-XL/2 | 4 | guided | | |
| | `AFM-XL-2-56layer-1NFE-guided/` | AFM-XL/2 | 1 | guided | | |
| | `AFM-XL-2-112layer-1NFE-guided/` | AFM-XL/2 | 1 | guided | | |
| ## Inference | |
| ```python | |
| from pathlib import Path | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| model_dir = Path("./AFM-XL-2-1NFE-guided") | |
| pipe = DiffusionPipeline.from_pretrained( | |
| str(model_dir), | |
| local_files_only=True, | |
| custom_pipeline=str(model_dir / "pipeline.py"), | |
| trust_remote_code=True, | |
| torch_dtype=torch.bfloat16, | |
| ).to("cuda") | |
| image = pipe(class_labels="golden retriever", num_inference_steps=1).images[0] | |
| ``` |