Deep LearningAugust 5, 2026 · 16 min read

From DDPM to Stable Diffusion: A Historical Timeline

Stable Diffusion did not emerge from one breakthrough. It was the August 2022 convergence of a learned denoising process, faster sampling paths, language–image representations, guidance, and compressed latent-space generation.

By Hongsheng Liu

The endpoint determines the history

A paper-by-paper timeline can make research look like a relay race: DDPM hands the baton to DDIM, which hands it to latent diffusion, which is replaced by Stable Diffusion. That is not what happened. Each result changed a different part of the system, and most of the earlier parts remained in the final stack.

The useful historical question is therefore not “Which model won?” It is “Which bottleneck did this milestone remove?” DDPM supplied the learning problem. DDIM made the reverse trajectory negotiable. CLIP supplied reusable text features. Classifier-free guidance turned conditioning into a direct quality–diversity control. Latent diffusion reduced the space in which the expensive denoiser operated.

Stable Diffusion's contribution was to make those pieces legible as one runnable pipeline. The system still had limitations, but by August 2022 the key research abstractions had become command-line controls that a much broader group of people could inspect and use.

Process

DDPM

How to learn denoising

Path

DDIM

How to sample faster

Language

CLIP

How to represent prompts

Control

CFG

How strongly to follow them

Space

LDM

Where denoising happens

Timeline at a glance

The dates provide the historical spine. The labels identify the subsystem each milestone changed, so chronology does not become a false replacement chain.

DDPM: learn the reverse process

The forward process in the 2020 DDPM paper is deliberately simple. At every timestep it adds a small amount of Gaussian noise. After enough steps, the structured data distribution has been pushed toward a standard normal distribution. The generative task is to learn the reverse: start from noise and repeatedly predict how to move toward a cleaner sample.

A useful training identity samples any noisy state directly, rather than simulating every earlier step. If ᾱt records the cumulative retained signal, then a training example can be written as:

xt = √ᾱt x0 + √(1 − ᾱt) ε,   ε ~ N(0, I)

The network receives xt and t and is commonly trained to predict the sampled noise ε with a mean-squared error objective.

Training

One random noise level

Select an image, timestep, and noise sample; construct xt; predict the noise. Different timesteps can be trained independently across a batch.

Sampling

A sequential reverse chain

Begin at xT and repeatedly evaluate the denoiser to obtain xT−1, xT−2, and so on. This dependency is why generation is slow even though training is highly parallel.

x₀

image

x₂₀₀

light noise

x₄₀₀

structure fades

x₆₀₀

heavy noise

x₈₀₀

little signal

x₁₀₀₀

Gaussian noise

Schematic only: DDPM adds small increments of noise; the learned generative process follows the arrows in reverse.

DDIM: change the path, not the trained denoiser

DDPM tied high sample quality to a long Markov chain, but its training loss did not uniquely determine that chain. The DDIM paper constructs non-Markovian forward processes with the same training objective. Their reverse process can visit a sparse subset of timesteps, so an already-trained noise predictor can generate with many fewer evaluations.

DDIM also exposes a stochasticity parameter. At η = 0, the reverse update is deterministic for a fixed initial noise. This makes the latent trajectory easier to reproduce and interpolate. The paper reports 10×–50× wall-clock speedups in its experiments, but that number is not a universal property: it depends on the schedule, implementation, hardware, and accepted quality trade-off.

Reused

Noise predictor

The network and DDPM-style training objective can stay the same.

Changed

Reverse trajectory

The sampler can skip many of the training diffusion timesteps.

Still costly

Each evaluation

A large U-Net is still executed once per selected sampling step.

The continuous-time bridge

The 2020 score-SDE framework describes noising with an SDE, generation with a reverse-time SDE, and an equivalent probability-flow ODE. This did not replace DDPM or DDIM; it clarified that the learned score, stochastic process, and numerical solver are related but separable design choices.

Parallel branch, not a Stable Diffusion component

February 2022's progressive distillation repeatedly trained a student to replace two deterministic teacher steps with one. It is historically important to few-step generation, but Stable Diffusion v1 did not depend on it, so it remains outside this article's causal spine.

From text features to classifier-free guidance

“Text conditioning” hides three different jobs. A text encoder represents the prompt. The denoiser needs a mechanism for reading that representation. Guidance then decides how strongly the sampling direction should follow it. Stable Diffusion uses a different research idea for each job.

