# Diffusion Models: From Noise to Images

> A first-principles introduction to image diffusion for viewers who already understand neural networks. The lecture corrupts a clean image through calibrated Gaussian steps, derives the direct forward formula, and turns the known corruption into supervised noise prediction. It then samples in reverse from pure noise, showing broad structure appearing before edges and texture, before adding text conditioning and classifier-free guidance. The final comparison explains why stronger guidance can improve prompt adherence while reducing diversity and eventually harming naturalness.

- Canonical watch page: [Diffusion Models: From Noise to Images](https://academa.ai/lectures/diffusion-models-learning-to-denoise)
- Publisher: [Academa, Inc.](https://academa.ai)
- Subject: Machine Learning
- Published: 2026-08-28T22:51:26.000Z
- Updated: 2026-08-28T22:51:26.000Z
- Duration: PT1368S (22 minutes 48 seconds)
- Chapters: 5
- Views: 0
- Language: en-US
- Access: Free
- Video stream: [HLS content](https://academa.ai/media/l/01M14TYPR7X214TNQ14P2BSS4N/0/dark/master.m3u8)
- Audiovisual record: [Semantic JSON](https://academa.ai/media/l/01M14TYPR7X214TNQ14P2BSS4N/0/semantic.json)
- Thumbnail: [Image](https://academa.ai/media/l/01M14TYPR7X214TNQ14P2BSS4N/0/dark/poster.jpg)

## Description

Learn how diffusion models add noise, train a supervised noise predictor, reverse the process, and steer images with text guidance.

## Chapters

- [00:00–04:9.388 · The Forward Process](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=0)
- [04:9.388–07:54.299 · The Forward Equations](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=249.388)
- [07:54.299–12:39.392 · Training the Noise Predictor](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=474.29925)
- [12:39.392–17:9.936 · Reversing the Process](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=759.3917291666667)
- [17:9.936–22:48 · Text Conditioning and Guidance](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1029.9356458333334)

## Transcript

### [00:00 · The Forward Process](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=0)

A diffusion model learns to generate images by first studying a much easier operation: destroying them. We will take one clean training image, add a little random noise, repeat that operation many times, and then ask what a neural network would need to learn in order to reverse it. Here is our clean data example. I am using a simple landscape so that its large shapes and small details are easy to track. In a real training set, this position would hold an ordinary photograph represented by a tensor of pixel values. Call that image x zero. The subscript does not name a pixel. It names a time in a corruption process, with time zero meaning that no artificial noise has yet been added. Now take one small step. Add an independent random value to every pixel, while retaining almost all of the image that was already there. One step would be difficult to notice, so this first comparison shows the effect after one hundred such steps. The house, mountains, horizon, and sun are still recognizable. But local pixel values have begun to wander. The corruption is not a blur that only removes high frequencies. It is random noise entering throughout the image. Continue to step four hundred. More of the observed tensor now comes from noise, and less comes from the original image. The broad composition survives, while windows, roof edges, and smaller color boundaries become unreliable. Push farther. By step seven hundred, the random component dominates most local evidence. You may still infer that something large sits near the center, but the image itself no longer supports confident object recognition. Near the end, even those weak global clues disappear. The process has not replaced the image with one fixed gray card. Every run ends in a different random tensor whose values follow a simple Gaussian distribution. That final simplicity is deliberate. Natural images occupy a complicated and highly structured part of pixel space. Standard Gaussian noise is a distribution we can sample immediately, without knowing anything about cats, houses, faces, or landscapes. So the forward process builds a bridge between two distributions. At one end are real images from the training data. At the other end is nearly pure Gaussian noise, which is easy to manufacture whenever we want a new sample. Write the bridge as a chain. We begin at x zero, take one random transition to x one, another to x two, and continue until x T. This is called the forward process. Forward refers to the direction from data toward noise. It is not the direction in which images are generated, and it does not require a neural network. We choose the corruption rule ourselves. That means we know exactly how much signal and how much random disturbance appear at every step. The entire forward chain can be simulated on demand from any training image. At the chosen final time, x T is approximately a standard Gaussian tensor. The approximation matters: schedules are designed so that almost no usable information about x zero remains, while the endpoint is numerically well behaved. One subtlety is worth fixing now. We do not repeatedly add raw noise without restraint, because the variance would grow without bound. Each step slightly reduces the existing signal while adding a calibrated amount of fresh noise. That calibration gives us clean algebra, stable scales, and a known target at every noise level. Those three facts will turn image generation into a supervised learning problem rather than a demand that a network invent an entire image in one unexplained leap.

### [04:9.388 · The Forward Equations](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=249.388)

Now let us make one forward step precise. Choose a small positive number beta t. This is the noise schedule at step t, and it controls how much new uncertainty enters during that transition. Define alpha t as one minus beta t. When beta is small, alpha is close to one, which is the algebraic statement that a single step should preserve most of its input. The next image has two ingredients. Multiply the current image by square root alpha t, then add an independent standard Gaussian tensor multiplied by square root one minus alpha t. Those square roots are not decorative. Variances scale with the square of a multiplier, so this choice keeps the total variance controlled as signal is exchanged for noise. The same statement can be written as a conditional distribution. Given x t minus one, x t is Gaussian. Its mean is the slightly reduced image, and its covariance is one minus alpha t times the identity. Every pixel channel receives independent Gaussian disturbance in this basic formulation. The image structure comes from the mean, while the covariance tells us how widely the next sample may wander around that mean. A remarkable simplification appears when we compose many of these Gaussian steps. Begin with the one-step rule we just wrote. Substitute the rule for x t minus one. The surviving signal multipliers multiply, while the independent Gaussian terms combine into another Gaussian term. Repeat all the way back to x zero. Define alpha bar t as the product of every alpha up to time t. The result is the closed form. At any chosen time t, x t equals square root alpha bar t times the clean image, plus square root one minus alpha bar t times one standard Gaussian tensor. This means training never needs to simulate all earlier corruption steps. Sample a time t, sample one epsilon, and construct x t directly from the original image. The picture on the right is a toy two-dimensional version of that mixture. Blue is a fixed signal vector, red is a fixed noise vector, and yellow is the noisy observation formed from both. At a low noise fraction, yellow stays close to the blue signal. The noise changes it, but signal still controls the result. Increase the noise fraction. The blue contribution shrinks, the red contribution gains weight, and the observed vector turns away from its original direction. Near the end, almost all reliable information comes from epsilon. The original signal has not been abruptly deleted. Its coefficient has been driven close to zero by the accumulated schedule. A useful summary is the signal-to-noise ratio. Signal power is alpha bar t, noise power is one minus alpha bar t, so their ratio falls as t increases. Keep three meanings attached to the notation. Beta t controls the fresh noise in one transition. Alpha bar t records the signal surviving from the original image. And the closed form lets one epsilon produce any desired training noise level. We chose every part of this corruption process. Therefore, for each noisy image, we know the clean source, the time, and the exact random tensor that was mixed in. That is the opening a supervised learner needs.

### [07:54.299 · Training the Noise Predictor](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=474.29925)

The forward process gives us noisy images, but training still needs a target. What should the neural network predict when it receives a noisy image x t and the time t? One tempting answer is the clean image x zero. Some diffusion parameterizations do predict clean data or a related quantity. But the most common first formulation asks for something even more directly known: the noise epsilon that we sampled ourselves. Here is the complete learning problem as a pipeline. Begin with a clean training image x zero. Independently sample a Gaussian noise tensor epsilon. It has exactly the same shape as the image tensor, with one random value for every channel and spatial location. Choose a time t, read the schedule coefficients at that time, and combine the clean image with epsilon to construct x t. We now possess both the input and the label. Feed x t and t to a neural network. The time input matters because the same visible pattern means something different at a low noise level and at a high one. The network returns a tensor with the image's shape. Call it epsilon hat, the network's estimate of the particular noise tensor used to create this example. Compare epsilon hat with the known epsilon using squared error. Pixel by pixel and channel by channel, the loss penalizes disagreement between the generated label and the prediction. Then backpropagate through the denoising network exactly as in ordinary supervised learning. The parameters move in the direction that reduces expected noise-prediction error. There is no human annotation step. Labels are free because the forward process manufactured them. Yet the statistical structure is completely supervised: each input is paired with a definite target tensor. Let us run one training example in the order an implementation uses. First, select a clean image from the data set. Second, choose a time uniformly from the allowed diffusion steps. Across training, this makes the same network practise very light denoising, medium denoising, and recovery from extremely noisy inputs. Third, draw a fresh Gaussian epsilon. Because it is newly sampled, the same clean image can generate unlimited distinct supervised examples. Fourth, use the closed-form forward equation to construct x t directly. There is no need to execute every earlier noise step. Fifth, ask the network for epsilon and compare it with the sampled target. Repeat with new images, times, and noise tensors until the predictor works across the entire schedule. The equations say the same thing compactly. Sample t uniformly from one through T. Sample epsilon from a standard Gaussian. This epsilon is randomness, but once sampled it becomes an exact observed label. Mix x zero and epsilon using the schedule at t. The result x t is the network input. The network receives x t and t, and predicts epsilon hat. In image models, this predictor is often a convolutional network or transformer with multiscale spatial features, but its architecture does not change the learning target. Finally minimize expected squared error. Expectations mean that we average over clean images, sampled times, and sampled noise. Standard minibatches approximate that average. Now compare this with demanding a finished image directly. A random seed does not come with one uniquely correct photograph. Many outputs could be plausible, so ordinary squared error has no single natural target. Noise prediction is different. We chose the clean image, chose t, sampled epsilon, and computed x t. The exact epsilon is therefore a valid label for that exact input. The network is still learning something profound. To identify which fluctuations are noise, it must learn what natural image structure looks like at every scale. But the optimization interface remains an ordinary supervised regression problem. Once that predictor is accurate, we can present a noisy tensor, estimate the disturbance hidden inside it, and take a carefully calibrated step toward a cleaner tensor. Repeating that operation is the generative process.

### [12:39.392 · Reversing the Process](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=759.3917291666667)

Generation begins at the endpoint of the forward process. Sample x T directly from standard Gaussian noise. There is no hidden photograph underneath this particular tensor, because we did not obtain it by corrupting a data image. Ask the trained network which part of this tensor looks like noise at time T. Then use the reverse transition to produce x T minus one, a sample expected to contain very slightly more image structure. One step is not supposed to reveal a finished picture. Training taught the network a family of modest corrections, one for every noise level. Image generation comes from composing those corrections. After many early reverse steps, broad statistical organization appears. Large regions begin to behave like sky and ground. A horizon and mountain mass can emerge even though individual pixels remain highly uncertain. Continue through medium noise levels. The process commits to object-scale structure: a bright region in the sky, a building-sized block, and a roof shape. These are global decisions about composition rather than finished texture. This ordering is typical, not an absolute law. High-noise inputs preserve little local evidence, so early reverse steps mainly settle low-frequency, large-scale relationships. Fine edges become recoverable only after the broader image has stabilized. At lower noise, edges sharpen. The network can now distinguish a wall from its windows, a roof boundary from the sky, and one contour from a nearby contour. The last steps make smaller corrections. They adjust local contrast, texture, color consistency, and tiny geometric details while preserving the composition chosen earlier. The completed image is not retrieved from a training record. It is one sample reached by starting at a newly drawn noise tensor and following the learned reverse dynamics. A second initial noise tensor would usually produce a different landscape, arrangement, or object identity. Randomness at the start supplies diversity, while the learned denoiser keeps the trajectory near the distribution of natural images. Now inspect one reverse step. First, the neural network predicts epsilon hat t from the current noisy image and the current time. The reverse mean uses that prediction with coefficients derived from the same forward schedule. The long expression is calibrated subtraction, not simply x t minus epsilon hat. Why the coefficients? The forward process scaled both signal and noise at every transition. A valid reverse step must undo that scaling while estimating which component belongs to the clean-image direction. For a standard stochastic diffusion sampler, add a calibrated Gaussian term sigma t z. This does not carelessly put back the noise we removed. It represents uncertainty in which slightly cleaner image could have produced the current one. That uncertainty can also be handled by deterministic trajectories or by samplers using fewer, larger numerical steps. These are alternative ways to traverse a learned denoising field. The central model is still the time-dependent predictor trained on noisy images. The full sampling algorithm is now short enough to read as a loop. Start by drawing x T from a standard Gaussian. At the current time, run the network once to predict the noise component. Use that prediction and the schedule to sample a slightly cleaner state. The state remains noisy unless t is already near zero. Decrease t and repeat. The same network is reused at every step, with its time input telling it which denoising regime is required. At zero, the state is interpreted as an image sample. Pure noise supplied the initial randomness; the learned sequence of local reverse decisions supplied recognizable structure. We can now generate plausible images, but we have not told the model which plausible image we want. The final ingredient is conditioning, where a text prompt steers the same denoising process toward a chosen description.

### [17:9.936 · Text Conditioning and Guidance](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1029.9356458333334)

To request a particular image, add a condition c. Let the prompt be: a red sailboat at sunset. The reverse process remains a sequence of denoising steps, but every prediction may now depend on that description. A text encoder converts the prompt into a sequence of learned vectors. These vectors represent tokens and their relationships, rather than a single hand-written list of visual rules. The noisy image x t enters the denoiser as before. Time t still tells the network how much corruption to expect. Text features also enter the denoising network. In common architectures, cross-attention lets spatial image features query the token sequence. A region beginning to resemble a boat can therefore respond strongly to the boat token. The output is still a noise estimate, not a finished image. Conditioning changes which noise the model predicts should be removed from a sample compatible with the prompt. This distinction keeps the generative mechanism unified. An unconditional model and a text-conditioned model both perform learned reverse diffusion. The condition changes the direction of each local step. At an early, very noisy step, prompt information mainly influences global choices. The words sailboat and sunset can affect composition, object category, and broad color relationships before any rope or edge exists. At later steps, the same conditioning can influence finer details: the outline of a sail, reflections on water, and local texture. The condition is available throughout the trajectory, but what it can usefully control changes with the noise level. During training, the model sees image and text pairs. The noise target is still known exactly, so conditioning does not destroy the supervised objective. It adds information the predictor may use to estimate epsilon. A plain conditional prediction may follow the text, but practitioners often want a stronger response. Classifier-free guidance supplies a controllable way to amplify the prompt's influence without training a separate image classifier. The method asks the same network for two predictions. First, run it with an empty condition. This estimates how the sample should denoise without knowing the prompt. Second, run it with condition c. This prediction includes both general image knowledge and the influence of the text. Subtract the unconditional prediction from the conditional one. The difference points toward a denoising decision that makes the current sample more compatible with the prompt. Here is the guidance formula. Start with the unconditional prediction. Then multiply the conditional direction by a guidance strength w and add it. At w equal to zero, the conditional direction contributes nothing. At w equal to one, the formula returns the ordinary conditional prediction. Values above one extrapolate beyond it. The three pictures are a schematic comparison from the same prompt. With zero guidance, the model can produce a plausible image while largely ignoring the requested sailboat. At one, the ordinary conditional prediction introduces the requested boat and sunset while retaining the model's natural range of possible compositions. Turn guidance much higher and prompt features are pushed harder. The boat may become more unmistakable, colors more forceful, and composition more literal. But stronger is not simply better. Extrapolation can move the trajectory away from the distribution on which the denoiser was trained. Excessive guidance may create harsh contrast, repeated edges, distorted geometry, or artificial texture. It also reduces diversity. If the conditional direction is amplified on every sample, different initial noise tensors are pulled toward a narrower set of prompt-compatible solutions. So guidance strength controls a tradeoff. Turning it up usually improves literal prompt adherence, but tends to sacrifice variation and can eventually sacrifice naturalness and image quality. There is no universal best number. The useful range depends on the model, its training, the sampler, the prompt, and the desired balance between faithfulness and variety. Now the complete diffusion story fits into four steps. First, define a forward process that turns real images into known Gaussian noise. Second, create supervised examples by sampling a clean image, a time, and epsilon. Train a neural network to predict that exact epsilon from the noisy image and time. Third, generate by starting from fresh Gaussian noise and applying learned reverse steps. Large-scale structure usually settles before fine detail because the available information changes across noise levels. Fourth, condition the denoiser on text. Classifier-free guidance amplifies the conditional direction, trading diversity and eventually naturalness for stronger prompt adherence. The central trick is therefore not that one network learns to paint an image in a single leap. It learns a supervised family of noise-removal decisions, and generation emerges when those modest decisions are chained from randomness all the way to an image.

## About Academa, Inc.

Academa makes technical knowledge easier to understand through visual lectures and lets learners request new lecture videos on the topics they need.

## Complete audiovisual record

Immutable source: [semantic.json](https://academa.ai/media/l/01M14TYPR7X214TNQ14P2BSS4N/0/semantic.json)

Record version: 1. Render attempt: 0.

### How to read this timeline

Each scene owns its object identifiers. A beat's board is the complete board when listed, empty when marked empty, and unchanged from the nearest earlier listed board in the same scene when marked unchanged. Action times are absolute positions in the published video.

### Scene 1: [The Forward Process](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=0)

Span: 00:00–04:9.388 (0s–249.388s).

#### Objects

- card: a Title that says "Generative Deep Learning — Diffusion Models: From Noise to Images"
- chain: a Math \[text\] that says "$x\_0 arrow.r x\_1 arrow.r x\_2 arrow.r dots arrow.r x\_T$"
- clean\_caption: a Math \[text\] that says "$x\_0$"
- destination: a Math \[text\] that says "$x\_T approx epsilon, quad epsilon in cal(N)(0,I)$"
- heading\_chain: a Heading that says "The Forward Chain"
- heading\_first: a Heading that says "A Clean Image, Corrupted Gradually"
- heading\_later: a Heading that says "Eventually the Signal Disappears"
- heavy\_caption: a Math \[text\] that says "$x\_700$"
- light\_caption: a Math \[text\] that says "$x\_100$"
- middle\_caption: a Math \[text\] that says "$x\_400$"
- noise\_caption: a Math \[text\] that says "$x\_T$"
- parts: a Polygon \[blue\] drawn in picture (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34)
- parts\_10: a Polygon \[cyan\] drawn in picture (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9)
- parts\_11: a Polygon \[blue\] drawn in picture\_2 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34)
- parts\_12: a Polygon \[green\] drawn in picture\_2 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4)
- parts\_13: a Polygon \[gray\] drawn in picture\_2 (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65)
- parts\_14: a Polygon \[gray\] drawn in picture\_2 (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48)
- parts\_15: a Circle \[yellow\] drawn in picture\_2 (center=(6.7, 4.9), radius=0.52, filled=True)
- parts\_16: a Polygon \[red\] drawn in picture\_2 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72)
- parts\_17: a Polygon \[yellow\] drawn in picture\_2 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72)
- parts\_18: a Polygon \[gray\] drawn in picture\_2 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85)
- parts\_19: a Polygon \[cyan\] drawn in picture\_2 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9)
- parts\_2: a Polygon \[green\] drawn in picture (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4)
- parts\_20: a Polygon \[cyan\] drawn in picture\_2 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9)
- parts\_21: a Polygon \[blue\] drawn in picture\_3 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34)
- parts\_22: a Polygon \[green\] drawn in picture\_3 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4)
- parts\_23: a Polygon \[gray\] drawn in picture\_3 (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65)
- parts\_24: a Polygon \[gray\] drawn in picture\_3 (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48)
- parts\_25: a Circle \[yellow\] drawn in picture\_3 (center=(6.7, 4.9), radius=0.52, filled=True)
- parts\_26: a Polygon \[red\] drawn in picture\_3 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72)
- parts\_27: a Polygon \[yellow\] drawn in picture\_3 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72)
- parts\_28: a Polygon \[gray\] drawn in picture\_3 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85)
- parts\_29: a Polygon \[cyan\] drawn in picture\_3 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9)
- parts\_3: a Polygon \[gray\] drawn in picture (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65)
- parts\_30: a Polygon \[cyan\] drawn in picture\_3 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9)
- parts\_31: a Polygon \[blue\] drawn in picture\_4 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34)
- parts\_32: a Polygon \[green\] drawn in picture\_4 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4)
- parts\_33: a Polygon \[gray\] drawn in picture\_4 (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65)
- parts\_34: a Polygon \[gray\] drawn in picture\_4 (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48)
- parts\_35: a Circle \[yellow\] drawn in picture\_4 (center=(6.7, 4.9), radius=0.52, filled=True)
- parts\_36: a Polygon \[red\] drawn in picture\_4 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72)
- parts\_37: a Polygon \[yellow\] drawn in picture\_4 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72)
- parts\_38: a Polygon \[gray\] drawn in picture\_4 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85)
- parts\_39: a Polygon \[cyan\] drawn in picture\_4 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9)
- parts\_4: a Polygon \[gray\] drawn in picture (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48)
- parts\_40: a Polygon \[cyan\] drawn in picture\_4 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9)
- parts\_41: a Polygon \[blue\] drawn in picture\_5 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34)
- parts\_42: a Polygon \[green\] drawn in picture\_5 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4)
- parts\_43: a Polygon \[gray\] drawn in picture\_5 (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65)
- parts\_44: a Polygon \[gray\] drawn in picture\_5 (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48)
- parts\_45: a Circle \[yellow\] drawn in picture\_5 (center=(6.7, 4.9), radius=0.52, filled=True)
- parts\_46: a Polygon \[red\] drawn in picture\_5 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72)
- parts\_47: a Polygon \[yellow\] drawn in picture\_5 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72)
- parts\_48: a Polygon \[gray\] drawn in picture\_5 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85)
- parts\_49: a Polygon \[cyan\] drawn in picture\_5 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9)
- parts\_5: a Circle \[yellow\] drawn in picture (center=(6.7, 4.9), radius=0.52, filled=True)
- parts\_50: a Polygon \[cyan\] drawn in picture\_5 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9)
- parts\_6: a Polygon \[red\] drawn in picture (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72)
- parts\_7: a Polygon \[yellow\] drawn in picture (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72)
- parts\_8: a Polygon \[gray\] drawn in picture (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85)
- parts\_9: a Polygon \[cyan\] drawn in picture (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9)
- picture: a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0))
- picture\_2: a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0))
- picture\_3: a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0))
- picture\_4: a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0))
- picture\_5: a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0))
- polygon: a Polygon \[red\] drawn in picture\_2 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.25)
- polygon\_10: a Polygon \[magenta\] drawn in picture\_2 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.25)
- polygon\_100: a Polygon \[red\] drawn in picture\_5 (vertices=((3, 3), (4.0, 3), (4.0, 4.0), (3, 4.0)), fill\_opacity=1.0)
- polygon\_101: a Polygon \[blue\] drawn in picture\_5 (vertices=((4, 5), (5.0, 5), (5.0, 6.0), (4, 6.0)), fill\_opacity=1.0)
- polygon\_102: a Polygon \[red\] drawn in picture\_5 (vertices=((5, 1), (6.0, 1), (6.0, 2.0), (5, 2.0)), fill\_opacity=1.0)
- polygon\_103: a Polygon \[blue\] drawn in picture\_5 (vertices=((6, 3), (7.0, 3), (7.0, 4.0), (6, 4.0)), fill\_opacity=1.0)
- polygon\_104: a Polygon \[red\] drawn in picture\_5 (vertices=((7, 5), (8.0, 5), (8.0, 6.0), (7, 6.0)), fill\_opacity=1.0)
- polygon\_105: a Polygon \[magenta\] drawn in picture\_5 (vertices=((0, 2), (1.0, 2), (1.0, 3.0), (0, 3.0)), fill\_opacity=1.0)
- polygon\_106: a Polygon \[green\] drawn in picture\_5 (vertices=((1, 4), (2.0, 4), (2.0, 5.0), (1, 5.0)), fill\_opacity=1.0)
- polygon\_107: a Polygon \[magenta\] drawn in picture\_5 (vertices=((2, 0), (3.0, 0), (3.0, 1.0), (2, 1.0)), fill\_opacity=1.0)
- polygon\_108: a Polygon \[green\] drawn in picture\_5 (vertices=((3, 2), (4.0, 2), (4.0, 3.0), (3, 3.0)), fill\_opacity=1.0)
- polygon\_109: a Polygon \[magenta\] drawn in picture\_5 (vertices=((4, 4), (5.0, 4), (5.0, 5.0), (4, 5.0)), fill\_opacity=1.0)
- polygon\_11: a Polygon \[red\] drawn in picture\_3 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.48)
- polygon\_110: a Polygon \[green\] drawn in picture\_5 (vertices=((5, 0), (6.0, 0), (6.0, 1.0), (5, 1.0)), fill\_opacity=1.0)
- polygon\_111: a Polygon \[magenta\] drawn in picture\_5 (vertices=((6, 2), (7.0, 2), (7.0, 3.0), (6, 3.0)), fill\_opacity=1.0)
- polygon\_112: a Polygon \[green\] drawn in picture\_5 (vertices=((7, 4), (8.0, 4), (8.0, 5.0), (7, 5.0)), fill\_opacity=1.0)
- polygon\_113: a Polygon \[gray\] drawn in picture\_5 (vertices=((0, 1), (1.0, 1), (1.0, 2.0), (0, 2.0)), fill\_opacity=1.0)
- polygon\_114: a Polygon \[yellow\] drawn in picture\_5 (vertices=((1, 3), (2.0, 3), (2.0, 4.0), (1, 4.0)), fill\_opacity=1.0)
- polygon\_115: a Polygon \[gray\] drawn in picture\_5 (vertices=((2, 5), (3.0, 5), (3.0, 6.0), (2, 6.0)), fill\_opacity=1.0)
- polygon\_116: a Polygon \[yellow\] drawn in picture\_5 (vertices=((3, 1), (4.0, 1), (4.0, 2.0), (3, 2.0)), fill\_opacity=1.0)
- polygon\_117: a Polygon \[gray\] drawn in picture\_5 (vertices=((4, 3), (5.0, 3), (5.0, 4.0), (4, 4.0)), fill\_opacity=1.0)
- polygon\_118: a Polygon \[yellow\] drawn in picture\_5 (vertices=((5, 5), (6.0, 5), (6.0, 6.0), (5, 6.0)), fill\_opacity=1.0)
- polygon\_119: a Polygon \[gray\] drawn in picture\_5 (vertices=((6, 1), (7.0, 1), (7.0, 2.0), (6, 2.0)), fill\_opacity=1.0)
- polygon\_12: a Polygon \[blue\] drawn in picture\_3 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.48)
- polygon\_120: a Polygon \[yellow\] drawn in picture\_5 (vertices=((7, 3), (8.0, 3), (8.0, 4.0), (7, 4.0)), fill\_opacity=1.0)
- polygon\_13: a Polygon \[red\] drawn in picture\_3 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.48)
- polygon\_14: a Polygon \[blue\] drawn in picture\_3 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.48)
- polygon\_15: a Polygon \[red\] drawn in picture\_3 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.48)
- polygon\_16: a Polygon \[blue\] drawn in picture\_3 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.48)
- polygon\_17: a Polygon \[red\] drawn in picture\_3 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.48)
- polygon\_18: a Polygon \[blue\] drawn in picture\_3 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.48)
- polygon\_19: a Polygon \[green\] drawn in picture\_3 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.48)
- polygon\_2: a Polygon \[blue\] drawn in picture\_2 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.25)
- polygon\_20: a Polygon \[magenta\] drawn in picture\_3 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.48)
- polygon\_21: a Polygon \[green\] drawn in picture\_3 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.48)
- polygon\_22: a Polygon \[magenta\] drawn in picture\_3 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.48)
- polygon\_23: a Polygon \[green\] drawn in picture\_3 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.48)
- polygon\_24: a Polygon \[magenta\] drawn in picture\_3 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.48)
- polygon\_25: a Polygon \[green\] drawn in picture\_3 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.48)
- polygon\_26: a Polygon \[magenta\] drawn in picture\_3 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.48)
- polygon\_27: a Polygon \[yellow\] drawn in picture\_3 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.48)
- polygon\_28: a Polygon \[gray\] drawn in picture\_3 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.48)
- polygon\_29: a Polygon \[yellow\] drawn in picture\_3 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.48)
- polygon\_3: a Polygon \[red\] drawn in picture\_2 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.25)
- polygon\_30: a Polygon \[gray\] drawn in picture\_3 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.48)
- polygon\_31: a Polygon \[yellow\] drawn in picture\_3 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.48)
- polygon\_32: a Polygon \[gray\] drawn in picture\_3 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.48)
- polygon\_33: a Polygon \[yellow\] drawn in picture\_3 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.48)
- polygon\_34: a Polygon \[gray\] drawn in picture\_3 (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=0.48)
- polygon\_35: a Polygon \[red\] drawn in picture\_4 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.72)
- polygon\_36: a Polygon \[blue\] drawn in picture\_4 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.72)
- polygon\_37: a Polygon \[red\] drawn in picture\_4 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.72)
- polygon\_38: a Polygon \[blue\] drawn in picture\_4 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.72)
- polygon\_39: a Polygon \[red\] drawn in picture\_4 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.72)
- polygon\_4: a Polygon \[blue\] drawn in picture\_2 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.25)
- polygon\_40: a Polygon \[blue\] drawn in picture\_4 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.72)
- polygon\_41: a Polygon \[red\] drawn in picture\_4 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.72)
- polygon\_42: a Polygon \[blue\] drawn in picture\_4 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.72)
- polygon\_43: a Polygon \[green\] drawn in picture\_4 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.72)
- polygon\_44: a Polygon \[magenta\] drawn in picture\_4 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.72)
- polygon\_45: a Polygon \[green\] drawn in picture\_4 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.72)
- polygon\_46: a Polygon \[magenta\] drawn in picture\_4 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.72)
- polygon\_47: a Polygon \[green\] drawn in picture\_4 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.72)
- polygon\_48: a Polygon \[magenta\] drawn in picture\_4 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.72)
- polygon\_49: a Polygon \[green\] drawn in picture\_4 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.72)
- polygon\_5: a Polygon \[red\] drawn in picture\_2 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.25)
- polygon\_50: a Polygon \[magenta\] drawn in picture\_4 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.72)
- polygon\_51: a Polygon \[yellow\] drawn in picture\_4 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.72)
- polygon\_52: a Polygon \[gray\] drawn in picture\_4 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.72)
- polygon\_53: a Polygon \[yellow\] drawn in picture\_4 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.72)
- polygon\_54: a Polygon \[gray\] drawn in picture\_4 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.72)
- polygon\_55: a Polygon \[yellow\] drawn in picture\_4 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.72)
- polygon\_56: a Polygon \[gray\] drawn in picture\_4 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.72)
- polygon\_57: a Polygon \[yellow\] drawn in picture\_4 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.72)
- polygon\_58: a Polygon \[gray\] drawn in picture\_4 (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=0.72)
- polygon\_59: a Polygon \[blue\] drawn in picture\_4 (vertices=((0, 3), (1.0, 3), (1.0, 4.0), (0, 4.0)), fill\_opacity=0.72)
- polygon\_6: a Polygon \[blue\] drawn in picture\_2 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.25)
- polygon\_60: a Polygon \[red\] drawn in picture\_4 (vertices=((1, 5), (2.0, 5), (2.0, 6.0), (1, 6.0)), fill\_opacity=0.72)
- polygon\_61: a Polygon \[blue\] drawn in picture\_4 (vertices=((2, 1), (3.0, 1), (3.0, 2.0), (2, 2.0)), fill\_opacity=0.72)
- polygon\_62: a Polygon \[red\] drawn in picture\_4 (vertices=((3, 3), (4.0, 3), (4.0, 4.0), (3, 4.0)), fill\_opacity=0.72)
- polygon\_63: a Polygon \[blue\] drawn in picture\_4 (vertices=((4, 5), (5.0, 5), (5.0, 6.0), (4, 6.0)), fill\_opacity=0.72)
- polygon\_64: a Polygon \[red\] drawn in picture\_4 (vertices=((5, 1), (6.0, 1), (6.0, 2.0), (5, 2.0)), fill\_opacity=0.72)
- polygon\_65: a Polygon \[blue\] drawn in picture\_4 (vertices=((6, 3), (7.0, 3), (7.0, 4.0), (6, 4.0)), fill\_opacity=0.72)
- polygon\_66: a Polygon \[red\] drawn in picture\_4 (vertices=((7, 5), (8.0, 5), (8.0, 6.0), (7, 6.0)), fill\_opacity=0.72)
- polygon\_67: a Polygon \[magenta\] drawn in picture\_4 (vertices=((0, 2), (1.0, 2), (1.0, 3.0), (0, 3.0)), fill\_opacity=0.72)
- polygon\_68: a Polygon \[green\] drawn in picture\_4 (vertices=((1, 4), (2.0, 4), (2.0, 5.0), (1, 5.0)), fill\_opacity=0.72)
- polygon\_69: a Polygon \[magenta\] drawn in picture\_4 (vertices=((2, 0), (3.0, 0), (3.0, 1.0), (2, 1.0)), fill\_opacity=0.72)
- polygon\_7: a Polygon \[red\] drawn in picture\_2 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.25)
- polygon\_70: a Polygon \[green\] drawn in picture\_4 (vertices=((3, 2), (4.0, 2), (4.0, 3.0), (3, 3.0)), fill\_opacity=0.72)
- polygon\_71: a Polygon \[magenta\] drawn in picture\_4 (vertices=((4, 4), (5.0, 4), (5.0, 5.0), (4, 5.0)), fill\_opacity=0.72)
- polygon\_72: a Polygon \[green\] drawn in picture\_4 (vertices=((5, 0), (6.0, 0), (6.0, 1.0), (5, 1.0)), fill\_opacity=0.72)
- polygon\_73: a Polygon \[red\] drawn in picture\_5 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=1.0)
- polygon\_74: a Polygon \[blue\] drawn in picture\_5 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=1.0)
- polygon\_75: a Polygon \[red\] drawn in picture\_5 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=1.0)
- polygon\_76: a Polygon \[blue\] drawn in picture\_5 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=1.0)
- polygon\_77: a Polygon \[red\] drawn in picture\_5 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=1.0)
- polygon\_78: a Polygon \[blue\] drawn in picture\_5 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=1.0)
- polygon\_79: a Polygon \[red\] drawn in picture\_5 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=1.0)
- polygon\_8: a Polygon \[blue\] drawn in picture\_2 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.25)
- polygon\_80: a Polygon \[blue\] drawn in picture\_5 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=1.0)
- polygon\_81: a Polygon \[green\] drawn in picture\_5 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=1.0)
- polygon\_82: a Polygon \[magenta\] drawn in picture\_5 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=1.0)
- polygon\_83: a Polygon \[green\] drawn in picture\_5 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=1.0)
- polygon\_84: a Polygon \[magenta\] drawn in picture\_5 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=1.0)
- polygon\_85: a Polygon \[green\] drawn in picture\_5 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=1.0)
- polygon\_86: a Polygon \[magenta\] drawn in picture\_5 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=1.0)
- polygon\_87: a Polygon \[green\] drawn in picture\_5 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=1.0)
- polygon\_88: a Polygon \[magenta\] drawn in picture\_5 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=1.0)
- polygon\_89: a Polygon \[yellow\] drawn in picture\_5 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=1.0)
- polygon\_9: a Polygon \[green\] drawn in picture\_2 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.25)
- polygon\_90: a Polygon \[gray\] drawn in picture\_5 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=1.0)
- polygon\_91: a Polygon \[yellow\] drawn in picture\_5 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=1.0)
- polygon\_92: a Polygon \[gray\] drawn in picture\_5 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=1.0)
- polygon\_93: a Polygon \[yellow\] drawn in picture\_5 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=1.0)
- polygon\_94: a Polygon \[gray\] drawn in picture\_5 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=1.0)
- polygon\_95: a Polygon \[yellow\] drawn in picture\_5 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=1.0)
- polygon\_96: a Polygon \[gray\] drawn in picture\_5 (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=1.0)
- polygon\_97: a Polygon \[blue\] drawn in picture\_5 (vertices=((0, 3), (1.0, 3), (1.0, 4.0), (0, 4.0)), fill\_opacity=1.0)
- polygon\_98: a Polygon \[red\] drawn in picture\_5 (vertices=((1, 5), (2.0, 5), (2.0, 6.0), (1, 6.0)), fill\_opacity=1.0)
- polygon\_99: a Polygon \[blue\] drawn in picture\_5 (vertices=((2, 1), (3.0, 1), (3.0, 2.0), (2, 2.0)), fill\_opacity=1.0)
- step\_note: a Panel that says "Each forward step keeps most of the current image and adds a small, independent Gaussian disturbance."

