University of California, Berkeley seal
Programming Project #3
CS180: Intro to Computer Vision and Computational Photography
University of California, Berkeley

Fun with Flow Models

Text-guided editingReimagine an image with a prompt.
"Make it Real"Noise it, then flow back.
Look from a distanceWaterfall / skull hybrid.
Turn it upside downA new story at 180°.

Hover, tap, or focus and press Enter to explore.

PixNerd results from our notebook runs.

Class-conditioned MNIST samples from our Part B notebook
From noise to digits · our Part B model after 10 epochs

Overview

This project has two separate parts. First, use a pretrained flow model to generate and edit images. Then, build and train your own flow-matching model.

Part A: Exploring the Power of Flow Models

Use PixNerd to explore noisy training inputs, velocity predictions, Euler sampling, and classifier-free guidance. Part A has three sections: Visualizing Training and Sampling, Conditional Generation and Guidance, and Creative Applications. Apply these tools to image editing, visual anagrams, and hybrid images. No model training is required in Part A. Link→

Part B: Flow Matching from Scratch

Build a UNet and train it on MNIST. Start with single-step denoising, then train time-conditioned and class-conditioned flow-matching models and sample new images. Link→

Deliverables

Each part has its own instructions and deliverable checklist. Prepare your code and a project webpage showing your results and explanations for both parts.

Project deadline: October 20, 2026.

Compute

We provide notebooks on Google Colab through the Part A and Part B assignment pages. If your Colab GPU quota runs out or a GPU is unavailable, use Kaggle to continue working with the same notebooks. Kaggle also has usage limits, so save your work and stop GPU sessions when you are done. Follow our Kaggle setup guide → to get started.