Diffusers 文件

FlowMatchEulerDiscreteScheduler

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

FlowMatchEulerDiscreteScheduler

FlowMatchEulerDiscreteScheduler 是基於 Stable Diffusion 3 中引入的流匹配取樣方法。

FlowMatchEulerDiscreteScheduler

diffusers.FlowMatchEulerDiscreteScheduler

< >

( num_train_timesteps: int = 1000 shift: float = 1.0 use_dynamic_shifting: bool = False base_shift: typing.Optional[float] = 0.5 max_shift: typing.Optional[float] = 1.15 base_image_seq_len: typing.Optional[int] = 256 max_image_seq_len: typing.Optional[int] = 4096 invert_sigmas: bool = False shift_terminal: typing.Optional[float] = None use_karras_sigmas: typing.Optional[bool] = False use_exponential_sigmas: typing.Optional[bool] = False use_beta_sigmas: typing.Optional[bool] = False time_shift_type: str = 'exponential' stochastic_sampling: bool = False )

引數

  • num_train_timesteps (int, 預設為 1000) — 用於訓練模型的擴散步數。
  • shift (float, 預設為 1.0) — 時間步排程表的偏移值。
  • use_dynamic_shifting (bool, 預設為 False) — 是否根據影像解析度動態應用時間步偏移。
  • base_shift (float, 預設為 0.5) — 用於穩定影像生成的值。增加 base_shift 可減少變化,使影像與期望輸出更一致。
  • max_shift (float, 預設為 1.15) — 潛在向量允許的變化值。增加 max_shift 鼓勵更多變化,影像可能更誇張或風格化。
  • base_image_seq_len (int, 預設為 256) — 基礎影像序列長度。
  • max_image_seq_len (int, 預設為 4096) — 最大影像序列長度。
  • invert_sigmas (bool, 預設為 False) — 是否反轉 sigma。
  • shift_terminal (float, 預設為 None) — 偏移時間步排程表的結束值。
  • use_karras_sigmas (bool, 預設為 False) — 在取樣期間是否使用 Karras sigma 作為噪聲排程中的步長。
  • use_exponential_sigmas (bool, 預設為 False) — 在取樣期間是否使用指數 sigma 作為噪聲排程中的步長。
  • use_beta_sigmas (bool, 預設為 False) — 在取樣期間是否使用 beta sigma 作為噪聲排程中的步長。
  • time_shift_type (str, 預設為 “exponential”) — 要應用的動態解析度相關時間步偏移的型別。可以是 “exponential” 或 “linear”。
  • stochastic_sampling (bool, 預設為 False) — 是否使用隨機取樣。

尤拉排程器。

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

scale_noise

< >

( sample: FloatTensor timestep: typing.Union[float, torch.FloatTensor] noise: typing.Optional[torch.FloatTensor] = None ) torch.FloatTensor

引數

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

返回

torch.FloatTensor

一個縮放後的輸入樣本。

流匹配中的正向過程

set_begin_index

< >

( begin_index: int = 0 )

引數

  • begin_index (int) — 排程器的起始索引。

設定排程器的起始索引。此函式應在推理之前從管道中執行。

set_timesteps

< >

( num_inference_steps: typing.Optional[int] = None device: typing.Union[str, torch.device] = None sigmas: typing.Optional[typing.List[float]] = None mu: typing.Optional[float] = None timesteps: typing.Optional[typing.List[float]] = None )

引數

  • num_inference_steps (int, 可選) — 使用預訓練模型生成樣本時使用的擴散步數。
  • device (strtorch.device, 可選) — 時間步應移動到的裝置。如果為 None,則時間步不移動。
  • sigmas (List[float], 可選) — 用於每個擴散步的 sigma 的自定義值。如果為 None,則 sigma 自動計算。
  • mu (float, 可選) — 確定在執行解析度相關時間步偏移時應用於 sigma 的偏移量。
  • timesteps (List[float], 可選) — 用於每個擴散步的時間步自定義值。如果為 None,則時間步自動計算。

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

步驟

< >

( model_output: FloatTensor timestep: typing.Union[float, torch.FloatTensor] sample: FloatTensor s_churn: float = 0.0 s_tmin: float = 0.0 s_tmax: float = inf s_noise: float = 1.0 generator: typing.Optional[torch._C.Generator] = None per_token_timesteps: typing.Optional[torch.Tensor] = None return_dict: bool = True ) FlowMatchEulerDiscreteSchedulerOutputtuple

引數

  • model_output (torch.FloatTensor) — 從學習擴散模型直接輸出的結果。
  • timestep (float) — 擴散鏈中的當前離散時間步。
  • sample (torch.FloatTensor) — 擴散過程建立的樣本的當前例項。
  • s_churn (float) —
  • s_tmin (float) —
  • s_tmax (float) —
  • s_noise (float, 預設為 1.0) — 新增到樣本中的噪聲的縮放因子。
  • generator (torch.Generator, 可選) — 隨機數生成器。
  • per_token_timesteps (torch.Tensor, 可選) — 樣本中每個 token 的時間步。
  • return_dict (bool) — 是否返回 FlowMatchEulerDiscreteSchedulerOutput 或元組。

返回

FlowMatchEulerDiscreteSchedulerOutputtuple

如果 return_dict 為 True,則返回 FlowMatchEulerDiscreteSchedulerOutput,否則返回一個元組,其中第一個元素是樣本張量。

透過逆轉 SDE 預測前一個時間步的樣本。此函式從學習到的模型輸出(通常是預測的噪聲)傳播擴散過程。

stretch_shift_to_terminal

< >

( t: Tensor ) torch.Tensor

引數

  • t (torch.Tensor) — 要拉伸和移動的時間步張量。

返回

torch.Tensor

調整後的時間步張量,使得最終值等於 self.config.shift_terminal

拉伸和移動時間步排程,以確保其在配置的 shift_terminal 配置值處終止。

參考:https://github.com/Lightricks/LTX-Video/blob/a01a171f8fe3d99dce2728d60a73fecf4d4238ae/ltx_video/schedulers/rf.py#L51

< > 在 GitHub 上更新

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