Homework Assignments

The goal of the assignments in this class is to build a complete, working image generative model system with the functionality of your choice. Think of it as leveling up in a game — we all start by learning the basic controls in the beginner’s village, and as we progress, we get to choose different paths in the skill tree to specialize in. By the end of the training, we’ll all become the seasoned warriors, mages, or assassins we aspire to be!

The homework assignments are cumulative: we’ll all start with the same codebase and implement two fundamental algorithms in the first two homeworks — that’s like learning the basics in the beginner’s village. In the later two assignments, you’ll get to choose one of three specialization paths.


Specialization Paths

Starting from Homework 3, you will choose one of the following paths:

  • Fidelity: Improve image quality as much as possible
  • Controllability: Make the model controllable by users
  • Speed: Make inference as fast as possible without sacrificing too much quality

Everyone will use the same dataset, and each path will have a shared evaluation criteria.


Homework 1: Setup the codebase and implement DDPM

15% released
Due: 01/24 Sat
Set up your development environment and implement the foundational Denoising Diffusion Probabilistic Model (DDPM) algorithm.

Homework 2: Implement flow matching and choose your path

15% released
Due: 02/03 Tue
Implement flow matching algorithms and select your specialization path: Fidelity, Controllability, or Speed.

Homework 3: Implement your chosen baselines on your chosen path

20% upcoming
Due: 02/13 Fri
Implement baseline methods for your chosen specialization path.

Final Poster Presentation

15% upcoming
Due: Gradescope submission due 02/23 Mon, in-class presentation will be held 02/24 Tue and 02/26 Thu
Showcase everything you have done in the class and your novel image generative model in a poster session! Make sure to both present your own work and show up for your classmates in both sessions to receive full credits. The best poster for each path will receive a small award :).

Homework 4: Level up on your path and beat your baselines

20% upcoming
Due: 02/27 Fri
Improve upon your baseline implementation using advanced techniques. Beat your own baselines and compete with your classmates!

Compute Resources

Access to GPU compute resources is essential for training your generative models. Below are the available platforms with tutorials and guides to help you get started.

Modal

Available
Serverless cloud computing platform for running GPU workloads

AWS (Amazon Web Services)

Coming Soon
Cloud computing platform with EC2 GPU instances

SLURM Clusters

Available
Tutorials for navigating slurm-based clusters (like the ones we use at CMU)

Submission Guidelines

Submission Platform: All assignments should be submitted through Gradescope. Make sure to submit before the deadline to avoid late penalties.

What to Submit

For each homework assignment, you should submit:

  1. Code: Your implementation (typically as a public GitHub repository link or a ZIP file)
  2. Written Questions: Answers to the assignment-specific questions (in a PDF file)

Late Policy

You have 6 late days in total for the semester. Each assignment can use up to 2 late days. Late days cannot be used on the final presentation poster submission.

  • Late days are automatically applied (no need to request)
  • After using all late days, late submissions will be graded zero
  • Please contact the instructor, the EA and the TAs if you have any emergency and/or need extra accomodations

Academic Integrity

All assignments are open-internet, open-GitHub, and open-ChatGPT. You are encouraged to use all available resources!

You may:

  • Use open-source repositories and code as references
  • Use any available pre-trained models
  • Read research papers, textbooks, and tutorials
  • Use generative AI tools (ChatGPT, Cursor, Copilot, etc.)
  • Discuss approaches and concepts with classmates

You must:

  • Complete each assignment independently
  • Cite all resources and references used (including AI tools)
  • Clearly indicate which code is yours vs. adapted from other sources
  • Ensure your resulting model is novel (not just replicating existing work)

You may not:

  • Copy code directly from classmates
  • Claim other humans’ or AIs’ work as your own
  • Plagiarize from any source without attribution

Violations will result in course failure.

Getting Help

If you need help with assignments:

  • Office Hours: Check the schedule page for times and locations
  • Discord: Post questions and discuss with classmates
  • Email & DMs: For private matters, contact the instructor, the EA and/or the TAs via email or discord DMs