在本页阅读时间 9 分钟
概述
DDPM, from 2020, is the original stochastic sampler and needs about 1,000 steps. DDIM, from 2020 to 2021, reuses the same trained network but takes deterministic shortcuts, reaching similar quality in 20 to 100 steps, a 10 to 50 times speedup.
主要要点
- DDPM and DDIM are samplers that run the same trained diffusion network backward from noise to an image.
- The 2020 DDPM paper used 1,000 noise steps and reported an FID of 3.17 on CIFAR-10.
- DDIM, published at ICLR 2021, reaches comparable quality in 20 to 100 steps, a 10 to 50 times speedup.
- The eta parameter sets DDIM's randomness: eta 0 is deterministic and eta 1 behaves like DDPM.
- Deterministic DDIM can be run in reverse to encode a real image into noise, which underpins many diffusion image-editing methods.
- Changing from DDPM to DDIM requires no retraining because both share the same training objective.
深入探讨
A diffusion model is an image generator that learns by destroying pictures with noise and then learning to undo the damage. During training, a clean image is mixed with Gaussian noise (random values drawn from a bell curve) according to a fixed schedule, and a neural network is taught to predict the noise that was added at each level. Generation runs the process the other way: start from pure noise and remove a little at a time. A sampler is the recipe for that backward walk. DDPM and DDIM are the two foundational samplers, and both work with the same trained network.
DDPM stands for Denoising Diffusion Probabilistic Models, the paper by Jonathan Ho, Ajay Jain and Pieter Abbeel posted to arXiv on 19 June 2020 and published at NeurIPS 2020. It made a 2015 idea from Jascha Sohl-Dickstein and colleagues practical. The paper used T = 1,000 noise levels with a noise variance, called beta, rising linearly from 0.0001 to 0.02. Its network was a U-Net, an encoder-decoder convolutional network, with the timestep fed in as a sinusoidal embedding. The key simplification was to train the network to predict the added noise with a plain mean-squared-error loss, which the authors showed is closely related to denoising score matching. On CIFAR-10 the paper reported an Inception score of 9.46 and an FID of 3.17, where FID (Frechet Inception Distance) compares generated and real image statistics and lower is better.
DDPM sampling works like this. Draw x_T, an image-shaped array of pure noise. At each step t, the network predicts the noise in x_t. The sampler uses that prediction to compute the mean of a slightly cleaner image, then adds a fresh dose of random noise scaled to that step, giving x_(t-1). Repeat until t reaches zero. Because every step injects new randomness, the process is a Markov chain: each state depends only on the one before it. That randomness is mathematically required for the derivation, and it is also why DDPM needs nearly all 1,000 steps. The cost is real: the DDIM paper reports that sampling 50,000 32 by 32 images from a DDPM took around 20 hours on an Nvidia 2080 Ti, against under a minute for a GAN, and nearly 1,000 hours for 256 by 256 images.
DDIM, Denoising Diffusion Implicit Models, by Jiaming Song, Chenlin Meng and Stefano Ermon, was posted on 6 October 2020 and published at ICLR 2021. Its insight is that DDPM's training objective does not pin down a single backward process. A whole family of non-Markovian processes, where each step may depend on the starting point x_0 and not only the previous state, shares the same training loss. So a network trained as a DDPM can be sampled with any member of that family without retraining. DDIM picks members that allow skipping: instead of visiting all 1,000 levels, it can jump along a subsequence of, say, 50 levels.
A DDIM step has three parts. First, use the predicted noise to estimate the clean image x_0. Second, point back toward the current noise direction. Third, combine the two at the noise level of the next chosen timestep, optionally adding fresh randomness. A parameter called eta controls that randomness: eta = 1 recovers DDPM-like stochastic sampling, and eta = 0 gives fully deterministic DDIM, where the same starting noise always yields the same image. In the paper's Table 1, deterministic DDIM on CIFAR-10 reached an FID of 13.36 with 10 steps, 6.84 with 20, 4.67 with 50 and 4.16 with 100, while DDPM-style sampling (eta = 1) scored 41.07 at 10 steps, and the larger-variance variant Ho and colleagues used scored 367.43, essentially unusable. The authors report that DDIM matches 1,000-step quality within 20 to 100 steps, a 10 to 50 times wall-clock speedup, and that on CelebA a 100-step DDPM scores about the same as a 20-step DDIM.
Determinism has side benefits. Because noise maps to image along a fixed path, the path can be run in reverse to encode a real image into its starting noise, called DDIM inversion. The DDIM paper reports CIFAR-10 reconstruction error falling from 0.014 at 10 steps to 0.0001 at 1,000 steps. Interpolating between two starting noises gives smooth, meaningful blends of the two outputs, which DDPM cannot do because the same starting noise leads to different images. Null-text Inversion, posted in November 2022, builds real-photo editing on top of DDIM inversion, and notes that plain inversion breaks down when classifier-free guidance amplifies its small per-step errors.
Neither sampler is the end of the story. DDIM is a first-order method, meaning each step uses only the current slope. Later solvers treat sampling as solving an ordinary differential equation with higher-order steps: DPM-Solver, published at NeurIPS 2022, reports a CIFAR-10 FID of 4.70 in 10 steps and 2.87 in 20. Libraries such as diffusers now offer many schedulers, and DDIM remains a reference baseline. Known failure modes include blurry or washed-out images at very low step counts, accumulated error in inversion under strong guidance, and a training-inference mismatch: the diffusers documentation points to a 2023 paper showing that common schedules never reach pure noise, which limits very bright or dark outputs unless the betas are rescaled and timesteps are spaced to start from the last one.
In practice, both samplers cost one network evaluation per step, so total compute scales linearly with step count, as the DDIM paper's timing plots confirm. The DDPM paper's CIFAR-10 model trained for 800,000 steps in 10.6 hours on a TPU v3-8, roughly equal to eight V100 GPUs, and sampled 256 images in 17 seconds. Switching samplers needs no retraining, so choosing between them is purely an inference-time decision.
04工作示例
Comparing DDPM-style and DDIM sampling on the same model
Load a Stable Diffusion pipeline in Hugging Face diffusers on a GPU and fix a random seed with torch.Generator.
Replace the scheduler with DDIMScheduler.from_config(pipe.scheduler.config).
Generate one image with a fixed prompt, 50 inference steps and eta set to 0.0.
Generate again with the same seed and settings and confirm the two images are pixel-identical, which shows deterministic sampling.
Repeat with eta set to 1.0 twice with different seeds for the step noise and observe that outputs now vary.
Run the eta 0.0 setting at 10, 20 and 100 steps and compare sharpness and detail.
Record wall-clock time for each run to confirm that cost grows roughly linearly with the number of steps.
它显示了什么
The learner ends with a small grid showing that eta 0 is repeatable, eta 1 adds variety, and quality rises steeply from 10 to about 50 steps before flattening. The timing log should show near-linear growth with step count, matching the DDIM paper's measurements.
现实世界的实施
The original CompVis Stable Diffusion scripts expose a --ddim_steps option and a --ddim_eta setting, where an eta of 0.0 gives deterministic DDIM sampling from a fixed seed.
Hugging Face diffusers ships DDIMScheduler, which can be swapped into a Stable Diffusion pipeline in one line to cut the number of denoising steps per image.
Null-text Inversion (Mokady and colleagues, 2022) runs DDIM sampling in reverse to find the noise that reproduces a real photo, then edits the photo by changing its text prompt.
Researchers interpolate between two DDIM starting noises to morph smoothly from one generated face to another, a property the DDIM paper demonstrates on CelebA and LSUN images.
Teams preview many prompts quickly with 20 to 50 DDIM steps, since the DDIM paper shows quality comparable to 1,000-step sampling within that range.
DDPM 和 DDIM 采样器的未来
Research since DDIM has focused on fewer steps with no quality loss. Higher-order ODE solvers such as DPM-Solver (2022) cut sampling to around 10 to 20 network evaluations, and the diffusers documentation for DDIM now carries guidance from a 2023 paper on zero terminal signal-to-noise schedules and trailing timestep spacing, showing that the details of the sampling grid still matter. Open problems include making inversion exact under classifier-free guidance, which Null-text Inversion (2022) addressed by optimizing the unconditional text embedding per image, and understanding why stochastic sampling sometimes beats deterministic sampling at high step counts, as the DDIM paper's own 1,000-step comparison shows. Distillation methods that compress a many-step sampler into one or a few steps are an active line of work, and whether such approaches fully replace classic samplers across image, video and audio models is not yet settled in published results. DDPM and DDIM remain the baseline these newer methods are measured against.
付诸实践
为什么这很重要
- 速度与规模. 视觉人工智能可以大规模自动化检查、检测和标记任务。
- 构建选择. 创意团队可以通过更少的手动修改更快地构建概念原型。
- 团队与工作流程. 操作可以使用以前难以处理的图像和视频信号。
留意
- 如果出处不明,肖像权和同意可能会成为法律风险。
- 模型性能可能因光照、人口统计和环境的不同而有所不同。
- 除非监控置信阈值,否则误报可能会被忽视。
后续步骤
- 定义精确度、召回率和错误成本的接受标准。
- 使用符合实际生产条件的数据进行测试。
- 为低置信度或高影响力的预测添加人工审核。
- 跟踪模型漂移并在相机或数据集更改后重新验证。
资料来源与延伸阅读
- arXiv (NeurIPS 2020)去噪扩散概率模型
- arXiv (ICLR 2021)Denoising Diffusion Implicit Models
- Hugging Face diffusers documentationDDIMScheduler
- arXiv (NeurIPS 2022)DPM-Solver: A Fast ODE Solver for Diffusion Probabilistic Model Sampling in Around 10 Steps
- arXivNull-text Inversion for Editing Real Images using Guided Diffusion Models
- GitHub (CompVis)CompVis/stable-diffusion
不断探索
常见问题
What is DDPM and DDIM Samplers?
DDPM and DDIM are two procedures for running a diffusion model backward, turning pure noise into an image one denoising step at a time. DDPM, from 2020, is the original stochastic sampler and needs about 1,000 steps. DDIM, from 2020 to 2021, reuses the same trained network but takes deterministic shortcuts, reaching similar quality in 20 to 100 steps, a 10 to 50 times speedup.
DDIM 相对于 DDPM 的主要实际优势是什么?
DDIM 遵循确定性的非马尔可夫轨迹,使其可以跳过许多时间步,以大约 10-50 个步骤(而不是数百个步骤)生成高质量图像。
扩散模型的神经网络在训练过程中实际上学会预测什么?
该网络经过训练可以预测每个时间步添加的高斯噪声 (epsilon),然后 DDPM 和 DDIM 使用该噪声来反转该过程。
为什么 DDIM 每次都能从相同的起始噪声生成完全相同的图像?
DDIM 在其更新中删除了随机噪声项,使得从噪声到图像的路径完全确定,因此可再现。
在 DDIM 中,参数 eta 的什么值可以恢复原始的随机 DDPM 行为?
eta 参数在两个采样器之间进行插值:eta=1 给出完全的 DDPM 随机性,而 eta=0 给出完全确定的 DDIM。
原始 DDPM 通常需要多少步才能获得高质量样本?
DDPM 会回溯每个噪声级别,增加随机性,因此通常需要数百到一千个反向步骤。