JobMechanismWhat it contributes
Represent the promptFrozen CLIP ViT-L/14 text encoderConverts tokenized language into contextual features.
Inject the featuresCross-attention in the latent U-NetLets spatial denoising features attend to prompt tokens at several resolutions.
Strengthen the conditionClassifier-free guidanceCombines unconditional and conditional noise predictions at sampling time.
εguided = εuncond + s(εcond − εuncond)

At s = 1 this reduces to the conditional prediction. Larger values push farther in the direction that distinguishes the prompt-conditioned prediction from the unconditional one.

The model learns both predictions by sometimes dropping the conditioning during training. This avoids the separate noisy image classifier required by classifier guidance. In the GLIDE study, human evaluators preferred classifier-free guidance over CLIP guidance for both photorealism and caption similarity.

CLIP guidance and a CLIP text encoder are therefore not the same thing. Stable Diffusion v1 uses CLIP to encode language, but its sampling guidance comes from the denoiser's own conditional and unconditional predictions.

Latent diffusion: compress before denoising

DDPM and many early text-to-image systems spent their repeated U-Net evaluations in pixel space. At high resolution this is expensive, yet most individual pixels contain locally redundant information. The latent diffusion paper separates perceptual compression from semantic generation.

First, an autoencoder learns an encoder E and decoder D. The diffusion model operates on z = E(x), while the decoder turns the final latent back into pixels. The denoiser no longer has to preserve imperceptible pixel-level detail at every reverse step; the autoencoder handles that representational burden.

Pixels

3 × 512 × 512

Encoder E

compress ×8

Latent diffusion

4 × 64 × 64 + text

Decoder D

reconstruct

Stable Diffusion v1 uses four latent channels and a factor-eight spatial downsampling for its standard 512×512 path. The dimensions describe representation size, not an exact end-to-end speedup.

Cross-attention adds conditions

Intermediate U-Net features supply attention queries, while prompt features supply keys and values. The same interface can accept text or other structured conditioning without concatenating a full condition map to every pixel.

Compression is not free

The autoencoder is lossy. Fine text, faces, and small structures can be damaged before or after diffusion. Latent diffusion reduces spatial cost; it does not remove the sequential sampler or guarantee faithful reconstruction.

The 2022 landscape: Stable Diffusion was not first

By August 2022, several systems had already demonstrated strong text-to-image diffusion. Their architectures differed, which makes “first” less useful than asking what each system made possible.

Stable Diffusion's historical distinction

It combined latent-space efficiency with a public release of code and downloadable weights under a use-restricted model license. The significance was not being the first system to turn text into images; it was making a capable system much easier to inspect, run, adapt, and distribute.

Stable Diffusion: the research stack assembled

Stable Diffusion v1 is a particular latent diffusion configuration, not a new family detached from the LDM paper. Its inference configuration names the architecture directly: a four-channel latent diffusion model, a U-Net with spatial Transformer blocks and 768-dimensional cross-attention context, a KL autoencoder, and a frozen CLIP embedder.

The original repository describes an approximately 860M parameter U-Net and a 123M parameter text encoder. Its standard path starts with a 512×512 output target, but the iterative denoising state is only 4×64×64. This is the practical payoff of latent diffusion: every sampling step runs the expensive generative network on a compressed spatial grid.

Language path

Prompt → frozen CLIP encoder

Conditional and empty-prompt embeddings

Initial state

Gaussian latent noise

zT ∈ R4×64×64

Repeated denoising

Latent U-Net + cross-attention

Predict conditional and unconditional noise, combine them with CFG, and let DDIM or PLMS update the latent.

zT → zt → … → z0

Pixel reconstruction

VAE decoder

Final latent → 512×512 RGB image

Original reconstruction of the Stable Diffusion v1 inference path from its configuration and reference sampling script.

1. Encode language

The frozen CLIP encoder produces prompt context. An empty prompt produces the unconditional context required by CFG.

2. Initialize the latent

Sampling starts from Gaussian noise shaped by the requested pixel dimensions, latent channels, and factor-eight downsampling.

3. Denoise repeatedly

At every selected timestep the U-Net reads the noisy latent, timestep, and text context, then predicts noise for the sampler update.

4. Decode once

Only after the reverse process reaches its final latent does the autoencoder decoder reconstruct the full-resolution image.

