Diffusers documentation

CogVideoXDPMScheduler

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

CogVideoXDPMScheduler

CogVideoXDPMScheduler は、DPM-Solver: A Fast ODE Solver for Diffusion Probabilistic Model Sampling in Around 10 Steps および DPM-Solver++: Fast Solver for Guided Sampling of Diffusion Probabilistic Models に基づいており、CogVideoX モデル向けに特化しています。

CogVideoXDPMScheduler

class diffusers.CogVideoXDPMScheduler

< >

( num_train_timesteps: int = 1000beta_start: float = 0.00085beta_end: float = 0.012beta_schedule: typing.Literal['linear', 'scaled_linear', 'squaredcos_cap_v2'] = 'scaled_linear'trained_betas: numpy.ndarray | list[float] | None = Noneclip_sample: bool = Trueset_alpha_to_one: bool = Truesteps_offset: int = 0prediction_type: typing.Literal['epsilon', 'sample', 'v_prediction'] = 'epsilon'clip_sample_range: float = 1.0sample_max_value: float = 1.0timestep_spacing: typing.Literal['leading', 'linspace', 'trailing'] = 'leading'rescale_betas_zero_snr: bool = Falsesnr_shift_scale: float = 3.0 )

パラメータ

  • num_train_timesteps (int、デフォルト値は 1000) — モデルを学習するための拡散ステップ数。
  • beta_start (float、デフォルト値は 0.0001) — 推論の開始時の beta 値。
  • beta_end (float、デフォルト値は 0.02) — 最終的な beta 値。
  • beta_schedule (str、デフォルトは "linear") — ベータスケジュールです。ベータの範囲から、モデルのステップ処理に使用するベータのシーケンスへのマッピングを指定します。linear、scaled_linear、または squaredcos_cap_v2 から選択してください。
  • trained_betas (np.ndarray, 省略可) — beta_start と beta_end をバイパスして、ベータの配列を直接コンストラクタに渡す場合に使用します。
  • clip_sample (bool、デフォルトは True) — 数値の安定性を確保するために、予測されたサンプルをクリップします。
  • clip_sample_range (float、デフォルト値は 1.0) — サンプルクリッピングの最大振幅です。clip_sample=True の場合のみ有効です。
  • set_alpha_to_one (bool、デフォルトはTrue) — 各拡散ステップでは、そのステップと直前のステップのアルファの積の値が使用されます。最終ステップでは直前のアルファが存在しません。このオプションがTrueの場合、直前のアルファの積は1に固定され、それ以外の場合はステップ0のアルファの値が使用されます。
  • steps_offset (int、デフォルト値は 0)— 一部のモデルファミリーで必要とされる、推論ステップに追加されるオフセットです。
  • prediction_type (str, defaults to epsilon, optional) — Prediction type of the scheduler function; can be epsilon (predicts the noise of the diffusion process), sample (directly predicts the noisy sample) or v_prediction` (see section 2.4 of Imagen Video paper).
  • thresholding (bool、デフォルトは False) — 「動的閾値処理」メソッドを使用するかどうか。Stable Diffusion などの潜在空間拡散モデルには不向きです。
  • dynamic_thresholding_ratio (float、デフォルト値は 0.995) — 動的閾値化手法の比率。thresholding=True の場合のみ有効です。
  • sample_max_value (float、デフォルト値は 1.0) — 動的閾値処理の閾値です。thresholding=True の場合のみ有効です。
  • timestep_spacing (str, defaults to "leading") — The way the timesteps should be scaled. Refer to Table 2 of the Common Diffusion Noise Schedules and Sample Steps are Flawed for more information. Choose from leading, linspace or trailing.
  • rescale_betas_zero_snr (bool、デフォルトは False) — betas を再スケーリングして、終端 SNR をゼロにするかどうかを指定します。これにより、モデルは中間の明るさに限定されず、非常に明るく暗いサンプルを生成できるようになります。--offset_noise とゆるく関連しています。
  • snr_shift_scale (float、デフォルト値は 3.0) — SNR のシフトスケール。

DDIMScheduler は、denoising diffusion probabilistic models (DDPM) で導入されたデノイジング手順を、非マルコフ的ガイダンスによって拡張します。

このモデルは SchedulerMixin および ConfigMixin を継承しています。読み込みや保存など、ライブラリがすべてのスケジューラに対して実装している汎用的なメソッドについては、スーパークラスのドキュメントを参照してください。

add_noise

< >

( original_samples: Tensornoise: Tensortimesteps: IntTensor ) → torch.Tensor

パラメータ

  • original_samples (torch.Tensor) — ノイズが加えられる元のサンプルです。
  • noise (torch.Tensor) — サンプルに追加するノイズ。
  • timesteps (torch.IntTensor) — 各サンプルのノイズレベルを示すタイムステップです。

戻り値

torch.Tensor

ノイズ付きサンプル。

各タイムステップにおけるノイズの大きさに従って、元のサンプルにノイズを追加します(これはフォワード拡散プロセスです)。

get_mult

< >

( h: Tensorr: Tensoralpha_prod_t: Tensoralpha_prod_t_prev: Tensoralpha_prod_t_back: typing.Optional[torch.Tensor] = None ) → tuple

パラメータ

  • h (torch.Tensor) — log-SNR の差です。
  • r (torch.Tensor) — log-SNR の差の比率です。
  • alpha_prod_t (torch.Tensor) — 現在のタイムステップにおけるアルファの累積積。
  • alpha_prod_t_prev (torch.Tensor) — 前のタイムステップにおけるアルファの累積積です。
  • alpha_prod_t_back (torch.Tensor, 省略可) — 1ステップ前のタイムステップにおけるアルファの累積積です。

戻り値

tuple

乗数を含むタプル。

前のサンプルと予測された元のサンプルの乗数を計算します。

get_variables

< >

( alpha_prod_t: Tensoralpha_prod_t_prev: Tensoralpha_prod_t_back: typing.Optional[torch.Tensor] = None ) → tuple

パラメータ

  • alpha_prod_t (torch.Tensor) — 現在のタイムステップにおけるアルファの累積積。
  • alpha_prod_t_prev (torch.Tensor) — 前のタイムステップにおけるアルファの累積積です。
  • alpha_prod_t_back (torch.Tensor, 省略可) — 1ステップ前のタイムステップにおけるアルファの累積積です。

戻り値

tuple

変数 h、r、lamb、lamb_next を含むタプル。

元の実装を参照しながら、DPM-Solver++ (2M) で使用される変数を計算します。

get_velocity

< >

( sample: Tensornoise: Tensortimesteps: IntTensor ) → torch.Tensor

パラメータ

  • sample (torch.Tensor) — 入力サンプルです。
  • noise (torch.Tensor) — ノイズテンソルです。
  • timesteps (torch.IntTensor) — 速度計算に使用するタイムステップです。

戻り値

torch.Tensor

計算された速度。

速度の式に従って、サンプルとノイズから速度予測を計算します。

scale_model_input

< >

( sample: Tensortimestep: int | None = None ) → torch.Tensor

パラメータ

  • sample (torch.Tensor) — 入力サンプルです。
  • timestep (int, 任意) — 拡散チェーンにおける現在のタイムステップ。

戻り値

torch.Tensor

スケーリングされた入力サンプル。

現在のタイムステップに応じて、デノイジングモデルの入力をスケーリングする必要があるスケジューラーとの相互運用性を保証します。

set_timesteps

< >

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

パラメータ

  • num_inference_steps (int) — 事前学習済みモデルでサンプルを生成する際に使用する拡散ステップの数。
  • device (str または torch.device、省略可) — timesteps を移動先とするデバイスです。None(デフォルト)の場合、timesteps は移動されません。

拡散チェーンで使用される離散タイムステップを設定します(推論の実行前に実行する必要があります)。

ステップ

< >

( model_output: Tensorold_pred_original_sample: Tensortimestep: inttimestep_back: intsample: Tensoreta: float = 0.0use_clipped_model_output: bool = Falsegenerator: typing.Optional[torch.Generator] = Nonevariance_noise: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = False ) → DDIMSchedulerOutput or tuple

パラメータ

  • model_output (torch.Tensor) — 学習済み拡散モデルからの直接の出力です。
  • old_pred_original_sample (torch.Tensor) — 前のタイムステップからの予測された元のサンプル。
  • timestep (int) — 拡散チェーンにおける現在の離散タイムステップ。
  • timestep_back (int) — 遡るタイムステップ。
  • sample (torch.Tensor) — 拡散プロセスによって生成されたサンプルの現在のインスタンス。
  • eta (float) — 拡散ステップで追加されるノイズの重み。
  • use_clipped_model_output (bool、デフォルトは False) — True の場合、クリップされた予測元のサンプルから「補正済み」の model_output を計算します。self.config.clip_sample が True のとき、予測元のサンプルは [-1, 1] にクリップされるため、この処理が必要です。クリップが行われていない場合、「補正済み」の model_output は入力として提供されたものと同じになり、use_clipped_model_output は影響しません。
  • generator (torch.Generator、任意) — 乱数生成器です。
  • variance_noise (torch.Tensor) — generator を使用してノイズを生成する代わりに、分散自体のノイズを直接指定するための代替手段です。CycleDiffusion のような手法に有用です。
  • return_dict (bool、省略可、デフォルトはTrue) — tupleではなくDDIMSchedulerOutputを返すかどうか。

戻り値

DDIMSchedulerOutput または tuple

True の場合、DDIMSchedulerOutput が返され、それ以外の場合は、最初の要素がサンプルテンソルであるタプルが返されます。

前のタイムステップのサンプルを、SDEを逆方向に適用することで予測します。この関数は、学習済みモデルの出力(多くの場合、予測されたノイズ)から拡散過程を伝播させます。

Update on GitHub