#### Beats

##### [00:00](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=0)

Narration: A diffusion model learns to generate images by first studying a much easier operation: destroying them. We will take one clean training image, add a little random noise, repeat that operation many times, and then ask what a neural network would need to learn in order to reverse it.

Board: Empty.

Actions:
- [00:00](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=0): card is shown on the screen, written out.
- [00:1.5](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1.5): card: enter:write-left-to-right.
- [00:17.716](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=17.7165): card is hidden from the screen — left the board.

##### [00:18.916](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=18.9165)

Narration: Here is our clean data example. I am using a simple landscape so that its large shapes and small details are easy to track. In a real training set, this position would hold an ordinary photograph represented by a tensor of pixel values.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [00:18.916](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=18.9165): heading\_first is shown on the screen, written out.
- [00:19.764](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=19.764): picture is shown on the screen, written out.
- [00:19.764](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=19.764): parts is shown on the screen, written out.
- [00:19.764](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=19.764): parts\_2 is shown on the screen, written out.
- [00:19.764](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=19.764): parts\_3 is shown on the screen, written out.
- [00:19.764](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=19.764): parts\_4 is shown on the screen, written out.
- [00:19.764](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=19.764): parts\_5 is shown on the screen, written out.
- [00:19.764](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=19.764): parts\_6 is shown on the screen, written out.
- [00:19.764](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=19.764): parts\_7 is shown on the screen, written out.
- [00:19.764](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=19.764): parts\_8 is shown on the screen, written out.
- [00:19.764](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=19.764): parts\_9 is shown on the screen, written out.
- [00:19.764](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=19.764): parts\_10 is shown on the screen, written out.
- [00:19.764](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=19.764): clean\_caption is shown on the screen, written out.

##### [00:35.4](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=35.3995)

Narration: Call that image x zero. The subscript does not name a pixel. It names a time in a corruption process, with time zero meaning that no artificial noise has yet been added.

Board: picture — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); clean\_caption — a Math \[text\] that says "$x\_0$"; heading\_first — a Heading that says "A Clean Image, Corrupted Gradually"; parts — a Polygon \[blue\] drawn in picture (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34); parts\_2 — a Polygon \[green\] drawn in picture (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4); parts\_3 — a Polygon \[gray\] drawn in picture (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65); parts\_4 — a Polygon \[gray\] drawn in picture (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48); parts\_5 — a Circle \[yellow\] drawn in picture (center=(6.7, 4.9), radius=0.52, filled=True); parts\_6 — a Polygon \[red\] drawn in picture (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72); parts\_7 — a Polygon \[yellow\] drawn in picture (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72); parts\_8 — a Polygon \[gray\] drawn in picture (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85); parts\_9 — a Polygon \[cyan\] drawn in picture (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9); parts\_10 — a Polygon \[cyan\] drawn in picture (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9)

Actions:
- [00:37.048](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=37.04800000000001): clean\_caption is indicated — a transient flash.

##### [00:48.144](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=48.1435)

Narration: Now take one small step. Add an independent random value to every pixel, while retaining almost all of the image that was already there. One step would be difficult to notice, so this first comparison shows the effect after one hundred such steps.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): picture\_2 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): parts\_11 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): parts\_12 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): parts\_13 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): parts\_14 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): parts\_15 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): parts\_16 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): parts\_17 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): parts\_18 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): parts\_19 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): parts\_20 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): polygon is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): polygon\_2 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): polygon\_3 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): polygon\_4 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): polygon\_5 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): polygon\_6 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): polygon\_7 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): polygon\_8 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): polygon\_9 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): polygon\_10 is shown on the screen, written out.
- [01:3.527](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=63.527000000000015): light\_caption is shown on the screen, written out.

##### [01:5.717](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=65.71700000000001)

Narration: The house, mountains, horizon, and sun are still recognizable. But local pixel values have begun to wander. The corruption is not a blur that only removes high frequencies. It is random noise entering throughout the image.

Board: picture — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); clean\_caption — a Math \[text\] that says "$x\_0$"; picture\_2 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); light\_caption — a Math \[text\] that says "$x\_100$"; heading\_first — a Heading that says "A Clean Image, Corrupted Gradually"; parts — a Polygon \[blue\] drawn in picture (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34); parts\_2 — a Polygon \[green\] drawn in picture (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4); parts\_3 — a Polygon \[gray\] drawn in picture (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65); parts\_4 — a Polygon \[gray\] drawn in picture (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48); parts\_5 — a Circle \[yellow\] drawn in picture (center=(6.7, 4.9), radius=0.52, filled=True); parts\_6 — a Polygon \[red\] drawn in picture (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72); parts\_7 — a Polygon \[yellow\] drawn in picture (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72); parts\_8 — a Polygon \[gray\] drawn in picture (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85); parts\_9 — a Polygon \[cyan\] drawn in picture (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9); parts\_10 — a Polygon \[cyan\] drawn in picture (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9); parts\_11 — a Polygon \[blue\] drawn in picture\_2 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34); parts\_12 — a Polygon \[green\] drawn in picture\_2 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4); parts\_13 — a Polygon \[gray\] drawn in picture\_2 (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65); parts\_14 — a Polygon \[gray\] drawn in picture\_2 (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48); parts\_15 — a Circle \[yellow\] drawn in picture\_2 (center=(6.7, 4.9), radius=0.52, filled=True); parts\_16 — a Polygon \[red\] drawn in picture\_2 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72); parts\_17 — a Polygon \[yellow\] drawn in picture\_2 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72); parts\_18 — a Polygon \[gray\] drawn in picture\_2 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85); parts\_19 — a Polygon \[cyan\] drawn in picture\_2 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9); parts\_20 — a Polygon \[cyan\] drawn in picture\_2 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9); polygon — a Polygon \[red\] drawn in picture\_2 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.25); polygon\_2 — a Polygon \[blue\] drawn in picture\_2 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.25); polygon\_3 — a Polygon \[red\] drawn in picture\_2 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.25); polygon\_4 — a Polygon \[blue\] drawn in picture\_2 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.25); polygon\_5 — a Polygon \[red\] drawn in picture\_2 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.25); polygon\_6 — a Polygon \[blue\] drawn in picture\_2 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.25); polygon\_7 — a Polygon \[red\] drawn in picture\_2 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.25); polygon\_8 — a Polygon \[blue\] drawn in picture\_2 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.25); polygon\_9 — a Polygon \[green\] drawn in picture\_2 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.25); polygon\_10 — a Polygon \[magenta\] drawn in picture\_2 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.25)

Actions:
- [01:6.391](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=66.39100000000002): parts\_16 is indicated — a transient flash.
- [01:8.864](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=68.86400000000002): parts\_15 is indicated — a transient flash.

##### [01:21.736](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=81.73550000000002)

Narration: Continue to step four hundred. More of the observed tensor now comes from noise, and less comes from the original image. The broad composition survives, while windows, roof edges, and smaller color boundaries become unreliable.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): picture\_3 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): parts\_21 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): parts\_22 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): parts\_23 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): parts\_24 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): parts\_25 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): parts\_26 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): parts\_27 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): parts\_28 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): parts\_29 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): parts\_30 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_11 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_12 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_13 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_14 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_15 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_16 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_17 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_18 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_19 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_20 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_21 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_22 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_23 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_24 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_25 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_26 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_27 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_28 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_29 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_30 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_31 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_32 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_33 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): polygon\_34 is shown on the screen, written out.
- [01:22.955](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=82.95500000000003): middle\_caption is shown on the screen, written out.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): middle\_caption moves to a new place on the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): picture\_3 moves to a new place on the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): clean\_caption is hidden from the screen — left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): heading\_first is hidden from the screen — left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): light\_caption is hidden from the screen — left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): picture is hidden from the screen — left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts is hidden from the screen — picture left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_2 is hidden from the screen — picture left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_3 is hidden from the screen — picture left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_4 is hidden from the screen — picture left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_5 is hidden from the screen — picture left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_6 is hidden from the screen — picture left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_7 is hidden from the screen — picture left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_8 is hidden from the screen — picture left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_9 is hidden from the screen — picture left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_10 is hidden from the screen — picture left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): picture\_2 is hidden from the screen — left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_11 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_12 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_13 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_14 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_15 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_16 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_17 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_18 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_19 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): parts\_20 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): polygon is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): polygon\_2 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): polygon\_3 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): polygon\_4 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): polygon\_5 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): polygon\_6 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): polygon\_7 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): polygon\_8 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): polygon\_9 is hidden from the screen — picture\_2 left the board.
- [01:36.829](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=96.82850000000002): polygon\_10 is hidden from the screen — picture\_2 left the board.

##### [01:38.029](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=98.02850000000001)

Narration: Push farther. By step seven hundred, the random component dominates most local evidence. You may still infer that something large sits near the center, but the image itself no longer supports confident object recognition.

Board: picture\_3 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); middle\_caption — a Math \[text\] that says "$x\_400$"; parts\_21 — a Polygon \[blue\] drawn in picture\_3 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34); parts\_22 — a Polygon \[green\] drawn in picture\_3 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4); parts\_23 — a Polygon \[gray\] drawn in picture\_3 (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65); parts\_24 — a Polygon \[gray\] drawn in picture\_3 (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48); parts\_25 — a Circle \[yellow\] drawn in picture\_3 (center=(6.7, 4.9), radius=0.52, filled=True); parts\_26 — a Polygon \[red\] drawn in picture\_3 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72); parts\_27 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72); parts\_28 — a Polygon \[gray\] drawn in picture\_3 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85); parts\_29 — a Polygon \[cyan\] drawn in picture\_3 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9); parts\_30 — a Polygon \[cyan\] drawn in picture\_3 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9); polygon\_11 — a Polygon \[red\] drawn in picture\_3 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.48); polygon\_12 — a Polygon \[blue\] drawn in picture\_3 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.48); polygon\_13 — a Polygon \[red\] drawn in picture\_3 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.48); polygon\_14 — a Polygon \[blue\] drawn in picture\_3 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.48); polygon\_15 — a Polygon \[red\] drawn in picture\_3 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.48); polygon\_16 — a Polygon \[blue\] drawn in picture\_3 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.48); polygon\_17 — a Polygon \[red\] drawn in picture\_3 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.48); polygon\_18 — a Polygon \[blue\] drawn in picture\_3 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.48); polygon\_19 — a Polygon \[green\] drawn in picture\_3 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.48); polygon\_20 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.48); polygon\_21 — a Polygon \[green\] drawn in picture\_3 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.48); polygon\_22 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.48); polygon\_23 — a Polygon \[green\] drawn in picture\_3 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.48); polygon\_24 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.48); polygon\_25 — a Polygon \[green\] drawn in picture\_3 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.48); polygon\_26 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.48); polygon\_27 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.48); polygon\_28 — a Polygon \[gray\] drawn in picture\_3 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.48); polygon\_29 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.48); polygon\_30 — a Polygon \[gray\] drawn in picture\_3 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.48); polygon\_31 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.48); polygon\_32 — a Polygon \[gray\] drawn in picture\_3 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.48); polygon\_33 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.48); polygon\_34 — a Polygon \[gray\] drawn in picture\_3 (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=0.48)

Actions:
- [01:38.029](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=98.02850000000001): heading\_later is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): picture\_4 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): parts\_31 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): parts\_32 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): parts\_33 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): parts\_34 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): parts\_35 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): parts\_36 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): parts\_37 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): parts\_38 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): parts\_39 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): parts\_40 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_35 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_36 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_37 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_38 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_39 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_40 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_41 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_42 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_43 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_44 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_45 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_46 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_47 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_48 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_49 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_50 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_51 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_52 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_53 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_54 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_55 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_56 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_57 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_58 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_59 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_60 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_61 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_62 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_63 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_64 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_65 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_66 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_67 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_68 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_69 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_70 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_71 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): polygon\_72 is shown on the screen, written out.
- [01:40.641](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=100.64100000000002): heavy\_caption is shown on the screen, written out.

##### [01:52.804](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=112.804)

Narration: Near the end, even those weak global clues disappear. The process has not replaced the image with one fixed gray card. Every run ends in a different random tensor whose values follow a simple Gaussian distribution.

Board: picture\_3 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); middle\_caption — a Math \[text\] that says "$x\_400$"; parts\_21 — a Polygon \[blue\] drawn in picture\_3 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34); parts\_22 — a Polygon \[green\] drawn in picture\_3 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4); parts\_23 — a Polygon \[gray\] drawn in picture\_3 (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65); parts\_24 — a Polygon \[gray\] drawn in picture\_3 (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48); parts\_25 — a Circle \[yellow\] drawn in picture\_3 (center=(6.7, 4.9), radius=0.52, filled=True); parts\_26 — a Polygon \[red\] drawn in picture\_3 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72); parts\_27 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72); parts\_28 — a Polygon \[gray\] drawn in picture\_3 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85); parts\_29 — a Polygon \[cyan\] drawn in picture\_3 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9); parts\_30 — a Polygon \[cyan\] drawn in picture\_3 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9); polygon\_11 — a Polygon \[red\] drawn in picture\_3 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.48); polygon\_12 — a Polygon \[blue\] drawn in picture\_3 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.48); polygon\_13 — a Polygon \[red\] drawn in picture\_3 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.48); polygon\_14 — a Polygon \[blue\] drawn in picture\_3 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.48); polygon\_15 — a Polygon \[red\] drawn in picture\_3 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.48); polygon\_16 — a Polygon \[blue\] drawn in picture\_3 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.48); polygon\_17 — a Polygon \[red\] drawn in picture\_3 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.48); polygon\_18 — a Polygon \[blue\] drawn in picture\_3 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.48); polygon\_19 — a Polygon \[green\] drawn in picture\_3 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.48); polygon\_20 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.48); polygon\_21 — a Polygon \[green\] drawn in picture\_3 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.48); polygon\_22 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.48); polygon\_23 — a Polygon \[green\] drawn in picture\_3 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.48); polygon\_24 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.48); polygon\_25 — a Polygon \[green\] drawn in picture\_3 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.48); polygon\_26 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.48); polygon\_27 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.48); polygon\_28 — a Polygon \[gray\] drawn in picture\_3 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.48); polygon\_29 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.48); polygon\_30 — a Polygon \[gray\] drawn in picture\_3 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.48); polygon\_31 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.48); polygon\_32 — a Polygon \[gray\] drawn in picture\_3 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.48); polygon\_33 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.48); polygon\_34 — a Polygon \[gray\] drawn in picture\_3 (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=0.48); picture\_4 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); heavy\_caption — a Math \[text\] that says "$x\_700$"; heading\_later — a Heading that says "Eventually the Signal Disappears"; parts\_31 — a Polygon \[blue\] drawn in picture\_4 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34); parts\_32 — a Polygon \[green\] drawn in picture\_4 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4); parts\_33 — a Polygon \[gray\] drawn in picture\_4 (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65); parts\_34 — a Polygon \[gray\] drawn in picture\_4 (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48); parts\_35 — a Circle \[yellow\] drawn in picture\_4 (center=(6.7, 4.9), radius=0.52, filled=True); parts\_36 — a Polygon \[red\] drawn in picture\_4 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72); parts\_37 — a Polygon \[yellow\] drawn in picture\_4 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72); parts\_38 — a Polygon \[gray\] drawn in picture\_4 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85); parts\_39 — a Polygon \[cyan\] drawn in picture\_4 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9); parts\_40 — a Polygon \[cyan\] drawn in picture\_4 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9); polygon\_35 — a Polygon \[red\] drawn in picture\_4 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.72); polygon\_36 — a Polygon \[blue\] drawn in picture\_4 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.72); polygon\_37 — a Polygon \[red\] drawn in picture\_4 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.72); polygon\_38 — a Polygon \[blue\] drawn in picture\_4 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.72); polygon\_39 — a Polygon \[red\] drawn in picture\_4 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.72); polygon\_40 — a Polygon \[blue\] drawn in picture\_4 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.72); polygon\_41 — a Polygon \[red\] drawn in picture\_4 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.72); polygon\_42 — a Polygon \[blue\] drawn in picture\_4 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.72); polygon\_43 — a Polygon \[green\] drawn in picture\_4 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.72); polygon\_44 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.72); polygon\_45 — a Polygon \[green\] drawn in picture\_4 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.72); polygon\_46 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.72); polygon\_47 — a Polygon \[green\] drawn in picture\_4 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.72); polygon\_48 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.72); polygon\_49 — a Polygon \[green\] drawn in picture\_4 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.72); polygon\_50 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.72); polygon\_51 — a Polygon \[yellow\] drawn in picture\_4 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.72); polygon\_52 — a Polygon \[gray\] drawn in picture\_4 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.72); polygon\_53 — a Polygon \[yellow\] drawn in picture\_4 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.72); polygon\_54 — a Polygon \[gray\] drawn in picture\_4 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.72); polygon\_55 — a Polygon \[yellow\] drawn in picture\_4 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.72); polygon\_56 — a Polygon \[gray\] drawn in picture\_4 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.72); polygon\_57 — a Polygon \[yellow\] drawn in picture\_4 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.72); polygon\_58 — a Polygon \[gray\] drawn in picture\_4 (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=0.72); polygon\_59 — a Polygon \[blue\] drawn in picture\_4 (vertices=((0, 3), (1.0, 3), (1.0, 4.0), (0, 4.0)), fill\_opacity=0.72); polygon\_60 — a Polygon \[red\] drawn in picture\_4 (vertices=((1, 5), (2.0, 5), (2.0, 6.0), (1, 6.0)), fill\_opacity=0.72); polygon\_61 — a Polygon \[blue\] drawn in picture\_4 (vertices=((2, 1), (3.0, 1), (3.0, 2.0), (2, 2.0)), fill\_opacity=0.72); polygon\_62 — a Polygon \[red\] drawn in picture\_4 (vertices=((3, 3), (4.0, 3), (4.0, 4.0), (3, 4.0)), fill\_opacity=0.72); polygon\_63 — a Polygon \[blue\] drawn in picture\_4 (vertices=((4, 5), (5.0, 5), (5.0, 6.0), (4, 6.0)), fill\_opacity=0.72); polygon\_64 — a Polygon \[red\] drawn in picture\_4 (vertices=((5, 1), (6.0, 1), (6.0, 2.0), (5, 2.0)), fill\_opacity=0.72); polygon\_65 — a Polygon \[blue\] drawn in picture\_4 (vertices=((6, 3), (7.0, 3), (7.0, 4.0), (6, 4.0)), fill\_opacity=0.72); polygon\_66 — a Polygon \[red\] drawn in picture\_4 (vertices=((7, 5), (8.0, 5), (8.0, 6.0), (7, 6.0)), fill\_opacity=0.72); polygon\_67 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((0, 2), (1.0, 2), (1.0, 3.0), (0, 3.0)), fill\_opacity=0.72); polygon\_68 — a Polygon \[green\] drawn in picture\_4 (vertices=((1, 4), (2.0, 4), (2.0, 5.0), (1, 5.0)), fill\_opacity=0.72); polygon\_69 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((2, 0), (3.0, 0), (3.0, 1.0), (2, 1.0)), fill\_opacity=0.72); polygon\_70 — a Polygon \[green\] drawn in picture\_4 (vertices=((3, 2), (4.0, 2), (4.0, 3.0), (3, 3.0)), fill\_opacity=0.72); polygon\_71 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((4, 4), (5.0, 4), (5.0, 5.0), (4, 5.0)), fill\_opacity=0.72); polygon\_72 — a Polygon \[green\] drawn in picture\_4 (vertices=((5, 0), (6.0, 0), (6.0, 1.0), (5, 1.0)), fill\_opacity=0.72)

Actions:
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): picture\_5 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): parts\_41 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): parts\_42 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): parts\_43 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): parts\_44 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): parts\_45 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): parts\_46 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): parts\_47 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): parts\_48 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): parts\_49 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): parts\_50 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_73 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_74 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_75 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_76 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_77 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_78 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_79 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_80 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_81 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_82 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_83 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_84 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_85 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_86 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_87 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_88 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_89 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_90 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_91 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_92 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_93 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_94 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_95 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_96 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_97 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_98 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_99 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_100 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_101 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_102 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_103 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_104 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_105 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_106 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_107 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_108 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_109 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_110 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_111 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_112 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_113 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_114 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_115 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_116 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_117 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_118 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_119 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): polygon\_120 is shown on the screen, written out.
- [01:53.663](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=113.66300000000001): noise\_caption is shown on the screen, written out.

##### [02:8.114](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=128.114)

Narration: That final simplicity is deliberate. Natural images occupy a complicated and highly structured part of pixel space. Standard Gaussian noise is a distribution we can sample immediately, without knowing anything about cats, houses, faces, or landscapes.

Board: picture\_3 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); middle\_caption — a Math \[text\] that says "$x\_400$"; parts\_21 — a Polygon \[blue\] drawn in picture\_3 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34); parts\_22 — a Polygon \[green\] drawn in picture\_3 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4); parts\_23 — a Polygon \[gray\] drawn in picture\_3 (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65); parts\_24 — a Polygon \[gray\] drawn in picture\_3 (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48); parts\_25 — a Circle \[yellow\] drawn in picture\_3 (center=(6.7, 4.9), radius=0.52, filled=True); parts\_26 — a Polygon \[red\] drawn in picture\_3 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72); parts\_27 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72); parts\_28 — a Polygon \[gray\] drawn in picture\_3 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85); parts\_29 — a Polygon \[cyan\] drawn in picture\_3 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9); parts\_30 — a Polygon \[cyan\] drawn in picture\_3 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9); polygon\_11 — a Polygon \[red\] drawn in picture\_3 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.48); polygon\_12 — a Polygon \[blue\] drawn in picture\_3 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.48); polygon\_13 — a Polygon \[red\] drawn in picture\_3 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.48); polygon\_14 — a Polygon \[blue\] drawn in picture\_3 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.48); polygon\_15 — a Polygon \[red\] drawn in picture\_3 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.48); polygon\_16 — a Polygon \[blue\] drawn in picture\_3 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.48); polygon\_17 — a Polygon \[red\] drawn in picture\_3 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.48); polygon\_18 — a Polygon \[blue\] drawn in picture\_3 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.48); polygon\_19 — a Polygon \[green\] drawn in picture\_3 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.48); polygon\_20 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.48); polygon\_21 — a Polygon \[green\] drawn in picture\_3 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.48); polygon\_22 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.48); polygon\_23 — a Polygon \[green\] drawn in picture\_3 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.48); polygon\_24 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.48); polygon\_25 — a Polygon \[green\] drawn in picture\_3 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.48); polygon\_26 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.48); polygon\_27 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.48); polygon\_28 — a Polygon \[gray\] drawn in picture\_3 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.48); polygon\_29 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.48); polygon\_30 — a Polygon \[gray\] drawn in picture\_3 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.48); polygon\_31 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.48); polygon\_32 — a Polygon \[gray\] drawn in picture\_3 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.48); polygon\_33 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.48); polygon\_34 — a Polygon \[gray\] drawn in picture\_3 (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=0.48); picture\_4 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); heavy\_caption — a Math \[text\] that says "$x\_700$"; picture\_5 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); noise\_caption — a Math \[text\] that says "$x\_T$"; heading\_later — a Heading that says "Eventually the Signal Disappears"; parts\_31 — a Polygon \[blue\] drawn in picture\_4 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34); parts\_32 — a Polygon \[green\] drawn in picture\_4 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4); parts\_33 — a Polygon \[gray\] drawn in picture\_4 (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65); parts\_34 — a Polygon \[gray\] drawn in picture\_4 (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48); parts\_35 — a Circle \[yellow\] drawn in picture\_4 (center=(6.7, 4.9), radius=0.52, filled=True); parts\_36 — a Polygon \[red\] drawn in picture\_4 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72); parts\_37 — a Polygon \[yellow\] drawn in picture\_4 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72); parts\_38 — a Polygon \[gray\] drawn in picture\_4 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85); parts\_39 — a Polygon \[cyan\] drawn in picture\_4 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9); parts\_40 — a Polygon \[cyan\] drawn in picture\_4 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9); polygon\_35 — a Polygon \[red\] drawn in picture\_4 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.72); polygon\_36 — a Polygon \[blue\] drawn in picture\_4 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.72); polygon\_37 — a Polygon \[red\] drawn in picture\_4 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.72); polygon\_38 — a Polygon \[blue\] drawn in picture\_4 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.72); polygon\_39 — a Polygon \[red\] drawn in picture\_4 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.72); polygon\_40 — a Polygon \[blue\] drawn in picture\_4 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.72); polygon\_41 — a Polygon \[red\] drawn in picture\_4 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.72); polygon\_42 — a Polygon \[blue\] drawn in picture\_4 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.72); polygon\_43 — a Polygon \[green\] drawn in picture\_4 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.72); polygon\_44 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.72); polygon\_45 — a Polygon \[green\] drawn in picture\_4 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.72); polygon\_46 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.72); polygon\_47 — a Polygon \[green\] drawn in picture\_4 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.72); polygon\_48 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.72); polygon\_49 — a Polygon \[green\] drawn in picture\_4 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.72); polygon\_50 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.72); polygon\_51 — a Polygon \[yellow\] drawn in picture\_4 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.72); polygon\_52 — a Polygon \[gray\] drawn in picture\_4 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.72); polygon\_53 — a Polygon \[yellow\] drawn in picture\_4 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.72); polygon\_54 — a Polygon \[gray\] drawn in picture\_4 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.72); polygon\_55 — a Polygon \[yellow\] drawn in picture\_4 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.72); polygon\_56 — a Polygon \[gray\] drawn in picture\_4 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.72); polygon\_57 — a Polygon \[yellow\] drawn in picture\_4 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.72); polygon\_58 — a Polygon \[gray\] drawn in picture\_4 (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=0.72); polygon\_59 — a Polygon \[blue\] drawn in picture\_4 (vertices=((0, 3), (1.0, 3), (1.0, 4.0), (0, 4.0)), fill\_opacity=0.72); polygon\_60 — a Polygon \[red\] drawn in picture\_4 (vertices=((1, 5), (2.0, 5), (2.0, 6.0), (1, 6.0)), fill\_opacity=0.72); polygon\_61 — a Polygon \[blue\] drawn in picture\_4 (vertices=((2, 1), (3.0, 1), (3.0, 2.0), (2, 2.0)), fill\_opacity=0.72); polygon\_62 — a Polygon \[red\] drawn in picture\_4 (vertices=((3, 3), (4.0, 3), (4.0, 4.0), (3, 4.0)), fill\_opacity=0.72); polygon\_63 — a Polygon \[blue\] drawn in picture\_4 (vertices=((4, 5), (5.0, 5), (5.0, 6.0), (4, 6.0)), fill\_opacity=0.72); polygon\_64 — a Polygon \[red\] drawn in picture\_4 (vertices=((5, 1), (6.0, 1), (6.0, 2.0), (5, 2.0)), fill\_opacity=0.72); polygon\_65 — a Polygon \[blue\] drawn in picture\_4 (vertices=((6, 3), (7.0, 3), (7.0, 4.0), (6, 4.0)), fill\_opacity=0.72); polygon\_66 — a Polygon \[red\] drawn in picture\_4 (vertices=((7, 5), (8.0, 5), (8.0, 6.0), (7, 6.0)), fill\_opacity=0.72); polygon\_67 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((0, 2), (1.0, 2), (1.0, 3.0), (0, 3.0)), fill\_opacity=0.72); polygon\_68 — a Polygon \[green\] drawn in picture\_4 (vertices=((1, 4), (2.0, 4), (2.0, 5.0), (1, 5.0)), fill\_opacity=0.72); polygon\_69 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((2, 0), (3.0, 0), (3.0, 1.0), (2, 1.0)), fill\_opacity=0.72); polygon\_70 — a Polygon \[green\] drawn in picture\_4 (vertices=((3, 2), (4.0, 2), (4.0, 3.0), (3, 3.0)), fill\_opacity=0.72); polygon\_71 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((4, 4), (5.0, 4), (5.0, 5.0), (4, 5.0)), fill\_opacity=0.72); polygon\_72 — a Polygon \[green\] drawn in picture\_4 (vertices=((5, 0), (6.0, 0), (6.0, 1.0), (5, 1.0)), fill\_opacity=0.72); parts\_41 — a Polygon \[blue\] drawn in picture\_5 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34); parts\_42 — a Polygon \[green\] drawn in picture\_5 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4); parts\_43 — a Polygon \[gray\] drawn in picture\_5 (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65); parts\_44 — a Polygon \[gray\] drawn in picture\_5 (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48); parts\_45 — a Circle \[yellow\] drawn in picture\_5 (center=(6.7, 4.9), radius=0.52, filled=True); parts\_46 — a Polygon \[red\] drawn in picture\_5 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72); parts\_47 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72); parts\_48 — a Polygon \[gray\] drawn in picture\_5 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85); parts\_49 — a Polygon \[cyan\] drawn in picture\_5 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9); parts\_50 — a Polygon \[cyan\] drawn in picture\_5 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9); polygon\_73 — a Polygon \[red\] drawn in picture\_5 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=1.0); polygon\_74 — a Polygon \[blue\] drawn in picture\_5 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=1.0); polygon\_75 — a Polygon \[red\] drawn in picture\_5 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=1.0); polygon\_76 — a Polygon \[blue\] drawn in picture\_5 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=1.0); polygon\_77 — a Polygon \[red\] drawn in picture\_5 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=1.0); polygon\_78 — a Polygon \[blue\] drawn in picture\_5 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=1.0); polygon\_79 — a Polygon \[red\] drawn in picture\_5 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=1.0); polygon\_80 — a Polygon \[blue\] drawn in picture\_5 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=1.0); polygon\_81 — a Polygon \[green\] drawn in picture\_5 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=1.0); polygon\_82 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=1.0); polygon\_83 — a Polygon \[green\] drawn in picture\_5 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=1.0); polygon\_84 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=1.0); polygon\_85 — a Polygon \[green\] drawn in picture\_5 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=1.0); polygon\_86 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=1.0); polygon\_87 — a Polygon \[green\] drawn in picture\_5 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=1.0); polygon\_88 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=1.0); polygon\_89 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=1.0); polygon\_90 — a Polygon \[gray\] drawn in picture\_5 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=1.0); polygon\_91 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=1.0); polygon\_92 — a Polygon \[gray\] drawn in picture\_5 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=1.0); polygon\_93 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=1.0); polygon\_94 — a Polygon \[gray\] drawn in picture\_5 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=1.0); polygon\_95 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=1.0); polygon\_96 — a Polygon \[gray\] drawn in picture\_5 (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=1.0); polygon\_97 — a Polygon \[blue\] drawn in picture\_5 (vertices=((0, 3), (1.0, 3), (1.0, 4.0), (0, 4.0)), fill\_opacity=1.0); polygon\_98 — a Polygon \[red\] drawn in picture\_5 (vertices=((1, 5), (2.0, 5), (2.0, 6.0), (1, 6.0)), fill\_opacity=1.0); polygon\_99 — a Polygon \[blue\] drawn in picture\_5 (vertices=((2, 1), (3.0, 1), (3.0, 2.0), (2, 2.0)), fill\_opacity=1.0); polygon\_100 — a Polygon \[red\] drawn in picture\_5 (vertices=((3, 3), (4.0, 3), (4.0, 4.0), (3, 4.0)), fill\_opacity=1.0); polygon\_101 — a Polygon \[blue\] drawn in picture\_5 (vertices=((4, 5), (5.0, 5), (5.0, 6.0), (4, 6.0)), fill\_opacity=1.0); polygon\_102 — a Polygon \[red\] drawn in picture\_5 (vertices=((5, 1), (6.0, 1), (6.0, 2.0), (5, 2.0)), fill\_opacity=1.0); polygon\_103 — a Polygon \[blue\] drawn in picture\_5 (vertices=((6, 3), (7.0, 3), (7.0, 4.0), (6, 4.0)), fill\_opacity=1.0); polygon\_104 — a Polygon \[red\] drawn in picture\_5 (vertices=((7, 5), (8.0, 5), (8.0, 6.0), (7, 6.0)), fill\_opacity=1.0); polygon\_105 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((0, 2), (1.0, 2), (1.0, 3.0), (0, 3.0)), fill\_opacity=1.0); polygon\_106 — a Polygon \[green\] drawn in picture\_5 (vertices=((1, 4), (2.0, 4), (2.0, 5.0), (1, 5.0)), fill\_opacity=1.0); polygon\_107 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((2, 0), (3.0, 0), (3.0, 1.0), (2, 1.0)), fill\_opacity=1.0); polygon\_108 — a Polygon \[green\] drawn in picture\_5 (vertices=((3, 2), (4.0, 2), (4.0, 3.0), (3, 3.0)), fill\_opacity=1.0); polygon\_109 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((4, 4), (5.0, 4), (5.0, 5.0), (4, 5.0)), fill\_opacity=1.0); polygon\_110 — a Polygon \[green\] drawn in picture\_5 (vertices=((5, 0), (6.0, 0), (6.0, 1.0), (5, 1.0)), fill\_opacity=1.0); polygon\_111 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((6, 2), (7.0, 2), (7.0, 3.0), (6, 3.0)), fill\_opacity=1.0); polygon\_112 — a Polygon \[green\] drawn in picture\_5 (vertices=((7, 4), (8.0, 4), (8.0, 5.0), (7, 5.0)), fill\_opacity=1.0); polygon\_113 — a Polygon \[gray\] drawn in picture\_5 (vertices=((0, 1), (1.0, 1), (1.0, 2.0), (0, 2.0)), fill\_opacity=1.0); polygon\_114 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((1, 3), (2.0, 3), (2.0, 4.0), (1, 4.0)), fill\_opacity=1.0); polygon\_115 — a Polygon \[gray\] drawn in picture\_5 (vertices=((2, 5), (3.0, 5), (3.0, 6.0), (2, 6.0)), fill\_opacity=1.0); polygon\_116 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((3, 1), (4.0, 1), (4.0, 2.0), (3, 2.0)), fill\_opacity=1.0); polygon\_117 — a Polygon \[gray\] drawn in picture\_5 (vertices=((4, 3), (5.0, 3), (5.0, 4.0), (4, 4.0)), fill\_opacity=1.0); polygon\_118 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((5, 5), (6.0, 5), (6.0, 6.0), (5, 6.0)), fill\_opacity=1.0); polygon\_119 — a Polygon \[gray\] drawn in picture\_5 (vertices=((6, 1), (7.0, 1), (7.0, 2.0), (6, 2.0)), fill\_opacity=1.0); polygon\_120 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((7, 3), (8.0, 3), (8.0, 4.0), (7, 4.0)), fill\_opacity=1.0)

