Diffusers 文件

KarrasVe排程器

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

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]。

一種為方差擴充套件模型量身定製的隨機取樣器。

此模型繼承自 SchedulerMixinConfigMixin。有關庫為所有排程器(如載入和儲存)實現的通用方法,請檢視超類文件。

有關引數的更多詳細資訊,請參見 附錄 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 )

引數

  • sample (torch.Tensor) — 輸入樣本。
  • sigma (float) —
  • generator (torch.Generator, 可選) — 隨機數生成器。

根據 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

引數

  • sample (torch.Tensor) — 輸入樣本。
  • timestep (int, 可選) — 擴散鏈中的當前時間步。

返回

torch.Tensor

一個縮放後的輸入樣本。

確保與需要根據當前時間步縮放去噪模型輸入的排程器互換使用。

set_timesteps

< >

( num_inference_steps: int device: typing.Union[str, torch.device] = None )

引數

  • num_inference_steps (int) — 使用預訓練模型生成樣本時使用的擴散步驟數。
  • device (strtorch.device, 可選) — 時間步應移動到的裝置。如果為 None,則時間步不移動。

設定用於擴散鏈的離散時間步(在推理之前執行)。

步驟

< >

( 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) —
  • sigma_prev (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: 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) — 是否返回 DDPMSchedulerOutputtuple

返回

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 可用於預覽進度或進行引導。

排程器步進函式輸出的輸出類。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.