Reading the released system through its interface

The original text-to-image script exposes the research history as runtime parameters. The following mapping is more informative than treating the script as an opaque image generator.

Released interfaceResearch mechanismRuntime meaning
--promptFrozen text encoderThe prompt is converted into CLIP token features used as cross-attention context.
--scaleClassifier-free guidanceControls how far the prediction moves from the unconditional direction toward the conditional direction.
--ddim_stepsSampling scheduleChooses how many reverse updates are evaluated; the released script defaults to 50.
--ddim_etaDDIM stochasticityAn eta value of zero selects the deterministic DDIM case in the reference script.
--H, --W, --C, --fLatent geometryFor a 512×512 image, four latent channels and a factor-eight downsampling produce a 4×64×64 denoising state.
--plmsAlternative samplerSwaps the default DDIM sampler for PLMS without replacing the trained denoising model.
Conceptual inference loop—not copied implementation code
text = clip_encode(prompt)
empty = clip_encode("")
z = gaussian_noise(channels=4, height=H / 8, width=W / 8)

for t in sampling_schedule:
    eps_uncond = unet(z, t, empty)
    eps_cond = unet(z, t, text)
    eps = eps_uncond + guidance_scale * (eps_cond - eps_uncond)
    z = sampler_step(z, eps, t)

image = vae_decode(z)

This loop makes the composition explicit. The U-Net is the trained noise predictor inherited from diffusion modeling. CLIP and cross-attention provide the condition. CFG modifies the prediction. DDIM or PLMS owns the state update. The VAE decoder operates only after iterative sampling finishes.

What the August 2022 public release changed

Stability AI announced the public release on August 22, 2022. The CompVis repository provided the model definition and inference scripts, while model weights were distributed with a CreativeML OpenRAIL-M license permitting commercial and non-commercial use subject to use-based restrictions. This combination matters more historically than any claim that Stable Diffusion invented diffusion itself.

The reference repository described the model as relatively lightweight and runnable on a consumer-class GPU with about 10 GB of VRAM. Hardware and software have changed since then, but at release time this placed experimentation on a very different accessibility curve from multi-billion-parameter, service-only text-to-image systems.

Inspectable

The architecture, configuration, and sampling scripts could be read as one system rather than inferred from a hosted API.

Runnable

Downloadable weights and a documented local pipeline allowed direct experimentation with prompts, samplers, and guidance.

Adaptable

A public latent representation and U-Net checkpoint created a foundation for fine-tuning and downstream tooling.

Accessibility did not remove model risk

The v1.4 model card documents a lossy autoencoder, weak face and text rendering, predominantly English training captions, dataset biases, possible memorization, and unsafe-content risks. Public availability expanded who could study the system, but it also made licensing, provenance, safety filtering, and responsible deployment part of the technical story.

The takeaway

The path from DDPM to Stable Diffusion was not a sequence of discarded models. DDPM's noise-prediction problem remained inside the latent U-Net. DDIM's separation of model and sampler became a user-visible step-count choice. CLIP supplied prompt features, classifier-free guidance supplied control, and latent diffusion supplied the affordable spatial domain.

Stable Diffusion's pioneering role should therefore be stated precisely: it made a powerful combination of existing diffusion research broadly inspectable and runnable. That is a different claim from being the first diffusion model—and a more useful explanation of why August 2022 became a turning point.

References

  1. 1.Denoising Diffusion Probabilistic Models
  2. 2.Denoising Diffusion Implicit Models
  3. 3.Score-Based Generative Modeling through Stochastic Differential Equations
  4. 4.Learning Transferable Visual Models From Natural Language Supervision (CLIP)
  5. 5.Classifier-Free Diffusion Guidance
  6. 6.GLIDE: Towards Photorealistic Image Generation and Editing with Text-Guided Diffusion Models
  7. 7.High-Resolution Image Synthesis with Latent Diffusion Models
  8. 8.Progressive Distillation for Fast Sampling of Diffusion Models
  9. 9.Hierarchical Text-Conditional Image Generation with CLIP Latents (DALL·E 2)
  10. 10.Photorealistic Text-to-Image Diffusion Models with Deep Language Understanding (Imagen)
  11. 11.Stable Diffusion public release announcement
  12. 12.CompVis Stable Diffusion repository
  13. 13.Stable Diffusion v1.4 model card