Actions:
- [02:16.798](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=136.798): polygon\_120 is indicated — a transient flash.

##### [02:26.21](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=146.21)

Narration: So the forward process builds a bridge between two distributions. At one end are real images from the training data. At the other end is nearly pure Gaussian noise, which is easy to manufacture whenever we want a new sample.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): picture\_5 moves to a new place on the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): heading\_later is hidden from the screen — left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): heavy\_caption is hidden from the screen — left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): middle\_caption is hidden from the screen — left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): noise\_caption is hidden from the screen — left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): picture\_3 is hidden from the screen — left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_21 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_22 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_23 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_24 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_25 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_26 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_27 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_28 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_29 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_30 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_11 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_12 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_13 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_14 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_15 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_16 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_17 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_18 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_19 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_20 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_21 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_22 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_23 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_24 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_25 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_26 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_27 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_28 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_29 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_30 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_31 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_32 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_33 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_34 is hidden from the screen — picture\_3 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): picture\_4 is hidden from the screen — left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_31 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_32 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_33 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_34 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_35 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_36 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_37 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_38 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_39 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): parts\_40 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_35 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_36 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_37 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_38 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_39 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_40 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_41 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_42 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_43 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_44 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_45 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_46 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_47 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_48 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_49 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_50 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_51 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_52 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_53 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_54 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_55 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_56 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_57 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_58 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_59 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_60 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_61 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_62 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_63 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_64 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_65 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_66 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_67 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_68 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_69 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_70 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_71 is hidden from the screen — picture\_4 left the board.
- [02:40.038](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=160.03750000000002): polygon\_72 is hidden from the screen — picture\_4 left the board.

##### [02:41.238](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=161.2375)

Narration: Write the bridge as a chain. We begin at x zero, take one random transition to x one, another to x two, and continue until x T.

Board: picture\_5 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); parts\_41 — a Polygon \[blue\] drawn in picture\_5 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34); parts\_42 — a Polygon \[green\] drawn in picture\_5 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4); parts\_43 — a Polygon \[gray\] drawn in picture\_5 (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65); parts\_44 — a Polygon \[gray\] drawn in picture\_5 (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48); parts\_45 — a Circle \[yellow\] drawn in picture\_5 (center=(6.7, 4.9), radius=0.52, filled=True); parts\_46 — a Polygon \[red\] drawn in picture\_5 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72); parts\_47 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72); parts\_48 — a Polygon \[gray\] drawn in picture\_5 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85); parts\_49 — a Polygon \[cyan\] drawn in picture\_5 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9); parts\_50 — a Polygon \[cyan\] drawn in picture\_5 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9); polygon\_73 — a Polygon \[red\] drawn in picture\_5 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=1.0); polygon\_74 — a Polygon \[blue\] drawn in picture\_5 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=1.0); polygon\_75 — a Polygon \[red\] drawn in picture\_5 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=1.0); polygon\_76 — a Polygon \[blue\] drawn in picture\_5 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=1.0); polygon\_77 — a Polygon \[red\] drawn in picture\_5 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=1.0); polygon\_78 — a Polygon \[blue\] drawn in picture\_5 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=1.0); polygon\_79 — a Polygon \[red\] drawn in picture\_5 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=1.0); polygon\_80 — a Polygon \[blue\] drawn in picture\_5 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=1.0); polygon\_81 — a Polygon \[green\] drawn in picture\_5 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=1.0); polygon\_82 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=1.0); polygon\_83 — a Polygon \[green\] drawn in picture\_5 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=1.0); polygon\_84 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=1.0); polygon\_85 — a Polygon \[green\] drawn in picture\_5 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=1.0); polygon\_86 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=1.0); polygon\_87 — a Polygon \[green\] drawn in picture\_5 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=1.0); polygon\_88 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=1.0); polygon\_89 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=1.0); polygon\_90 — a Polygon \[gray\] drawn in picture\_5 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=1.0); polygon\_91 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=1.0); polygon\_92 — a Polygon \[gray\] drawn in picture\_5 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=1.0); polygon\_93 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=1.0); polygon\_94 — a Polygon \[gray\] drawn in picture\_5 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=1.0); polygon\_95 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=1.0); polygon\_96 — a Polygon \[gray\] drawn in picture\_5 (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=1.0); polygon\_97 — a Polygon \[blue\] drawn in picture\_5 (vertices=((0, 3), (1.0, 3), (1.0, 4.0), (0, 4.0)), fill\_opacity=1.0); polygon\_98 — a Polygon \[red\] drawn in picture\_5 (vertices=((1, 5), (2.0, 5), (2.0, 6.0), (1, 6.0)), fill\_opacity=1.0); polygon\_99 — a Polygon \[blue\] drawn in picture\_5 (vertices=((2, 1), (3.0, 1), (3.0, 2.0), (2, 2.0)), fill\_opacity=1.0); polygon\_100 — a Polygon \[red\] drawn in picture\_5 (vertices=((3, 3), (4.0, 3), (4.0, 4.0), (3, 4.0)), fill\_opacity=1.0); polygon\_101 — a Polygon \[blue\] drawn in picture\_5 (vertices=((4, 5), (5.0, 5), (5.0, 6.0), (4, 6.0)), fill\_opacity=1.0); polygon\_102 — a Polygon \[red\] drawn in picture\_5 (vertices=((5, 1), (6.0, 1), (6.0, 2.0), (5, 2.0)), fill\_opacity=1.0); polygon\_103 — a Polygon \[blue\] drawn in picture\_5 (vertices=((6, 3), (7.0, 3), (7.0, 4.0), (6, 4.0)), fill\_opacity=1.0); polygon\_104 — a Polygon \[red\] drawn in picture\_5 (vertices=((7, 5), (8.0, 5), (8.0, 6.0), (7, 6.0)), fill\_opacity=1.0); polygon\_105 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((0, 2), (1.0, 2), (1.0, 3.0), (0, 3.0)), fill\_opacity=1.0); polygon\_106 — a Polygon \[green\] drawn in picture\_5 (vertices=((1, 4), (2.0, 4), (2.0, 5.0), (1, 5.0)), fill\_opacity=1.0); polygon\_107 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((2, 0), (3.0, 0), (3.0, 1.0), (2, 1.0)), fill\_opacity=1.0); polygon\_108 — a Polygon \[green\] drawn in picture\_5 (vertices=((3, 2), (4.0, 2), (4.0, 3.0), (3, 3.0)), fill\_opacity=1.0); polygon\_109 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((4, 4), (5.0, 4), (5.0, 5.0), (4, 5.0)), fill\_opacity=1.0); polygon\_110 — a Polygon \[green\] drawn in picture\_5 (vertices=((5, 0), (6.0, 0), (6.0, 1.0), (5, 1.0)), fill\_opacity=1.0); polygon\_111 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((6, 2), (7.0, 2), (7.0, 3.0), (6, 3.0)), fill\_opacity=1.0); polygon\_112 — a Polygon \[green\] drawn in picture\_5 (vertices=((7, 4), (8.0, 4), (8.0, 5.0), (7, 5.0)), fill\_opacity=1.0); polygon\_113 — a Polygon \[gray\] drawn in picture\_5 (vertices=((0, 1), (1.0, 1), (1.0, 2.0), (0, 2.0)), fill\_opacity=1.0); polygon\_114 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((1, 3), (2.0, 3), (2.0, 4.0), (1, 4.0)), fill\_opacity=1.0); polygon\_115 — a Polygon \[gray\] drawn in picture\_5 (vertices=((2, 5), (3.0, 5), (3.0, 6.0), (2, 6.0)), fill\_opacity=1.0); polygon\_116 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((3, 1), (4.0, 1), (4.0, 2.0), (3, 2.0)), fill\_opacity=1.0); polygon\_117 — a Polygon \[gray\] drawn in picture\_5 (vertices=((4, 3), (5.0, 3), (5.0, 4.0), (4, 4.0)), fill\_opacity=1.0); polygon\_118 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((5, 5), (6.0, 5), (6.0, 6.0), (5, 6.0)), fill\_opacity=1.0); polygon\_119 — a Polygon \[gray\] drawn in picture\_5 (vertices=((6, 1), (7.0, 1), (7.0, 2.0), (6, 2.0)), fill\_opacity=1.0); polygon\_120 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((7, 3), (8.0, 3), (8.0, 4.0), (7, 4.0)), fill\_opacity=1.0)

Actions:
- [02:41.238](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=161.2375): heading\_chain is shown on the screen, written out.
- [02:42.433](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=162.43300000000005): chain is shown on the screen, written out.
- [02:45.823](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=165.82300000000004): step\_note is shown on the screen, written out.

##### [02:52.425](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=172.4255)

Narration: This is called the forward process. Forward refers to the direction from data toward noise. It is not the direction in which images are generated, and it does not require a neural network.

Board: picture\_5 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); parts\_41 — a Polygon \[blue\] drawn in picture\_5 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34); parts\_42 — a Polygon \[green\] drawn in picture\_5 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4); parts\_43 — a Polygon \[gray\] drawn in picture\_5 (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65); parts\_44 — a Polygon \[gray\] drawn in picture\_5 (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48); parts\_45 — a Circle \[yellow\] drawn in picture\_5 (center=(6.7, 4.9), radius=0.52, filled=True); parts\_46 — a Polygon \[red\] drawn in picture\_5 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72); parts\_47 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72); parts\_48 — a Polygon \[gray\] drawn in picture\_5 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85); parts\_49 — a Polygon \[cyan\] drawn in picture\_5 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9); parts\_50 — a Polygon \[cyan\] drawn in picture\_5 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9); polygon\_73 — a Polygon \[red\] drawn in picture\_5 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=1.0); polygon\_74 — a Polygon \[blue\] drawn in picture\_5 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=1.0); polygon\_75 — a Polygon \[red\] drawn in picture\_5 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=1.0); polygon\_76 — a Polygon \[blue\] drawn in picture\_5 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=1.0); polygon\_77 — a Polygon \[red\] drawn in picture\_5 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=1.0); polygon\_78 — a Polygon \[blue\] drawn in picture\_5 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=1.0); polygon\_79 — a Polygon \[red\] drawn in picture\_5 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=1.0); polygon\_80 — a Polygon \[blue\] drawn in picture\_5 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=1.0); polygon\_81 — a Polygon \[green\] drawn in picture\_5 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=1.0); polygon\_82 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=1.0); polygon\_83 — a Polygon \[green\] drawn in picture\_5 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=1.0); polygon\_84 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=1.0); polygon\_85 — a Polygon \[green\] drawn in picture\_5 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=1.0); polygon\_86 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=1.0); polygon\_87 — a Polygon \[green\] drawn in picture\_5 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=1.0); polygon\_88 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=1.0); polygon\_89 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=1.0); polygon\_90 — a Polygon \[gray\] drawn in picture\_5 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=1.0); polygon\_91 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=1.0); polygon\_92 — a Polygon \[gray\] drawn in picture\_5 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=1.0); polygon\_93 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=1.0); polygon\_94 — a Polygon \[gray\] drawn in picture\_5 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=1.0); polygon\_95 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=1.0); polygon\_96 — a Polygon \[gray\] drawn in picture\_5 (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=1.0); polygon\_97 — a Polygon \[blue\] drawn in picture\_5 (vertices=((0, 3), (1.0, 3), (1.0, 4.0), (0, 4.0)), fill\_opacity=1.0); polygon\_98 — a Polygon \[red\] drawn in picture\_5 (vertices=((1, 5), (2.0, 5), (2.0, 6.0), (1, 6.0)), fill\_opacity=1.0); polygon\_99 — a Polygon \[blue\] drawn in picture\_5 (vertices=((2, 1), (3.0, 1), (3.0, 2.0), (2, 2.0)), fill\_opacity=1.0); polygon\_100 — a Polygon \[red\] drawn in picture\_5 (vertices=((3, 3), (4.0, 3), (4.0, 4.0), (3, 4.0)), fill\_opacity=1.0); polygon\_101 — a Polygon \[blue\] drawn in picture\_5 (vertices=((4, 5), (5.0, 5), (5.0, 6.0), (4, 6.0)), fill\_opacity=1.0); polygon\_102 — a Polygon \[red\] drawn in picture\_5 (vertices=((5, 1), (6.0, 1), (6.0, 2.0), (5, 2.0)), fill\_opacity=1.0); polygon\_103 — a Polygon \[blue\] drawn in picture\_5 (vertices=((6, 3), (7.0, 3), (7.0, 4.0), (6, 4.0)), fill\_opacity=1.0); polygon\_104 — a Polygon \[red\] drawn in picture\_5 (vertices=((7, 5), (8.0, 5), (8.0, 6.0), (7, 6.0)), fill\_opacity=1.0); polygon\_105 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((0, 2), (1.0, 2), (1.0, 3.0), (0, 3.0)), fill\_opacity=1.0); polygon\_106 — a Polygon \[green\] drawn in picture\_5 (vertices=((1, 4), (2.0, 4), (2.0, 5.0), (1, 5.0)), fill\_opacity=1.0); polygon\_107 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((2, 0), (3.0, 0), (3.0, 1.0), (2, 1.0)), fill\_opacity=1.0); polygon\_108 — a Polygon \[green\] drawn in picture\_5 (vertices=((3, 2), (4.0, 2), (4.0, 3.0), (3, 3.0)), fill\_opacity=1.0); polygon\_109 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((4, 4), (5.0, 4), (5.0, 5.0), (4, 5.0)), fill\_opacity=1.0); polygon\_110 — a Polygon \[green\] drawn in picture\_5 (vertices=((5, 0), (6.0, 0), (6.0, 1.0), (5, 1.0)), fill\_opacity=1.0); polygon\_111 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((6, 2), (7.0, 2), (7.0, 3.0), (6, 3.0)), fill\_opacity=1.0); polygon\_112 — a Polygon \[green\] drawn in picture\_5 (vertices=((7, 4), (8.0, 4), (8.0, 5.0), (7, 5.0)), fill\_opacity=1.0); polygon\_113 — a Polygon \[gray\] drawn in picture\_5 (vertices=((0, 1), (1.0, 1), (1.0, 2.0), (0, 2.0)), fill\_opacity=1.0); polygon\_114 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((1, 3), (2.0, 3), (2.0, 4.0), (1, 4.0)), fill\_opacity=1.0); polygon\_115 — a Polygon \[gray\] drawn in picture\_5 (vertices=((2, 5), (3.0, 5), (3.0, 6.0), (2, 6.0)), fill\_opacity=1.0); polygon\_116 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((3, 1), (4.0, 1), (4.0, 2.0), (3, 2.0)), fill\_opacity=1.0); polygon\_117 — a Polygon \[gray\] drawn in picture\_5 (vertices=((4, 3), (5.0, 3), (5.0, 4.0), (4, 4.0)), fill\_opacity=1.0); polygon\_118 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((5, 5), (6.0, 5), (6.0, 6.0), (5, 6.0)), fill\_opacity=1.0); polygon\_119 — a Polygon \[gray\] drawn in picture\_5 (vertices=((6, 1), (7.0, 1), (7.0, 2.0), (6, 2.0)), fill\_opacity=1.0); polygon\_120 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((7, 3), (8.0, 3), (8.0, 4.0), (7, 4.0)), fill\_opacity=1.0); step\_note — a Panel that says "Each forward step keeps most of the current image and adds a small, independent Gaussian disturbance."; chain — a Math \[text\] that says "$x\_0 arrow.r x\_1 arrow.r x\_2 arrow.r dots arrow.r x\_T$"; heading\_chain — a Heading that says "The Forward Chain"

Actions:
- [02:53.54](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=173.54000000000005): step\_note (the "forward" part) is emphasized.
- [03:3.525](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=183.52500000000003): step\_note (the "forward" part) is no longer emphasized.

##### [03:5.251](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=185.251)

Narration: We choose the corruption rule ourselves. That means we know exactly how much signal and how much random disturbance appear at every step. The entire forward chain can be simulated on demand from any training image.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [03:10.928](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=190.92800000000003): chain (the "x\_0" part) is emphasized.
- [03:12.635](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=192.63500000000002): chain (the "x\_0" part) is no longer emphasized.
- [03:12.635](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=192.63500000000002): chain (the "x\_T" part) is emphasized.
- [03:19.66](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=199.6595): chain (the "x\_T" part) is no longer emphasized.

##### [03:20.26](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=200.2595)

Narration: At the chosen final time, x T is approximately a standard Gaussian tensor. The approximation matters: schedules are designed so that almost no usable information about x zero remains, while the endpoint is numerically well behaved.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [03:20.26](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=200.2595): destination is shown on the screen, written out.
- [03:24.102](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=204.102): destination (the "epsilon in cal(N)(0,I)" part) is emphasized.
- [03:35.781](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=215.7815): destination (the "epsilon in cal(N)(0,I)" part) is no longer emphasized.

##### [03:36.382](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=216.38150000000002)

Narration: One subtlety is worth fixing now. We do not repeatedly add raw noise without restraint, because the variance would grow without bound. Each step slightly reduces the existing signal while adding a calibrated amount of fresh noise.

Board: picture\_5 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); parts\_41 — a Polygon \[blue\] drawn in picture\_5 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.34); parts\_42 — a Polygon \[green\] drawn in picture\_5 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.4); parts\_43 — a Polygon \[gray\] drawn in picture\_5 (vertices=((0.0, 2.0), (2.3, 4.7), (4.0, 2.0)), fill\_opacity=0.65); parts\_44 — a Polygon \[gray\] drawn in picture\_5 (vertices=((2.0, 2.0), (4.8, 5.1), (7.1, 2.0)), fill\_opacity=0.48); parts\_45 — a Circle \[yellow\] drawn in picture\_5 (center=(6.7, 4.9), radius=0.52, filled=True); parts\_46 — a Polygon \[red\] drawn in picture\_5 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.72); parts\_47 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.72); parts\_48 — a Polygon \[gray\] drawn in picture\_5 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.85); parts\_49 — a Polygon \[cyan\] drawn in picture\_5 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.9); parts\_50 — a Polygon \[cyan\] drawn in picture\_5 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.9); polygon\_73 — a Polygon \[red\] drawn in picture\_5 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=1.0); polygon\_74 — a Polygon \[blue\] drawn in picture\_5 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=1.0); polygon\_75 — a Polygon \[red\] drawn in picture\_5 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=1.0); polygon\_76 — a Polygon \[blue\] drawn in picture\_5 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=1.0); polygon\_77 — a Polygon \[red\] drawn in picture\_5 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=1.0); polygon\_78 — a Polygon \[blue\] drawn in picture\_5 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=1.0); polygon\_79 — a Polygon \[red\] drawn in picture\_5 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=1.0); polygon\_80 — a Polygon \[blue\] drawn in picture\_5 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=1.0); polygon\_81 — a Polygon \[green\] drawn in picture\_5 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=1.0); polygon\_82 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=1.0); polygon\_83 — a Polygon \[green\] drawn in picture\_5 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=1.0); polygon\_84 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=1.0); polygon\_85 — a Polygon \[green\] drawn in picture\_5 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=1.0); polygon\_86 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=1.0); polygon\_87 — a Polygon \[green\] drawn in picture\_5 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=1.0); polygon\_88 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=1.0); polygon\_89 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=1.0); polygon\_90 — a Polygon \[gray\] drawn in picture\_5 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=1.0); polygon\_91 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=1.0); polygon\_92 — a Polygon \[gray\] drawn in picture\_5 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=1.0); polygon\_93 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=1.0); polygon\_94 — a Polygon \[gray\] drawn in picture\_5 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=1.0); polygon\_95 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=1.0); polygon\_96 — a Polygon \[gray\] drawn in picture\_5 (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=1.0); polygon\_97 — a Polygon \[blue\] drawn in picture\_5 (vertices=((0, 3), (1.0, 3), (1.0, 4.0), (0, 4.0)), fill\_opacity=1.0); polygon\_98 — a Polygon \[red\] drawn in picture\_5 (vertices=((1, 5), (2.0, 5), (2.0, 6.0), (1, 6.0)), fill\_opacity=1.0); polygon\_99 — a Polygon \[blue\] drawn in picture\_5 (vertices=((2, 1), (3.0, 1), (3.0, 2.0), (2, 2.0)), fill\_opacity=1.0); polygon\_100 — a Polygon \[red\] drawn in picture\_5 (vertices=((3, 3), (4.0, 3), (4.0, 4.0), (3, 4.0)), fill\_opacity=1.0); polygon\_101 — a Polygon \[blue\] drawn in picture\_5 (vertices=((4, 5), (5.0, 5), (5.0, 6.0), (4, 6.0)), fill\_opacity=1.0); polygon\_102 — a Polygon \[red\] drawn in picture\_5 (vertices=((5, 1), (6.0, 1), (6.0, 2.0), (5, 2.0)), fill\_opacity=1.0); polygon\_103 — a Polygon \[blue\] drawn in picture\_5 (vertices=((6, 3), (7.0, 3), (7.0, 4.0), (6, 4.0)), fill\_opacity=1.0); polygon\_104 — a Polygon \[red\] drawn in picture\_5 (vertices=((7, 5), (8.0, 5), (8.0, 6.0), (7, 6.0)), fill\_opacity=1.0); polygon\_105 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((0, 2), (1.0, 2), (1.0, 3.0), (0, 3.0)), fill\_opacity=1.0); polygon\_106 — a Polygon \[green\] drawn in picture\_5 (vertices=((1, 4), (2.0, 4), (2.0, 5.0), (1, 5.0)), fill\_opacity=1.0); polygon\_107 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((2, 0), (3.0, 0), (3.0, 1.0), (2, 1.0)), fill\_opacity=1.0); polygon\_108 — a Polygon \[green\] drawn in picture\_5 (vertices=((3, 2), (4.0, 2), (4.0, 3.0), (3, 3.0)), fill\_opacity=1.0); polygon\_109 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((4, 4), (5.0, 4), (5.0, 5.0), (4, 5.0)), fill\_opacity=1.0); polygon\_110 — a Polygon \[green\] drawn in picture\_5 (vertices=((5, 0), (6.0, 0), (6.0, 1.0), (5, 1.0)), fill\_opacity=1.0); polygon\_111 — a Polygon \[magenta\] drawn in picture\_5 (vertices=((6, 2), (7.0, 2), (7.0, 3.0), (6, 3.0)), fill\_opacity=1.0); polygon\_112 — a Polygon \[green\] drawn in picture\_5 (vertices=((7, 4), (8.0, 4), (8.0, 5.0), (7, 5.0)), fill\_opacity=1.0); polygon\_113 — a Polygon \[gray\] drawn in picture\_5 (vertices=((0, 1), (1.0, 1), (1.0, 2.0), (0, 2.0)), fill\_opacity=1.0); polygon\_114 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((1, 3), (2.0, 3), (2.0, 4.0), (1, 4.0)), fill\_opacity=1.0); polygon\_115 — a Polygon \[gray\] drawn in picture\_5 (vertices=((2, 5), (3.0, 5), (3.0, 6.0), (2, 6.0)), fill\_opacity=1.0); polygon\_116 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((3, 1), (4.0, 1), (4.0, 2.0), (3, 2.0)), fill\_opacity=1.0); polygon\_117 — a Polygon \[gray\] drawn in picture\_5 (vertices=((4, 3), (5.0, 3), (5.0, 4.0), (4, 4.0)), fill\_opacity=1.0); polygon\_118 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((5, 5), (6.0, 5), (6.0, 6.0), (5, 6.0)), fill\_opacity=1.0); polygon\_119 — a Polygon \[gray\] drawn in picture\_5 (vertices=((6, 1), (7.0, 1), (7.0, 2.0), (6, 2.0)), fill\_opacity=1.0); polygon\_120 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((7, 3), (8.0, 3), (8.0, 4.0), (7, 4.0)), fill\_opacity=1.0); step\_note — a Panel that says "Each forward step keeps most of the current image and adds a small, independent Gaussian disturbance."; chain — a Math \[text\] that says "$x\_0 arrow.r x\_1 arrow.r x\_2 arrow.r dots arrow.r x\_T$"; destination — a Math \[text\] that says "$x\_T approx epsilon, quad epsilon in cal(N)(0,I)$"; heading\_chain — a Heading that says "The Forward Chain"

Actions:
- [03:46.656](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=226.65600000000006): step\_note (the "keeps most" part) is indicated — a transient flash.

##### [03:51.75](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=231.7495)

Narration: That calibration gives us clean algebra, stable scales, and a known target at every noise level. Those three facts will turn image generation into a supervised learning problem rather than a demand that a network invent an entire image in one unexplained leap.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [03:56.405](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=236.40500000000006): A box is drawn around destination.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): chain is hidden from the screen — left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): destination is hidden from the screen — left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): heading\_chain is hidden from the screen — left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): picture\_5 is hidden from the screen — left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): parts\_41 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): parts\_42 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): parts\_43 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): parts\_44 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): parts\_45 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): parts\_46 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): parts\_47 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): parts\_48 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): parts\_49 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): parts\_50 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_73 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_74 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_75 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_76 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_77 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_78 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_79 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_80 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_81 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_82 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_83 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_84 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_85 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_86 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_87 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_88 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_89 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_90 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_91 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_92 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_93 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_94 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_95 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_96 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_97 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_98 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_99 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_100 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_101 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_102 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_103 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_104 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_105 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_106 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_107 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_108 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_109 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_110 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_111 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_112 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_113 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_114 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_115 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_116 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_117 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_118 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_119 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): polygon\_120 is hidden from the screen — picture\_5 left the board.
- [04:8.346](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=248.34633333333335): step\_note is hidden from the screen — left the board.

### Scene 2: [The Forward Equations](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=249.388)

Span: 04:9.388–07:54.299 (249.388s–474.29925s).

#### Objects

