DDPM EMA CIFAR-10
Model Description
This model is an EMA (Exponential Moving Average) version of the DDPM (Denoising Diffusion Probabilistic Models) trained on CIFAR-10 dataset. It's based on the original DDPM model but uses exponential moving averages of model parameters for improved stability and quality.
Model Type: Unconditional Image Generation
Architecture: DDPM
Training Dataset: CIFAR-10
Image Resolution: 32×32 pixels
License: Apache-2.0
Model Details
This model implements the DDPM approach described in the paper "Denoising Diffusion Probabilistic Models" by Jonathan Ho, Ajay Jain, and Pieter Abbeel. The EMA version provides more stable training and often better sample quality by maintaining exponentially weighted averages of model parameters.
Key Features:
- EMA Training: Uses exponential moving averages for improved model stability
- High Quality Generation: Produces high-quality 32×32 pixel images
- CIFAR-10 Classes: Generates images from all 10 CIFAR-10 categories (airplane, automobile, bird, cat, deer, dog, frog, horse, ship, truck)
- Diffusers Compatible: Fully compatible with Hugging Face Diffusers library
Usage
Basic Usage
from diffusers import DDPMPipeline
# Load the model
model_id = "FrankCCCCC/ddpm-ema-cifar10" # Replace with actual repo ID
pipeline = DDPMPipeline.from_pretrained(model_id)
# Generate an image
image = pipeline().images[0]
image.save("generated_cifar10.png")
Generate Multiple Images
from diffusers import DDPMPipeline
pipeline = DDPMPipeline.from_pretrained("FrankCCCCC/ddpm-ema-cifar10")
# Generate batch of images
images = pipeline(batch_size=4).images
# Save images
for i, image in enumerate(images):
image.save(f"generated_cifar10_{i}.png")
Advanced Usage with Different Schedulers
from diffusers import DDPMPipeline, DDIMScheduler, PNDMScheduler
pipeline = DDPMPipeline.from_pretrained("FrankCCCCC/ddpm-ema-cifar10")
# Use DDIM scheduler for faster inference
ddim_scheduler = DDIMScheduler.from_config(pipeline.scheduler.config)
pipeline.scheduler = ddim_scheduler
# Generate with fewer inference steps
image = pipeline(num_inference_steps=50).images[0]
image.save("generated_ddim.png")
Training Details
- Dataset: CIFAR-10 (50,000 training images, 32×32 RGB)
- Training Procedure: EMA version of standard DDPM training
- Model Architecture: U-Net
- Parameter Updates: Exponential moving averages applied to model weights
- Training Objective: Variational lower bound on negative log likelihood
Model Performance
The EMA version typically provides:
- Improved Stability: More consistent training dynamics
- Better Sample Quality: Often achieves better FID scores compared to non-EMA versions
- Reduced Mode Collapse: More diverse sample generation
Expected performance metrics (approximate):
- FID Score:
- 4.5216 (50K
.png
Samples are generated by the DDIM with 100 sampling steps) - 6.5398 (10K
.png
Samples are generated by the DDIM with 100 sampling steps)
- 4.5216 (50K
Inference Examples
The model generates diverse samples across all CIFAR-10 categories:
- Airplanes, automobiles, birds, cats, deer
- Dogs, frogs, horses, ships, trucks
All generated images are 32×32 pixels in RGB format.
Citation
If you use this model, please cite the original DDPM paper:
@article{ho2020denoising,
title={Denoising Diffusion Probabilistic Models},
author={Ho, Jonathan and Jain, Ajay and Abbeel, Pieter},
journal={Advances in Neural Information Processing Systems},
volume={33},
pages={6840--6851},
year={2020}
}
License
This model is released under the Apache 2.0 License.
- Downloads last month
- 716