扩散文档

KarrasVeScheduler

Hugging Face's logo
加入 Hugging Face 社区

并获得增强文档体验的访问权限

开始

KarrasVeScheduler

KarrasVeScheduler 是一种针对方差扩展 (VE) 模型量身定制的随机采样器。它基于 阐释基于扩散的生成模型的设计空间通过随机微分方程进行基于分数的生成建模 论文。

KarrasVeScheduler

diffusers.KarrasVeScheduler

< >

( sigma_min: float = 0.02 sigma_max: float = 100 s_noise: float = 1.007 s_churn: float = 80 s_min: float = 0.05 s_max: float = 50 )

参数

  • sigma_min (float,默认为 0.02) — 最小噪声幅度。
  • sigma_max (float, 默认为 100) — 最大噪声幅度。
  • s_noise (float, 默认为 1.007) — 对抗采样过程中细节丢失的额外噪声量。合理范围为 [1.000, 1.011]。
  • s_min (float,默认为 0.05) — 添加噪声(启用随机性)的高斯范围的起始值。合理范围是 [0, 10]。
  • s_max (float,默认为 50) — 添加噪声的高斯范围的结束值。合理范围是 [0.2, 80]。

为方差扩展模型量身定制的随机调度器。

此模型继承自 SchedulerMixinConfigMixin。请查看超类文档以了解针对所有调度器(例如加载和保存)实现的库中用的通用方法。

有关参数的更多详细信息,请参阅 附录 E。用于为特定模型找到最优 {s_noise, s_churn, s_min, s_max} 的网格搜索值在论文的表 5 中进行了描述。

add_noise_to_input

< >

( sample: 张量 sigma: float generator: 可选 = 无 )

参数

  • sample (torch.张量) — 输入样本。
  • sigma (float) —
  • generator (torch.Generator, optional) — 随机数生成器。

采用显式朗之万型“搅拌”步骤将噪声添加到样本,得到 gamma_i ≥ 0 以达到噪声等级 sigma_hat = sigma_i + gamma_i*sigma_i

scale_model_input

  • sample (torch.Tensor) — 输入样本。
  • timestep (int可选) — 扩散链中的当前时间步长。

返回值

torch.Tensor

缩放后的输入样本。

确保与需要根据当前时间步缩放去噪模型输入的调度器互换性。

set_timesteps

< >

( num_inference_steps: int device: Union = None )

参数

  • num_inference_steps (int) — 使用预训练模型生成样本时使用的扩散步骤数。
  • device (strtorch.device可选) — 应将时间步长移至的目标设备。如果 None,则不移动时间步长。

设置用于扩散链(在推理之前运行)的离散时间步长。

step

< >

( model_output: Tensor sigma_hat: float sigma_prev: float sample_hat: Tensor return_dict: bool = True ) ~schedulers.scheduling_karras_ve.KarrasVESchedulerOutputtuple

参数

  • model_output (torch.Tensor) — 学习扩散模型的直接输出。
  • sigma_hat (float) —
  • sample_hat (torch.Tensor) —
  • return_dict (bool, 可选, 默认为 True) — 是否返回 ~schedulers.scheduling_karras_ve.KarrasVESchedulerOutputtuple

返回值

~schedulers.scheduling_karras_ve.KarrasVESchedulerOutputtuple

如果 return_dict 为 True,则将返回 ~schedulers.scheduling_karras_ve.KarrasVESchedulerOutput,否则返回一个元组,其中第一个元素是样本张量。

通过反转 SDE 来预测前一时间步的样本。该函数将扩散过程从学习到的模型输出(最常见为预测的噪声)传播出去。

step_correct

< >

( model_output: 张量 sigma_hat: 浮点 sigma_prev: 浮点 sample_hat: 张量 sample_prev: 张量 derivative: 张量 return_dict: bool = True ) prev_sample(待处理)

参数

  • model_output (torch.Tensor)——直接输出从中学到的扩散模型。
  • sigma_hat (float)——TODO
  • sample_hat (torch.Tensor) — TODO
  • sample_prev (torch.Tensor) — TODO
  • return_dict (bool, 可选,默认为 True) — 返回 DDPMSchedulerOutput元组

返回值

prev_sample (待处理)

已更新的漫散链中的样本。derivative (待处理):待处理

此方法根据网络的 model_output 纠正预测的样本。

KarrasVeOutput

class diffusers.schedulers.deprecated.scheduling_karras_ve.KarrasVeOutput

< >

( prev_sample: Tensor derivative: Tensor pred_original_sample: Optional = None )

参数

  • prev_sampletorch.Tensor,针对图像,其形状为 (batch_size, num_channels, height, width))—前一时刻的已计算样本 (x_{t-1})。prev_sample 应在去噪循环中作为下一个模型输入。
  • derivative (torch.Tensor,针对图像的形状为 (batch_size, num_channels, height, width)) – 预测的原始图像样本 (x_0) 的导数。
  • pred_original_sample (torch.Tensor,针对图像的形状为 (batch_size, num_channels, height, width)) – 基于当前时间步长的模型输出预测的去噪样本 (x_{0})。 pred_original_sample 可用于预览进度或提供指导。

调度器的 step 函数输出的输出类。

< > 更新在 GitHub 上