- alpha: a Math \[text\] that says "$alpha\_t = 1 - beta\_t$"
- beta: a Math \[text\] that says "$0 \< beta\_t \< 1$"
- direct: a Derivation \[text\] that says "$x\_t &= sqrt(alpha\_t) x\_(t-1) + sqrt(1-alpha\_t) epsilon\_t \\ x\_t &= sqrt(alpha\_t alpha\_(t-1)) x\_(t-2) + upright("Gaussian noise") \\ x\_t &= sqrt(overline(alpha)\_t) x\_0 + sqrt(1-overline(alpha)\_t) epsilon$"
- distribution: a Math \[text\] that says "$q(x\_t \| x\_(t-1)) = cal(N)(sqrt(alpha\_t)x\_(t-1), thin (1-alpha\_t)I)$"
- facts: a Block \[text\] that says "$beta\_t$ chooses the fresh noise added at step $t$. $overline(alpha)\_t$ records how much original signal survives. One sampled $epsilon$ creates $x\_t$ directly from $x\_0$."
- figure: a Figure (x\_range=(-3.0, 4.0), y\_range=(-1.0, 4.8), aspect=(7.0, 5.8))
- heading\_direct: a Heading that says "Jump Directly to Any Time"
- heading\_meaning: a Heading that says "What the Coefficients Mean"
- heading\_step: a Heading that says "One Calibrated Noise Step"
- mix: a VariableNumber (initial\_value=0.1, format\_spec='.2f')
- mix\_label: a Point \[yellow\] labelled "1-overline(alpha)\_t = 0.10" drawn in figure (location=(2.8, 4.1), show\_marker=False)
- mixture: a Vector \[yellow\] labelled "x\_t" drawn in figure (end=(((sqrt((1.0 - mix)) \* 2.5) + (sqrt(mix) \* -1.2)), ((sqrt((1.0 …)
- noise: a Vector \[red\] labelled "epsilon" drawn in figure (end=(-1.2, 2.7))
- origin: a Point \[gray\] labelled "0" drawn in figure
- product: a Math \[text\] that says "$overline(alpha)\_t = product\_(s=1)^t alpha\_s$"
- signal: a Vector \[blue\] labelled "x\_0" drawn in figure (end=(2.5, 1.0))
- snr: a Math \[text\] that says "$upright("SNR")\_t = frac(overline(alpha)\_t, 1-overline(alpha)\_t)$"
- transition: a Math \[text\] that says "$x\_t = sqrt(alpha\_t) x\_(t-1) + sqrt(1-alpha\_t) epsilon\_t$"

#### Beats

##### [04:9.388](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=249.388)

Narration: Now let us make one forward step precise. Choose a small positive number beta t. This is the noise schedule at step t, and it controls how much new uncertainty enters during that transition.

Board: Empty.

Actions:
- [04:9.388](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=249.388): heading\_step is shown on the screen, written out.
- [04:14.02](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=254.02): beta is shown on the screen, written out.

##### [04:22.05](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=262.0505)

Narration: Define alpha t as one minus beta t. When beta is small, alpha is close to one, which is the algebraic statement that a single step should preserve most of its input.

Board: beta — a Math \[text\] that says "$0 \< beta\_t \< 1$"; heading\_step — a Heading that says "One Calibrated Noise Step"

Actions:
- [04:22.922](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=262.922): alpha is shown on the screen, written out.
- [04:23.897](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=263.897): alpha (the "1 - beta\_t" part) is emphasized.
- [04:33.765](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=273.765): alpha (the "1 - beta\_t" part) is no longer emphasized.

##### [04:34.365](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=274.365)

Narration: The next image has two ingredients. Multiply the current image by square root alpha t, then add an independent standard Gaussian tensor multiplied by square root one minus alpha t.

Board: beta — a Math \[text\] that says "$0 \< beta\_t \< 1$"; alpha — a Math \[text\] that says "$alpha\_t = 1 - beta\_t$"; heading\_step — a Heading that says "One Calibrated Noise Step"

Actions:
- [04:35.967](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=275.967): transition is shown on the screen, written out.
- [04:38.045](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=278.045): transition (the "sqrt(alpha\_t) x\_(t-1)" part) is emphasized.
- [04:42.724](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=282.724): transition (the "sqrt(1-alpha\_t) epsilon\_t" part) is emphasized.
- [04:42.724](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=282.724): transition (the "sqrt(alpha\_t) x\_(t-1)" part) is no longer emphasized.
- [04:47.414](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=287.414): transition (the "sqrt(1-alpha\_t) epsilon\_t" part) is no longer emphasized.

##### [04:48.014](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=288.014)

Narration: Those square roots are not decorative. Variances scale with the square of a multiplier, so this choice keeps the total variance controlled as signal is exchanged for noise.

Board: beta — a Math \[text\] that says "$0 \< beta\_t \< 1$"; alpha — a Math \[text\] that says "$alpha\_t = 1 - beta\_t$"; transition — a Math \[text\] that says "$x\_t = sqrt(alpha\_t) x\_(t-1) + sqrt(1-alpha\_t) epsilon\_t$"; heading\_step — a Heading that says "One Calibrated Noise Step"

Actions:
- [04:48.722](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=288.722): transition (the "sqrt(alpha\_t)" part) is indicated — a transient flash.

##### [04:58.97](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=298.97)

Narration: The same statement can be written as a conditional distribution. Given x t minus one, x t is Gaussian. Its mean is the slightly reduced image, and its covariance is one minus alpha t times the identity.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [05:1.037](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=301.037): distribution is shown on the screen, written out.
- [05:7.608](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=307.608): distribution (the "sqrt(alpha\_t)x\_(t-1)" part) is emphasized.
- [05:10.174](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=310.174): distribution (the "(1-alpha\_t)I" part) is emphasized.
- [05:10.174](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=310.174): distribution (the "sqrt(alpha\_t)x\_(t-1)" part) is no longer emphasized.
- [05:13.935](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=313.9355): distribution (the "(1-alpha\_t)I" part) is no longer emphasized.

##### [05:14.536](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=314.5355)

Narration: Every pixel channel receives independent Gaussian disturbance in this basic formulation. The image structure comes from the mean, while the covariance tells us how widely the next sample may wander around that mean.

Board: beta — a Math \[text\] that says "$0 \< beta\_t \< 1$"; alpha — a Math \[text\] that says "$alpha\_t = 1 - beta\_t$"; transition — a Math \[text\] that says "$x\_t = sqrt(alpha\_t) x\_(t-1) + sqrt(1-alpha\_t) epsilon\_t$"; distribution — a Math \[text\] that says "$q(x\_t \| x\_(t-1)) = cal(N)(sqrt(alpha\_t)x\_(t-1), thin (1-alpha\_t)I)$"; heading\_step — a Heading that says "One Calibrated Noise Step"

Actions:
- [05:27.352](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=327.35249999999996): alpha is hidden from the screen — left the board.
- [05:27.352](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=327.35249999999996): beta is hidden from the screen — left the board.
- [05:27.352](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=327.35249999999996): distribution is hidden from the screen — left the board.
- [05:27.352](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=327.35249999999996): heading\_step is hidden from the screen — left the board.
- [05:27.352](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=327.35249999999996): transition is hidden from the screen — left the board.

##### [05:28.553](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=328.5525)

Narration: A remarkable simplification appears when we compose many of these Gaussian steps. Begin with the one-step rule we just wrote.

Board: Empty.

Actions:
- [05:28.553](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=328.5525): heading\_direct is shown on the screen, written out.
- [05:34.66](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=334.65999999999997): direct is shown on the screen, written out.

##### [05:37.373](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=337.373)

Narration: Substitute the rule for x t minus one. The surviving signal multipliers multiply, while the independent Gaussian terms combine into another Gaussian term.

Board: heading\_direct — a Heading that says "Jump Directly to Any Time"

Actions:
- [05:37.849](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=337.849): direct is shown on the screen, written out.

##### [05:48.224](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=348.224)

Narration: Repeat all the way back to x zero. Define alpha bar t as the product of every alpha up to time t.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [05:52.624](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=352.62399999999997): product is shown on the screen, written out.
- [05:53.17](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=353.16999999999996): product (the "product\_(s=1)^t alpha\_s" part) is emphasized.
- [05:55.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=355.63149999999996): product (the "product\_(s=1)^t alpha\_s" part) is no longer emphasized.

##### [05:56.231](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=356.2315)

Narration: The result is the closed form. At any chosen time t, x t equals square root alpha bar t times the clean image, plus square root one minus alpha bar t times one standard Gaussian tensor.

Board: product — a Math \[text\] that says "$overline(alpha)\_t = product\_(s=1)^t alpha\_s$"; heading\_direct — a Heading that says "Jump Directly to Any Time"

Actions:
- [05:57.508](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=357.508): direct is shown on the screen, written out.
- [06:5.276](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=365.27599999999995): direct (the "sqrt(overline(alpha)\_t) x\_0" part) is emphasized.
- [06:9.85](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=369.84999999999997): direct (the "sqrt(1-overline(alpha)\_t) epsilon" part) is emphasized.
- [06:9.85](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=369.84999999999997): direct (the "sqrt(overline(alpha)\_t) x\_0" part) is no longer emphasized.
- [06:11.092](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=371.0925): direct (the "sqrt(1-overline(alpha)\_t) epsilon" part) is no longer emphasized.

##### [06:11.692](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=371.6925)

Narration: This means training never needs to simulate all earlier corruption steps. Sample a time t, sample one epsilon, and construct x t directly from the original image.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [06:21.758](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=381.758): direct is indicated — a transient flash.

##### [06:24.669](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=384.669)

Narration: The picture on the right is a toy two-dimensional version of that mixture. Blue is a fixed signal vector, red is a fixed noise vector, and yellow is the noisy observation formed from both.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [06:25.307](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=385.307): figure is shown on the screen, written out.
- [06:25.307](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=385.307): origin is shown on the screen, written out.
- [06:29.197](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=389.197): signal is shown on the screen, written out.
- [06:31.611](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=391.611): noise is shown on the screen, written out.
- [06:33.899](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=393.899): mixture is shown on the screen, written out.
- [06:33.899](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=393.899): mix\_label is shown on the screen, written out.

##### [06:37.575](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=397.575)

Narration: At a low noise fraction, yellow stays close to the blue signal. The noise changes it, but signal still controls the result.

Board: product — a Math \[text\] that says "$overline(alpha)\_t = product\_(s=1)^t alpha\_s$"; figure — a Figure (x\_range=(-3.0, 4.0), y\_range=(-1.0, 4.8), aspect=(7.0, 5.8)); heading\_direct — a Heading that says "Jump Directly to Any Time"; origin — a Point \[gray\] labelled "0" drawn in figure; signal — a Vector \[blue\] labelled "x\_0" drawn in figure (end=(2.5, 1.0)); noise — a Vector \[red\] labelled "epsilon" drawn in figure (end=(-1.2, 2.7)); mixture — a Vector \[yellow\] labelled "x\_t" drawn in figure (end=(((sqrt((1.0 - mix)) \* 2.5) + (sqrt(mix) \* -1.2)), ((sqrt((1.0 …); mix\_label — a Point \[yellow\] labelled "1-overline(alpha)\_t = 0.10" drawn in figure (location=(2.8, 4.1), show\_marker=False)

Actions:
- [06:39.677](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=399.677): mixture is indicated — a transient flash.

##### [06:46.522](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=406.5225)

Narration: Increase the noise fraction. The blue contribution shrinks, the red contribution gains weight, and the observed vector turns away from its original direction.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [06:46.871](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=406.871): mixture is redrawn as the numbers it depends on change.
- [06:46.871](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=406.871): mix\_label is redrawn as the numbers it depends on change.
- [06:46.871](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=406.871): mix ticks to 0.55.

##### [06:57.362](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=417.36249999999995)

Narration: Near the end, almost all reliable information comes from epsilon. The original signal has not been abruptly deleted. Its coefficient has been driven close to zero by the accumulated schedule.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [06:58.082](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=418.082): mixture is redrawn as the numbers it depends on change.
- [06:58.082](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=418.082): mix\_label is redrawn as the numbers it depends on change.
- [06:58.082](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=418.082): mix ticks to 0.93.

##### [07:9.606](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=429.6065)

Narration: A useful summary is the signal-to-noise ratio. Signal power is alpha bar t, noise power is one minus alpha bar t, so their ratio falls as t increases.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [07:12.091](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=432.091): snr is shown on the screen, written out.
- [07:13.345](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=433.345): snr (the "overline(alpha)\_t" part) is emphasized.
- [07:15.853](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=435.85299999999995): snr (the "1-overline(alpha)\_t" part) is emphasized.
- [07:15.853](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=435.85299999999995): snr (the "overline(alpha)\_t" part) is no longer emphasized.
- [07:21.553](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=441.5535): direct is hidden from the screen — left the board.
- [07:21.553](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=441.5535): figure is hidden from the screen — left the board.
- [07:21.553](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=441.5535): origin is hidden from the screen — figure left the board.
- [07:21.553](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=441.5535): signal is hidden from the screen — figure left the board.
- [07:21.553](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=441.5535): noise is hidden from the screen — figure left the board.
- [07:21.553](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=441.5535): mixture is hidden from the screen — figure left the board.
- [07:21.553](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=441.5535): mix\_label is hidden from the screen — figure left the board.
- [07:21.553](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=441.5535): heading\_direct is hidden from the screen — left the board.
- [07:21.553](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=441.5535): product is hidden from the screen — left the board.
- [07:21.553](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=441.5535): snr is hidden from the screen — left the board.
- [07:21.553](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=441.5535): snr (the "1-overline(alpha)\_t" part) is no longer emphasized.

##### [07:22.154](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=442.1535)

Narration: Keep three meanings attached to the notation. Beta t controls the fresh noise in one transition. Alpha bar t records the signal surviving from the original image. And the closed form lets one epsilon produce any desired training noise level.

Board: Empty.

Actions:
- [07:22.154](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=442.1535): heading\_meaning is shown on the screen, written out.
- [07:22.838](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=442.838): facts is shown on the screen, written out.
- [07:25.439](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=445.439): facts (the "$beta\_t$" part) is emphasized.
- [07:29.329](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=449.329): facts (the "$beta\_t$" part) is no longer emphasized.
- [07:29.329](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=449.329): facts (the "$overline(alpha)\_t$" part) is emphasized.
- [07:34.913](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=454.913): facts (the "$epsilon$" part) is emphasized.
- [07:34.913](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=454.913): facts (the "$overline(alpha)\_t$" part) is no longer emphasized.
- [07:38.012](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=458.0125): facts (the "$epsilon$" part) is no longer emphasized.

##### [07:38.612](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=458.61249999999995)

Narration: We chose every part of this corruption process. Therefore, for each noisy image, we know the clean source, the time, and the exact random tensor that was mixed in. That is the opening a supervised learner needs.

Board: facts — a Block \[text\] that says "$beta\_t$ chooses the fresh noise added at step $t$. $overline(alpha)\_t$ records how much original signal survives. One sampled $epsilon$ creates $x\_t$ directly from $x\_0$."; heading\_meaning — a Heading that says "What the Coefficients Mean"

Actions:
- [07:53.258](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=473.2575833333333): facts is hidden from the screen — left the board.
- [07:53.258](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=473.2575833333333): heading\_meaning is hidden from the screen — left the board.

### Scene 3: [Training the Noise Predictor](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=474.29925)

Span: 07:54.299–12:39.392 (474.29925s–759.3917291666667s).

#### Objects

- clean\_box: a Polygon \[blue\] drawn in pipeline (vertices=((0.4, 3.5), (2.4, 3.5), (2.4, 5.5), (0.4, 5.5)), fill\_opacity=0.22)
- clean\_label: a Math \[blue\] that says "$x\_0$" drawn in pipeline
- construction: a Derivation \[text\] that says "$t &in chevron.l 1,dots,T chevron.r \\ epsilon &in cal(N)(0,I) \\ x\_t &= sqrt(overline(alpha)\_t)x\_0 + sqrt(1-overline(alpha)\_t)epsilon \\ hat(epsilon) &= epsilon\_theta(x\_t,t)$"
- direct\_problem: a Panel that says "A random seed does not identify one uniquely correct finished image. Many different images could be valid outputs."
- gradient: a Math \[text\] that says "$theta arrow.r theta - eta thin nabla\_theta cal(L)$"
- heading\_compare: a Heading that says "Why This Is Supervised"
- heading\_loss: a Heading that says "The Noise-Prediction Objective"
- heading\_recipe: a Heading that says "One Training Example"
- loss: a Math \[text\] that says "$cal(L)\_(upright("simple")) = upright(E)\_(x\_0,t,epsilon) norm(epsilon-epsilon\_theta(x\_t,t))^2$"
- mix\_arrow\_a: an Arrow \[gray\] drawn in pipeline (start=(2.6, 4.5), end=(4.1, 3.3))
- mix\_arrow\_b: an Arrow \[gray\] drawn in pipeline (start=(2.6, 1.5), end=(4.1, 2.7))
- network\_arrow: an Arrow \[yellow\] drawn in pipeline (start=(6.35, 3.0), end=(7.35, 3.0))
- network\_box: a Polygon \[yellow\] drawn in pipeline (vertices=((7.45, 1.8), (9.35, 1.8), (9.35, 4.2), (7.45, 4.2)), fill\_opacity=0.18)
- network\_label: a Math \[yellow\] that says "$epsilon\_theta$" drawn in pipeline
- noise\_box: a Polygon \[red\] drawn in pipeline (vertices=((0.4, 0.5), (2.4, 0.5), (2.4, 2.5), (0.4, 2.5)))
- noise\_label: a Math \[red\] that says "$epsilon$" drawn in pipeline
- noise\_problem: a Panel that says "The sampled $epsilon$ is known exactly. It is a tensor-sized label paired with the constructed input $x\_t$."
- noisy\_box: a Polygon \[magenta\] drawn in pipeline (vertices=((4.2, 2.0), (6.2, 2.0), (6.2, 4.0), (4.2, 4.0)))
- noisy\_label: a Math \[magenta\] that says "$x\_t$" drawn in pipeline
- output\_arrow: an Arrow \[green\] drawn in pipeline (start=(9.5, 3.0), end=(10.3, 3.0))
- pipeline: a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0))
- prediction\_box: a Polygon \[green\] drawn in pipeline (vertices=((10.4, 2.0), (11.8, 2.0), (11.8, 4.0), (10.4, 4.0)), fill\_opacity=0.25)
- prediction\_label: a Math \[green\] that says "$hat(epsilon)$" drawn in pipeline
- question: a Panel that says "Given a noisy image $x\_t$ and its time $t$, what target can a neural network learn from ordinary labelled examples?"
- recipe: a Table \[text\] that says "Step Operation 1 Choose a clean training image $x\_0$ 2 Sample a time $t$ 3 Sample Gaussian noise $epsilon$ 4 Construct $x\_t$ from $x\_0$ and $epsilon$ 5 Predict $epsilon$ from $x\_t$ and $t$" (rows=(('Step', 'Operation'), ('1', 'Choose a clean training image $x…, header=True)
- tex: a Tex \[text\] that says "Ambiguous target"
- tex\_2: a Tex \[text\] that says "Known target"
- time\_label: a Math \[yellow\] that says "$t$" drawn in pipeline

#### Beats

##### [07:54.299](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=474.29925)

Narration: The forward process gives us noisy images, but training still needs a target. What should the neural network predict when it receives a noisy image x t and the time t?

Board: Empty.

Actions:
- [07:54.299](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=474.29925): question is shown on the screen, written out.

##### [08:5.383](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=485.38275)

Narration: One tempting answer is the clean image x zero. Some diffusion parameterizations do predict clean data or a related quantity. But the most common first formulation asks for something even more directly known: the noise epsilon that we sampled ourselves.

Board: question — a Panel that says "Given a noisy image $x\_t$ and its time $t$, what target can a neural network learn from ordinary labelled examples?"

Actions:
- [08:16.192](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=496.19224999999994): question (the "what target" part) is emphasized.
- [08:19.965](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=499.96524999999997): question (the "what target" part) is no longer emphasized.
- [08:22.624](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=502.62375): question moves to a new place on the board.

##### [08:23.224](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=503.22375)

Narration: Here is the complete learning problem as a pipeline. Begin with a clean training image x zero.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [08:23.224](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=503.22375): pipeline is shown on the screen, written out.
- [08:27.426](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=507.42625): clean\_box is shown on the screen, written out.
- [08:27.426](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=507.42625): clean\_label is shown on the screen, written out.

##### [08:30.488](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=510.48825)

Narration: Independently sample a Gaussian noise tensor epsilon. It has exactly the same shape as the image tensor, with one random value for every channel and spatial location.

Board: question — a Panel that says "Given a noisy image $x\_t$ and its time $t$, what target can a neural network learn from ordinary labelled examples?"; pipeline — a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0)); clean\_box — a Polygon \[blue\] drawn in pipeline (vertices=((0.4, 3.5), (2.4, 3.5), (2.4, 5.5), (0.4, 5.5)), fill\_opacity=0.22); clean\_label — a Math \[blue\] that says "$x\_0$" drawn in pipeline

Actions:
- [08:33.379](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=513.37925): noise\_box is shown on the screen, written out.
- [08:33.379](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=513.37925): noise\_label is shown on the screen, written out.

##### [08:42.268](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=522.26775)

Narration: Choose a time t, read the schedule coefficients at that time, and combine the clean image with epsilon to construct x t. We now possess both the input and the label.

Board: question — a Panel that says "Given a noisy image $x\_t$ and its time $t$, what target can a neural network learn from ordinary labelled examples?"; pipeline — a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0)); clean\_box — a Polygon \[blue\] drawn in pipeline (vertices=((0.4, 3.5), (2.4, 3.5), (2.4, 5.5), (0.4, 5.5)), fill\_opacity=0.22); clean\_label — a Math \[blue\] that says "$x\_0$" drawn in pipeline; noise\_box — a Polygon \[red\] drawn in pipeline (vertices=((0.4, 0.5), (2.4, 0.5), (2.4, 2.5), (0.4, 2.5))); noise\_label — a Math \[red\] that says "$epsilon$" drawn in pipeline

Actions:
- [08:43.15](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=523.1502499999999): time\_label is shown on the screen, written out.
- [08:46.726](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=526.7262499999999): mix\_arrow\_a is shown on the screen, written out.
- [08:46.726](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=526.7262499999999): mix\_arrow\_b is shown on the screen, written out.
- [08:49.187](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=529.18725): noisy\_box is shown on the screen, written out.
- [08:49.187](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=529.18725): noisy\_label is shown on the screen, written out.

##### [08:53.967](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=533.9672499999999)

Narration: Feed x t and t to a neural network. The time input matters because the same visible pattern means something different at a low noise level and at a high one.

Board: question — a Panel that says "Given a noisy image $x\_t$ and its time $t$, what target can a neural network learn from ordinary labelled examples?"; pipeline — a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0)); clean\_box — a Polygon \[blue\] drawn in pipeline (vertices=((0.4, 3.5), (2.4, 3.5), (2.4, 5.5), (0.4, 5.5)), fill\_opacity=0.22); clean\_label — a Math \[blue\] that says "$x\_0$" drawn in pipeline; noise\_box — a Polygon \[red\] drawn in pipeline (vertices=((0.4, 0.5), (2.4, 0.5), (2.4, 2.5), (0.4, 2.5))); noise\_label — a Math \[red\] that says "$epsilon$" drawn in pipeline; mix\_arrow\_a — an Arrow \[gray\] drawn in pipeline (start=(2.6, 4.5), end=(4.1, 3.3)); mix\_arrow\_b — an Arrow \[gray\] drawn in pipeline (start=(2.6, 1.5), end=(4.1, 2.7)); noisy\_box — a Polygon \[magenta\] drawn in pipeline (vertices=((4.2, 2.0), (6.2, 2.0), (6.2, 4.0), (4.2, 4.0))); noisy\_label — a Math \[magenta\] that says "$x\_t$" drawn in pipeline; time\_label — a Math \[yellow\] that says "$t$" drawn in pipeline

Actions:
- [08:54.315](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=534.31525): network\_arrow is shown on the screen, written out.
- [08:56.161](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=536.16125): network\_box is shown on the screen, written out.
- [08:56.161](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=536.16125): network\_label is shown on the screen, written out.

##### [09:4.528](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=544.52825)

Narration: The network returns a tensor with the image's shape. Call it epsilon hat, the network's estimate of the particular noise tensor used to create this example.

Board: question — a Panel that says "Given a noisy image $x\_t$ and its time $t$, what target can a neural network learn from ordinary labelled examples?"; pipeline — a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0)); clean\_box — a Polygon \[blue\] drawn in pipeline (vertices=((0.4, 3.5), (2.4, 3.5), (2.4, 5.5), (0.4, 5.5)), fill\_opacity=0.22); clean\_label — a Math \[blue\] that says "$x\_0$" drawn in pipeline; noise\_box — a Polygon \[red\] drawn in pipeline (vertices=((0.4, 0.5), (2.4, 0.5), (2.4, 2.5), (0.4, 2.5))); noise\_label — a Math \[red\] that says "$epsilon$" drawn in pipeline; mix\_arrow\_a — an Arrow \[gray\] drawn in pipeline (start=(2.6, 4.5), end=(4.1, 3.3)); mix\_arrow\_b — an Arrow \[gray\] drawn in pipeline (start=(2.6, 1.5), end=(4.1, 2.7)); noisy\_box — a Polygon \[magenta\] drawn in pipeline (vertices=((4.2, 2.0), (6.2, 2.0), (6.2, 4.0), (4.2, 4.0))); noisy\_label — a Math \[magenta\] that says "$x\_t$" drawn in pipeline; time\_label — a Math \[yellow\] that says "$t$" drawn in pipeline; network\_arrow — an Arrow \[yellow\] drawn in pipeline (start=(6.35, 3.0), end=(7.35, 3.0)); network\_box — a Polygon \[yellow\] drawn in pipeline (vertices=((7.45, 1.8), (9.35, 1.8), (9.35, 4.2), (7.45, 4.2)), fill\_opacity=0.18); network\_label — a Math \[yellow\] that says "$epsilon\_theta$" drawn in pipeline

Actions:
- [09:5.399](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=545.3992499999999): output\_arrow is shown on the screen, written out.
- [09:8.592](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=548.5922499999999): prediction\_box is shown on the screen, written out.
- [09:8.592](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=548.5922499999999): prediction\_label is shown on the screen, written out.

##### [09:15.229](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=555.22925)

Narration: Compare epsilon hat with the known epsilon using squared error. Pixel by pixel and channel by channel, the loss penalizes disagreement between the generated label and the prediction.

Board: question — a Panel that says "Given a noisy image $x\_t$ and its time $t$, what target can a neural network learn from ordinary labelled examples?"; pipeline — a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0)); clean\_box — a Polygon \[blue\] drawn in pipeline (vertices=((0.4, 3.5), (2.4, 3.5), (2.4, 5.5), (0.4, 5.5)), fill\_opacity=0.22); clean\_label — a Math \[blue\] that says "$x\_0$" drawn in pipeline; noise\_box — a Polygon \[red\] drawn in pipeline (vertices=((0.4, 0.5), (2.4, 0.5), (2.4, 2.5), (0.4, 2.5))); noise\_label — a Math \[red\] that says "$epsilon$" drawn in pipeline; mix\_arrow\_a — an Arrow \[gray\] drawn in pipeline (start=(2.6, 4.5), end=(4.1, 3.3)); mix\_arrow\_b — an Arrow \[gray\] drawn in pipeline (start=(2.6, 1.5), end=(4.1, 2.7)); noisy\_box — a Polygon \[magenta\] drawn in pipeline (vertices=((4.2, 2.0), (6.2, 2.0), (6.2, 4.0), (4.2, 4.0))); noisy\_label — a Math \[magenta\] that says "$x\_t$" drawn in pipeline; time\_label — a Math \[yellow\] that says "$t$" drawn in pipeline; network\_arrow — an Arrow \[yellow\] drawn in pipeline (start=(6.35, 3.0), end=(7.35, 3.0)); network\_box — a Polygon \[yellow\] drawn in pipeline (vertices=((7.45, 1.8), (9.35, 1.8), (9.35, 4.2), (7.45, 4.2)), fill\_opacity=0.18); network\_label — a Math \[yellow\] that says "$epsilon\_theta$" drawn in pipeline; output\_arrow — an Arrow \[green\] drawn in pipeline (start=(9.5, 3.0), end=(10.3, 3.0)); prediction\_box — a Polygon \[green\] drawn in pipeline (vertices=((10.4, 2.0), (11.8, 2.0), (11.8, 4.0), (10.4, 4.0)), fill\_opacity=0.25); prediction\_label — a Math \[green\] that says "$hat(epsilon)$" drawn in pipeline

Actions:
- [09:17.145](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=557.14525): noise\_label is indicated — a transient flash.
- [09:18.19](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=558.19025): pipeline moves to a new place on the board.
- [09:18.19](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=558.19025): loss is shown on the screen, written out.
- [09:25.225](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=565.22525): prediction\_label is indicated — a transient flash.

##### [09:26.685](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=566.68525)

Narration: Then backpropagate through the denoising network exactly as in ordinary supervised learning. The parameters move in the direction that reduces expected noise-prediction error.

Board: question — a Panel that says "Given a noisy image $x\_t$ and its time $t$, what target can a neural network learn from ordinary labelled examples?"; loss — a Math \[text\] that says "$cal(L)\_(upright("simple")) = upright(E)\_(x\_0,t,epsilon) norm(epsilon-epsilon\_theta(x\_t,t))^2$"; pipeline — a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0)); clean\_box — a Polygon \[blue\] drawn in pipeline (vertices=((0.4, 3.5), (2.4, 3.5), (2.4, 5.5), (0.4, 5.5)), fill\_opacity=0.22); clean\_label — a Math \[blue\] that says "$x\_0$" drawn in pipeline; noise\_box — a Polygon \[red\] drawn in pipeline (vertices=((0.4, 0.5), (2.4, 0.5), (2.4, 2.5), (0.4, 2.5))); noise\_label — a Math \[red\] that says "$epsilon$" drawn in pipeline; mix\_arrow\_a — an Arrow \[gray\] drawn in pipeline (start=(2.6, 4.5), end=(4.1, 3.3)); mix\_arrow\_b — an Arrow \[gray\] drawn in pipeline (start=(2.6, 1.5), end=(4.1, 2.7)); noisy\_box — a Polygon \[magenta\] drawn in pipeline (vertices=((4.2, 2.0), (6.2, 2.0), (6.2, 4.0), (4.2, 4.0))); noisy\_label — a Math \[magenta\] that says "$x\_t$" drawn in pipeline; time\_label — a Math \[yellow\] that says "$t$" drawn in pipeline; network\_arrow — an Arrow \[yellow\] drawn in pipeline (start=(6.35, 3.0), end=(7.35, 3.0)); network\_box — a Polygon \[yellow\] drawn in pipeline (vertices=((7.45, 1.8), (9.35, 1.8), (9.35, 4.2), (7.45, 4.2)), fill\_opacity=0.18); network\_label — a Math \[yellow\] that says "$epsilon\_theta$" drawn in pipeline; output\_arrow — an Arrow \[green\] drawn in pipeline (start=(9.5, 3.0), end=(10.3, 3.0)); prediction\_box — a Polygon \[green\] drawn in pipeline (vertices=((10.4, 2.0), (11.8, 2.0), (11.8, 4.0), (10.4, 4.0)), fill\_opacity=0.25); prediction\_label — a Math \[green\] that says "$hat(epsilon)$" drawn in pipeline

Actions:
- [09:27.323](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=567.32325): gradient is shown on the screen, written out.

##### [09:38.256](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=578.25625)

Narration: There is no human annotation step. Labels are free because the forward process manufactured them. Yet the statistical structure is completely supervised: each input is paired with a definite target tensor.

Board: question — a Panel that says "Given a noisy image $x\_t$ and its time $t$, what target can a neural network learn from ordinary labelled examples?"; loss — a Math \[text\] that says "$cal(L)\_(upright("simple")) = upright(E)\_(x\_0,t,epsilon) norm(epsilon-epsilon\_theta(x\_t,t))^2$"; gradient — a Math \[text\] that says "$theta arrow.r theta - eta thin nabla\_theta cal(L)$"; pipeline — a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0)); clean\_box — a Polygon \[blue\] drawn in pipeline (vertices=((0.4, 3.5), (2.4, 3.5), (2.4, 5.5), (0.4, 5.5)), fill\_opacity=0.22); clean\_label — a Math \[blue\] that says "$x\_0$" drawn in pipeline; noise\_box — a Polygon \[red\] drawn in pipeline (vertices=((0.4, 0.5), (2.4, 0.5), (2.4, 2.5), (0.4, 2.5))); noise\_label — a Math \[red\] that says "$epsilon$" drawn in pipeline; mix\_arrow\_a — an Arrow \[gray\] drawn in pipeline (start=(2.6, 4.5), end=(4.1, 3.3)); mix\_arrow\_b — an Arrow \[gray\] drawn in pipeline (start=(2.6, 1.5), end=(4.1, 2.7)); noisy\_box — a Polygon \[magenta\] drawn in pipeline (vertices=((4.2, 2.0), (6.2, 2.0), (6.2, 4.0), (4.2, 4.0))); noisy\_label — a Math \[magenta\] that says "$x\_t$" drawn in pipeline; time\_label — a Math \[yellow\] that says "$t$" drawn in pipeline; network\_arrow — an Arrow \[yellow\] drawn in pipeline (start=(6.35, 3.0), end=(7.35, 3.0)); network\_box — a Polygon \[yellow\] drawn in pipeline (vertices=((7.45, 1.8), (9.35, 1.8), (9.35, 4.2), (7.45, 4.2)), fill\_opacity=0.18); network\_label — a Math \[yellow\] that says "$epsilon\_theta$" drawn in pipeline; output\_arrow — an Arrow \[green\] drawn in pipeline (start=(9.5, 3.0), end=(10.3, 3.0)); prediction\_box — a Polygon \[green\] drawn in pipeline (vertices=((10.4, 2.0), (11.8, 2.0), (11.8, 4.0), (10.4, 4.0)), fill\_opacity=0.25); prediction\_label — a Math \[green\] that says "$hat(epsilon)$" drawn in pipeline

Actions:
- [09:52.607](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=592.6067499999999): pipeline moves to a new place on the board.
- [09:52.607](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=592.6067499999999): gradient is hidden from the screen — left the board.
- [09:52.607](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=592.6067499999999): loss is hidden from the screen — left the board.
- [09:52.607](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=592.6067499999999): question is hidden from the screen — left the board.

##### [09:53.807](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=593.80675)

Narration: Let us run one training example in the order an implementation uses. First, select a clean image from the data set.

Board: pipeline — a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0)); clean\_box — a Polygon \[blue\] drawn in pipeline (vertices=((0.4, 3.5), (2.4, 3.5), (2.4, 5.5), (0.4, 5.5)), fill\_opacity=0.22); clean\_label — a Math \[blue\] that says "$x\_0$" drawn in pipeline; noise\_box — a Polygon \[red\] drawn in pipeline (vertices=((0.4, 0.5), (2.4, 0.5), (2.4, 2.5), (0.4, 2.5))); noise\_label — a Math \[red\] that says "$epsilon$" drawn in pipeline; mix\_arrow\_a — an Arrow \[gray\] drawn in pipeline (start=(2.6, 4.5), end=(4.1, 3.3)); mix\_arrow\_b — an Arrow \[gray\] drawn in pipeline (start=(2.6, 1.5), end=(4.1, 2.7)); noisy\_box — a Polygon \[magenta\] drawn in pipeline (vertices=((4.2, 2.0), (6.2, 2.0), (6.2, 4.0), (4.2, 4.0))); noisy\_label — a Math \[magenta\] that says "$x\_t$" drawn in pipeline; time\_label — a Math \[yellow\] that says "$t$" drawn in pipeline; network\_arrow — an Arrow \[yellow\] drawn in pipeline (start=(6.35, 3.0), end=(7.35, 3.0)); network\_box — a Polygon \[yellow\] drawn in pipeline (vertices=((7.45, 1.8), (9.35, 1.8), (9.35, 4.2), (7.45, 4.2)), fill\_opacity=0.18); network\_label — a Math \[yellow\] that says "$epsilon\_theta$" drawn in pipeline; output\_arrow — an Arrow \[green\] drawn in pipeline (start=(9.5, 3.0), end=(10.3, 3.0)); prediction\_box — a Polygon \[green\] drawn in pipeline (vertices=((10.4, 2.0), (11.8, 2.0), (11.8, 4.0), (10.4, 4.0)), fill\_opacity=0.25); prediction\_label — a Math \[green\] that says "$hat(epsilon)$" drawn in pipeline

Actions:
- [09:53.807](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=593.80675): heading\_recipe is shown on the screen, written out.
- [09:53.807](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=593.80675): recipe is shown on the screen, written out.
- [09:58.59](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=598.59025): recipe is shown on the screen, written out.
- [09:59.797](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=599.79725): recipe (the "row=2" part) is emphasized.
- [10:1.841](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=601.84075): recipe (the "row=2" part) is no longer emphasized.

##### [10:2.441](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=602.44075)

Narration: Second, choose a time uniformly from the allowed diffusion steps. Across training, this makes the same network practise very light denoising, medium denoising, and recovery from extremely noisy inputs.

Board: pipeline — a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0)); clean\_box — a Polygon \[blue\] drawn in pipeline (vertices=((0.4, 3.5), (2.4, 3.5), (2.4, 5.5), (0.4, 5.5)), fill\_opacity=0.22); clean\_label — a Math \[blue\] that says "$x\_0$" drawn in pipeline; noise\_box — a Polygon \[red\] drawn in pipeline (vertices=((0.4, 0.5), (2.4, 0.5), (2.4, 2.5), (0.4, 2.5))); noise\_label — a Math \[red\] that says "$epsilon$" drawn in pipeline; mix\_arrow\_a — an Arrow \[gray\] drawn in pipeline (start=(2.6, 4.5), end=(4.1, 3.3)); mix\_arrow\_b — an Arrow \[gray\] drawn in pipeline (start=(2.6, 1.5), end=(4.1, 2.7)); noisy\_box — a Polygon \[magenta\] drawn in pipeline (vertices=((4.2, 2.0), (6.2, 2.0), (6.2, 4.0), (4.2, 4.0))); noisy\_label — a Math \[magenta\] that says "$x\_t$" drawn in pipeline; time\_label — a Math \[yellow\] that says "$t$" drawn in pipeline; network\_arrow — an Arrow \[yellow\] drawn in pipeline (start=(6.35, 3.0), end=(7.35, 3.0)); network\_box — a Polygon \[yellow\] drawn in pipeline (vertices=((7.45, 1.8), (9.35, 1.8), (9.35, 4.2), (7.45, 4.2)), fill\_opacity=0.18); network\_label — a Math \[yellow\] that says "$epsilon\_theta$" drawn in pipeline; output\_arrow — an Arrow \[green\] drawn in pipeline (start=(9.5, 3.0), end=(10.3, 3.0)); prediction\_box — a Polygon \[green\] drawn in pipeline (vertices=((10.4, 2.0), (11.8, 2.0), (11.8, 4.0), (10.4, 4.0)), fill\_opacity=0.25); prediction\_label — a Math \[green\] that says "$hat(epsilon)$" drawn in pipeline; heading\_recipe — a Heading that says "One Training Example"

Actions:
- [10:2.917](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=602.91725): recipe is shown on the screen, written out.
- [10:4.275](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=604.2752499999999): recipe (the "row=3" part) is emphasized.
- [10:17.058](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=617.0577499999999): recipe (the "row=3" part) is no longer emphasized.

##### [10:17.658](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=617.65775)

Narration: Third, draw a fresh Gaussian epsilon. Because it is newly sampled, the same clean image can generate unlimited distinct supervised examples.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [10:18.006](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=618.00625): recipe is shown on the screen, written out.
- [10:19.526](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=619.52625): recipe (the "row=4" part) is emphasized.
- [10:27.445](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=627.44475): recipe (the "row=4" part) is no longer emphasized.

##### [10:28.045](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=628.04475)

Narration: Fourth, use the closed-form forward equation to construct x t directly. There is no need to execute every earlier noise step.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [10:28.393](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=628.39325): recipe is shown on the screen, written out.
- [10:31.249](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=631.2492500000001): recipe (the "row=5" part) is emphasized.
- [10:37.077](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=637.07675): recipe (the "row=5" part) is no longer emphasized.

##### [10:37.677](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=637.67675)

Narration: Fifth, ask the network for epsilon and compare it with the sampled target. Repeat with new images, times, and noise tensors until the predictor works across the entire schedule.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [10:38.083](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=638.08325): recipe is shown on the screen, written out.
- [10:39.395](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=639.39525): recipe (the "row=6" part) is emphasized.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): heading\_recipe is hidden from the screen — left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): pipeline is hidden from the screen — left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): clean\_box is hidden from the screen — pipeline left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): clean\_label is hidden from the screen — pipeline left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): noise\_box is hidden from the screen — pipeline left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): noise\_label is hidden from the screen — pipeline left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): mix\_arrow\_a is hidden from the screen — pipeline left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): mix\_arrow\_b is hidden from the screen — pipeline left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): noisy\_box is hidden from the screen — pipeline left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): noisy\_label is hidden from the screen — pipeline left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): time\_label is hidden from the screen — pipeline left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): network\_arrow is hidden from the screen — pipeline left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): network\_box is hidden from the screen — pipeline left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): network\_label is hidden from the screen — pipeline left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): output\_arrow is hidden from the screen — pipeline left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): prediction\_box is hidden from the screen — pipeline left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): prediction\_label is hidden from the screen — pipeline left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): recipe is hidden from the screen — left the board.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): gradient is shown on the screen, faded in — cast on this board again.
- [10:49.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.03175): recipe (the "row=6" part) is no longer emphasized.

##### [10:49.632](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.63175)

Narration: The equations say the same thing compactly. Sample t uniformly from one through T.

Board: gradient — a Math \[text\] that says "$theta arrow.r theta - eta thin nabla\_theta cal(L)$"

Actions:
- [10:49.632](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=649.63175): heading\_loss is shown on the screen, written out.
- [10:53.59](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=653.59025): construction is shown on the screen, written out.

##### [10:56.083](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=656.08275)

Narration: Sample epsilon from a standard Gaussian. This epsilon is randomness, but once sampled it becomes an exact observed label.

Board: gradient — a Math \[text\] that says "$theta arrow.r theta - eta thin nabla\_theta cal(L)$"; heading\_loss — a Heading that says "The Noise-Prediction Objective"

Actions:
- [10:56.756](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=656.75625): construction (the "epsilon" part) is emphasized.
- [10:57.929](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=657.92925): construction is shown on the screen, written out.
- [11:3.734](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=663.73425): construction (the "epsilon" part) is no longer emphasized.

##### [11:5.147](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=665.14675)

Narration: Mix x zero and epsilon using the schedule at t. The result x t is the network input.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [11:5.495](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=665.4952499999999): construction is shown on the screen, written out.
- [11:5.959](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=665.95925): construction (the "x\_0" part) is emphasized.
- [11:7.271](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=667.27125): construction (the "epsilon" part) is emphasized.
- [11:7.271](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=667.27125): construction (the "x\_0" part) is no longer emphasized.
- [11:12.565](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=672.56525): construction (the "epsilon" part) is no longer emphasized.

##### [11:13.165](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=673.16525)

Narration: The network receives x t and t, and predicts epsilon hat. In image models, this predictor is often a convolutional network or transformer with multiscale spatial features, but its architecture does not change the learning target.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [11:14.071](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=674.07125): construction (the "x\_t,t" part) is emphasized.
- [11:16.137](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=676.13725): construction is shown on the screen, written out.
- [11:28.084](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=688.08375): construction (the "x\_t,t" part) is no longer emphasized.

##### [11:28.684](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=688.6837499999999)

Narration: Finally minimize expected squared error. Expectations mean that we average over clean images, sampled times, and sampled noise. Standard minibatches approximate that average.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [11:30.599](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=690.59925): loss is shown on the screen, written out.
- [11:31.029](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=691.02925): loss (the "norm(epsilon-epsilon\_theta(x\_t,t))^2" part) is emphasized.
- [11:41.373](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=701.37325): construction is hidden from the screen — left the board.
- [11:41.373](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=701.37325): gradient is hidden from the screen — left the board.
- [11:41.373](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=701.37325): heading\_loss is hidden from the screen — left the board.
- [11:41.373](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=701.37325): loss is hidden from the screen — left the board.
- [11:41.373](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=701.37325): loss (the "norm(epsilon-epsilon\_theta(x\_t,t))^2" part) is no longer emphasized.

##### [11:41.973](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=701.97325)

Narration: Now compare this with demanding a finished image directly. A random seed does not come with one uniquely correct photograph. Many outputs could be plausible, so ordinary squared error has no single natural target.

Board: Empty.

Actions:
- [11:41.973](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=701.97325): heading\_compare is shown on the screen, written out.
- [11:43.831](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=703.83125): direct\_problem is shown on the screen, written out.

##### [11:56.482](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=716.4817499999999)

