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
File size: 3,752 Bytes
e505e1f 887defb e505e1f 887defb | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 | ---
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]
``` |