Diffusion Course documentation

Hugging Face Diffusion Models Course

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Hugging Face Diffusion Models Course

In this free course, you will:

  • 👩‍🎓 Study the theory behind diffusion models
  • 🧨 Learn how to generate images and audio with the popular 🤗 Diffusers library
  • 🏋️‍♂️ Train your own diffusion models from scratch
  • 📻 Fine-tune existing diffusion models on new datasets
  • 🗺 Explore conditional generation and guidance
  • 🧑‍🔬 Create your own custom diffusion model pipelines


This course requires a good level in Python and a grounding in deep learning and Pytorch. If it’s not the case yet, you can check these free resources:

To upload your models to the Hugging Face Hub, you’ll need an account. You can create one for free at the following address: https://huggingface.co/join.

What is the syllabus?

The course consists in four units. Each unit is made up of a theory section, which also lists resources/papers, and two notebooks. More specifically, we have:

  • Unit 1: Introduction to diffusion models
    Introduction to 🤗 Diffusers and implementation from 0
  • Unit 2: Finetuning and guidance
    Finetuning a diffusion model on new data and adding guidance.
  • Unit 3: Stable Diffusion
    Exploring a powerful text-conditioned latent diffusion model
  • Unit 4: Doing more with diffusion
    Advanced techniques for going further with diffusion

Who are we?

About the authors:

Jonathan Whitaker is a Data Scientist/AI Researcher doing R&D with answer.ai. He likes teaching and making courses. His current focus is on generative AI, flitting between several modalities. You can find more info at: johnowhitaker.dev.

Lewis Tunstall is a machine learning engineer at Hugging Face, focused on developing open-source tools and making them accessible to the wider community. He is also a co-author of the O’Reilly book Natural Language Processing with Transformers.


Here are some answers to frequently asked questions:

  • Does taking this course lead to a certification? Currently we do not have any certification for this course. However, we are working on a certification program for the Hugging Face ecosystem — stay tuned!

  • How much time should I spend on this course? Each chapter in this course is designed to be completed in 1 week, with approximately 6-8 hours of work per week. However, you can take as much time as you need to complete the course.

  • Where can I ask a question if I have one? If you have a question about any section of the course, just click on the ”Ask a question” banner at the top of the page to be automatically redirected to the right section of the Hugging Face Discord to ask your question in the channel #diffusion-models-class.

  • Where can I get the code for the course? For each section, click on the banner at the top of the page to run the code:

Link to the Hugging Face course notebooks
  • How can I contribute to the course? There are many ways to contribute to the course! If you find a typo or a bug, please open an issue on the diffusion-models-class repo. If you would like to help translate the course into your native language, check out the instructions here.

  • Can I reuse this course? Of course! The course is released under the permissive Apache 2 license. This means that you must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use. If you would like to cite the course, please use the following BibTeX:

  author = {Hugging Face},
  title = {The Hugging Face Diffusion Models Course, 2022},
  howpublished = "\url{https://huggingface.co/course}",
  year = {2022},
  note = "[Online; accessed <today>]"

Let’s get started!

Are you ready to get started? Then go to the first unit to start the course.