Narration: Noise prediction is different. We chose the clean image, chose t, sampled epsilon, and computed x t. The exact epsilon is therefore a valid label for that exact input.

Board: direct\_problem — a Panel that says "A random seed does not identify one uniquely correct finished image. Many different images could be valid outputs."; heading\_compare — a Heading that says "Why This Is Supervised"

Actions:
- [11:57.747](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=717.74725): noise\_problem is shown on the screen, written out.
- [12:4.446](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=724.44625): noise\_problem (the "known exactly" part) is emphasized.
- [12:8.579](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=728.57925): noise\_problem (the "known exactly" part) is no longer emphasized.

##### [12:9.179](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=729.1792499999999)

Narration: The network is still learning something profound. To identify which fluctuations are noise, it must learn what natural image structure looks like at every scale. But the optimization interface remains an ordinary supervised regression problem.

Board: direct\_problem — a Panel that says "A random seed does not identify one uniquely correct finished image. Many different images could be valid outputs."; noise\_problem — a Panel that says "The sampled $epsilon$ is known exactly. It is a tensor-sized label paired with the constructed input $x\_t$."; heading\_compare — a Heading that says "Why This Is Supervised"

Actions:
- [12:22.275](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=742.2752499999999): noise\_problem (the "paired" part) is indicated — a transient flash.

##### [12:24.698](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=744.6982499999999)

Narration: Once that predictor is accurate, we can present a noisy tensor, estimate the disturbance hidden inside it, and take a carefully calibrated step toward a cleaner tensor. Repeating that operation is the generative process.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [12:38.35](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=758.3500624999999): direct\_problem is hidden from the screen — left the board.
- [12:38.35](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=758.3500624999999): heading\_compare is hidden from the screen — left the board.
- [12:38.35](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=758.3500624999999): noise\_problem is hidden from the screen — left the board.

### Scene 4: [Reversing the Process](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=759.3917291666667)

Span: 12:39.392–17:9.936 (759.3917291666667s–1029.9356458333334s).

#### Objects

- cap\_edges: a Math \[text\] that says "$x\_200$"
- cap\_final: a Math \[text\] that says "$x\_0$"
- cap\_layout: a Math \[text\] that says "$x\_750$"
- cap\_objects: a Math \[text\] that says "$x\_450$"
- cap\_pure: a Math \[text\] that says "$x\_T$"
- circle: a Circle \[yellow\] drawn in picture\_3 (center=(6.7, 4.9), radius=0.52, filled=True)
- circle\_2: a Circle \[yellow\] drawn in picture\_4 (center=(6.7, 4.9), radius=0.52, filled=True)
- circle\_3: a Circle \[yellow\] drawn in picture\_5 (center=(6.7, 4.9), radius=0.52, filled=True)
- heading\_emerge: a Heading that says "Structure Before Detail"
- heading\_loop: a Heading that says "The Sampling Loop"
- heading\_rule: a Heading that says "One Reverse Step"
- heading\_start: a Heading that says "Begin With Noise"
- line: a Line \[red\] drawn in picture\_4 (start=(4.7, 0.9), end=(6.5, 0.9))
- line\_2: a Line \[yellow\] drawn in picture\_4 (start=(4.4, 2.5), end=(6.8, 2.5))
- line\_3: a Line \[red\] drawn in picture\_5 (start=(4.7, 0.9), end=(6.5, 0.9))
- line\_4: a Line \[yellow\] drawn in picture\_5 (start=(4.4, 2.5), end=(6.8, 2.5))
- loop: a Table \[text\] that says "Stage Operation Start Sample $x\_T$ from $cal(N)(0,I)$ Predict Compute $hat(epsilon)\_t=epsilon\_theta(x\_t,t)$ Step Form a slightly cleaner $x\_(t-1)$ Repeat Decrease $t$ until reaching $x\_0$" (rows=(('Stage', 'Operation'), ('Start', 'Sample $x\_T$ from $cal(N)(0…, header=True)
- mean: a Math \[text\] that says "$mu\_theta(x\_t,t) = frac(1,sqrt(alpha\_t)) (x\_t-frac(1-alpha\_t,sqrt(1-overline(alpha)\_t))hat(epsilon)\_t)$"
- picture: a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0))
- picture\_2: a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0))
- picture\_3: a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0))
- picture\_4: a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0))
- picture\_5: a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0))
- polygon: a Polygon \[red\] drawn in picture (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=1.0)
- polygon\_10: a Polygon \[magenta\] drawn in picture (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=1.0)
- polygon\_100: a Polygon \[blue\] drawn in picture\_3 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.48)
- polygon\_101: a Polygon \[green\] drawn in picture\_3 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.48)
- polygon\_102: a Polygon \[magenta\] drawn in picture\_3 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.48)
- polygon\_103: a Polygon \[green\] drawn in picture\_3 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.48)
- polygon\_104: a Polygon \[magenta\] drawn in picture\_3 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.48)
- polygon\_105: a Polygon \[green\] drawn in picture\_3 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.48)
- polygon\_106: a Polygon \[magenta\] drawn in picture\_3 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.48)
- polygon\_107: a Polygon \[green\] drawn in picture\_3 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.48)
- polygon\_108: a Polygon \[magenta\] drawn in picture\_3 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.48)
- polygon\_109: a Polygon \[yellow\] drawn in picture\_3 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.48)
- polygon\_11: a Polygon \[green\] drawn in picture (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=1.0)
- polygon\_110: a Polygon \[gray\] drawn in picture\_3 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.48)
- polygon\_111: a Polygon \[yellow\] drawn in picture\_3 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.48)
- polygon\_112: a Polygon \[gray\] drawn in picture\_3 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.48)
- polygon\_113: a Polygon \[yellow\] drawn in picture\_3 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.48)
- polygon\_114: a Polygon \[gray\] drawn in picture\_3 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.48)
- polygon\_115: a Polygon \[yellow\] drawn in picture\_3 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.48)
- polygon\_116: a Polygon \[blue\] drawn in picture\_4 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28)
- polygon\_117: a Polygon \[green\] drawn in picture\_4 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34)
- polygon\_118: a Polygon \[gray\] drawn in picture\_4 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55)
- polygon\_119: a Polygon \[gray\] drawn in picture\_4 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42)
- polygon\_12: a Polygon \[magenta\] drawn in picture (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=1.0)
- polygon\_120: a Polygon \[red\] drawn in picture\_4 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.7)
- polygon\_121: a Polygon \[yellow\] drawn in picture\_4 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.7)
- polygon\_122: a Polygon \[gray\] drawn in picture\_4 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.86)
- polygon\_123: a Polygon \[cyan\] drawn in picture\_4 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.92)
- polygon\_124: a Polygon \[cyan\] drawn in picture\_4 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.92)
- polygon\_125: a Polygon \[red\] drawn in picture\_4 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)))
- polygon\_126: a Polygon \[blue\] drawn in picture\_4 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)))
- polygon\_127: a Polygon \[red\] drawn in picture\_4 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)))
- polygon\_128: a Polygon \[blue\] drawn in picture\_4 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)))
- polygon\_129: a Polygon \[red\] drawn in picture\_4 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)))
- polygon\_13: a Polygon \[green\] drawn in picture (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=1.0)
- polygon\_130: a Polygon \[blue\] drawn in picture\_4 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)))
- polygon\_131: a Polygon \[red\] drawn in picture\_4 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)))
- polygon\_132: a Polygon \[blue\] drawn in picture\_4 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)))
- polygon\_133: a Polygon \[green\] drawn in picture\_4 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)))
- polygon\_134: a Polygon \[magenta\] drawn in picture\_4 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)))
- polygon\_135: a Polygon \[green\] drawn in picture\_4 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)))
- polygon\_136: a Polygon \[magenta\] drawn in picture\_4 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)))
- polygon\_137: a Polygon \[green\] drawn in picture\_4 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)))
- polygon\_138: a Polygon \[blue\] drawn in picture\_5 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28)
- polygon\_139: a Polygon \[green\] drawn in picture\_5 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34)
- polygon\_14: a Polygon \[magenta\] drawn in picture (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=1.0)
- polygon\_140: a Polygon \[gray\] drawn in picture\_5 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55)
- polygon\_141: a Polygon \[gray\] drawn in picture\_5 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42)
- polygon\_142: a Polygon \[red\] drawn in picture\_5 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.7)
- polygon\_143: a Polygon \[yellow\] drawn in picture\_5 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.7)
- polygon\_144: a Polygon \[gray\] drawn in picture\_5 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.86)
- polygon\_145: a Polygon \[cyan\] drawn in picture\_5 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.92)
- polygon\_146: a Polygon \[cyan\] drawn in picture\_5 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.92)
- polygon\_15: a Polygon \[green\] drawn in picture (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=1.0)
- polygon\_16: a Polygon \[magenta\] drawn in picture (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=1.0)
- polygon\_17: a Polygon \[yellow\] drawn in picture (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=1.0)
- polygon\_18: a Polygon \[gray\] drawn in picture (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=1.0)
- polygon\_19: a Polygon \[yellow\] drawn in picture (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=1.0)
- polygon\_2: a Polygon \[blue\] drawn in picture (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=1.0)
- polygon\_20: a Polygon \[gray\] drawn in picture (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=1.0)
- polygon\_21: a Polygon \[yellow\] drawn in picture (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=1.0)
- polygon\_22: a Polygon \[gray\] drawn in picture (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=1.0)
- polygon\_23: a Polygon \[yellow\] drawn in picture (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=1.0)
- polygon\_24: a Polygon \[gray\] drawn in picture (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=1.0)
- polygon\_25: a Polygon \[blue\] drawn in picture (vertices=((0, 3), (1.0, 3), (1.0, 4.0), (0, 4.0)), fill\_opacity=1.0)
- polygon\_26: a Polygon \[red\] drawn in picture (vertices=((1, 5), (2.0, 5), (2.0, 6.0), (1, 6.0)), fill\_opacity=1.0)
- polygon\_27: a Polygon \[blue\] drawn in picture (vertices=((2, 1), (3.0, 1), (3.0, 2.0), (2, 2.0)), fill\_opacity=1.0)
- polygon\_28: a Polygon \[red\] drawn in picture (vertices=((3, 3), (4.0, 3), (4.0, 4.0), (3, 4.0)), fill\_opacity=1.0)
- polygon\_29: a Polygon \[blue\] drawn in picture (vertices=((4, 5), (5.0, 5), (5.0, 6.0), (4, 6.0)), fill\_opacity=1.0)
- polygon\_3: a Polygon \[red\] drawn in picture (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=1.0)
- polygon\_30: a Polygon \[red\] drawn in picture (vertices=((5, 1), (6.0, 1), (6.0, 2.0), (5, 2.0)), fill\_opacity=1.0)
- polygon\_31: a Polygon \[blue\] drawn in picture (vertices=((6, 3), (7.0, 3), (7.0, 4.0), (6, 4.0)), fill\_opacity=1.0)
- polygon\_32: a Polygon \[red\] drawn in picture (vertices=((7, 5), (8.0, 5), (8.0, 6.0), (7, 6.0)), fill\_opacity=1.0)
- polygon\_33: a Polygon \[magenta\] drawn in picture (vertices=((0, 2), (1.0, 2), (1.0, 3.0), (0, 3.0)), fill\_opacity=1.0)
- polygon\_34: a Polygon \[green\] drawn in picture (vertices=((1, 4), (2.0, 4), (2.0, 5.0), (1, 5.0)), fill\_opacity=1.0)
- polygon\_35: a Polygon \[magenta\] drawn in picture (vertices=((2, 0), (3.0, 0), (3.0, 1.0), (2, 1.0)), fill\_opacity=1.0)
- polygon\_36: a Polygon \[green\] drawn in picture (vertices=((3, 2), (4.0, 2), (4.0, 3.0), (3, 3.0)), fill\_opacity=1.0)
- polygon\_37: a Polygon \[magenta\] drawn in picture (vertices=((4, 4), (5.0, 4), (5.0, 5.0), (4, 5.0)), fill\_opacity=1.0)
- polygon\_38: a Polygon \[green\] drawn in picture (vertices=((5, 0), (6.0, 0), (6.0, 1.0), (5, 1.0)), fill\_opacity=1.0)
- polygon\_39: a Polygon \[magenta\] drawn in picture (vertices=((6, 2), (7.0, 2), (7.0, 3.0), (6, 3.0)), fill\_opacity=1.0)
- polygon\_4: a Polygon \[blue\] drawn in picture (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=1.0)
- polygon\_40: a Polygon \[green\] drawn in picture (vertices=((7, 4), (8.0, 4), (8.0, 5.0), (7, 5.0)), fill\_opacity=1.0)
- polygon\_41: a Polygon \[gray\] drawn in picture (vertices=((0, 1), (1.0, 1), (1.0, 2.0), (0, 2.0)), fill\_opacity=1.0)
- polygon\_42: a Polygon \[yellow\] drawn in picture (vertices=((1, 3), (2.0, 3), (2.0, 4.0), (1, 4.0)), fill\_opacity=1.0)
- polygon\_43: a Polygon \[gray\] drawn in picture (vertices=((2, 5), (3.0, 5), (3.0, 6.0), (2, 6.0)), fill\_opacity=1.0)
- polygon\_44: a Polygon \[yellow\] drawn in picture (vertices=((3, 1), (4.0, 1), (4.0, 2.0), (3, 2.0)), fill\_opacity=1.0)
- polygon\_45: a Polygon \[gray\] drawn in picture (vertices=((4, 3), (5.0, 3), (5.0, 4.0), (4, 4.0)), fill\_opacity=1.0)
- polygon\_46: a Polygon \[yellow\] drawn in picture (vertices=((5, 5), (6.0, 5), (6.0, 6.0), (5, 6.0)), fill\_opacity=1.0)
- polygon\_47: a Polygon \[gray\] drawn in picture (vertices=((6, 1), (7.0, 1), (7.0, 2.0), (6, 2.0)), fill\_opacity=1.0)
- polygon\_48: a Polygon \[yellow\] drawn in picture (vertices=((7, 3), (8.0, 3), (8.0, 4.0), (7, 4.0)), fill\_opacity=1.0)
- polygon\_49: a Polygon \[blue\] drawn in picture\_2 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28)
- polygon\_5: a Polygon \[red\] drawn in picture (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=1.0)
- polygon\_50: a Polygon \[green\] drawn in picture\_2 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34)
- polygon\_51: a Polygon \[gray\] drawn in picture\_2 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55)
- polygon\_52: a Polygon \[gray\] drawn in picture\_2 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42)
- polygon\_53: a Polygon \[red\] drawn in picture\_2 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.72)
- polygon\_54: a Polygon \[blue\] drawn in picture\_2 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.72)
- polygon\_55: a Polygon \[red\] drawn in picture\_2 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.72)
- polygon\_56: a Polygon \[blue\] drawn in picture\_2 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.72)
- polygon\_57: a Polygon \[red\] drawn in picture\_2 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.72)
- polygon\_58: a Polygon \[blue\] drawn in picture\_2 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.72)
- polygon\_59: a Polygon \[red\] drawn in picture\_2 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.72)
- polygon\_6: a Polygon \[blue\] drawn in picture (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=1.0)
- polygon\_60: a Polygon \[blue\] drawn in picture\_2 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.72)
- polygon\_61: a Polygon \[green\] drawn in picture\_2 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.72)
- polygon\_62: a Polygon \[magenta\] drawn in picture\_2 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.72)
- polygon\_63: a Polygon \[green\] drawn in picture\_2 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.72)
- polygon\_64: a Polygon \[magenta\] drawn in picture\_2 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.72)
- polygon\_65: a Polygon \[green\] drawn in picture\_2 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.72)
- polygon\_66: a Polygon \[magenta\] drawn in picture\_2 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.72)
- polygon\_67: a Polygon \[green\] drawn in picture\_2 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.72)
- polygon\_68: a Polygon \[magenta\] drawn in picture\_2 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.72)
- polygon\_69: a Polygon \[yellow\] drawn in picture\_2 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.72)
- polygon\_7: a Polygon \[red\] drawn in picture (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=1.0)
- polygon\_70: a Polygon \[gray\] drawn in picture\_2 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.72)
- polygon\_71: a Polygon \[yellow\] drawn in picture\_2 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.72)
- polygon\_72: a Polygon \[gray\] drawn in picture\_2 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.72)
- polygon\_73: a Polygon \[yellow\] drawn in picture\_2 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.72)
- polygon\_74: a Polygon \[gray\] drawn in picture\_2 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.72)
- polygon\_75: a Polygon \[yellow\] drawn in picture\_2 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.72)
- polygon\_76: a Polygon \[gray\] drawn in picture\_2 (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=0.72)
- polygon\_77: a Polygon \[blue\] drawn in picture\_2 (vertices=((0, 3), (1.0, 3), (1.0, 4.0), (0, 4.0)), fill\_opacity=0.72)
- polygon\_78: a Polygon \[red\] drawn in picture\_2 (vertices=((1, 5), (2.0, 5), (2.0, 6.0), (1, 6.0)), fill\_opacity=0.72)
- polygon\_79: a Polygon \[blue\] drawn in picture\_2 (vertices=((2, 1), (3.0, 1), (3.0, 2.0), (2, 2.0)), fill\_opacity=0.72)
- polygon\_8: a Polygon \[blue\] drawn in picture (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=1.0)
- polygon\_80: a Polygon \[red\] drawn in picture\_2 (vertices=((3, 3), (4.0, 3), (4.0, 4.0), (3, 4.0)), fill\_opacity=0.72)
- polygon\_81: a Polygon \[blue\] drawn in picture\_2 (vertices=((4, 5), (5.0, 5), (5.0, 6.0), (4, 6.0)), fill\_opacity=0.72)
- polygon\_82: a Polygon \[red\] drawn in picture\_2 (vertices=((5, 1), (6.0, 1), (6.0, 2.0), (5, 2.0)), fill\_opacity=0.72)
- polygon\_83: a Polygon \[blue\] drawn in picture\_2 (vertices=((6, 3), (7.0, 3), (7.0, 4.0), (6, 4.0)), fill\_opacity=0.72)
- polygon\_84: a Polygon \[red\] drawn in picture\_2 (vertices=((7, 5), (8.0, 5), (8.0, 6.0), (7, 6.0)), fill\_opacity=0.72)
- polygon\_85: a Polygon \[magenta\] drawn in picture\_2 (vertices=((0, 2), (1.0, 2), (1.0, 3.0), (0, 3.0)), fill\_opacity=0.72)
- polygon\_86: a Polygon \[green\] drawn in picture\_2 (vertices=((1, 4), (2.0, 4), (2.0, 5.0), (1, 5.0)), fill\_opacity=0.72)
- polygon\_87: a Polygon \[blue\] drawn in picture\_3 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28)
- polygon\_88: a Polygon \[green\] drawn in picture\_3 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34)
- polygon\_89: a Polygon \[gray\] drawn in picture\_3 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55)
- polygon\_9: a Polygon \[green\] drawn in picture (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=1.0)
- polygon\_90: a Polygon \[gray\] drawn in picture\_3 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42)
- polygon\_91: a Polygon \[red\] drawn in picture\_3 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.7)
- polygon\_92: a Polygon \[yellow\] drawn in picture\_3 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.7)
- polygon\_93: a Polygon \[red\] drawn in picture\_3 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.48)
- polygon\_94: a Polygon \[blue\] drawn in picture\_3 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.48)
- polygon\_95: a Polygon \[red\] drawn in picture\_3 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.48)
- polygon\_96: a Polygon \[blue\] drawn in picture\_3 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.48)
- polygon\_97: a Polygon \[red\] drawn in picture\_3 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.48)
- polygon\_98: a Polygon \[blue\] drawn in picture\_3 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.48)
- polygon\_99: a Polygon \[red\] drawn in picture\_3 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.48)
- predict: a Math \[text\] that says "$hat(epsilon)\_t = epsilon\_theta(x\_t,t)$"
- sample: a Math \[text\] that says "$x\_(t-1) = mu\_theta(x\_t,t) + sigma\_t z, quad z in cal(N)(0,I)$"
- stochastic\_note: a Panel that says "The reverse mean removes predicted corruption. A calibrated random term preserves the uncertainty needed to sample diverse images."

#### Beats

##### [12:39.392](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=759.3917291666667)

Narration: Generation begins at the endpoint of the forward process. Sample x T directly from standard Gaussian noise. There is no hidden photograph underneath this particular tensor, because we did not obtain it by corrupting a data image.

Board: Empty.

Actions:
- [12:39.392](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=759.3917291666667): heading\_start is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): picture is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_2 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_3 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_4 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_5 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_6 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_7 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_8 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_9 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_10 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_11 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_12 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_13 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_14 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_15 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_16 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_17 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_18 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_19 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_20 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_21 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_22 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_23 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_24 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_25 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_26 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_27 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_28 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_29 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_30 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_31 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_32 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_33 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_34 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_35 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_36 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_37 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_38 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_39 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_40 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_41 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_42 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_43 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_44 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_45 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_46 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_47 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): polygon\_48 is shown on the screen, written out.
- [12:45.209](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=765.2087291666667): cap\_pure is shown on the screen, written out.

##### [12:53.936](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=773.9357291666666)

Narration: Ask the trained network which part of this tensor looks like noise at time T. Then use the reverse transition to produce x T minus one, a sample expected to contain very slightly more image structure.

Board: picture — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); cap\_pure — a Math \[text\] that says "$x\_T$"; heading\_start — a Heading that says "Begin With Noise"; polygon — a Polygon \[red\] drawn in picture (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=1.0); polygon\_2 — a Polygon \[blue\] drawn in picture (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=1.0); polygon\_3 — a Polygon \[red\] drawn in picture (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=1.0); polygon\_4 — a Polygon \[blue\] drawn in picture (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=1.0); polygon\_5 — a Polygon \[red\] drawn in picture (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=1.0); polygon\_6 — a Polygon \[blue\] drawn in picture (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=1.0); polygon\_7 — a Polygon \[red\] drawn in picture (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=1.0); polygon\_8 — a Polygon \[blue\] drawn in picture (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=1.0); polygon\_9 — a Polygon \[green\] drawn in picture (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=1.0); polygon\_10 — a Polygon \[magenta\] drawn in picture (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=1.0); polygon\_11 — a Polygon \[green\] drawn in picture (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=1.0); polygon\_12 — a Polygon \[magenta\] drawn in picture (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=1.0); polygon\_13 — a Polygon \[green\] drawn in picture (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=1.0); polygon\_14 — a Polygon \[magenta\] drawn in picture (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=1.0); polygon\_15 — a Polygon \[green\] drawn in picture (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=1.0); polygon\_16 — a Polygon \[magenta\] drawn in picture (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=1.0); polygon\_17 — a Polygon \[yellow\] drawn in picture (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=1.0); polygon\_18 — a Polygon \[gray\] drawn in picture (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=1.0); polygon\_19 — a Polygon \[yellow\] drawn in picture (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=1.0); polygon\_20 — a Polygon \[gray\] drawn in picture (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=1.0); polygon\_21 — a Polygon \[yellow\] drawn in picture (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=1.0); polygon\_22 — a Polygon \[gray\] drawn in picture (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=1.0); polygon\_23 — a Polygon \[yellow\] drawn in picture (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=1.0); polygon\_24 — a Polygon \[gray\] drawn in picture (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=1.0); polygon\_25 — a Polygon \[blue\] drawn in picture (vertices=((0, 3), (1.0, 3), (1.0, 4.0), (0, 4.0)), fill\_opacity=1.0); polygon\_26 — a Polygon \[red\] drawn in picture (vertices=((1, 5), (2.0, 5), (2.0, 6.0), (1, 6.0)), fill\_opacity=1.0); polygon\_27 — a Polygon \[blue\] drawn in picture (vertices=((2, 1), (3.0, 1), (3.0, 2.0), (2, 2.0)), fill\_opacity=1.0); polygon\_28 — a Polygon \[red\] drawn in picture (vertices=((3, 3), (4.0, 3), (4.0, 4.0), (3, 4.0)), fill\_opacity=1.0); polygon\_29 — a Polygon \[blue\] drawn in picture (vertices=((4, 5), (5.0, 5), (5.0, 6.0), (4, 6.0)), fill\_opacity=1.0); polygon\_30 — a Polygon \[red\] drawn in picture (vertices=((5, 1), (6.0, 1), (6.0, 2.0), (5, 2.0)), fill\_opacity=1.0); polygon\_31 — a Polygon \[blue\] drawn in picture (vertices=((6, 3), (7.0, 3), (7.0, 4.0), (6, 4.0)), fill\_opacity=1.0); polygon\_32 — a Polygon \[red\] drawn in picture (vertices=((7, 5), (8.0, 5), (8.0, 6.0), (7, 6.0)), fill\_opacity=1.0); polygon\_33 — a Polygon \[magenta\] drawn in picture (vertices=((0, 2), (1.0, 2), (1.0, 3.0), (0, 3.0)), fill\_opacity=1.0); polygon\_34 — a Polygon \[green\] drawn in picture (vertices=((1, 4), (2.0, 4), (2.0, 5.0), (1, 5.0)), fill\_opacity=1.0); polygon\_35 — a Polygon \[magenta\] drawn in picture (vertices=((2, 0), (3.0, 0), (3.0, 1.0), (2, 1.0)), fill\_opacity=1.0); polygon\_36 — a Polygon \[green\] drawn in picture (vertices=((3, 2), (4.0, 2), (4.0, 3.0), (3, 3.0)), fill\_opacity=1.0); polygon\_37 — a Polygon \[magenta\] drawn in picture (vertices=((4, 4), (5.0, 4), (5.0, 5.0), (4, 5.0)), fill\_opacity=1.0); polygon\_38 — a Polygon \[green\] drawn in picture (vertices=((5, 0), (6.0, 0), (6.0, 1.0), (5, 1.0)), fill\_opacity=1.0); polygon\_39 — a Polygon \[magenta\] drawn in picture (vertices=((6, 2), (7.0, 2), (7.0, 3.0), (6, 3.0)), fill\_opacity=1.0); polygon\_40 — a Polygon \[green\] drawn in picture (vertices=((7, 4), (8.0, 4), (8.0, 5.0), (7, 5.0)), fill\_opacity=1.0); polygon\_41 — a Polygon \[gray\] drawn in picture (vertices=((0, 1), (1.0, 1), (1.0, 2.0), (0, 2.0)), fill\_opacity=1.0); polygon\_42 — a Polygon \[yellow\] drawn in picture (vertices=((1, 3), (2.0, 3), (2.0, 4.0), (1, 4.0)), fill\_opacity=1.0); polygon\_43 — a Polygon \[gray\] drawn in picture (vertices=((2, 5), (3.0, 5), (3.0, 6.0), (2, 6.0)), fill\_opacity=1.0); polygon\_44 — a Polygon \[yellow\] drawn in picture (vertices=((3, 1), (4.0, 1), (4.0, 2.0), (3, 2.0)), fill\_opacity=1.0); polygon\_45 — a Polygon \[gray\] drawn in picture (vertices=((4, 3), (5.0, 3), (5.0, 4.0), (4, 4.0)), fill\_opacity=1.0); polygon\_46 — a Polygon \[yellow\] drawn in picture (vertices=((5, 5), (6.0, 5), (6.0, 6.0), (5, 6.0)), fill\_opacity=1.0); polygon\_47 — a Polygon \[gray\] drawn in picture (vertices=((6, 1), (7.0, 1), (7.0, 2.0), (6, 2.0)), fill\_opacity=1.0); polygon\_48 — a Polygon \[yellow\] drawn in picture (vertices=((7, 3), (8.0, 3), (8.0, 4.0), (7, 4.0)), fill\_opacity=1.0)

Actions:
- [12:56.327](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=776.3267291666666): polygon\_48 is indicated — a transient flash.

##### [13:7.26](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=787.2597291666667)

Narration: One step is not supposed to reveal a finished picture. Training taught the network a family of modest corrections, one for every noise level. Image generation comes from composing those corrections.

Board: Unchanged from the preceding beat in this scene.

Actions:
- None.

##### [13:21.095](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=801.0952291666666)

Narration: After many early reverse steps, broad statistical organization appears. Large regions begin to behave like sky and ground. A horizon and mountain mass can emerge even though individual pixels remain highly uncertain.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): picture\_2 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_49 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_50 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_51 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_52 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_53 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_54 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_55 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_56 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_57 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_58 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_59 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_60 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_61 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_62 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_63 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_64 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_65 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_66 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_67 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_68 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_69 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_70 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_71 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_72 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_73 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_74 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_75 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_76 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_77 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_78 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_79 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_80 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_81 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_82 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_83 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_84 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_85 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): polygon\_86 is shown on the screen, written out.
- [13:24.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=804.5437291666667): cap\_layout is shown on the screen, written out.

##### [13:36.185](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=816.1852291666667)

Narration: Continue through medium noise levels. The process commits to object-scale structure: a bright region in the sky, a building-sized block, and a roof shape. These are global decisions about composition rather than finished texture.

Board: picture — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); cap\_pure — a Math \[text\] that says "$x\_T$"; picture\_2 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); cap\_layout — a Math \[text\] that says "$x\_750$"; heading\_start — a Heading that says "Begin With Noise"; polygon — a Polygon \[red\] drawn in picture (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=1.0); polygon\_2 — a Polygon \[blue\] drawn in picture (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=1.0); polygon\_3 — a Polygon \[red\] drawn in picture (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=1.0); polygon\_4 — a Polygon \[blue\] drawn in picture (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=1.0); polygon\_5 — a Polygon \[red\] drawn in picture (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=1.0); polygon\_6 — a Polygon \[blue\] drawn in picture (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=1.0); polygon\_7 — a Polygon \[red\] drawn in picture (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=1.0); polygon\_8 — a Polygon \[blue\] drawn in picture (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=1.0); polygon\_9 — a Polygon \[green\] drawn in picture (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=1.0); polygon\_10 — a Polygon \[magenta\] drawn in picture (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=1.0); polygon\_11 — a Polygon \[green\] drawn in picture (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=1.0); polygon\_12 — a Polygon \[magenta\] drawn in picture (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=1.0); polygon\_13 — a Polygon \[green\] drawn in picture (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=1.0); polygon\_14 — a Polygon \[magenta\] drawn in picture (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=1.0); polygon\_15 — a Polygon \[green\] drawn in picture (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=1.0); polygon\_16 — a Polygon \[magenta\] drawn in picture (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=1.0); polygon\_17 — a Polygon \[yellow\] drawn in picture (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=1.0); polygon\_18 — a Polygon \[gray\] drawn in picture (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=1.0); polygon\_19 — a Polygon \[yellow\] drawn in picture (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=1.0); polygon\_20 — a Polygon \[gray\] drawn in picture (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=1.0); polygon\_21 — a Polygon \[yellow\] drawn in picture (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=1.0); polygon\_22 — a Polygon \[gray\] drawn in picture (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=1.0); polygon\_23 — a Polygon \[yellow\] drawn in picture (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=1.0); polygon\_24 — a Polygon \[gray\] drawn in picture (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=1.0); polygon\_25 — a Polygon \[blue\] drawn in picture (vertices=((0, 3), (1.0, 3), (1.0, 4.0), (0, 4.0)), fill\_opacity=1.0); polygon\_26 — a Polygon \[red\] drawn in picture (vertices=((1, 5), (2.0, 5), (2.0, 6.0), (1, 6.0)), fill\_opacity=1.0); polygon\_27 — a Polygon \[blue\] drawn in picture (vertices=((2, 1), (3.0, 1), (3.0, 2.0), (2, 2.0)), fill\_opacity=1.0); polygon\_28 — a Polygon \[red\] drawn in picture (vertices=((3, 3), (4.0, 3), (4.0, 4.0), (3, 4.0)), fill\_opacity=1.0); polygon\_29 — a Polygon \[blue\] drawn in picture (vertices=((4, 5), (5.0, 5), (5.0, 6.0), (4, 6.0)), fill\_opacity=1.0); polygon\_30 — a Polygon \[red\] drawn in picture (vertices=((5, 1), (6.0, 1), (6.0, 2.0), (5, 2.0)), fill\_opacity=1.0); polygon\_31 — a Polygon \[blue\] drawn in picture (vertices=((6, 3), (7.0, 3), (7.0, 4.0), (6, 4.0)), fill\_opacity=1.0); polygon\_32 — a Polygon \[red\] drawn in picture (vertices=((7, 5), (8.0, 5), (8.0, 6.0), (7, 6.0)), fill\_opacity=1.0); polygon\_33 — a Polygon \[magenta\] drawn in picture (vertices=((0, 2), (1.0, 2), (1.0, 3.0), (0, 3.0)), fill\_opacity=1.0); polygon\_34 — a Polygon \[green\] drawn in picture (vertices=((1, 4), (2.0, 4), (2.0, 5.0), (1, 5.0)), fill\_opacity=1.0); polygon\_35 — a Polygon \[magenta\] drawn in picture (vertices=((2, 0), (3.0, 0), (3.0, 1.0), (2, 1.0)), fill\_opacity=1.0); polygon\_36 — a Polygon \[green\] drawn in picture (vertices=((3, 2), (4.0, 2), (4.0, 3.0), (3, 3.0)), fill\_opacity=1.0); polygon\_37 — a Polygon \[magenta\] drawn in picture (vertices=((4, 4), (5.0, 4), (5.0, 5.0), (4, 5.0)), fill\_opacity=1.0); polygon\_38 — a Polygon \[green\] drawn in picture (vertices=((5, 0), (6.0, 0), (6.0, 1.0), (5, 1.0)), fill\_opacity=1.0); polygon\_39 — a Polygon \[magenta\] drawn in picture (vertices=((6, 2), (7.0, 2), (7.0, 3.0), (6, 3.0)), fill\_opacity=1.0); polygon\_40 — a Polygon \[green\] drawn in picture (vertices=((7, 4), (8.0, 4), (8.0, 5.0), (7, 5.0)), fill\_opacity=1.0); polygon\_41 — a Polygon \[gray\] drawn in picture (vertices=((0, 1), (1.0, 1), (1.0, 2.0), (0, 2.0)), fill\_opacity=1.0); polygon\_42 — a Polygon \[yellow\] drawn in picture (vertices=((1, 3), (2.0, 3), (2.0, 4.0), (1, 4.0)), fill\_opacity=1.0); polygon\_43 — a Polygon \[gray\] drawn in picture (vertices=((2, 5), (3.0, 5), (3.0, 6.0), (2, 6.0)), fill\_opacity=1.0); polygon\_44 — a Polygon \[yellow\] drawn in picture (vertices=((3, 1), (4.0, 1), (4.0, 2.0), (3, 2.0)), fill\_opacity=1.0); polygon\_45 — a Polygon \[gray\] drawn in picture (vertices=((4, 3), (5.0, 3), (5.0, 4.0), (4, 4.0)), fill\_opacity=1.0); polygon\_46 — a Polygon \[yellow\] drawn in picture (vertices=((5, 5), (6.0, 5), (6.0, 6.0), (5, 6.0)), fill\_opacity=1.0); polygon\_47 — a Polygon \[gray\] drawn in picture (vertices=((6, 1), (7.0, 1), (7.0, 2.0), (6, 2.0)), fill\_opacity=1.0); polygon\_48 — a Polygon \[yellow\] drawn in picture (vertices=((7, 3), (8.0, 3), (8.0, 4.0), (7, 4.0)), fill\_opacity=1.0); polygon\_49 — a Polygon \[blue\] drawn in picture\_2 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28); polygon\_50 — a Polygon \[green\] drawn in picture\_2 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34); polygon\_51 — a Polygon \[gray\] drawn in picture\_2 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55); polygon\_52 — a Polygon \[gray\] drawn in picture\_2 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42); polygon\_53 — a Polygon \[red\] drawn in picture\_2 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.72); polygon\_54 — a Polygon \[blue\] drawn in picture\_2 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.72); polygon\_55 — a Polygon \[red\] drawn in picture\_2 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.72); polygon\_56 — a Polygon \[blue\] drawn in picture\_2 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.72); polygon\_57 — a Polygon \[red\] drawn in picture\_2 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.72); polygon\_58 — a Polygon \[blue\] drawn in picture\_2 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.72); polygon\_59 — a Polygon \[red\] drawn in picture\_2 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.72); polygon\_60 — a Polygon \[blue\] drawn in picture\_2 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.72); polygon\_61 — a Polygon \[green\] drawn in picture\_2 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.72); polygon\_62 — a Polygon \[magenta\] drawn in picture\_2 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.72); polygon\_63 — a Polygon \[green\] drawn in picture\_2 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.72); polygon\_64 — a Polygon \[magenta\] drawn in picture\_2 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.72); polygon\_65 — a Polygon \[green\] drawn in picture\_2 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.72); polygon\_66 — a Polygon \[magenta\] drawn in picture\_2 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.72); polygon\_67 — a Polygon \[green\] drawn in picture\_2 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.72); polygon\_68 — a Polygon \[magenta\] drawn in picture\_2 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.72); polygon\_69 — a Polygon \[yellow\] drawn in picture\_2 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.72); polygon\_70 — a Polygon \[gray\] drawn in picture\_2 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.72); polygon\_71 — a Polygon \[yellow\] drawn in picture\_2 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.72); polygon\_72 — a Polygon \[gray\] drawn in picture\_2 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.72); polygon\_73 — a Polygon \[yellow\] drawn in picture\_2 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.72); polygon\_74 — a Polygon \[gray\] drawn in picture\_2 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.72); polygon\_75 — a Polygon \[yellow\] drawn in picture\_2 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.72); polygon\_76 — a Polygon \[gray\] drawn in picture\_2 (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=0.72); polygon\_77 — a Polygon \[blue\] drawn in picture\_2 (vertices=((0, 3), (1.0, 3), (1.0, 4.0), (0, 4.0)), fill\_opacity=0.72); polygon\_78 — a Polygon \[red\] drawn in picture\_2 (vertices=((1, 5), (2.0, 5), (2.0, 6.0), (1, 6.0)), fill\_opacity=0.72); polygon\_79 — a Polygon \[blue\] drawn in picture\_2 (vertices=((2, 1), (3.0, 1), (3.0, 2.0), (2, 2.0)), fill\_opacity=0.72); polygon\_80 — a Polygon \[red\] drawn in picture\_2 (vertices=((3, 3), (4.0, 3), (4.0, 4.0), (3, 4.0)), fill\_opacity=0.72); polygon\_81 — a Polygon \[blue\] drawn in picture\_2 (vertices=((4, 5), (5.0, 5), (5.0, 6.0), (4, 6.0)), fill\_opacity=0.72); polygon\_82 — a Polygon \[red\] drawn in picture\_2 (vertices=((5, 1), (6.0, 1), (6.0, 2.0), (5, 2.0)), fill\_opacity=0.72); polygon\_83 — a Polygon \[blue\] drawn in picture\_2 (vertices=((6, 3), (7.0, 3), (7.0, 4.0), (6, 4.0)), fill\_opacity=0.72); polygon\_84 — a Polygon \[red\] drawn in picture\_2 (vertices=((7, 5), (8.0, 5), (8.0, 6.0), (7, 6.0)), fill\_opacity=0.72); polygon\_85 — a Polygon \[magenta\] drawn in picture\_2 (vertices=((0, 2), (1.0, 2), (1.0, 3.0), (0, 3.0)), fill\_opacity=0.72); polygon\_86 — a Polygon \[green\] drawn in picture\_2 (vertices=((1, 4), (2.0, 4), (2.0, 5.0), (1, 5.0)), fill\_opacity=0.72)

