Diffusers 文件
KarrasVe排程器
並獲得增強的文件體驗
開始使用
KarrasVe排程器
KarrasVeScheduler
是一個針對方差擴充套件(VE)模型定製的隨機取樣器。它基於 “闡明基於擴散的生成模型的設計空間” 和 “透過隨機微分方程的基於分數的生成建模” 論文。
KarrasVeScheduler
class 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_churn (
float
, 預設為 80) — 控制隨機性總量的引數。合理範圍是 [0, 100]。 - s_min (
float
, 預設為 0.05) — 新增噪聲(啟用隨機性)的 sigma 範圍的起始值。合理範圍是 [0, 10]。 - s_max (
float
, 預設為 50) — 新增噪聲的 sigma 範圍的結束值。合理範圍是 [0.2, 80]。
一種為方差擴充套件模型量身定製的隨機取樣器。
此模型繼承自 SchedulerMixin 和 ConfigMixin。有關庫為所有排程器(如載入和儲存)實現的通用方法,請檢視超類文件。
有關引數的更多詳細資訊,請參見 附錄 E。用於為特定模型查詢最佳 {s_noise, s_churn, s_min, s_max}
的網格搜尋值在論文的表 5 中描述。
add_noise_to_input
< 原始碼 >( sample: Tensor sigma: float generator: typing.Optional[torch._C.Generator] = None )
根據 gamma_i ≥ 0
向樣本新增噪聲,以達到更高噪聲水平 sigma_hat = sigma_i + gamma_i*sigma_i
的顯式 Langevin-like “churn” 步驟。
scale_model_input
< 原始碼 >( sample: Tensor timestep: typing.Optional[int] = None ) → torch.Tensor
確保與需要根據當前時間步縮放去噪模型輸入的排程器互換使用。
set_timesteps
< 原始碼 >( num_inference_steps: int device: typing.Union[str, torch.device] = None )
設定用於擴散鏈的離散時間步(在推理之前執行)。
步驟
< 原始碼 >( model_output: Tensor sigma_hat: float sigma_prev: float sample_hat: Tensor return_dict: bool = True ) → ~schedulers.scheduling_karras_ve.KarrasVESchedulerOutput
或 tuple
引數
- model_output (
torch.Tensor
) — 來自學習擴散模型的直接輸出。 - sigma_hat (
float
) — - sigma_prev (
float
) — - sample_hat (
torch.Tensor
) — - return_dict (
bool
, 可選, 預設為True
) — 是否返回~schedulers.scheduling_karras_ve.KarrasVESchedulerOutput
或tuple
。
返回
~schedulers.scheduling_karras_ve.KarrasVESchedulerOutput
或 tuple
如果 return_dict 為 True
,則返回 ~schedulers.scheduling_karras_ve.KarrasVESchedulerOutput
,否則返回一個元組,其中第一個元素是樣本張量。
透過逆轉 SDE 預測前一個時間步的樣本。此函式從學習到的模型輸出(通常是預測的噪聲)傳播擴散過程。
step_correct
< 原始碼 >( model_output: Tensor sigma_hat: float sigma_prev: float sample_hat: Tensor sample_prev: Tensor derivative: Tensor return_dict: bool = True ) → prev_sample (TODO)
引數
- model_output (
torch.Tensor
) — 來自學習擴散模型的直接輸出。 - sigma_hat (
float
) — TODO - sigma_prev (
float
) — TODO - sample_hat (
torch.Tensor
) — TODO - sample_prev (
torch.Tensor
) — TODO - derivative (
torch.Tensor
) — TODO - return_dict (
bool
, 可選, 預設為True
) — 是否返回 DDPMSchedulerOutput 或tuple
。
返回
prev_sample (TODO)
擴散鏈中更新的樣本。導數(TODO):TODO
根據網路的 model_output
修正預測樣本。
KarrasVeOutput
class diffusers.schedulers.deprecated.scheduling_karras_ve.KarrasVeOutput
< 原始碼 >( prev_sample: Tensor derivative: Tensor pred_original_sample: typing.Optional[torch.Tensor] = None )
引數
- prev_sample (
torch.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
可用於預覽進度或進行引導。
排程器步進函式輸出的輸出類。