模型:

google/ncsnpp-ffhq-256

英文

基于分数的生成建模通过随机微分方程(SDE)

论文: Score-Based Generative Modeling through Stochastic Differential Equations

作者:Yang Song、Jascha Sohl-Dickstein、Diederik P. Kingma、Abhishek Kumar、Stefano Ermon、Ben Poole

摘要:

从数据产生噪声很容易;从噪声产生数据是生成建模。我们提出了一种随机微分方程(SDE),通过缓慢注入噪声,将复杂的数据分布平滑地转换为已知的先验分布,并提供了相应的逆向时间SDE,通过缓慢消除噪声将先验分布转换回数据分布。关键是,逆向时间SDE仅依赖于扰动数据分布的时间依赖梯度场(也称为分数)。通过利用基于分数的生成模型的进展,我们可以用神经网络准确地估计这些分数,并使用数值SDE求解器生成样本。我们展示了该框架包含了以前的基于分数的生成建模和扩散概率建模方法,从而允许新的采样过程和新的建模能力。特别是,我们引入了一个预测者-校正器框架,用于纠正离散逆向时间SDE演化的错误。我们还推导了一个等效的神经ODE,它从与SDE相同的分布中采样,但同时实现了确切的似然计算和改进的采样效率。此外,我们提供了一种用于基于分数模型求解反问题的新方法,通过在类条件生成、图像修复和上色实验中进行演示。结合多种架构改进,我们实现了在CIFAR-10上无条件图像生成的创纪录性性能,Inception分数为9.89,FID为2.20,竞争性的似然度为2.99比特/维,并首次展示了基于分数的生成模型从1024 x 1024图像中生成高保真度图像。

推理

SDE模型可以使用连续的噪声调度程序,例如:

进行推理。

请查看以下代码:

# !pip install diffusers
from diffusers import DiffusionPipeline

model_id = "google/ncsnpp-ffhq-256"

# load model and scheduler
sde_ve = DiffusionPipeline.from_pretrained(model_id)

# run pipeline in inference (sample random noise and denoise)
image = sde_ve()["sample"]


# save image
image[0].save("sde_ve_generated_image.png")

有关如何编写自己的去噪循环的更多详细信息,请参阅 pipeline_score_sde_ve 。有关如何在推理中使用扩散器的更多信息,请参阅 official inference example

样本