Actions:
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): picture\_3 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_87 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_88 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_89 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_90 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): circle is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_91 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_92 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_93 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_94 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_95 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_96 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_97 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_98 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_99 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_100 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_101 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_102 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_103 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_104 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_105 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_106 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_107 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_108 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_109 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_110 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_111 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_112 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_113 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_114 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): polygon\_115 is shown on the screen, written out.
- [13:40.306](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=820.3057291666667): cap\_objects is shown on the screen, written out.

##### [13:51.355](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=831.3552291666667)

Narration: This ordering is typical, not an absolute law. High-noise inputs preserve little local evidence, so early reverse steps mainly settle low-frequency, large-scale relationships. Fine edges become recoverable only after the broader image has stabilized.

Board: picture — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); cap\_pure — a Math \[text\] that says "$x\_T$"; picture\_2 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); cap\_layout — a Math \[text\] that says "$x\_750$"; picture\_3 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); cap\_objects — a Math \[text\] that says "$x\_450$"; heading\_start — a Heading that says "Begin With Noise"; polygon — a Polygon \[red\] drawn in picture (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=1.0); polygon\_2 — a Polygon \[blue\] drawn in picture (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=1.0); polygon\_3 — a Polygon \[red\] drawn in picture (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=1.0); polygon\_4 — a Polygon \[blue\] drawn in picture (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=1.0); polygon\_5 — a Polygon \[red\] drawn in picture (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=1.0); polygon\_6 — a Polygon \[blue\] drawn in picture (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=1.0); polygon\_7 — a Polygon \[red\] drawn in picture (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=1.0); polygon\_8 — a Polygon \[blue\] drawn in picture (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=1.0); polygon\_9 — a Polygon \[green\] drawn in picture (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=1.0); polygon\_10 — a Polygon \[magenta\] drawn in picture (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=1.0); polygon\_11 — a Polygon \[green\] drawn in picture (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=1.0); polygon\_12 — a Polygon \[magenta\] drawn in picture (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=1.0); polygon\_13 — a Polygon \[green\] drawn in picture (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=1.0); polygon\_14 — a Polygon \[magenta\] drawn in picture (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=1.0); polygon\_15 — a Polygon \[green\] drawn in picture (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=1.0); polygon\_16 — a Polygon \[magenta\] drawn in picture (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=1.0); polygon\_17 — a Polygon \[yellow\] drawn in picture (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=1.0); polygon\_18 — a Polygon \[gray\] drawn in picture (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=1.0); polygon\_19 — a Polygon \[yellow\] drawn in picture (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=1.0); polygon\_20 — a Polygon \[gray\] drawn in picture (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=1.0); polygon\_21 — a Polygon \[yellow\] drawn in picture (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=1.0); polygon\_22 — a Polygon \[gray\] drawn in picture (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=1.0); polygon\_23 — a Polygon \[yellow\] drawn in picture (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=1.0); polygon\_24 — a Polygon \[gray\] drawn in picture (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=1.0); polygon\_25 — a Polygon \[blue\] drawn in picture (vertices=((0, 3), (1.0, 3), (1.0, 4.0), (0, 4.0)), fill\_opacity=1.0); polygon\_26 — a Polygon \[red\] drawn in picture (vertices=((1, 5), (2.0, 5), (2.0, 6.0), (1, 6.0)), fill\_opacity=1.0); polygon\_27 — a Polygon \[blue\] drawn in picture (vertices=((2, 1), (3.0, 1), (3.0, 2.0), (2, 2.0)), fill\_opacity=1.0); polygon\_28 — a Polygon \[red\] drawn in picture (vertices=((3, 3), (4.0, 3), (4.0, 4.0), (3, 4.0)), fill\_opacity=1.0); polygon\_29 — a Polygon \[blue\] drawn in picture (vertices=((4, 5), (5.0, 5), (5.0, 6.0), (4, 6.0)), fill\_opacity=1.0); polygon\_30 — a Polygon \[red\] drawn in picture (vertices=((5, 1), (6.0, 1), (6.0, 2.0), (5, 2.0)), fill\_opacity=1.0); polygon\_31 — a Polygon \[blue\] drawn in picture (vertices=((6, 3), (7.0, 3), (7.0, 4.0), (6, 4.0)), fill\_opacity=1.0); polygon\_32 — a Polygon \[red\] drawn in picture (vertices=((7, 5), (8.0, 5), (8.0, 6.0), (7, 6.0)), fill\_opacity=1.0); polygon\_33 — a Polygon \[magenta\] drawn in picture (vertices=((0, 2), (1.0, 2), (1.0, 3.0), (0, 3.0)), fill\_opacity=1.0); polygon\_34 — a Polygon \[green\] drawn in picture (vertices=((1, 4), (2.0, 4), (2.0, 5.0), (1, 5.0)), fill\_opacity=1.0); polygon\_35 — a Polygon \[magenta\] drawn in picture (vertices=((2, 0), (3.0, 0), (3.0, 1.0), (2, 1.0)), fill\_opacity=1.0); polygon\_36 — a Polygon \[green\] drawn in picture (vertices=((3, 2), (4.0, 2), (4.0, 3.0), (3, 3.0)), fill\_opacity=1.0); polygon\_37 — a Polygon \[magenta\] drawn in picture (vertices=((4, 4), (5.0, 4), (5.0, 5.0), (4, 5.0)), fill\_opacity=1.0); polygon\_38 — a Polygon \[green\] drawn in picture (vertices=((5, 0), (6.0, 0), (6.0, 1.0), (5, 1.0)), fill\_opacity=1.0); polygon\_39 — a Polygon \[magenta\] drawn in picture (vertices=((6, 2), (7.0, 2), (7.0, 3.0), (6, 3.0)), fill\_opacity=1.0); polygon\_40 — a Polygon \[green\] drawn in picture (vertices=((7, 4), (8.0, 4), (8.0, 5.0), (7, 5.0)), fill\_opacity=1.0); polygon\_41 — a Polygon \[gray\] drawn in picture (vertices=((0, 1), (1.0, 1), (1.0, 2.0), (0, 2.0)), fill\_opacity=1.0); polygon\_42 — a Polygon \[yellow\] drawn in picture (vertices=((1, 3), (2.0, 3), (2.0, 4.0), (1, 4.0)), fill\_opacity=1.0); polygon\_43 — a Polygon \[gray\] drawn in picture (vertices=((2, 5), (3.0, 5), (3.0, 6.0), (2, 6.0)), fill\_opacity=1.0); polygon\_44 — a Polygon \[yellow\] drawn in picture (vertices=((3, 1), (4.0, 1), (4.0, 2.0), (3, 2.0)), fill\_opacity=1.0); polygon\_45 — a Polygon \[gray\] drawn in picture (vertices=((4, 3), (5.0, 3), (5.0, 4.0), (4, 4.0)), fill\_opacity=1.0); polygon\_46 — a Polygon \[yellow\] drawn in picture (vertices=((5, 5), (6.0, 5), (6.0, 6.0), (5, 6.0)), fill\_opacity=1.0); polygon\_47 — a Polygon \[gray\] drawn in picture (vertices=((6, 1), (7.0, 1), (7.0, 2.0), (6, 2.0)), fill\_opacity=1.0); polygon\_48 — a Polygon \[yellow\] drawn in picture (vertices=((7, 3), (8.0, 3), (8.0, 4.0), (7, 4.0)), fill\_opacity=1.0); polygon\_49 — a Polygon \[blue\] drawn in picture\_2 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28); polygon\_50 — a Polygon \[green\] drawn in picture\_2 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34); polygon\_51 — a Polygon \[gray\] drawn in picture\_2 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55); polygon\_52 — a Polygon \[gray\] drawn in picture\_2 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42); polygon\_53 — a Polygon \[red\] drawn in picture\_2 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.72); polygon\_54 — a Polygon \[blue\] drawn in picture\_2 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.72); polygon\_55 — a Polygon \[red\] drawn in picture\_2 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.72); polygon\_56 — a Polygon \[blue\] drawn in picture\_2 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.72); polygon\_57 — a Polygon \[red\] drawn in picture\_2 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.72); polygon\_58 — a Polygon \[blue\] drawn in picture\_2 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.72); polygon\_59 — a Polygon \[red\] drawn in picture\_2 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.72); polygon\_60 — a Polygon \[blue\] drawn in picture\_2 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.72); polygon\_61 — a Polygon \[green\] drawn in picture\_2 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.72); polygon\_62 — a Polygon \[magenta\] drawn in picture\_2 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.72); polygon\_63 — a Polygon \[green\] drawn in picture\_2 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.72); polygon\_64 — a Polygon \[magenta\] drawn in picture\_2 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.72); polygon\_65 — a Polygon \[green\] drawn in picture\_2 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.72); polygon\_66 — a Polygon \[magenta\] drawn in picture\_2 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.72); polygon\_67 — a Polygon \[green\] drawn in picture\_2 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.72); polygon\_68 — a Polygon \[magenta\] drawn in picture\_2 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.72); polygon\_69 — a Polygon \[yellow\] drawn in picture\_2 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.72); polygon\_70 — a Polygon \[gray\] drawn in picture\_2 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.72); polygon\_71 — a Polygon \[yellow\] drawn in picture\_2 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.72); polygon\_72 — a Polygon \[gray\] drawn in picture\_2 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.72); polygon\_73 — a Polygon \[yellow\] drawn in picture\_2 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.72); polygon\_74 — a Polygon \[gray\] drawn in picture\_2 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.72); polygon\_75 — a Polygon \[yellow\] drawn in picture\_2 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.72); polygon\_76 — a Polygon \[gray\] drawn in picture\_2 (vertices=((7, 0), (8.0, 0), (8.0, 1.0), (7, 1.0)), fill\_opacity=0.72); polygon\_77 — a Polygon \[blue\] drawn in picture\_2 (vertices=((0, 3), (1.0, 3), (1.0, 4.0), (0, 4.0)), fill\_opacity=0.72); polygon\_78 — a Polygon \[red\] drawn in picture\_2 (vertices=((1, 5), (2.0, 5), (2.0, 6.0), (1, 6.0)), fill\_opacity=0.72); polygon\_79 — a Polygon \[blue\] drawn in picture\_2 (vertices=((2, 1), (3.0, 1), (3.0, 2.0), (2, 2.0)), fill\_opacity=0.72); polygon\_80 — a Polygon \[red\] drawn in picture\_2 (vertices=((3, 3), (4.0, 3), (4.0, 4.0), (3, 4.0)), fill\_opacity=0.72); polygon\_81 — a Polygon \[blue\] drawn in picture\_2 (vertices=((4, 5), (5.0, 5), (5.0, 6.0), (4, 6.0)), fill\_opacity=0.72); polygon\_82 — a Polygon \[red\] drawn in picture\_2 (vertices=((5, 1), (6.0, 1), (6.0, 2.0), (5, 2.0)), fill\_opacity=0.72); polygon\_83 — a Polygon \[blue\] drawn in picture\_2 (vertices=((6, 3), (7.0, 3), (7.0, 4.0), (6, 4.0)), fill\_opacity=0.72); polygon\_84 — a Polygon \[red\] drawn in picture\_2 (vertices=((7, 5), (8.0, 5), (8.0, 6.0), (7, 6.0)), fill\_opacity=0.72); polygon\_85 — a Polygon \[magenta\] drawn in picture\_2 (vertices=((0, 2), (1.0, 2), (1.0, 3.0), (0, 3.0)), fill\_opacity=0.72); polygon\_86 — a Polygon \[green\] drawn in picture\_2 (vertices=((1, 4), (2.0, 4), (2.0, 5.0), (1, 5.0)), fill\_opacity=0.72); polygon\_87 — a Polygon \[blue\] drawn in picture\_3 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28); polygon\_88 — a Polygon \[green\] drawn in picture\_3 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34); polygon\_89 — a Polygon \[gray\] drawn in picture\_3 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55); polygon\_90 — a Polygon \[gray\] drawn in picture\_3 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42); circle — a Circle \[yellow\] drawn in picture\_3 (center=(6.7, 4.9), radius=0.52, filled=True); polygon\_91 — a Polygon \[red\] drawn in picture\_3 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.7); polygon\_92 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.7); polygon\_93 — a Polygon \[red\] drawn in picture\_3 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.48); polygon\_94 — a Polygon \[blue\] drawn in picture\_3 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.48); polygon\_95 — a Polygon \[red\] drawn in picture\_3 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.48); polygon\_96 — a Polygon \[blue\] drawn in picture\_3 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.48); polygon\_97 — a Polygon \[red\] drawn in picture\_3 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.48); polygon\_98 — a Polygon \[blue\] drawn in picture\_3 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.48); polygon\_99 — a Polygon \[red\] drawn in picture\_3 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.48); polygon\_100 — a Polygon \[blue\] drawn in picture\_3 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.48); polygon\_101 — a Polygon \[green\] drawn in picture\_3 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.48); polygon\_102 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.48); polygon\_103 — a Polygon \[green\] drawn in picture\_3 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.48); polygon\_104 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.48); polygon\_105 — a Polygon \[green\] drawn in picture\_3 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.48); polygon\_106 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.48); polygon\_107 — a Polygon \[green\] drawn in picture\_3 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.48); polygon\_108 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.48); polygon\_109 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.48); polygon\_110 — a Polygon \[gray\] drawn in picture\_3 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.48); polygon\_111 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.48); polygon\_112 — a Polygon \[gray\] drawn in picture\_3 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.48); polygon\_113 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.48); polygon\_114 — a Polygon \[gray\] drawn in picture\_3 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.48); polygon\_115 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.48)

Actions:
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): cap\_objects moves to a new place on the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): picture\_3 moves to a new place on the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): cap\_layout is hidden from the screen — left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): cap\_pure is hidden from the screen — left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): heading\_start is hidden from the screen — left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): picture is hidden from the screen — left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_2 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_3 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_4 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_5 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_6 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_7 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_8 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_9 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_10 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_11 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_12 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_13 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_14 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_15 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_16 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_17 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_18 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_19 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_20 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_21 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_22 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_23 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_24 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_25 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_26 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_27 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_28 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_29 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_30 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_31 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_32 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_33 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_34 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_35 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_36 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_37 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_38 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_39 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_40 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_41 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_42 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_43 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_44 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_45 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_46 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_47 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_48 is hidden from the screen — picture left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): picture\_2 is hidden from the screen — left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_49 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_50 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_51 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_52 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_53 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_54 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_55 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_56 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_57 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_58 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_59 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_60 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_61 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_62 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_63 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_64 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_65 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_66 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_67 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_68 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_69 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_70 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_71 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_72 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_73 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_74 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_75 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_76 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_77 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_78 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_79 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_80 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_81 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_82 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_83 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_84 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_85 is hidden from the screen — picture\_2 left the board.
- [14:7.771](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=847.7712291666667): polygon\_86 is hidden from the screen — picture\_2 left the board.

##### [14:8.971](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=848.9712291666667)

Narration: At lower noise, edges sharpen. The network can now distinguish a wall from its windows, a roof boundary from the sky, and one contour from a nearby contour.

Board: picture\_3 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); cap\_objects — a Math \[text\] that says "$x\_450$"; polygon\_87 — a Polygon \[blue\] drawn in picture\_3 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28); polygon\_88 — a Polygon \[green\] drawn in picture\_3 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34); polygon\_89 — a Polygon \[gray\] drawn in picture\_3 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55); polygon\_90 — a Polygon \[gray\] drawn in picture\_3 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42); circle — a Circle \[yellow\] drawn in picture\_3 (center=(6.7, 4.9), radius=0.52, filled=True); polygon\_91 — a Polygon \[red\] drawn in picture\_3 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.7); polygon\_92 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.7); polygon\_93 — a Polygon \[red\] drawn in picture\_3 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.48); polygon\_94 — a Polygon \[blue\] drawn in picture\_3 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.48); polygon\_95 — a Polygon \[red\] drawn in picture\_3 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.48); polygon\_96 — a Polygon \[blue\] drawn in picture\_3 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.48); polygon\_97 — a Polygon \[red\] drawn in picture\_3 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.48); polygon\_98 — a Polygon \[blue\] drawn in picture\_3 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.48); polygon\_99 — a Polygon \[red\] drawn in picture\_3 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.48); polygon\_100 — a Polygon \[blue\] drawn in picture\_3 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.48); polygon\_101 — a Polygon \[green\] drawn in picture\_3 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.48); polygon\_102 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.48); polygon\_103 — a Polygon \[green\] drawn in picture\_3 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.48); polygon\_104 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.48); polygon\_105 — a Polygon \[green\] drawn in picture\_3 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.48); polygon\_106 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.48); polygon\_107 — a Polygon \[green\] drawn in picture\_3 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.48); polygon\_108 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.48); polygon\_109 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.48); polygon\_110 — a Polygon \[gray\] drawn in picture\_3 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.48); polygon\_111 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.48); polygon\_112 — a Polygon \[gray\] drawn in picture\_3 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.48); polygon\_113 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.48); polygon\_114 — a Polygon \[gray\] drawn in picture\_3 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.48); polygon\_115 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.48)

Actions:
- [14:8.971](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=848.9712291666667): heading\_emerge is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): picture\_4 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_116 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_117 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_118 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_119 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): circle\_2 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_120 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_121 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_122 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_123 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_124 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): line is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): line\_2 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_125 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_126 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_127 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_128 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_129 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_130 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_131 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_132 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_133 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_134 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_135 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_136 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): polygon\_137 is shown on the screen, written out.
- [14:10.631](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=850.6307291666667): cap\_edges is shown on the screen, written out.

##### [14:20.171](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=860.1707291666667)

Narration: The last steps make smaller corrections. They adjust local contrast, texture, color consistency, and tiny geometric details while preserving the composition chosen earlier.

Board: picture\_3 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); cap\_objects — a Math \[text\] that says "$x\_450$"; polygon\_87 — a Polygon \[blue\] drawn in picture\_3 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28); polygon\_88 — a Polygon \[green\] drawn in picture\_3 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34); polygon\_89 — a Polygon \[gray\] drawn in picture\_3 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55); polygon\_90 — a Polygon \[gray\] drawn in picture\_3 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42); circle — a Circle \[yellow\] drawn in picture\_3 (center=(6.7, 4.9), radius=0.52, filled=True); polygon\_91 — a Polygon \[red\] drawn in picture\_3 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.7); polygon\_92 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.7); polygon\_93 — a Polygon \[red\] drawn in picture\_3 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.48); polygon\_94 — a Polygon \[blue\] drawn in picture\_3 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.48); polygon\_95 — a Polygon \[red\] drawn in picture\_3 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.48); polygon\_96 — a Polygon \[blue\] drawn in picture\_3 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.48); polygon\_97 — a Polygon \[red\] drawn in picture\_3 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.48); polygon\_98 — a Polygon \[blue\] drawn in picture\_3 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.48); polygon\_99 — a Polygon \[red\] drawn in picture\_3 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.48); polygon\_100 — a Polygon \[blue\] drawn in picture\_3 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.48); polygon\_101 — a Polygon \[green\] drawn in picture\_3 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.48); polygon\_102 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.48); polygon\_103 — a Polygon \[green\] drawn in picture\_3 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.48); polygon\_104 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.48); polygon\_105 — a Polygon \[green\] drawn in picture\_3 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.48); polygon\_106 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.48); polygon\_107 — a Polygon \[green\] drawn in picture\_3 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.48); polygon\_108 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.48); polygon\_109 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.48); polygon\_110 — a Polygon \[gray\] drawn in picture\_3 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.48); polygon\_111 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.48); polygon\_112 — a Polygon \[gray\] drawn in picture\_3 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.48); polygon\_113 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.48); polygon\_114 — a Polygon \[gray\] drawn in picture\_3 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.48); polygon\_115 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.48); picture\_4 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); cap\_edges — a Math \[text\] that says "$x\_200$"; heading\_emerge — a Heading that says "Structure Before Detail"; polygon\_116 — a Polygon \[blue\] drawn in picture\_4 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28); polygon\_117 — a Polygon \[green\] drawn in picture\_4 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34); polygon\_118 — a Polygon \[gray\] drawn in picture\_4 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55); polygon\_119 — a Polygon \[gray\] drawn in picture\_4 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42); circle\_2 — a Circle \[yellow\] drawn in picture\_4 (center=(6.7, 4.9), radius=0.52, filled=True); polygon\_120 — a Polygon \[red\] drawn in picture\_4 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.7); polygon\_121 — a Polygon \[yellow\] drawn in picture\_4 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.7); polygon\_122 — a Polygon \[gray\] drawn in picture\_4 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.86); polygon\_123 — a Polygon \[cyan\] drawn in picture\_4 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.92); polygon\_124 — a Polygon \[cyan\] drawn in picture\_4 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.92); line — a Line \[red\] drawn in picture\_4 (start=(4.7, 0.9), end=(6.5, 0.9)); line\_2 — a Line \[yellow\] drawn in picture\_4 (start=(4.4, 2.5), end=(6.8, 2.5)); polygon\_125 — a Polygon \[red\] drawn in picture\_4 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0))); polygon\_126 — a Polygon \[blue\] drawn in picture\_4 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0))); polygon\_127 — a Polygon \[red\] drawn in picture\_4 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0))); polygon\_128 — a Polygon \[blue\] drawn in picture\_4 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0))); polygon\_129 — a Polygon \[red\] drawn in picture\_4 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0))); polygon\_130 — a Polygon \[blue\] drawn in picture\_4 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0))); polygon\_131 — a Polygon \[red\] drawn in picture\_4 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0))); polygon\_132 — a Polygon \[blue\] drawn in picture\_4 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0))); polygon\_133 — a Polygon \[green\] drawn in picture\_4 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0))); polygon\_134 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0))); polygon\_135 — a Polygon \[green\] drawn in picture\_4 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0))); polygon\_136 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0))); polygon\_137 — a Polygon \[green\] drawn in picture\_4 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)))

Actions:
- [14:20.717](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=860.7167291666667): picture\_5 is shown on the screen, written out.
- [14:20.717](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=860.7167291666667): polygon\_138 is shown on the screen, written out.
- [14:20.717](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=860.7167291666667): polygon\_139 is shown on the screen, written out.
- [14:20.717](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=860.7167291666667): polygon\_140 is shown on the screen, written out.
- [14:20.717](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=860.7167291666667): polygon\_141 is shown on the screen, written out.
- [14:20.717](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=860.7167291666667): circle\_3 is shown on the screen, written out.
- [14:20.717](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=860.7167291666667): polygon\_142 is shown on the screen, written out.
- [14:20.717](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=860.7167291666667): polygon\_143 is shown on the screen, written out.
- [14:20.717](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=860.7167291666667): polygon\_144 is shown on the screen, written out.
- [14:20.717](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=860.7167291666667): polygon\_145 is shown on the screen, written out.
- [14:20.717](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=860.7167291666667): polygon\_146 is shown on the screen, written out.
- [14:20.717](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=860.7167291666667): line\_3 is shown on the screen, written out.
- [14:20.717](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=860.7167291666667): line\_4 is shown on the screen, written out.
- [14:20.717](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=860.7167291666667): cap\_final is shown on the screen, written out.

##### [14:32.323](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=872.3227291666667)

Narration: The completed image is not retrieved from a training record. It is one sample reached by starting at a newly drawn noise tensor and following the learned reverse dynamics.

Board: picture\_3 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); cap\_objects — a Math \[text\] that says "$x\_450$"; polygon\_87 — a Polygon \[blue\] drawn in picture\_3 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28); polygon\_88 — a Polygon \[green\] drawn in picture\_3 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34); polygon\_89 — a Polygon \[gray\] drawn in picture\_3 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55); polygon\_90 — a Polygon \[gray\] drawn in picture\_3 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42); circle — a Circle \[yellow\] drawn in picture\_3 (center=(6.7, 4.9), radius=0.52, filled=True); polygon\_91 — a Polygon \[red\] drawn in picture\_3 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.7); polygon\_92 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.7); polygon\_93 — a Polygon \[red\] drawn in picture\_3 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.48); polygon\_94 — a Polygon \[blue\] drawn in picture\_3 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.48); polygon\_95 — a Polygon \[red\] drawn in picture\_3 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.48); polygon\_96 — a Polygon \[blue\] drawn in picture\_3 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.48); polygon\_97 — a Polygon \[red\] drawn in picture\_3 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.48); polygon\_98 — a Polygon \[blue\] drawn in picture\_3 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.48); polygon\_99 — a Polygon \[red\] drawn in picture\_3 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.48); polygon\_100 — a Polygon \[blue\] drawn in picture\_3 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.48); polygon\_101 — a Polygon \[green\] drawn in picture\_3 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.48); polygon\_102 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.48); polygon\_103 — a Polygon \[green\] drawn in picture\_3 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.48); polygon\_104 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.48); polygon\_105 — a Polygon \[green\] drawn in picture\_3 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.48); polygon\_106 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.48); polygon\_107 — a Polygon \[green\] drawn in picture\_3 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.48); polygon\_108 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.48); polygon\_109 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.48); polygon\_110 — a Polygon \[gray\] drawn in picture\_3 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.48); polygon\_111 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.48); polygon\_112 — a Polygon \[gray\] drawn in picture\_3 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.48); polygon\_113 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.48); polygon\_114 — a Polygon \[gray\] drawn in picture\_3 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.48); polygon\_115 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.48); picture\_4 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); cap\_edges — a Math \[text\] that says "$x\_200$"; picture\_5 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); cap\_final — a Math \[text\] that says "$x\_0$"; heading\_emerge — a Heading that says "Structure Before Detail"; polygon\_116 — a Polygon \[blue\] drawn in picture\_4 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28); polygon\_117 — a Polygon \[green\] drawn in picture\_4 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34); polygon\_118 — a Polygon \[gray\] drawn in picture\_4 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55); polygon\_119 — a Polygon \[gray\] drawn in picture\_4 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42); circle\_2 — a Circle \[yellow\] drawn in picture\_4 (center=(6.7, 4.9), radius=0.52, filled=True); polygon\_120 — a Polygon \[red\] drawn in picture\_4 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.7); polygon\_121 — a Polygon \[yellow\] drawn in picture\_4 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.7); polygon\_122 — a Polygon \[gray\] drawn in picture\_4 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.86); polygon\_123 — a Polygon \[cyan\] drawn in picture\_4 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.92); polygon\_124 — a Polygon \[cyan\] drawn in picture\_4 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.92); line — a Line \[red\] drawn in picture\_4 (start=(4.7, 0.9), end=(6.5, 0.9)); line\_2 — a Line \[yellow\] drawn in picture\_4 (start=(4.4, 2.5), end=(6.8, 2.5)); polygon\_125 — a Polygon \[red\] drawn in picture\_4 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0))); polygon\_126 — a Polygon \[blue\] drawn in picture\_4 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0))); polygon\_127 — a Polygon \[red\] drawn in picture\_4 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0))); polygon\_128 — a Polygon \[blue\] drawn in picture\_4 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0))); polygon\_129 — a Polygon \[red\] drawn in picture\_4 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0))); polygon\_130 — a Polygon \[blue\] drawn in picture\_4 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0))); polygon\_131 — a Polygon \[red\] drawn in picture\_4 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0))); polygon\_132 — a Polygon \[blue\] drawn in picture\_4 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0))); polygon\_133 — a Polygon \[green\] drawn in picture\_4 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0))); polygon\_134 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0))); polygon\_135 — a Polygon \[green\] drawn in picture\_4 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0))); polygon\_136 — a Polygon \[magenta\] drawn in picture\_4 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0))); polygon\_137 — a Polygon \[green\] drawn in picture\_4 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0))); polygon\_138 — a Polygon \[blue\] drawn in picture\_5 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28); polygon\_139 — a Polygon \[green\] drawn in picture\_5 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34); polygon\_140 — a Polygon \[gray\] drawn in picture\_5 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55); polygon\_141 — a Polygon \[gray\] drawn in picture\_5 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42); circle\_3 — a Circle \[yellow\] drawn in picture\_5 (center=(6.7, 4.9), radius=0.52, filled=True); polygon\_142 — a Polygon \[red\] drawn in picture\_5 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.7); polygon\_143 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.7); polygon\_144 — a Polygon \[gray\] drawn in picture\_5 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.86); polygon\_145 — a Polygon \[cyan\] drawn in picture\_5 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.92); polygon\_146 — a Polygon \[cyan\] drawn in picture\_5 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.92); line\_3 — a Line \[red\] drawn in picture\_5 (start=(4.7, 0.9), end=(6.5, 0.9)); line\_4 — a Line \[yellow\] drawn in picture\_5 (start=(4.4, 2.5), end=(6.8, 2.5))

Actions:
- [14:36.758](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=876.7577291666666): polygon\_142 is indicated — a transient flash.
- [14:36.758](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=876.7577291666666): circle\_3 is indicated — a transient flash.

##### [14:42.908](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=882.9077291666666)

Narration: A second initial noise tensor would usually produce a different landscape, arrangement, or object identity. Randomness at the start supplies diversity, while the learned denoiser keeps the trajectory near the distribution of natural images.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): picture\_3 moves to a new place on the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): cap\_edges is hidden from the screen — left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): cap\_final is hidden from the screen — left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): cap\_objects is hidden from the screen — left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): heading\_emerge is hidden from the screen — left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): picture\_4 is hidden from the screen — left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_116 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_117 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_118 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_119 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): circle\_2 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_120 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_121 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_122 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_123 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_124 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): line is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): line\_2 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_125 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_126 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_127 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_128 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_129 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_130 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_131 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_132 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_133 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_134 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_135 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_136 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_137 is hidden from the screen — picture\_4 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): picture\_5 is hidden from the screen — left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_138 is hidden from the screen — picture\_5 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_139 is hidden from the screen — picture\_5 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_140 is hidden from the screen — picture\_5 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_141 is hidden from the screen — picture\_5 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): circle\_3 is hidden from the screen — picture\_5 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_142 is hidden from the screen — picture\_5 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_143 is hidden from the screen — picture\_5 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_144 is hidden from the screen — picture\_5 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_145 is hidden from the screen — picture\_5 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): polygon\_146 is hidden from the screen — picture\_5 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): line\_3 is hidden from the screen — picture\_5 left the board.
- [14:57.676](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=897.6757291666667): line\_4 is hidden from the screen — picture\_5 left the board.

##### [14:58.876](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=898.8757291666667)

Narration: Now inspect one reverse step. First, the neural network predicts epsilon hat t from the current noisy image and the current time.

Board: picture\_3 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); polygon\_87 — a Polygon \[blue\] drawn in picture\_3 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28); polygon\_88 — a Polygon \[green\] drawn in picture\_3 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34); polygon\_89 — a Polygon \[gray\] drawn in picture\_3 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55); polygon\_90 — a Polygon \[gray\] drawn in picture\_3 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42); circle — a Circle \[yellow\] drawn in picture\_3 (center=(6.7, 4.9), radius=0.52, filled=True); polygon\_91 — a Polygon \[red\] drawn in picture\_3 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.7); polygon\_92 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.7); polygon\_93 — a Polygon \[red\] drawn in picture\_3 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.48); polygon\_94 — a Polygon \[blue\] drawn in picture\_3 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.48); polygon\_95 — a Polygon \[red\] drawn in picture\_3 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.48); polygon\_96 — a Polygon \[blue\] drawn in picture\_3 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.48); polygon\_97 — a Polygon \[red\] drawn in picture\_3 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.48); polygon\_98 — a Polygon \[blue\] drawn in picture\_3 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.48); polygon\_99 — a Polygon \[red\] drawn in picture\_3 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.48); polygon\_100 — a Polygon \[blue\] drawn in picture\_3 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.48); polygon\_101 — a Polygon \[green\] drawn in picture\_3 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.48); polygon\_102 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.48); polygon\_103 — a Polygon \[green\] drawn in picture\_3 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.48); polygon\_104 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.48); polygon\_105 — a Polygon \[green\] drawn in picture\_3 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.48); polygon\_106 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.48); polygon\_107 — a Polygon \[green\] drawn in picture\_3 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.48); polygon\_108 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.48); polygon\_109 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.48); polygon\_110 — a Polygon \[gray\] drawn in picture\_3 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.48); polygon\_111 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.48); polygon\_112 — a Polygon \[gray\] drawn in picture\_3 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.48); polygon\_113 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.48); polygon\_114 — a Polygon \[gray\] drawn in picture\_3 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.48); polygon\_115 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.48)

