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)

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
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train FrankCCCCC/ddpm_ema_cifar10