Stable diffusion采样器详解

在我们使用SD web UI的过程中,有很多采样器可以选择,那么什么是采样器?它们是如何工作的?它们之间有什么区别?你应该使用哪一个?这篇文章将会给你想要的答案。

什么是采样?

降噪步骤

Stable Diffusion模型通过一种称为“去噪”的过程来生成图像,这个过程涉及到在潜在空间中逐步从随机噪声中提取出有意义的图像特征。

  • 模型首先在潜在空间中生成一个完全随机的噪声图像。这个图像是随机的,不包含任何有意义的信息。
  • 噪声预测器(也称为去噪函数)估计这个随机图像中的噪声。这个预测器是模型的一部分,它学习如何从噪声中恢复出清晰的图像。
  • 模型从初始的随机噪声图像中减去预测的噪声,以便逐步揭示出隐藏在噪声下的图像内容。
  • 这个过程会重复多次(通常是十几次),每一步都会生成一个新的采样图像。这些采样图像逐渐从随机噪声转变为越来越清晰的图像。
  • 经过多次迭代后,最终得到的图像是一个干净的、去噪后的图像,它反映了文本提示中描述的内容。

下面是一个实际的采样过程。采样器逐渐产生越来越干净的图像。

image-20240411194651145

Noise schedule

在Stable Diffusion模型的去噪过程中,噪声表(noise schedule)扮演着至关重要的角色。

噪声表是一个预先定义的计划,它决定了在每一步采样过程中应用的噪声水平。

  • 在去噪过程的第一步,图像充满了高噪声,这是因为初始图像是完全随机的噪声图像。在这个阶段,噪声水平最高,图像看起来是不连贯和随机的。
  • 随着去噪过程的进行,噪声表会逐步降低每个采样步骤中的噪声水平。这种降低是按照预定的计划进行的,旨在逐渐从噪声中提取出有意义的图像特征。
  • 在去噪过程的最后一步,噪声水平降低到零,此时图像应该是清晰且与文本提示相匹配的。理想情况下,最终图像应该几乎没有噪声,且细节丰富,准确地反映了文本描述的内容。

下面是一个Noise schedule的基本工作原理:

稳定扩散采样器的噪声时间表

如果我们增加采样步骤数,那么每个步骤之间的降噪幅将会变小。这有助于减少采样的截断误差。

可以比较一下 15 个步骤和 30 个步骤的噪音时间表。

### Stable Diffusion 中的采样方法详解 #### 一、采样的概念 在 Stable Diffusion 中,每个步骤都会生成一张新的采样后的图像。整个去噪过程即是采样,在这一过程中所采用的技术被称为采样器或采样方法[^2]。 #### 二、主要采样方法介绍 ##### (一)DDIM (去噪扩散隐式模型) 作为最早期专为扩散模型设计的采样器之一,DDIM 提供了一种有效的方式来进行高质量图片合成。该算法通过控制噪声逐步减少来实现图像生成的目标。其特点在于能够提供更加平滑的结果过渡,并允许用户自定义生成路径中的某些参数设置[^3]。 ```python from diffusers import DDIMPipeline pipeline = DDIMPipeline.from_pretrained('model_name') image = pipeline(prompt="a photograph of an astronaut riding a horse").images[0] ``` ##### (二)PLMS (伪线性多步法) 这是基于 DDIM 进一步优化而来的版本,旨在提高计算效率的同时保持甚至提升最终输出的质量。相较于前者而言,它能够在更短时间内完成相同质量级别的渲染工作,因此成为许多应用场景下的首选方案。 ```python from diffusers import PNDMPipeline pipeline = PNDMPipeline.from_pretrained('model_name') image = pipeline(prompt="a photograph of an astronaut riding a horse", num_inference_steps=50).images[0] ``` 除了上述两种经典的方法之外,还有其他多种新型高效的采样技术不断涌现并被集成到最新的框架版本当中,比如 Euler A, Heun's method 等等,它们各自具有独特的优势适用于不同类型的任务需求。 #### 三、如何选择适合自己的采样方式? 当面对众多可选方案时,可以根据具体项目的要求和个人偏好做出决定: - 如果追求极致画质而不考虑速度因素,则可以选择较为保守但稳定的选项如 DDIM; - 对于实时交互类应用来说,优先考虑那些能在较短时间里给出满意成果的选择像 PLMS 或者更新颖快速收敛型别的采样策略; 总之,在实际操作前最好先尝试几种不同类型的配置组合进行对比测试,从而找到最适合自己场景的最佳实践模式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值