Actions:
- [14:58.876](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=898.8757291666667): heading\_rule is shown on the screen, written out.
- [15:3.404](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=903.4037291666667): predict is shown on the screen, written out.
- [15:5.784](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=905.7837291666667): predict (the "x\_t,t" part) is emphasized.
- [15:8.291](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=908.2912291666667): predict (the "x\_t,t" part) is no longer emphasized.

##### [15:8.891](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=908.8912291666667)

Narration: The reverse mean uses that prediction with coefficients derived from the same forward schedule. The long expression is calibrated subtraction, not simply x t minus epsilon hat.

Board: picture\_3 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); polygon\_87 — a Polygon \[blue\] drawn in picture\_3 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28); polygon\_88 — a Polygon \[green\] drawn in picture\_3 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34); polygon\_89 — a Polygon \[gray\] drawn in picture\_3 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55); polygon\_90 — a Polygon \[gray\] drawn in picture\_3 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42); circle — a Circle \[yellow\] drawn in picture\_3 (center=(6.7, 4.9), radius=0.52, filled=True); polygon\_91 — a Polygon \[red\] drawn in picture\_3 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.7); polygon\_92 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.7); polygon\_93 — a Polygon \[red\] drawn in picture\_3 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.48); polygon\_94 — a Polygon \[blue\] drawn in picture\_3 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.48); polygon\_95 — a Polygon \[red\] drawn in picture\_3 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.48); polygon\_96 — a Polygon \[blue\] drawn in picture\_3 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.48); polygon\_97 — a Polygon \[red\] drawn in picture\_3 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.48); polygon\_98 — a Polygon \[blue\] drawn in picture\_3 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.48); polygon\_99 — a Polygon \[red\] drawn in picture\_3 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.48); polygon\_100 — a Polygon \[blue\] drawn in picture\_3 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.48); polygon\_101 — a Polygon \[green\] drawn in picture\_3 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.48); polygon\_102 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.48); polygon\_103 — a Polygon \[green\] drawn in picture\_3 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.48); polygon\_104 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.48); polygon\_105 — a Polygon \[green\] drawn in picture\_3 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.48); polygon\_106 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.48); polygon\_107 — a Polygon \[green\] drawn in picture\_3 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.48); polygon\_108 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.48); polygon\_109 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.48); polygon\_110 — a Polygon \[gray\] drawn in picture\_3 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.48); polygon\_111 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.48); polygon\_112 — a Polygon \[gray\] drawn in picture\_3 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.48); polygon\_113 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.48); polygon\_114 — a Polygon \[gray\] drawn in picture\_3 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.48); polygon\_115 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.48); predict — a Math \[text\] that says "$hat(epsilon)\_t = epsilon\_theta(x\_t,t)$"; heading\_rule — a Heading that says "One Reverse Step"

Actions:
- [15:9.82](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=909.8197291666667): mean is shown on the screen, written out.
- [15:10.552](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=910.5517291666667): mean (the "hat(epsilon)\_t" part) is emphasized.
- [15:16.926](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=916.9257291666667): mean (the "hat(epsilon)\_t" part) is no longer emphasized.

##### [15:21.775](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=921.7747291666667)

Narration: Why the coefficients? The forward process scaled both signal and noise at every transition. A valid reverse step must undo that scaling while estimating which component belongs to the clean-image direction.

Board: picture\_3 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); polygon\_87 — a Polygon \[blue\] drawn in picture\_3 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28); polygon\_88 — a Polygon \[green\] drawn in picture\_3 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34); polygon\_89 — a Polygon \[gray\] drawn in picture\_3 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55); polygon\_90 — a Polygon \[gray\] drawn in picture\_3 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42); circle — a Circle \[yellow\] drawn in picture\_3 (center=(6.7, 4.9), radius=0.52, filled=True); polygon\_91 — a Polygon \[red\] drawn in picture\_3 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.7); polygon\_92 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.7); polygon\_93 — a Polygon \[red\] drawn in picture\_3 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.48); polygon\_94 — a Polygon \[blue\] drawn in picture\_3 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.48); polygon\_95 — a Polygon \[red\] drawn in picture\_3 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.48); polygon\_96 — a Polygon \[blue\] drawn in picture\_3 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.48); polygon\_97 — a Polygon \[red\] drawn in picture\_3 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.48); polygon\_98 — a Polygon \[blue\] drawn in picture\_3 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.48); polygon\_99 — a Polygon \[red\] drawn in picture\_3 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.48); polygon\_100 — a Polygon \[blue\] drawn in picture\_3 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.48); polygon\_101 — a Polygon \[green\] drawn in picture\_3 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.48); polygon\_102 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.48); polygon\_103 — a Polygon \[green\] drawn in picture\_3 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.48); polygon\_104 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.48); polygon\_105 — a Polygon \[green\] drawn in picture\_3 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.48); polygon\_106 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.48); polygon\_107 — a Polygon \[green\] drawn in picture\_3 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.48); polygon\_108 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.48); polygon\_109 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.48); polygon\_110 — a Polygon \[gray\] drawn in picture\_3 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.48); polygon\_111 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.48); polygon\_112 — a Polygon \[gray\] drawn in picture\_3 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.48); polygon\_113 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.48); polygon\_114 — a Polygon \[gray\] drawn in picture\_3 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.48); polygon\_115 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.48); predict — a Math \[text\] that says "$hat(epsilon)\_t = epsilon\_theta(x\_t,t)$"; mean — a Math \[text\] that says "$mu\_theta(x\_t,t) = frac(1,sqrt(alpha\_t)) (x\_t-frac(1-alpha\_t,sqrt(1-overline(alpha)\_t))hat(epsilon)\_t)$"; heading\_rule — a Heading that says "One Reverse Step"

Actions:
- [15:31.528](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=931.5277291666666): mean (the "frac(1,sqrt(alpha\_t))" part) is indicated — a transient flash.

##### [15:36.585](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=936.5852291666666)

Narration: For a standard stochastic diffusion sampler, add a calibrated Gaussian term sigma t z. This does not carelessly put back the noise we removed. It represents uncertainty in which slightly cleaner image could have produced the current one.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [15:37.77](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=937.7697291666667): sample is shown on the screen, written out.
- [15:40.858](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=940.8577291666667): sample (the "sigma\_t z" part) is emphasized.
- [15:51.911](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=951.9107291666667): sample (the "sigma\_t z" part) is no longer emphasized.

##### [15:52.511](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=952.5107291666667)

Narration: That uncertainty can also be handled by deterministic trajectories or by samplers using fewer, larger numerical steps. These are alternative ways to traverse a learned denoising field. The central model is still the time-dependent predictor trained on noisy images.

Board: picture\_3 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); polygon\_87 — a Polygon \[blue\] drawn in picture\_3 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28); polygon\_88 — a Polygon \[green\] drawn in picture\_3 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34); polygon\_89 — a Polygon \[gray\] drawn in picture\_3 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55); polygon\_90 — a Polygon \[gray\] drawn in picture\_3 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42); circle — a Circle \[yellow\] drawn in picture\_3 (center=(6.7, 4.9), radius=0.52, filled=True); polygon\_91 — a Polygon \[red\] drawn in picture\_3 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.7); polygon\_92 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.7); polygon\_93 — a Polygon \[red\] drawn in picture\_3 (vertices=((0, 0), (1.0, 0), (1.0, 1.0), (0, 1.0)), fill\_opacity=0.48); polygon\_94 — a Polygon \[blue\] drawn in picture\_3 (vertices=((1, 2), (2.0, 2), (2.0, 3.0), (1, 3.0)), fill\_opacity=0.48); polygon\_95 — a Polygon \[red\] drawn in picture\_3 (vertices=((2, 4), (3.0, 4), (3.0, 5.0), (2, 5.0)), fill\_opacity=0.48); polygon\_96 — a Polygon \[blue\] drawn in picture\_3 (vertices=((3, 0), (4.0, 0), (4.0, 1.0), (3, 1.0)), fill\_opacity=0.48); polygon\_97 — a Polygon \[red\] drawn in picture\_3 (vertices=((4, 2), (5.0, 2), (5.0, 3.0), (4, 3.0)), fill\_opacity=0.48); polygon\_98 — a Polygon \[blue\] drawn in picture\_3 (vertices=((5, 4), (6.0, 4), (6.0, 5.0), (5, 5.0)), fill\_opacity=0.48); polygon\_99 — a Polygon \[red\] drawn in picture\_3 (vertices=((6, 0), (7.0, 0), (7.0, 1.0), (6, 1.0)), fill\_opacity=0.48); polygon\_100 — a Polygon \[blue\] drawn in picture\_3 (vertices=((7, 2), (8.0, 2), (8.0, 3.0), (7, 3.0)), fill\_opacity=0.48); polygon\_101 — a Polygon \[green\] drawn in picture\_3 (vertices=((0, 5), (1.0, 5), (1.0, 6.0), (0, 6.0)), fill\_opacity=0.48); polygon\_102 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((1, 1), (2.0, 1), (2.0, 2.0), (1, 2.0)), fill\_opacity=0.48); polygon\_103 — a Polygon \[green\] drawn in picture\_3 (vertices=((2, 3), (3.0, 3), (3.0, 4.0), (2, 4.0)), fill\_opacity=0.48); polygon\_104 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((3, 5), (4.0, 5), (4.0, 6.0), (3, 6.0)), fill\_opacity=0.48); polygon\_105 — a Polygon \[green\] drawn in picture\_3 (vertices=((4, 1), (5.0, 1), (5.0, 2.0), (4, 2.0)), fill\_opacity=0.48); polygon\_106 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((5, 3), (6.0, 3), (6.0, 4.0), (5, 4.0)), fill\_opacity=0.48); polygon\_107 — a Polygon \[green\] drawn in picture\_3 (vertices=((6, 5), (7.0, 5), (7.0, 6.0), (6, 6.0)), fill\_opacity=0.48); polygon\_108 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((7, 1), (8.0, 1), (8.0, 2.0), (7, 2.0)), fill\_opacity=0.48); polygon\_109 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((0, 4), (1.0, 4), (1.0, 5.0), (0, 5.0)), fill\_opacity=0.48); polygon\_110 — a Polygon \[gray\] drawn in picture\_3 (vertices=((1, 0), (2.0, 0), (2.0, 1.0), (1, 1.0)), fill\_opacity=0.48); polygon\_111 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((2, 2), (3.0, 2), (3.0, 3.0), (2, 3.0)), fill\_opacity=0.48); polygon\_112 — a Polygon \[gray\] drawn in picture\_3 (vertices=((3, 4), (4.0, 4), (4.0, 5.0), (3, 5.0)), fill\_opacity=0.48); polygon\_113 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((4, 0), (5.0, 0), (5.0, 1.0), (4, 1.0)), fill\_opacity=0.48); polygon\_114 — a Polygon \[gray\] drawn in picture\_3 (vertices=((5, 2), (6.0, 2), (6.0, 3.0), (5, 3.0)), fill\_opacity=0.48); polygon\_115 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((6, 4), (7.0, 4), (7.0, 5.0), (6, 5.0)), fill\_opacity=0.48); predict — a Math \[text\] that says "$hat(epsilon)\_t = epsilon\_theta(x\_t,t)$"; mean — a Math \[text\] that says "$mu\_theta(x\_t,t) = frac(1,sqrt(alpha\_t)) (x\_t-frac(1-alpha\_t,sqrt(1-overline(alpha)\_t))hat(epsilon)\_t)$"; sample — a Math \[text\] that says "$x\_(t-1) = mu\_theta(x\_t,t) + sigma\_t z, quad z in cal(N)(0,I)$"; heading\_rule — a Heading that says "One Reverse Step"

Actions:
- [15:53.173](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=953.1727291666666): stochastic\_note is shown on the screen, written out.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): heading\_rule is hidden from the screen — left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): mean is hidden from the screen — left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): picture\_3 is hidden from the screen — left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_87 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_88 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_89 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_90 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): circle is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_91 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_92 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_93 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_94 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_95 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_96 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_97 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_98 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_99 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_100 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_101 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_102 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_103 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_104 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_105 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_106 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_107 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_108 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_109 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_110 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_111 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_112 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_113 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_114 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): polygon\_115 is hidden from the screen — picture\_3 left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): predict is hidden from the screen — left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): sample is hidden from the screen — left the board.
- [16:9.601](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=969.6012291666666): stochastic\_note is hidden from the screen — left the board.

##### [16:10.201](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=970.2012291666667)

Narration: The full sampling algorithm is now short enough to read as a loop. Start by drawing x T from a standard Gaussian.

Board: Empty.

Actions:
- [16:10.201](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=970.2012291666667): heading\_loop is shown on the screen, written out.
- [16:10.201](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=970.2012291666667): loop is shown on the screen, written out.
- [16:14.636](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=974.6357291666667): loop is shown on the screen, written out.
- [16:17.039](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=977.0387291666667): loop (the "row=2" part) is emphasized.
- [16:18.096](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=978.0957291666666): loop (the "row=2" part) is no longer emphasized.

##### [16:18.696](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=978.6957291666666)

Narration: At the current time, run the network once to predict the noise component.

Board: heading\_loop — a Heading that says "The Sampling Loop"

Actions:
- [16:20.658](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=980.6577291666667): loop (the "row=3" part) is emphasized.
- [16:21.529](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=981.5287291666667): loop is shown on the screen, written out.
- [16:23.223](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=983.2232291666667): loop (the "row=3" part) is no longer emphasized.

##### [16:23.823](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=983.8232291666667)

Narration: Use that prediction and the schedule to sample a slightly cleaner state. The state remains noisy unless t is already near zero.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [16:24.695](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=984.6947291666667): loop is shown on the screen, written out.
- [16:27.353](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=987.3527291666667): loop (the "row=4" part) is emphasized.
- [16:32.032](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=992.0322291666666): loop (the "row=4" part) is no longer emphasized.

##### [16:32.632](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=992.6322291666667)

Narration: Decrease t and repeat. The same network is reused at every step, with its time input telling it which denoising regime is required.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [16:34.304](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=994.3037291666667): loop is shown on the screen, written out.
- [16:38.379](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=998.3787291666667): loop (the "row=5" part) is emphasized.
- [16:41.688](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1001.6877291666667): loop (the "row=5" part) is no longer emphasized.

##### [16:42.288](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1002.2877291666666)

Narration: At zero, the state is interpreted as an image sample. Pure noise supplied the initial randomness; the learned sequence of local reverse decisions supplied recognizable structure.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [16:44.796](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1004.7957291666667): picture\_5 is shown on the screen, written out.
- [16:44.796](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1004.7957291666667): polygon\_138 is shown on the screen, written out.
- [16:44.796](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1004.7957291666667): polygon\_139 is shown on the screen, written out.
- [16:44.796](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1004.7957291666667): polygon\_140 is shown on the screen, written out.
- [16:44.796](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1004.7957291666667): polygon\_141 is shown on the screen, written out.
- [16:44.796](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1004.7957291666667): circle\_3 is shown on the screen, written out.
- [16:44.796](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1004.7957291666667): polygon\_142 is shown on the screen, written out.
- [16:44.796](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1004.7957291666667): polygon\_143 is shown on the screen, written out.
- [16:44.796](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1004.7957291666667): polygon\_144 is shown on the screen, written out.
- [16:44.796](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1004.7957291666667): polygon\_145 is shown on the screen, written out.
- [16:44.796](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1004.7957291666667): polygon\_146 is shown on the screen, written out.
- [16:44.796](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1004.7957291666667): line\_3 is shown on the screen, written out.
- [16:44.796](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1004.7957291666667): line\_4 is shown on the screen, written out.

##### [16:54.927](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1014.9267291666666)

Narration: We can now generate plausible images, but we have not told the model which plausible image we want. The final ingredient is conditioning, where a text prompt steers the same denoising process toward a chosen description.

Board: picture\_5 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); polygon\_138 — a Polygon \[blue\] drawn in picture\_5 (vertices=((0.0, 2.0), (8.0, 2.0), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.28); polygon\_139 — a Polygon \[green\] drawn in picture\_5 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.0), (0.0, 2.0)), fill\_opacity=0.34); polygon\_140 — a Polygon \[gray\] drawn in picture\_5 (vertices=((0.0, 2.0), (2.5, 4.6), (4.2, 2.0)), fill\_opacity=0.55); polygon\_141 — a Polygon \[gray\] drawn in picture\_5 (vertices=((2.0, 2.0), (4.9, 5.0), (7.2, 2.0)), fill\_opacity=0.42); circle\_3 — a Circle \[yellow\] drawn in picture\_5 (center=(6.7, 4.9), radius=0.52, filled=True); polygon\_142 — a Polygon \[red\] drawn in picture\_5 (vertices=((4.7, 0.9), (6.5, 0.9), (6.5, 2.5), (4.7, 2.5)), fill\_opacity=0.7); polygon\_143 — a Polygon \[yellow\] drawn in picture\_5 (vertices=((4.4, 2.5), (5.6, 3.45), (6.8, 2.5)), fill\_opacity=0.7); polygon\_144 — a Polygon \[gray\] drawn in picture\_5 (vertices=((5.42, 0.9), (5.82, 0.9), (5.82, 1.72), (5.42, 1.72)), fill\_opacity=0.86); polygon\_145 — a Polygon \[cyan\] drawn in picture\_5 (vertices=((4.98, 1.82), (5.38, 1.82), (5.38, 2.2), (4.98, 2.2)), fill\_opacity=0.92); polygon\_146 — a Polygon \[cyan\] drawn in picture\_5 (vertices=((5.86, 1.82), (6.26, 1.82), (6.26, 2.2), (5.86, 2.2)), fill\_opacity=0.92); line\_3 — a Line \[red\] drawn in picture\_5 (start=(4.7, 0.9), end=(6.5, 0.9)); line\_4 — a Line \[yellow\] drawn in picture\_5 (start=(4.4, 2.5), end=(6.8, 2.5)); heading\_loop — a Heading that says "The Sampling Loop"

Actions:
- [17:8.894](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1028.8939791666667): heading\_loop is hidden from the screen — left the board.
- [17:8.894](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1028.8939791666667): loop is hidden from the screen — left the board.
- [17:8.894](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1028.8939791666667): picture\_5 is hidden from the screen — left the board.
- [17:8.894](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1028.8939791666667): polygon\_138 is hidden from the screen — picture\_5 left the board.
- [17:8.894](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1028.8939791666667): polygon\_139 is hidden from the screen — picture\_5 left the board.
- [17:8.894](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1028.8939791666667): polygon\_140 is hidden from the screen — picture\_5 left the board.
- [17:8.894](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1028.8939791666667): polygon\_141 is hidden from the screen — picture\_5 left the board.
- [17:8.894](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1028.8939791666667): circle\_3 is hidden from the screen — picture\_5 left the board.
- [17:8.894](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1028.8939791666667): polygon\_142 is hidden from the screen — picture\_5 left the board.
- [17:8.894](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1028.8939791666667): polygon\_143 is hidden from the screen — picture\_5 left the board.
- [17:8.894](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1028.8939791666667): polygon\_144 is hidden from the screen — picture\_5 left the board.
- [17:8.894](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1028.8939791666667): polygon\_145 is hidden from the screen — picture\_5 left the board.
- [17:8.894](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1028.8939791666667): polygon\_146 is hidden from the screen — picture\_5 left the board.
- [17:8.894](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1028.8939791666667): line\_3 is hidden from the screen — picture\_5 left the board.
- [17:8.894](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1028.8939791666667): line\_4 is hidden from the screen — picture\_5 left the board.

### Scene 5: [Text Conditioning and Guidance](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1029.9356458333334)

Span: 17:9.936–22:47.662 (1029.9356458333334s–1367.6616041666666s).

#### Objects

- balanced\_caption: a Math \[text\] that says "$w=1$"
- conditional: a Math \[text\] that says "$hat(epsilon)\_c = epsilon\_theta(x\_t,t,c)$"
- conditioning: a Math \[text\] that says "$hat(epsilon)\_c = epsilon\_theta(x\_t,t,c)$"
- diagram: a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0))
- direction\_note: a Panel that says "The difference between conditional and unconditional predictions is a direction that makes the current sample more compatible with the prompt."
- encoder\_arrow: an Arrow \[yellow\] drawn in diagram (start=(3.65, 4.45), end=(4.65, 4.45))
- guided: a Math \[text\] that says "$hat(epsilon)\_(upright("guided")) = hat(epsilon)\_emptyset + w(hat(epsilon)\_c-hat(epsilon)\_emptyset)$"
- heading\_attention: a Heading that says "Where Text Enters"
- heading\_condition: a Heading that says "Give the Denoiser a Prompt"
- heading\_guidance: a Heading that says "Classifier-Free Guidance"
- heading\_summary: a Heading that says "The Whole Diffusion Story"
- heading\_tradeoff: a Heading that says "Turning the Guidance Up"
- image\_arrow: an Arrow \[magenta\] drawn in diagram (start=(3.35, 1.7), end=(4.8, 1.7))
- line: a Line \[gray\] drawn in picture\_2 (start=(4.0, 1.65), end=(4.0, 4.6))
- line\_2: a Line \[gray\] drawn in picture\_3 (start=(4.0, 1.65), end=(4.0, 4.6))
- line\_3: a Line \[magenta\] drawn in picture\_3 (start=(0.2, 0.45), end=(7.8, 0.45))
- line\_4: a Line \[magenta\] drawn in picture\_3 (start=(0.2, 0.75), end=(7.8, 0.75))
- line\_5: a Line \[red\] drawn in picture\_3 (start=(0.3, 5.55), end=(7.7, 5.55))
- low\_caption: a Math \[text\] that says "$w=0$"
- network\_box: a Polygon \[yellow\] drawn in diagram (vertices=((5.0, 0.6), (8.0, 0.6), (8.0, 2.8), (5.0, 2.8)), fill\_opacity=0.16)
- network\_label: a Math \[yellow\] that says "$upright("denoiser")$" drawn in diagram
- noisy\_box: a Polygon \[magenta\] drawn in diagram (vertices=((0.8, 0.6), (3.2, 0.6), (3.2, 2.8), (0.8, 2.8)), fill\_opacity=0.28)
- noisy\_label: a Math \[magenta\] that says "$x\_t$" drawn in diagram
- output\_arrow: an Arrow \[green\] drawn in diagram (start=(8.2, 1.7), end=(9.2, 1.7))
- output\_box: a Polygon \[green\] drawn in diagram (vertices=((9.4, 0.6), (11.7, 0.6), (11.7, 2.8), (9.4, 2.8)), fill\_opacity=0.24)
- output\_label: a Math \[green\] that says "$hat(epsilon)\_c$" drawn in diagram
- parts: a Polygon \[blue\] drawn in picture (vertices=((0.0, 2.2), (8.0, 2.2), (8.0, 6.0), (0.0, 6.0)))
- parts\_2: a Polygon \[blue\] drawn in picture (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.2), (0.0, 2.2)), fill\_opacity=0.42)
- parts\_3: a Circle \[red\] drawn in picture (center=(6.6, 4.5), radius=0.62, filled=True)
- parts\_4: a Polygon \[yellow\] drawn in picture\_2 (vertices=((0.0, 2.2), (8.0, 2.2), (8.0, 6.0), (0.0, 6.0)))
- parts\_5: a Polygon \[blue\] drawn in picture\_2 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.2), (0.0, 2.2)), fill\_opacity=0.42)
- parts\_6: a Circle \[red\] drawn in picture\_2 (center=(6.6, 4.5), radius=0.62, filled=True)
- parts\_7: a Polygon \[yellow\] drawn in picture\_3 (vertices=((0.0, 2.2), (8.0, 2.2), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.48)
- parts\_8: a Polygon \[blue\] drawn in picture\_3 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.2), (0.0, 2.2)), fill\_opacity=0.7)
- parts\_9: a Circle \[red\] drawn in picture\_3 (center=(6.6, 4.5), radius=0.78, filled=True)
- picture: a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0))
- picture\_2: a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0))
- picture\_3: a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0))
- polygon: a Polygon \[gray\] drawn in picture (vertices=((1.0, 2.2), (2.8, 4.2), (4.2, 2.2)), fill\_opacity=0.55)
- polygon\_2: a Polygon \[green\] drawn in picture (vertices=((4.8, 0.8), (6.2, 0.8), (6.2, 2.0), (4.8, 2.0)), fill\_opacity=0.65)
- polygon\_3: a Polygon \[red\] drawn in picture\_2 (vertices=((2.2, 1.0), (5.8, 1.0), (5.1, 1.75), (2.8, 1.75)), fill\_opacity=0.8)
- polygon\_4: a Polygon \[red\] drawn in picture\_2 (vertices=((4.0, 4.5), (4.0, 1.9), (6.1, 2.6)), fill\_opacity=0.72)
- polygon\_5: a Polygon \[red\] drawn in picture\_3 (vertices=((2.2, 1.0), (5.8, 1.0), (5.1, 1.75), (2.8, 1.75)), fill\_opacity=1.0)
- polygon\_6: a Polygon \[red\] drawn in picture\_3 (vertices=((4.0, 4.5), (4.0, 1.9), (6.1, 2.6)), fill\_opacity=1.0)
- polygon\_7: a Polygon \[magenta\] drawn in picture\_3 (vertices=((6.8, 2.0), (7.6, 2.0), (7.6, 3.0), (6.8, 3.0)), fill\_opacity=0.85)
- prompt: a Tex \[text\] that says "a red sailboat at sunset"
- prompt\_box: a Polygon \[yellow\] drawn in diagram (vertices=((0.3, 3.5), (3.5, 3.5), (3.5, 5.4), (0.3, 5.4)), fill\_opacity=0.16)
- prompt\_label: a Math \[yellow\] that says "$upright("text prompt")$" drawn in diagram
- strong\_caption: a Math \[text\] that says "$w=7$"
- summary: a Block \[text\] that says "Corrupt data into known Gaussian noise. Train $epsilon\_theta$ to predict the sampled noise. Sample noise and apply learned reverse steps. Condition those steps on text, then choose guidance strength."
- text\_arrow: an Arrow \[yellow\] drawn in diagram (start=(6.5, 3.85), end=(6.5, 2.95))
- token\_labels: a Math \[red\] that says "$upright("red")$" drawn in diagram
- token\_labels\_2: a Math \[green\] that says "$upright("boat")$" drawn in diagram
- token\_labels\_3: a Math \[blue\] that says "$upright("sunset")$" drawn in diagram
- tokens: a Polygon \[red\] drawn in diagram (vertices=((4.8, 4.0), (5.8, 4.0), (5.8, 4.9), (4.8, 4.9)), fill\_opacity=0.22)
- tokens\_2: a Polygon \[green\] drawn in diagram (vertices=((5.95, 4.0), (6.95, 4.0), (6.95, 4.9), (5.95, 4.9)), fill\_opacity=0.22)
- tokens\_3: a Polygon \[blue\] drawn in diagram (vertices=((7.1, 4.0), (8.1, 4.0), (8.1, 4.9), (7.1, 4.9)), fill\_opacity=0.22)
- tradeoffs: a Block \[text\] that says "Higher $w$: usually stronger prompt adherence. Higher $w$: usually less sample diversity. Too high: harsh contrast, artifacts, or unnatural images. The useful range depends on the model and sampler."
- unconditional: a Math \[text\] that says "$hat(epsilon)\_emptyset = epsilon\_theta(x\_t,t,emptyset)$"

#### Beats

##### [17:9.936](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1029.9356458333334)

Narration: To request a particular image, add a condition c. Let the prompt be: a red sailboat at sunset. The reverse process remains a sequence of denoising steps, but every prediction may now depend on that description.

Board: Empty.

Actions:
- [17:9.936](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1029.9356458333334): heading\_condition is shown on the screen, written out.
- [17:12.339](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1032.3386458333334): conditioning is shown on the screen, written out.
- [17:14.29](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1034.2896458333335): prompt is shown on the screen, written out.

##### [17:25.338](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1045.3381458333333)

Narration: A text encoder converts the prompt into a sequence of learned vectors. These vectors represent tokens and their relationships, rather than a single hand-written list of visual rules.

Board: prompt — a Tex \[text\] that says "a red sailboat at sunset"; conditioning — a Math \[text\] that says "$hat(epsilon)\_c = epsilon\_theta(x\_t,t,c)$"; heading\_condition — a Heading that says "Give the Denoiser a Prompt"

Actions:
- [17:26.244](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1046.2436458333334): diagram is shown on the screen, written out.
- [17:26.732](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1046.7316458333335): encoder\_arrow is shown on the screen, written out.
- [17:26.732](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1046.7316458333335): tokens is shown on the screen, written out.
- [17:26.732](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1046.7316458333335): tokens\_2 is shown on the screen, written out.
- [17:26.732](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1046.7316458333335): tokens\_3 is shown on the screen, written out.
- [17:26.732](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1046.7316458333335): token\_labels is shown on the screen, written out.
- [17:26.732](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1046.7316458333335): token\_labels\_2 is shown on the screen, written out.
- [17:26.732](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1046.7316458333335): token\_labels\_3 is shown on the screen, written out.
- [17:27.301](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1047.3006458333334): prompt\_box is shown on the screen, written out.
- [17:27.301](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1047.3006458333334): prompt\_label is shown on the screen, written out.

##### [17:37.328](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1057.3276458333335)

Narration: The noisy image x t enters the denoiser as before. Time t still tells the network how much corruption to expect.

Board: prompt — a Tex \[text\] that says "a red sailboat at sunset"; conditioning — a Math \[text\] that says "$hat(epsilon)\_c = epsilon\_theta(x\_t,t,c)$"; diagram — a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0)); heading\_condition — a Heading that says "Give the Denoiser a Prompt"; prompt\_box — a Polygon \[yellow\] drawn in diagram (vertices=((0.3, 3.5), (3.5, 3.5), (3.5, 5.4), (0.3, 5.4)), fill\_opacity=0.16); prompt\_label — a Math \[yellow\] that says "$upright("text prompt")$" drawn in diagram; encoder\_arrow — an Arrow \[yellow\] drawn in diagram (start=(3.65, 4.45), end=(4.65, 4.45)); tokens — a Polygon \[red\] drawn in diagram (vertices=((4.8, 4.0), (5.8, 4.0), (5.8, 4.9), (4.8, 4.9)), fill\_opacity=0.22); tokens\_2 — a Polygon \[green\] drawn in diagram (vertices=((5.95, 4.0), (6.95, 4.0), (6.95, 4.9), (5.95, 4.9)), fill\_opacity=0.22); tokens\_3 — a Polygon \[blue\] drawn in diagram (vertices=((7.1, 4.0), (8.1, 4.0), (8.1, 4.9), (7.1, 4.9)), fill\_opacity=0.22); token\_labels — a Math \[red\] that says "$upright("red")$" drawn in diagram; token\_labels\_2 — a Math \[green\] that says "$upright("boat")$" drawn in diagram; token\_labels\_3 — a Math \[blue\] that says "$upright("sunset")$" drawn in diagram

Actions:
- [17:37.874](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1057.8736458333335): noisy\_box is shown on the screen, written out.
- [17:37.874](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1057.8736458333335): noisy\_label is shown on the screen, written out.
- [17:39.244](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1059.2436458333334): image\_arrow is shown on the screen, written out.
- [17:39.731](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1059.7306458333335): network\_box is shown on the screen, written out.
- [17:39.731](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1059.7306458333335): network\_label is shown on the screen, written out.

##### [17:45.938](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1065.9381458333335)

Narration: Text features also enter the denoising network. In common architectures, cross-attention lets spatial image features query the token sequence. A region beginning to resemble a boat can therefore respond strongly to the boat token.

Board: prompt — a Tex \[text\] that says "a red sailboat at sunset"; conditioning — a Math \[text\] that says "$hat(epsilon)\_c = epsilon\_theta(x\_t,t,c)$"; diagram — a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0)); heading\_condition — a Heading that says "Give the Denoiser a Prompt"; prompt\_box — a Polygon \[yellow\] drawn in diagram (vertices=((0.3, 3.5), (3.5, 3.5), (3.5, 5.4), (0.3, 5.4)), fill\_opacity=0.16); prompt\_label — a Math \[yellow\] that says "$upright("text prompt")$" drawn in diagram; encoder\_arrow — an Arrow \[yellow\] drawn in diagram (start=(3.65, 4.45), end=(4.65, 4.45)); tokens — a Polygon \[red\] drawn in diagram (vertices=((4.8, 4.0), (5.8, 4.0), (5.8, 4.9), (4.8, 4.9)), fill\_opacity=0.22); tokens\_2 — a Polygon \[green\] drawn in diagram (vertices=((5.95, 4.0), (6.95, 4.0), (6.95, 4.9), (5.95, 4.9)), fill\_opacity=0.22); tokens\_3 — a Polygon \[blue\] drawn in diagram (vertices=((7.1, 4.0), (8.1, 4.0), (8.1, 4.9), (7.1, 4.9)), fill\_opacity=0.22); token\_labels — a Math \[red\] that says "$upright("red")$" drawn in diagram; token\_labels\_2 — a Math \[green\] that says "$upright("boat")$" drawn in diagram; token\_labels\_3 — a Math \[blue\] that says "$upright("sunset")$" drawn in diagram; noisy\_box — a Polygon \[magenta\] drawn in diagram (vertices=((0.8, 0.6), (3.2, 0.6), (3.2, 2.8), (0.8, 2.8)), fill\_opacity=0.28); noisy\_label — a Math \[magenta\] that says "$x\_t$" drawn in diagram; image\_arrow — an Arrow \[magenta\] drawn in diagram (start=(3.35, 1.7), end=(4.8, 1.7)); network\_box — a Polygon \[yellow\] drawn in diagram (vertices=((5.0, 0.6), (8.0, 0.6), (8.0, 2.8), (5.0, 2.8)), fill\_opacity=0.16); network\_label — a Math \[yellow\] that says "$upright("denoiser")$" drawn in diagram

Actions:
- [17:46.24](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1066.2396458333335): text\_arrow is shown on the screen, written out.
- [17:59.731](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1079.7306458333335): token\_labels\_2 is indicated — a transient flash.

##### [18:1.422](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1081.4221458333334)

Narration: The output is still a noise estimate, not a finished image. Conditioning changes which noise the model predicts should be removed from a sample compatible with the prompt.

