Skip to content

High-Resolution Image Synthesis with Latent Diffusion Models (Stable Diffusion)

Authors: Robin Rombach, Andreas Blattmann, Dominik Lorenz, Patrick Esser, Björn Ommer (Ludwig Maximilian University of Munich & Runway)

Published: December 2021 (CVPR 2022)

Paper Link: https://arxiv.org/abs/2112.10752


Why This Paper Matters

This paper introduced Latent Diffusion Models (LDMs), which made diffusion models practical and accessible. By running diffusion in a compressed latent space rather than pixel space, LDMs achieved 10-100× speedup while maintaining quality. This work directly enabled Stable Diffusion, democratizing AI image generation. Unlike DALL-E 2 (closed), Stable Diffusion's open-source release revolutionized creative AI and sparked an entire ecosystem.


The Core Innovation: Diffusion in Latent Space

The Problem with Pixel-Space Diffusion

Challenges: - High-resolution images (512×512) have 786,432 pixels - Diffusion must process every pixel for 1000 steps - Computationally expensive - Memory intensive - Slow sampling

Example:

512×512 RGB image = 786,432 pixels
× 3 channels = 2,359,296 values
× 1000 diffusion steps = very expensive!

The Solution: Compress First, Diffuse Later

┌─────────────────────────────────────────────────┐
│  Step 1: COMPRESSION (Autoencoder)             │
│  512×512×3 image → 64×64×4 latent              │
│  Compression ratio: 48×                        │
└─────────────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────────────┐
│  Step 2: DIFFUSION (In Latent Space)           │
│  Add/remove noise in 64×64×4 space             │
│  Much faster and cheaper!                      │
└─────────────────────────────────────────────────┘
                    ↓
┌─────────────────────────────────────────────────┐
│  Step 3: DECOMPRESSION (Decoder)               │
│  64×64×4 latent → 512×512×3 image              │
└─────────────────────────────────────────────────┘

Key Insight: Most image information is redundant. Compress it, denoise in compressed space, then decompress!


Architecture Components

1. Variational Autoencoder (VAE)

Purpose: Compress images to latent space and back

┌──────────────┐
│   Encoder    │
│   512×512×3  │
│      ↓       │
│   64×64×4    │
└──────────────┘
      ↓
  Latent Space
  (compressed)
      ↓
┌──────────────┐
│   Decoder    │
│   64×64×4    │
│      ↓       │
│   512×512×3  │
└──────────────┘

Architecture: - Encoder: Downsampling convolutional network - 512×512 → 256×256 → 128×128 → 64×64 - 3 channels → 4 latent channels - Decoder: Upsampling convolutional network - Reverse of encoder - KL Regularization: Keep latent space smooth

Training: - Reconstruction loss: output should match input - Perceptual loss: features should match (using LPIPS) - Small KL divergence penalty

Result: - High-quality compression (48× smaller) - Minimal information loss - Smooth latent space (good for diffusion)

2. U-Net Diffusion Model

Purpose: Perform diffusion in latent space

Standard U-Net + Conditioning:

Latent z_t (64×64×4) + Time t + Conditioning c
                ↓
┌───────────────────────────────────────┐
│         U-Net Architecture            │
│                                       │
│  Encoder:                             │
│  - ResNet blocks                      │
│  - Cross-attention (to conditioning)  │
│  - Downsample                         │
│                                       │
│  Bottleneck:                          │
│  - ResNet blocks                      │
│  - Cross-attention                    │
│                                       │
│  Decoder:                             │
│  - ResNet blocks                      │
│  - Cross-attention (to conditioning)  │
│  - Upsample                           │
│  - Skip connections                   │
└───────────────────────────────────────┘
                ↓
      Predicted Noise ε_θ

Key Addition: Cross-Attention Layers

Allows conditioning on text, images, etc.:

Query (Q): From noisy latent features
Key (K): From text embeddings
Value (V): From text embeddings

Attention(Q,K,V) = softmax(QK^T/√d) V

This enables text-to-image generation!

3. Conditioning Mechanisms

Text Conditioning: - Use CLIP text encoder or similar - Extract text embeddings - Feed into cross-attention layers

Other Conditioning: - Class labels - Segmentation maps - Depth maps - Sketches - Other images

Flexibility: Can condition on multiple modalities simultaneously!


Training Process

Stage 1: Train Autoencoder (VAE)

