Diffusers documentation
CogVideoXDPMScheduler
CogVideoXDPMScheduler
CogVideoXDPMScheduler, DPM-Solver: A Fast ODE Solver for Diffusion Probabilistic Model Sampling in Around 10 Steps ve DPM-Solver++: Fast Solver for Guided Sampling of Diffusion Probabilistic Models makalelerine dayanmaktadır ve özellikle CogVideoX modelleri için tasarlanmıştır.
CogVideoXDPMScheduler
sınıf diffusers.CogVideoXDPMScheduler
< source >( 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 )
Parametreler
- num_train_timesteps (
int, varsayılan 1000) — Modelin eğitileceği difüzyon adım sayısı. - beta_start (
float, varsayılan 0.0001) — Çıkarımın başlangıçbetadeğeri. - beta_end (
float, varsayılan 0.02) — Sonbetadeğeri. - beta_schedule (
str, varsayılan"linear") — Beta zamanlaması, modelin adım atması için beta aralığını beta dizisine eşleyen bir haritadır. Seçenekler:linear,scaled_linearveyasquaredcos_cap_v2. - trained_betas (
np.ndarray, isteğe bağlı) — Betalar dizisini doğrudan yapılandırıcıya ileterekbeta_startvebeta_endparametrelerini atlayın. - clip_sample (
bool, varsayılanTrue) — Sayısal kararlılık için tahmin edilen örneği kırpın. - clip_sample_range (
float, varsayılan 1.0) — Örnek kırpma için maksimum büyüklük. Yalnızcaclip_sample=Trueolduğunda geçerlidir. - set_alpha_to_one (
bool, varsayılanTrue) — Her difüzyon adımı, o adımdaki ve bir önceki adımdaki alfa çarpım değerini kullanır. Son adım için bir önceki alfa yoktur. Bu seçenekTrueolduğunda bir önceki alfa çarpımı1olarak sabitlenir, aksi halde 0. adımdaki alfa değeri kullanılır. - steps_offset (
int, varsayılan 0) — Bazı model ailelerinin gerektirdiği gibi, çıkarım adımlarına eklenen bir ofset. - prediction_type (
str, defaults toepsilon, optional) — Prediction type of the scheduler function; can beepsilon(predicts the noise of the diffusion process),sample(directly predicts the noisy sample) orv_prediction` (see section 2.4 of Imagen Video paper). - thresholding (
bool, varsayılanFalse) — “Dinamik eşikleme” yönteminin kullanılıp kullanılmayacağı. Bu, Stable Diffusion gibi gizli uzay difüzyon modelleri için uygun değildir. - dynamic_thresholding_ratio (
float, varsayılan 0.995) — Dinik eşikleme yöntemi için oran. Yalnızcathresholding=Trueolduğunda geçerlidir. - sample_max_value (
float, varsayılan 1.0) — Dinik eşikleme için eşik değeri. Yalnızcathresholding=Trueolduğunda geçerlidir. - timestep_spacing (
str, varsayılan"leading") — Zaman adımlarının ölçeklendirme yöntemi. Daha fazla bilgi için Common Diffusion Noise Schedules and Sample Steps are Flawed makalesindeki Tablo 2'ye bakın.leading,linspaceveyatrailingseçeneklerinden birini seçin. - rescale_betas_zero_snr (
bool, varsayılanFalse) — Betalara sıfır son SNR değerine sahip olacak şekilde yeniden ölçeklendirme uygulanıp uygulanmayacağı. Bu, modelin orta parlaklıktaki örneklerle sınırlı kalmak yerine çok parlak ve çok karanlık örnekler üretmesini sağlar.--offset_noiseile gevşek bir şekilde ilişkilidir. - snr_shift_scale (
float, varsayılan 3.0) — SNR için kaydırma ölçeği.
DDIMScheduler, gürültü azaltma difüzyon olasılıksal modellerinde (DDPM) tanıtılan gürültü azaltma işlemini, Markov olmayan yönlendirme ile genişletir.
Bu model SchedulerMixin ve ConfigMixin sınıflarından devralır. Kütüphanenin tüm zamanlayıcılar için yükleme ve kaydetme gibi genel yöntemleri uyguladığı üst sınıf belgelendirmesini kontrol edin.
add_noise
< source >( original_samples: Tensornoise: Tensortimesteps: IntTensor ) → torch.Tensor
Her zaman adımındaki gürültü büyüklüğüne göre orijinal örneklerin gürültü ekleyin (bu, ileri difüzyon sürecidir).
get_mult
< source >( h: Tensorr: Tensoralpha_prod_t: Tensoralpha_prod_t_prev: Tensoralpha_prod_t_back: typing.Optional[torch.Tensor] = None ) → tuple
Parametreler
- h (
torch.Tensor) — Log-SNR farkı. - r (
torch.Tensor) — Log-SNR farklarının oranı. - alpha_prod_t (
torch.Tensor) — Güncel zaman adımındaki alfa değerlerinin kümülatif çarpımı. - alpha_prod_t_prev (
torch.Tensor) — Önceki zaman adımındaki alfa değerlerinin kümülatif çarpımı. - alpha_prod_t_back (
torch.Tensor, isteğe bağlı) — Bir önceki zaman adımından önceki zaman adımındaki alfa değerlerinin kümülatif çarpımı.
Dönüş değeri
tuple
Çarpanları içeren bir demet (tuple).
Önceki örnek ve tahmin edilen orijinal örnek için çarpanları hesaplayın.
get_variables
< source >( alpha_prod_t: Tensoralpha_prod_t_prev: Tensoralpha_prod_t_back: typing.Optional[torch.Tensor] = None ) → tuple
Parametreler
- alpha_prod_t (
torch.Tensor) — Güncel zaman adımındaki alfa değerlerinin kümülatif çarpımı. - alpha_prod_t_prev (
torch.Tensor) — Önceki zaman adımındaki alfa değerlerinin kümülatif çarpımı. - alpha_prod_t_back (
torch.Tensor, isteğe bağlı) — Bir önceki zaman adımından önceki zaman adımındaki alfa değerlerinin kümülatif çarpımı.
Dönüş değeri
tuple
h, r, lamb, lamb_next değişkenlerini içeren bir demet (tuple).
Orijinal uygulamaya atıfta bulunarak DPM-Solver++ (2M) için kullanılan değişkenleri hesaplayın.
get_velocity
< source >( sample: Tensornoise: Tensortimesteps: IntTensor ) → torch.Tensor
Hız formülüne göre örnek ve gürültüden hız tahminini hesaplayın.
scale_model_input
< source >( sample: Tensortimestep: int | None = None ) → torch.Tensor
Gürültüden arındırma modelinin girdisinin mevcut zaman adımına bağlı olarak ölçeklenmesi gereken zamanlayıcılarla değiştirilebilirliği sağlar.
set_timesteps
< source >( num_inference_steps: intdevice: typing.Union[str, torch.device, NoneType] = None )
Difüzyon zinciri için kullanılan ayrık zaman adımlarını ayarlar (çalıştırılmadan önce çıkarım yapılmalıdır).
adım
< source >( 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
Parametreler
- model_output (
torch.Tensor) — Öğrenen difüzyon modelinden gelen doğrudan çıktı. - old_pred_original_sample (
torch.Tensor) — Önceki zaman adımından tahmin edilen orijinal örnek. - timestep (
int) — Difüzyon zincirindeki mevcut ayrık zaman adımı. - timestep_back (
int) — Geriye bakılacak zaman adımı. - sample (
torch.Tensor) — Difüzyon süreci tarafından oluşturulan bir örneğin mevcut bir örneği. - eta (
float) — Difüzyon adımında eklenen gürültünün ağırlığı. - use_clipped_model_output (
bool, varsayılanFalse) —Trueise, kırpılmış tahmini orijinal örnekten “düzeltilmiş”model_outputhesaplanır.self.config.clip_sampleTrueolduğunda tahmini orijinal örnek [-1, 1] aralığına kırpıldığı için bu işlem gereklidir. Kırpma işlemi gerçekleşmediyse, “düzeltilmiş”model_outputgirdi olarak sağlananla aynı olur veuse_clipped_model_outputherhangi bir etkiye sahip değildir. - generator (
torch.Generator, isteğe bağlı) — Rastgele sayı üreteci. - variance_noise (
torch.Tensor) — Varyans için gürültüyü doğrudan sağlayarakgeneratorile gürültü üretmenin alternatifi.CycleDiffusiongibi yöntemler için faydalıdır. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — DDIMSchedulerOutput veyatupledöndürülüp döndürülmemeye karar verir.
Dönüş değeri
DDIMSchedulerOutput veya tuple
return_dict True ise DDIMSchedulerOutput döndürülür, aksi halde ilk öğesi örnek tensörü olan bir tuple döndürülür.
Önceki zaman adımındaki örneği SDE'yi tersine çevirerek tahmin edin. Bu işlev, öğrenilen model çıktılarını (en sık tahmin edilen gürültüyü) kullanarak difüzyon sürecini ilerletir.