Board: prompt — a Tex \[text\] that says "a red sailboat at sunset"; conditioning — a Math \[text\] that says "$hat(epsilon)\_c = epsilon\_theta(x\_t,t,c)$"; diagram — a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0)); heading\_condition — a Heading that says "Give the Denoiser a Prompt"; prompt\_box — a Polygon \[yellow\] drawn in diagram (vertices=((0.3, 3.5), (3.5, 3.5), (3.5, 5.4), (0.3, 5.4)), fill\_opacity=0.16); prompt\_label — a Math \[yellow\] that says "$upright("text prompt")$" drawn in diagram; encoder\_arrow — an Arrow \[yellow\] drawn in diagram (start=(3.65, 4.45), end=(4.65, 4.45)); tokens — a Polygon \[red\] drawn in diagram (vertices=((4.8, 4.0), (5.8, 4.0), (5.8, 4.9), (4.8, 4.9)), fill\_opacity=0.22); tokens\_2 — a Polygon \[green\] drawn in diagram (vertices=((5.95, 4.0), (6.95, 4.0), (6.95, 4.9), (5.95, 4.9)), fill\_opacity=0.22); tokens\_3 — a Polygon \[blue\] drawn in diagram (vertices=((7.1, 4.0), (8.1, 4.0), (8.1, 4.9), (7.1, 4.9)), fill\_opacity=0.22); token\_labels — a Math \[red\] that says "$upright("red")$" drawn in diagram; token\_labels\_2 — a Math \[green\] that says "$upright("boat")$" drawn in diagram; token\_labels\_3 — a Math \[blue\] that says "$upright("sunset")$" drawn in diagram; noisy\_box — a Polygon \[magenta\] drawn in diagram (vertices=((0.8, 0.6), (3.2, 0.6), (3.2, 2.8), (0.8, 2.8)), fill\_opacity=0.28); noisy\_label — a Math \[magenta\] that says "$x\_t$" drawn in diagram; image\_arrow — an Arrow \[magenta\] drawn in diagram (start=(3.35, 1.7), end=(4.8, 1.7)); network\_box — a Polygon \[yellow\] drawn in diagram (vertices=((5.0, 0.6), (8.0, 0.6), (8.0, 2.8), (5.0, 2.8)), fill\_opacity=0.16); network\_label — a Math \[yellow\] that says "$upright("denoiser")$" drawn in diagram; text\_arrow — an Arrow \[yellow\] drawn in diagram (start=(6.5, 3.85), end=(6.5, 2.95))

Actions:
- [18:2.026](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1082.0256458333333): output\_arrow is shown on the screen, written out.
- [18:2.862](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1082.8616458333333): output\_box is shown on the screen, written out.
- [18:2.862](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1082.8616458333333): output\_label is shown on the screen, written out.

##### [18:12.064](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1092.0641458333334)

Narration: This distinction keeps the generative mechanism unified. An unconditional model and a text-conditioned model both perform learned reverse diffusion. The condition changes the direction of each local step.

Board: prompt — a Tex \[text\] that says "a red sailboat at sunset"; conditioning — a Math \[text\] that says "$hat(epsilon)\_c = epsilon\_theta(x\_t,t,c)$"; diagram — a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0)); heading\_condition — a Heading that says "Give the Denoiser a Prompt"; prompt\_box — a Polygon \[yellow\] drawn in diagram (vertices=((0.3, 3.5), (3.5, 3.5), (3.5, 5.4), (0.3, 5.4)), fill\_opacity=0.16); prompt\_label — a Math \[yellow\] that says "$upright("text prompt")$" drawn in diagram; encoder\_arrow — an Arrow \[yellow\] drawn in diagram (start=(3.65, 4.45), end=(4.65, 4.45)); tokens — a Polygon \[red\] drawn in diagram (vertices=((4.8, 4.0), (5.8, 4.0), (5.8, 4.9), (4.8, 4.9)), fill\_opacity=0.22); tokens\_2 — a Polygon \[green\] drawn in diagram (vertices=((5.95, 4.0), (6.95, 4.0), (6.95, 4.9), (5.95, 4.9)), fill\_opacity=0.22); tokens\_3 — a Polygon \[blue\] drawn in diagram (vertices=((7.1, 4.0), (8.1, 4.0), (8.1, 4.9), (7.1, 4.9)), fill\_opacity=0.22); token\_labels — a Math \[red\] that says "$upright("red")$" drawn in diagram; token\_labels\_2 — a Math \[green\] that says "$upright("boat")$" drawn in diagram; token\_labels\_3 — a Math \[blue\] that says "$upright("sunset")$" drawn in diagram; noisy\_box — a Polygon \[magenta\] drawn in diagram (vertices=((0.8, 0.6), (3.2, 0.6), (3.2, 2.8), (0.8, 2.8)), fill\_opacity=0.28); noisy\_label — a Math \[magenta\] that says "$x\_t$" drawn in diagram; image\_arrow — an Arrow \[magenta\] drawn in diagram (start=(3.35, 1.7), end=(4.8, 1.7)); network\_box — a Polygon \[yellow\] drawn in diagram (vertices=((5.0, 0.6), (8.0, 0.6), (8.0, 2.8), (5.0, 2.8)), fill\_opacity=0.16); network\_label — a Math \[yellow\] that says "$upright("denoiser")$" drawn in diagram; text\_arrow — an Arrow \[yellow\] drawn in diagram (start=(6.5, 3.85), end=(6.5, 2.95)); output\_arrow — an Arrow \[green\] drawn in diagram (start=(8.2, 1.7), end=(9.2, 1.7)); output\_box — a Polygon \[green\] drawn in diagram (vertices=((9.4, 0.6), (11.7, 0.6), (11.7, 2.8), (9.4, 2.8)), fill\_opacity=0.24); output\_label — a Math \[green\] that says "$hat(epsilon)\_c$" drawn in diagram

Actions:
- [18:25.602](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1105.6016458333334): conditioning moves to a new place on the board.
- [18:25.602](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1105.6016458333334): prompt moves to a new place on the board.
- [18:25.602](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1105.6016458333334): heading\_condition is hidden from the screen — left the board.

##### [18:26.802](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1106.8016458333334)

Narration: At an early, very noisy step, prompt information mainly influences global choices. The words sailboat and sunset can affect composition, object category, and broad color relationships before any rope or edge exists.

Board: prompt — a Tex \[text\] that says "a red sailboat at sunset"; conditioning — a Math \[text\] that says "$hat(epsilon)\_c = epsilon\_theta(x\_t,t,c)$"; diagram — a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0)); prompt\_box — a Polygon \[yellow\] drawn in diagram (vertices=((0.3, 3.5), (3.5, 3.5), (3.5, 5.4), (0.3, 5.4)), fill\_opacity=0.16); prompt\_label — a Math \[yellow\] that says "$upright("text prompt")$" drawn in diagram; encoder\_arrow — an Arrow \[yellow\] drawn in diagram (start=(3.65, 4.45), end=(4.65, 4.45)); tokens — a Polygon \[red\] drawn in diagram (vertices=((4.8, 4.0), (5.8, 4.0), (5.8, 4.9), (4.8, 4.9)), fill\_opacity=0.22); tokens\_2 — a Polygon \[green\] drawn in diagram (vertices=((5.95, 4.0), (6.95, 4.0), (6.95, 4.9), (5.95, 4.9)), fill\_opacity=0.22); tokens\_3 — a Polygon \[blue\] drawn in diagram (vertices=((7.1, 4.0), (8.1, 4.0), (8.1, 4.9), (7.1, 4.9)), fill\_opacity=0.22); token\_labels — a Math \[red\] that says "$upright("red")$" drawn in diagram; token\_labels\_2 — a Math \[green\] that says "$upright("boat")$" drawn in diagram; token\_labels\_3 — a Math \[blue\] that says "$upright("sunset")$" drawn in diagram; noisy\_box — a Polygon \[magenta\] drawn in diagram (vertices=((0.8, 0.6), (3.2, 0.6), (3.2, 2.8), (0.8, 2.8)), fill\_opacity=0.28); noisy\_label — a Math \[magenta\] that says "$x\_t$" drawn in diagram; image\_arrow — an Arrow \[magenta\] drawn in diagram (start=(3.35, 1.7), end=(4.8, 1.7)); network\_box — a Polygon \[yellow\] drawn in diagram (vertices=((5.0, 0.6), (8.0, 0.6), (8.0, 2.8), (5.0, 2.8)), fill\_opacity=0.16); network\_label — a Math \[yellow\] that says "$upright("denoiser")$" drawn in diagram; text\_arrow — an Arrow \[yellow\] drawn in diagram (start=(6.5, 3.85), end=(6.5, 2.95)); output\_arrow — an Arrow \[green\] drawn in diagram (start=(8.2, 1.7), end=(9.2, 1.7)); output\_box — a Polygon \[green\] drawn in diagram (vertices=((9.4, 0.6), (11.7, 0.6), (11.7, 2.8), (9.4, 2.8)), fill\_opacity=0.24); output\_label — a Math \[green\] that says "$hat(epsilon)\_c$" drawn in diagram

Actions:
- [18:26.802](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1106.8016458333334): heading\_attention is shown on the screen, written out.
- [18:33.756](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1113.7556458333333): token\_labels\_2 is indicated — a transient flash.
- [18:34.452](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1114.4516458333335): token\_labels\_3 is indicated — a transient flash.

##### [18:42.448](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1122.4476458333334)

Narration: At later steps, the same conditioning can influence finer details: the outline of a sail, reflections on water, and local texture. The condition is available throughout the trajectory, but what it can usefully control changes with the noise level.

Board: prompt — a Tex \[text\] that says "a red sailboat at sunset"; conditioning — a Math \[text\] that says "$hat(epsilon)\_c = epsilon\_theta(x\_t,t,c)$"; diagram — a Figure (x\_range=(0.0, 12.0), y\_range=(0.0, 6.0), aspect=(2.0, 1.0)); prompt\_box — a Polygon \[yellow\] drawn in diagram (vertices=((0.3, 3.5), (3.5, 3.5), (3.5, 5.4), (0.3, 5.4)), fill\_opacity=0.16); prompt\_label — a Math \[yellow\] that says "$upright("text prompt")$" drawn in diagram; encoder\_arrow — an Arrow \[yellow\] drawn in diagram (start=(3.65, 4.45), end=(4.65, 4.45)); tokens — a Polygon \[red\] drawn in diagram (vertices=((4.8, 4.0), (5.8, 4.0), (5.8, 4.9), (4.8, 4.9)), fill\_opacity=0.22); tokens\_2 — a Polygon \[green\] drawn in diagram (vertices=((5.95, 4.0), (6.95, 4.0), (6.95, 4.9), (5.95, 4.9)), fill\_opacity=0.22); tokens\_3 — a Polygon \[blue\] drawn in diagram (vertices=((7.1, 4.0), (8.1, 4.0), (8.1, 4.9), (7.1, 4.9)), fill\_opacity=0.22); token\_labels — a Math \[red\] that says "$upright("red")$" drawn in diagram; token\_labels\_2 — a Math \[green\] that says "$upright("boat")$" drawn in diagram; token\_labels\_3 — a Math \[blue\] that says "$upright("sunset")$" drawn in diagram; noisy\_box — a Polygon \[magenta\] drawn in diagram (vertices=((0.8, 0.6), (3.2, 0.6), (3.2, 2.8), (0.8, 2.8)), fill\_opacity=0.28); noisy\_label — a Math \[magenta\] that says "$x\_t$" drawn in diagram; image\_arrow — an Arrow \[magenta\] drawn in diagram (start=(3.35, 1.7), end=(4.8, 1.7)); network\_box — a Polygon \[yellow\] drawn in diagram (vertices=((5.0, 0.6), (8.0, 0.6), (8.0, 2.8), (5.0, 2.8)), fill\_opacity=0.16); network\_label — a Math \[yellow\] that says "$upright("denoiser")$" drawn in diagram; text\_arrow — an Arrow \[yellow\] drawn in diagram (start=(6.5, 3.85), end=(6.5, 2.95)); output\_arrow — an Arrow \[green\] drawn in diagram (start=(8.2, 1.7), end=(9.2, 1.7)); output\_box — a Polygon \[green\] drawn in diagram (vertices=((9.4, 0.6), (11.7, 0.6), (11.7, 2.8), (9.4, 2.8)), fill\_opacity=0.24); output\_label — a Math \[green\] that says "$hat(epsilon)\_c$" drawn in diagram; heading\_attention — a Heading that says "Where Text Enters"

Actions:
- [18:56.195](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1136.1946458333334): conditioning (the "t,c" part) is emphasized.
- [18:57.286](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1137.2861458333334): conditioning (the "t,c" part) is no longer emphasized.

##### [18:57.886](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1137.8861458333333)

Narration: During training, the model sees image and text pairs. The noise target is still known exactly, so conditioning does not destroy the supervised objective. It adds information the predictor may use to estimate epsilon.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [19:10.704](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1150.7036458333334): output\_label is indicated — a transient flash.

##### [19:12.279](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1152.2786458333335)

Narration: A plain conditional prediction may follow the text, but practitioners often want a stronger response. Classifier-free guidance supplies a controllable way to amplify the prompt's influence without training a separate image classifier.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): conditioning is hidden from the screen — left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): diagram is hidden from the screen — left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): prompt\_box is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): prompt\_label is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): encoder\_arrow is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): tokens is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): tokens\_2 is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): tokens\_3 is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): token\_labels is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): token\_labels\_2 is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): token\_labels\_3 is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): noisy\_box is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): noisy\_label is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): image\_arrow is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): network\_box is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): network\_label is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): text\_arrow is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): output\_arrow is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): output\_box is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): output\_label is hidden from the screen — diagram left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): heading\_attention is hidden from the screen — left the board.
- [19:25.584](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1165.5841458333334): prompt is hidden from the screen — left the board.

##### [19:26.784](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1166.7841458333335)

Narration: The method asks the same network for two predictions. First, run it with an empty condition. This estimates how the sample should denoise without knowing the prompt.

Board: Empty.

Actions:
- [19:26.784](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1166.7841458333335): heading\_guidance is shown on the screen, written out.
- [19:31.556](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1171.5556458333333): unconditional is shown on the screen, written out.
- [19:31.556](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1171.5556458333333): unconditional (the "emptyset" part) is emphasized.
- [19:37.454](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1177.4536458333334): unconditional (the "emptyset" part) is no longer emphasized.

##### [19:38.054](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1178.0536458333333)

Narration: Second, run it with condition c. This prediction includes both general image knowledge and the influence of the text.

Board: unconditional — a Math \[text\] that says "$hat(epsilon)\_emptyset = epsilon\_theta(x\_t,t,emptyset)$"; heading\_guidance — a Heading that says "Classifier-Free Guidance"

Actions:
- [19:39.702](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1179.7016458333335): conditional is shown on the screen, written out.
- [19:44.532](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1184.5316458333334): conditional (the "c" part) is emphasized.
- [19:45.321](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1185.3206458333334): conditional (the "c" part) is no longer emphasized.

##### [19:45.921](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1185.9206458333333)

Narration: Subtract the unconditional prediction from the conditional one. The difference points toward a denoising decision that makes the current sample more compatible with the prompt.

Board: unconditional — a Math \[text\] that says "$hat(epsilon)\_emptyset = epsilon\_theta(x\_t,t,emptyset)$"; conditional — a Math \[text\] that says "$hat(epsilon)\_c = epsilon\_theta(x\_t,t,c)$"; heading\_guidance — a Heading that says "Classifier-Free Guidance"

Actions:
- [19:50.112](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1190.1116458333333): direction\_note is shown on the screen, written out.

##### [19:56.018](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1196.0176458333335)

Narration: Here is the guidance formula. Start with the unconditional prediction. Then multiply the conditional direction by a guidance strength w and add it.

Board: direction\_note — a Panel that says "The difference between conditional and unconditional predictions is a direction that makes the current sample more compatible with the prompt."; unconditional — a Math \[text\] that says "$hat(epsilon)\_emptyset = epsilon\_theta(x\_t,t,emptyset)$"; conditional — a Math \[text\] that says "$hat(epsilon)\_c = epsilon\_theta(x\_t,t,c)$"; heading\_guidance — a Heading that says "Classifier-Free Guidance"

Actions:
- [19:56.018](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1196.0176458333335): guided is shown on the screen, written out.
- [20:1.742](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1201.7416458333335): guided (the "hat(epsilon)\_c-hat(epsilon)\_emptyset" part) is emphasized.
- [20:3.402](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1203.4016458333335): guided (the "hat(epsilon)\_c-hat(epsilon)\_emptyset" part) is no longer emphasized.
- [20:3.402](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1203.4016458333335): guided (the "w" part) is emphasized.
- [20:5.573](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1205.5726458333334): guided (the "w" part) is no longer emphasized.

##### [20:6.173](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1206.1726458333335)

Narration: At w equal to zero, the conditional direction contributes nothing. At w equal to one, the formula returns the ordinary conditional prediction. Values above one extrapolate beyond it.

Board: direction\_note — a Panel that says "The difference between conditional and unconditional predictions is a direction that makes the current sample more compatible with the prompt."; unconditional — a Math \[text\] that says "$hat(epsilon)\_emptyset = epsilon\_theta(x\_t,t,emptyset)$"; conditional — a Math \[text\] that says "$hat(epsilon)\_c = epsilon\_theta(x\_t,t,c)$"; guided — a Math \[text\] that says "$hat(epsilon)\_(upright("guided")) = hat(epsilon)\_emptyset + w(hat(epsilon)\_c-hat(epsilon)\_emptyset)$"; heading\_guidance — a Heading that says "Classifier-Free Guidance"

Actions:
- [20:7.578](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1207.5776458333335): guided (the "w" part) is emphasized.
- [20:17.272](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1217.2716458333334): guided (the "w" part) is no longer emphasized.
- [20:18.944](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1218.9436458333334): conditional is hidden from the screen — left the board.
- [20:18.944](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1218.9436458333334): direction\_note is hidden from the screen — left the board.
- [20:18.944](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1218.9436458333334): guided is hidden from the screen — left the board.
- [20:18.944](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1218.9436458333334): heading\_guidance is hidden from the screen — left the board.
- [20:18.944](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1218.9436458333334): unconditional is hidden from the screen — left the board.

##### [20:19.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1219.5436458333334)

Narration: The three pictures are a schematic comparison from the same prompt. With zero guidance, the model can produce a plausible image while largely ignoring the requested sailboat.

Board: Empty.

Actions:
- [20:19.544](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1219.5436458333334): heading\_tradeoff is shown on the screen, written out.
- [20:24.107](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1224.1066458333335): picture is shown on the screen, written out.
- [20:24.107](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1224.1066458333335): parts is shown on the screen, written out.
- [20:24.107](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1224.1066458333335): parts\_2 is shown on the screen, written out.
- [20:24.107](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1224.1066458333335): parts\_3 is shown on the screen, written out.
- [20:24.107](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1224.1066458333335): polygon is shown on the screen, written out.
- [20:24.107](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1224.1066458333335): polygon\_2 is shown on the screen, written out.
- [20:24.107](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1224.1066458333335): low\_caption is shown on the screen, written out.

##### [20:30.36](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1230.3601458333335)

Narration: At one, the ordinary conditional prediction introduces the requested boat and sunset while retaining the model's natural range of possible compositions.

Board: picture — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); low\_caption — a Math \[text\] that says "$w=0$"; heading\_tradeoff — a Heading that says "Turning the Guidance Up"; parts — a Polygon \[blue\] drawn in picture (vertices=((0.0, 2.2), (8.0, 2.2), (8.0, 6.0), (0.0, 6.0))); parts\_2 — a Polygon \[blue\] drawn in picture (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.2), (0.0, 2.2)), fill\_opacity=0.42); parts\_3 — a Circle \[red\] drawn in picture (center=(6.6, 4.5), radius=0.62, filled=True); polygon — a Polygon \[gray\] drawn in picture (vertices=((1.0, 2.2), (2.8, 4.2), (4.2, 2.2)), fill\_opacity=0.55); polygon\_2 — a Polygon \[green\] drawn in picture (vertices=((4.8, 0.8), (6.2, 0.8), (6.2, 2.0), (4.8, 2.0)), fill\_opacity=0.65)

Actions:
- [20:30.964](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1230.9636458333334): picture\_2 is shown on the screen, written out.
- [20:30.964](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1230.9636458333334): parts\_4 is shown on the screen, written out.
- [20:30.964](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1230.9636458333334): parts\_5 is shown on the screen, written out.
- [20:30.964](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1230.9636458333334): parts\_6 is shown on the screen, written out.
- [20:30.964](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1230.9636458333334): polygon\_3 is shown on the screen, written out.
- [20:30.964](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1230.9636458333334): line is shown on the screen, written out.
- [20:30.964](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1230.9636458333334): polygon\_4 is shown on the screen, written out.
- [20:30.964](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1230.9636458333334): balanced\_caption is shown on the screen, written out.

##### [20:40.271](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1240.2711458333333)

Narration: Turn guidance much higher and prompt features are pushed harder. The boat may become more unmistakable, colors more forceful, and composition more literal.

Board: picture — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); low\_caption — a Math \[text\] that says "$w=0$"; picture\_2 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); balanced\_caption — a Math \[text\] that says "$w=1$"; heading\_tradeoff — a Heading that says "Turning the Guidance Up"; parts — a Polygon \[blue\] drawn in picture (vertices=((0.0, 2.2), (8.0, 2.2), (8.0, 6.0), (0.0, 6.0))); parts\_2 — a Polygon \[blue\] drawn in picture (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.2), (0.0, 2.2)), fill\_opacity=0.42); parts\_3 — a Circle \[red\] drawn in picture (center=(6.6, 4.5), radius=0.62, filled=True); polygon — a Polygon \[gray\] drawn in picture (vertices=((1.0, 2.2), (2.8, 4.2), (4.2, 2.2)), fill\_opacity=0.55); polygon\_2 — a Polygon \[green\] drawn in picture (vertices=((4.8, 0.8), (6.2, 0.8), (6.2, 2.0), (4.8, 2.0)), fill\_opacity=0.65); parts\_4 — a Polygon \[yellow\] drawn in picture\_2 (vertices=((0.0, 2.2), (8.0, 2.2), (8.0, 6.0), (0.0, 6.0))); parts\_5 — a Polygon \[blue\] drawn in picture\_2 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.2), (0.0, 2.2)), fill\_opacity=0.42); parts\_6 — a Circle \[red\] drawn in picture\_2 (center=(6.6, 4.5), radius=0.62, filled=True); polygon\_3 — a Polygon \[red\] drawn in picture\_2 (vertices=((2.2, 1.0), (5.8, 1.0), (5.1, 1.75), (2.8, 1.75)), fill\_opacity=0.8); line — a Line \[gray\] drawn in picture\_2 (start=(4.0, 1.65), end=(4.0, 4.6)); polygon\_4 — a Polygon \[red\] drawn in picture\_2 (vertices=((4.0, 4.5), (4.0, 1.9), (6.1, 2.6)), fill\_opacity=0.72)

Actions:
- [20:41.735](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1241.7346458333334): picture\_3 is shown on the screen, written out.
- [20:41.735](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1241.7346458333334): parts\_7 is shown on the screen, written out.
- [20:41.735](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1241.7346458333334): parts\_8 is shown on the screen, written out.
- [20:41.735](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1241.7346458333334): parts\_9 is shown on the screen, written out.
- [20:41.735](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1241.7346458333334): polygon\_5 is shown on the screen, written out.
- [20:41.735](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1241.7346458333334): line\_2 is shown on the screen, written out.
- [20:41.735](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1241.7346458333334): polygon\_6 is shown on the screen, written out.
- [20:41.735](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1241.7346458333334): line\_3 is shown on the screen, written out.
- [20:41.735](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1241.7346458333334): line\_4 is shown on the screen, written out.
- [20:41.735](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1241.7346458333334): line\_5 is shown on the screen, written out.
- [20:41.735](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1241.7346458333334): polygon\_7 is shown on the screen, written out.
- [20:41.735](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1241.7346458333334): strong\_caption is shown on the screen, written out.

##### [20:50.961](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1250.9606458333335)

Narration: But stronger is not simply better. Extrapolation can move the trajectory away from the distribution on which the denoiser was trained. Excessive guidance may create harsh contrast, repeated edges, distorted geometry, or artificial texture.

Board: picture — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); low\_caption — a Math \[text\] that says "$w=0$"; picture\_2 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); balanced\_caption — a Math \[text\] that says "$w=1$"; picture\_3 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); strong\_caption — a Math \[text\] that says "$w=7$"; heading\_tradeoff — a Heading that says "Turning the Guidance Up"; parts — a Polygon \[blue\] drawn in picture (vertices=((0.0, 2.2), (8.0, 2.2), (8.0, 6.0), (0.0, 6.0))); parts\_2 — a Polygon \[blue\] drawn in picture (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.2), (0.0, 2.2)), fill\_opacity=0.42); parts\_3 — a Circle \[red\] drawn in picture (center=(6.6, 4.5), radius=0.62, filled=True); polygon — a Polygon \[gray\] drawn in picture (vertices=((1.0, 2.2), (2.8, 4.2), (4.2, 2.2)), fill\_opacity=0.55); polygon\_2 — a Polygon \[green\] drawn in picture (vertices=((4.8, 0.8), (6.2, 0.8), (6.2, 2.0), (4.8, 2.0)), fill\_opacity=0.65); parts\_4 — a Polygon \[yellow\] drawn in picture\_2 (vertices=((0.0, 2.2), (8.0, 2.2), (8.0, 6.0), (0.0, 6.0))); parts\_5 — a Polygon \[blue\] drawn in picture\_2 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.2), (0.0, 2.2)), fill\_opacity=0.42); parts\_6 — a Circle \[red\] drawn in picture\_2 (center=(6.6, 4.5), radius=0.62, filled=True); polygon\_3 — a Polygon \[red\] drawn in picture\_2 (vertices=((2.2, 1.0), (5.8, 1.0), (5.1, 1.75), (2.8, 1.75)), fill\_opacity=0.8); line — a Line \[gray\] drawn in picture\_2 (start=(4.0, 1.65), end=(4.0, 4.6)); polygon\_4 — a Polygon \[red\] drawn in picture\_2 (vertices=((4.0, 4.5), (4.0, 1.9), (6.1, 2.6)), fill\_opacity=0.72); parts\_7 — a Polygon \[yellow\] drawn in picture\_3 (vertices=((0.0, 2.2), (8.0, 2.2), (8.0, 6.0), (0.0, 6.0)), fill\_opacity=0.48); parts\_8 — a Polygon \[blue\] drawn in picture\_3 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.2), (0.0, 2.2)), fill\_opacity=0.7); parts\_9 — a Circle \[red\] drawn in picture\_3 (center=(6.6, 4.5), radius=0.78, filled=True); polygon\_5 — a Polygon \[red\] drawn in picture\_3 (vertices=((2.2, 1.0), (5.8, 1.0), (5.1, 1.75), (2.8, 1.75)), fill\_opacity=1.0); line\_2 — a Line \[gray\] drawn in picture\_3 (start=(4.0, 1.65), end=(4.0, 4.6)); polygon\_6 — a Polygon \[red\] drawn in picture\_3 (vertices=((4.0, 4.5), (4.0, 1.9), (6.1, 2.6)), fill\_opacity=1.0); line\_3 — a Line \[magenta\] drawn in picture\_3 (start=(0.2, 0.45), end=(7.8, 0.45)); line\_4 — a Line \[magenta\] drawn in picture\_3 (start=(0.2, 0.75), end=(7.8, 0.75)); line\_5 — a Line \[red\] drawn in picture\_3 (start=(0.3, 5.55), end=(7.7, 5.55)); polygon\_7 — a Polygon \[magenta\] drawn in picture\_3 (vertices=((6.8, 2.0), (7.6, 2.0), (7.6, 3.0), (6.8, 3.0)), fill\_opacity=0.85)

Actions:
- [20:59.506](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1259.5056458333333): polygon\_7 is indicated — a transient flash.

##### [21:7.431](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1267.4311458333334)

Narration: It also reduces diversity. If the conditional direction is amplified on every sample, different initial noise tensors are pulled toward a narrower set of prompt-compatible solutions.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [21:8.662](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1268.6616458333335): polygon\_3 is indicated — a transient flash.

##### [21:19.061](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1279.0611458333333)

Narration: So guidance strength controls a tradeoff. Turning it up usually improves literal prompt adherence, but tends to sacrifice variation and can eventually sacrifice naturalness and image quality.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): picture\_2 moves to a new place on the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): balanced\_caption is hidden from the screen — left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): low\_caption is hidden from the screen — left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): picture is hidden from the screen — left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): parts is hidden from the screen — picture left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): parts\_2 is hidden from the screen — picture left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): parts\_3 is hidden from the screen — picture left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): polygon is hidden from the screen — picture left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): polygon\_2 is hidden from the screen — picture left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): picture\_3 is hidden from the screen — left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): parts\_7 is hidden from the screen — picture\_3 left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): parts\_8 is hidden from the screen — picture\_3 left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): parts\_9 is hidden from the screen — picture\_3 left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): polygon\_5 is hidden from the screen — picture\_3 left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): line\_2 is hidden from the screen — picture\_3 left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): polygon\_6 is hidden from the screen — picture\_3 left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): line\_3 is hidden from the screen — picture\_3 left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): line\_4 is hidden from the screen — picture\_3 left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): line\_5 is hidden from the screen — picture\_3 left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): polygon\_7 is hidden from the screen — picture\_3 left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): strong\_caption is hidden from the screen — left the board.
- [21:20.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1280.9536458333334): tradeoffs is shown on the screen, written out.
- [21:24.402](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1284.4016458333335): tradeoffs (the "stronger prompt adherence" part) is emphasized.
- [21:26.457](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1286.4566458333334): tradeoffs (the "less sample diversity" part) is emphasized.
- [21:26.457](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1286.4566458333334): tradeoffs (the "stronger prompt adherence" part) is no longer emphasized.
- [21:30.044](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1290.0436458333334): tradeoffs (the "harsh contrast, artifacts, or unnatural images" part) is emphasized.
- [21:30.044](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1290.0436458333334): tradeoffs (the "less sample diversity" part) is no longer emphasized.
- [21:30.961](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1290.9611458333334): tradeoffs (the "harsh contrast, artifacts, or unnatural images" part) is no longer emphasized.

##### [21:31.561](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1291.5611458333333)

Narration: There is no universal best number. The useful range depends on the model, its training, the sampler, the prompt, and the desired balance between faithfulness and variety.

Board: picture\_2 — a Figure (x\_range=(0.0, 8.0), y\_range=(0.0, 6.0), aspect=(4.0, 3.0)); heading\_tradeoff — a Heading that says "Turning the Guidance Up"; parts\_4 — a Polygon \[yellow\] drawn in picture\_2 (vertices=((0.0, 2.2), (8.0, 2.2), (8.0, 6.0), (0.0, 6.0))); parts\_5 — a Polygon \[blue\] drawn in picture\_2 (vertices=((0.0, 0.0), (8.0, 0.0), (8.0, 2.2), (0.0, 2.2)), fill\_opacity=0.42); parts\_6 — a Circle \[red\] drawn in picture\_2 (center=(6.6, 4.5), radius=0.62, filled=True); polygon\_3 — a Polygon \[red\] drawn in picture\_2 (vertices=((2.2, 1.0), (5.8, 1.0), (5.1, 1.75), (2.8, 1.75)), fill\_opacity=0.8); line — a Line \[gray\] drawn in picture\_2 (start=(4.0, 1.65), end=(4.0, 4.6)); polygon\_4 — a Polygon \[red\] drawn in picture\_2 (vertices=((4.0, 4.5), (4.0, 1.9), (6.1, 2.6)), fill\_opacity=0.72); tradeoffs — a Block \[text\] that says "Higher $w$: usually stronger prompt adherence. Higher $w$: usually less sample diversity. Too high: harsh contrast, artifacts, or unnatural images. The useful range depends on the model and sampler."

Actions:
- [21:35.312](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1295.3116458333334): tradeoffs (the "depends on the model and sampler" part) is emphasized.
- [21:42.985](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1302.9851458333333): heading\_tradeoff is hidden from the screen — left the board.
- [21:42.985](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1302.9851458333333): picture\_2 is hidden from the screen — left the board.
- [21:42.985](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1302.9851458333333): parts\_4 is hidden from the screen — picture\_2 left the board.
- [21:42.985](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1302.9851458333333): parts\_5 is hidden from the screen — picture\_2 left the board.
- [21:42.985](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1302.9851458333333): parts\_6 is hidden from the screen — picture\_2 left the board.
- [21:42.985](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1302.9851458333333): polygon\_3 is hidden from the screen — picture\_2 left the board.
- [21:42.985](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1302.9851458333333): line is hidden from the screen — picture\_2 left the board.
- [21:42.985](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1302.9851458333333): polygon\_4 is hidden from the screen — picture\_2 left the board.
- [21:42.985](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1302.9851458333333): tradeoffs is hidden from the screen — left the board.
- [21:42.985](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1302.9851458333333): tradeoffs (the "depends on the model and sampler" part) is no longer emphasized.

##### [21:43.585](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1303.5851458333334)

Narration: Now the complete diffusion story fits into four steps. First, define a forward process that turns real images into known Gaussian noise.

Board: Empty.

Actions:
- [21:43.585](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1303.5851458333334): heading\_summary is shown on the screen, written out.
- [21:45.954](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1305.9536458333334): summary is shown on the screen, written out.
- [21:47.486](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1307.4856458333334): summary (the "Corrupt data" part) is emphasized.

##### [21:53.403](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1313.4031458333334)

Narration: Second, create supervised examples by sampling a clean image, a time, and epsilon. Train a neural network to predict that exact epsilon from the noisy image and time.

Board: summary — a Block \[text\] that says "Corrupt data into known Gaussian noise. Train $epsilon\_theta$ to predict the sampled noise. Sample noise and apply learned reverse steps. Condition those steps on text, then choose guidance strength."; heading\_summary — a Heading that says "The Whole Diffusion Story"

Actions:
- [21:53.752](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1313.7516458333334): summary (the "Corrupt data" part) is no longer emphasized.
- [21:53.752](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1313.7516458333334): summary (the "Train $epsilon\_theta$" part) is emphasized.

##### [22:5.126](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1325.1256458333335)

Narration: Third, generate by starting from fresh Gaussian noise and applying learned reverse steps. Large-scale structure usually settles before fine detail because the available information changes across noise levels.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [22:5.602](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1325.6016458333334): summary (the "Sample noise" part) is emphasized.
- [22:5.602](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1325.6016458333334): summary (the "Train $epsilon\_theta$" part) is no longer emphasized.

##### [22:18.961](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1338.9611458333334)

Narration: Fourth, condition the denoiser on text. Classifier-free guidance amplifies the conditional direction, trading diversity and eventually naturalness for stronger prompt adherence.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [22:19.31](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1339.3096458333334): summary (the "Condition those steps" part) is emphasized.
- [22:19.31](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1339.3096458333334): summary (the "Sample noise" part) is no longer emphasized.
- [22:31.314](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1351.3141458333334): summary (the "Condition those steps" part) is no longer emphasized.

##### [22:31.914](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1351.9141458333334)

Narration: The central trick is therefore not that one network learns to paint an image in a single leap. It learns a supervised family of noise-removal decisions, and generation emerges when those modest decisions are chained from randomness all the way to an image.

Board: Unchanged from the preceding beat in this scene.

Actions:
- [22:38.091](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1358.0906458333334): summary (the "predict the sampled noise" part) is indicated — a transient flash.
- [22:46.62](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1366.6199375): heading\_summary is hidden from the screen — left the board.
- [22:46.62](https://academa.ai/lectures/diffusion-models-learning-to-denoise?t=1366.6199375): summary is hidden from the screen — left the board.