For each training step:
1. Sample image x from dataset
2. Encode to latent: z = Encoder(x)
3. Decode back: x' = Decoder(z)
4. Compute losses:
   - Reconstruction: ||x - x'||²
   - Perceptual: LPIPS(x, x')
   - KL: D_KL(q(z|x) || N(0,I))
5. Update encoder and decoder

Result: High-quality autoencoder that compresses images 48×

Stage 2: Train Diffusion Model

For each training step:
1. Sample image x and condition c (e.g., text)
2. Encode to latent: z₀ = Encoder(x)
3. Sample timestep t
4. Sample noise ε
5. Create noisy latent: z_t = √(ᾱ_t) z₀ + √(1-ᾱ_t) ε
6. Predict noise: ε_θ(z_t, t, c)
7. Compute loss: ||ε - ε_θ(z_t, t, c)||²
8. Update U-Net

Key difference: Everything in latent space (64×64×4 instead of 512×512×3)


Sampling (Generation) Process

Text-to-Image Generation

1. Encode text prompt: c = TextEncoder("A cat on a mat")

2. Sample random latent noise: z_T ~ N(0, I) [shape: 64×64×4]

3. Iterative denoising (50-100 steps):
   For t = T, T-1, ..., 1:
     a. Predict noise: ε_θ(z_t, t, c)
     b. Denoise one step: z_{t-1} = denoise(z_t, ε_θ, t)

4. Decode to pixel space: x = Decoder(z₀)

5. Return image [512×512×3]

Speed: - 50 steps × 0.05 seconds = 2.5 seconds (typical GPU) - Much faster than pixel-space diffusion (25+ seconds)

Classifier-Free Guidance

Improves quality and text alignment:

ε_guided = ε_uncond + w * (ε_cond - ε_uncond)

Where:
- ε_uncond: Noise predicted without text
- ε_cond: Noise predicted with text
- w: Guidance scale (typically 7-15)

Effect: - w = 0: Ignore text (random images) - w = 1: Normal conditioning - w = 7-15: Strong text adherence (high quality) - w > 20: Artifacts, oversaturation


Key Results

Computational Efficiency

Training Cost:

Pixel-space DDPM (256×256):
- ~150 V100 days

Latent Diffusion (256×256):
- ~11 V100 days

Speedup: ~14× faster!

Inference Speed:

Pixel-space: ~25 seconds per image
Latent space: ~2-5 seconds per image

Speedup: 5-10× faster!

Image Quality

FID Scores (lower is better):

LSUN Bedrooms (256×256): - Latent Diffusion: 2.95 - Pixel Diffusion: 5.11 - Better quality AND faster!

ImageNet (256×256): - Latent Diffusion: 3.60 - Pixel Diffusion: 12.3

Text-to-Image Quality

MS-COCO: - Competitive with DALL-E 2 - Better diversity - Faster generation


Stable Diffusion: The Open-Source Implementation

Model Specifications

Version 1.x (2022): - Image size: 512×512 - Latent size: 64×64×4 - U-Net: ~860M parameters - VAE: ~84M parameters - Text encoder: CLIP ViT-L/14 (~123M parameters) - Total: ~1B parameters

Version 2.x (2023): - Image size: 512×512 or 768×768 - Better text encoder (OpenCLIP) - Improved quality

Version XL (2023): - Image size: 1024×1024 - Larger models - Multi-stage generation - State-of-the-art quality

Training Data

LAION-5B: - 5 billion text-image pairs - Scraped from internet - Filtered for quality - Open-source dataset

Filtering: - NSFW filtering - Aesthetic score filtering - Watermark detection - Language detection


Applications and Use Cases

Creative Applications:

1. Text-to-Image:

Prompt: "A steampunk airship over a cyberpunk city at sunset,
         digital art, highly detailed"
→ Generates matching image

2. Image-to-Image: - Style transfer - Sketch to photo - Low-res to high-res - Color to black-and-white and vice versa

3. Inpainting: - Remove objects - Fill missing regions - Edit specific parts

4. Outpainting: - Extend images beyond borders - Create wider scenes

5. Depth-to-Image: - Generate images matching depth maps - 3D-consistent generation

Commercial Applications:

  • Marketing: Product visualization, ad generation
  • Gaming: Concept art, texture generation
  • Film: Storyboarding, VFX pre-visualization
  • Design: Interior design, fashion design
  • Education: Illustration, educational materials

Ecosystem and Impact

Open-Source Community:

Stable Diffusion spawned: - DreamStudio: Official web interface (Stability AI) - AUTOMATIC1111: Most popular community interface - ComfyUI: Node-based generation - InvokeAI: Production-ready interface

Extensions: - ControlNet: Precise spatial control - LoRA: Efficient fine-tuning - Textual Inversion: New concepts - DreamBooth: Personalization

Democratization:

Before Stable Diffusion: - DALL-E 2: Closed, waitlist-only - Midjourney: Subscription service - Limited access, expensive

After Stable Diffusion: - Run locally on consumer GPUs - Free to use and modify - Rapid innovation - Accessibility explosion


Comparison: Stable Diffusion vs. Competitors

Feature Stable Diffusion DALL-E 2 Midjourney Imagen
Open Source Yes No No No
Cost Free (local) Pay per image Subscription Not available
Quality High Very High Very High Very High
Speed Fast Fast Medium Fast
Customization Extensive Limited Limited N/A
Control High (ControlNet) Medium Low Medium

Advanced Techniques

1. ControlNet (2023)

Add spatial control: - Edge detection → generate matching image - Pose estimation → control character poses - Depth maps → 3D consistency - Segmentation → precise layouts

2. LoRA (Low-Rank Adaptation)

Efficient fine-tuning: - Add small adapter weights (~5-100MB) - Train specific styles or subjects - Combine multiple LoRAs - Share and reuse

3. Textual Inversion

Learn new concepts: - Train on 3-5 images of a subject - Encode into special token - Use in any prompt - Personalization

4. DreamBooth

Personalize models: - Fine-tune entire model on subject - Very high fidelity - "Subject X in various contexts"


Limitations and Challenges

1. Text Understanding

  • Struggles with complex prompts
  • Counting objects unreliable
  • Spatial relationships challenging
  • Negations often ignored

Example:

Prompt: "Three cats, one red, one blue, one green"
Result: Might generate 2 or 4 cats, colors might be wrong

2. Fine Details

  • Text in images often garbled
  • Hands and fingers problematic
  • Complex scenes can be incoherent
  • Anatomy errors

3. Bias and Safety

  • Reflects dataset biases
  • Can generate inappropriate content
  • NSFW filter not perfect
  • Ethical concerns
  • Training data copyright unclear
  • Style mimicry concerns
  • Artist attribution issues
  • Ongoing legal debates

5. Computational Requirements

  • Needs GPU (6-24GB VRAM)
  • Consumer hardware minimum ~8GB
  • High-end results need more power

Training Your Own Models

Requirements:

Hardware: - Multiple GPUs (8× A100 or similar) - Weeks of training time - Significant cost ($10K-$1M depending on scale)

Data: - Millions of text-image pairs - Good quality and diversity - Proper filtering and cleaning

Expertise: - Deep learning knowledge - Distributed training - Hyperparameter tuning

Fine-Tuning (More Accessible):

DreamBooth: - Single GPU (12GB+ VRAM) - 3-10 images of subject - ~30-60 minutes training - $0.10-$1 cost (cloud)

LoRA: - Similar to DreamBooth - Faster, smaller files - Easier to share


Practical Tips

1. Writing Good Prompts

Structure:

[Subject], [Style], [Details], [Lighting], [Quality modifiers]

Example:
"A majestic lion, digital art, golden mane flowing in wind,
sunset lighting, highly detailed, artstation trending"

Quality boosters: - "highly detailed" - "8k" - "trending on artstation" - "professional photography"

2. Negative Prompts

Specify what to avoid:

Negative: "blurry, low quality, deformed, ugly, bad anatomy"

3. Sampling Settings

  • Steps: 20-50 (more = higher quality, slower)
  • CFG Scale: 7-15 (higher = stronger text adherence)
  • Sampler: Euler, DPM++, DDIM (different trade-offs)

4. Seed Control

  • Same seed + prompt = same image
  • Useful for variations and iterations

Impact on AI and Society

Positive:

  • Democratized creativity: Anyone can create art
  • Productivity boost: Rapid prototyping, ideation
  • Accessibility: Visually impaired can describe and generate
  • Education: Powerful learning tool
  • Research: Advanced image generation techniques

Concerns:

  • Artist impact: Economic and creative concerns
  • Misinformation: Deepfakes, fake images
  • Copyright: Legal uncertainties
  • Job displacement: Some roles at risk
  • Bias: Perpetuates dataset biases

Ongoing Discussions:

  • Regulation and governance
  • Attribution and compensation
  • Ethical guidelines
  • Technical safeguards

Key Takeaways

  1. Latent space diffusion is 10-100× more efficient than pixel space
  2. VAE compression enables high-resolution generation
  3. Cross-attention enables powerful conditioning (text, etc.)
  4. Open-source release transformed the field
  5. Accessible hardware requirements democratized AI art
  6. Ecosystem innovation accelerated after open release
  7. Trade-offs exist between quality, speed, and control

Future Directions

Technical:

  • Faster sampling (1-4 steps)
  • Better text understanding
  • Video generation
  • 3D generation
  • Personalization improvements

Applications:

  • Real-time generation
  • Interactive editing
  • Animation and video
  • AR/VR content creation

Further Reading

  • Original Paper: https://arxiv.org/abs/2112.10752
  • Stable Diffusion Repository: https://github.com/Stability-AI/stablediffusion
  • AUTOMATIC1111 WebUI: https://github.com/AUTOMATIC1111/stable-diffusion-webui
  • ControlNet Paper: https://arxiv.org/abs/2302.05543
  • Latent Diffusion Models Blog: https://huggingface.co/blog/stable_diffusion

Citation

@inproceedings{rombach2022high,
  title={High-resolution image synthesis with latent diffusion models},
  author={Rombach, Robin and Blattmann, Andreas and Lorenz, Dominik and Esser, Patrick and Ommer, Bj{\"o}rn},
  booktitle={Proceedings of the IEEE/CVF conference on computer vision and pattern recognition},
  pages={10684--10695},
  year={2022}
}