Diffusers documentation
FlowMatchEulerDiscreteScheduler
FlowMatchEulerDiscreteScheduler
FlowMatchEulerDiscreteScheduler, Stable Diffusion 3'te tanıtılan akış eşleştirme örneklemesine dayanmaktadır.
FlowMatchEulerDiscreteScheduler
sınıf diffusers.FlowMatchEulerDiscreteScheduler
< source >( num_train_timesteps: int = 1000shift: float = 1.0use_dynamic_shifting: bool = Falsebase_shift: float | None = 0.5max_shift: float | None = 1.15base_image_seq_len: int = 256max_image_seq_len: int = 4096invert_sigmas: bool = Falseshift_terminal: float = Noneuse_karras_sigmas: bool = Falseuse_exponential_sigmas: bool = Falseuse_beta_sigmas: bool = Falsetime_shift_type: typing.Literal['exponential', 'linear'] = 'exponential'stochastic_sampling: bool = False )
Parametreler
- num_train_timesteps (
int, varsayılan 1000) — Modelin eğitileceği difüzyon adım sayısı. - shift (
float, varsayılan 1.0) — Zaman adımı zaman çizelgesi için kaydırma değeri. - use_dynamic_shifting (
bool, varsayılan olarak False) — Görsel çözünürlüğüne göre timestep shifting'in anlık olarak uygulanıp uygulanmayacağı. - base_shift (
float, varsayılan 0.5) — Görsel üretimini istikrarlı kılmak için kullanılan değer.base_shiftartırıldığında çeşitlilik azalır ve görsel, istenen çıktıyla daha tutarlı hale gelir. - max_shift (
float, varsayılan 1.15) — Gizil vektörlerde izin verilen değer değişimi.max_shiftdeğerini artırmak daha fazla çeşitliliği teşvik eder ve görüntü daha abartılı veya stilize olabilir. - base_image_seq_len (
int, varsayılan 256) — Temel görüntü dizisi uzunluğu. - max_image_seq_len (
int, varsayılan 4096) — Maksimum görüntü dizisi uzunluğu. - invert_sigmas (
bool, varsayılan olarak False) — Sigmaların ters çevrilip çevrilmeyeceği. - shift_terminal (
float, varsayılan: None) — Kaydırılmış zaman adımı zaman çizelgesinin son değeri. - use_karras_sigmas (
bool, varsayılan olarak False) — Örnekleme sırasında gürültü zamanlamasındaki adım boyutları için Karras sigmas'larının kullanılıp kullanılmayacağı. - use_exponential_sigmas (
bool, varsayılan olarak False) — Örnekleme sırasında gürültü zamanlamasında adım boyutları için üstel sigmaların kullanılıp kullanılmayacağı. - use_beta_sigmas (
bool, varsayılan olarak False) — Örnekleme sırasında gürültü zamanlamasında adım boyutları için beta sigmaların kullanılıp kullanılmayacağı. - time_shift_type (
str, varsayılan “exponential”) — Uygulanacak dinamik, çözünürlükten bağımlı zaman adımı kaydırma türü. “exponential” veya “linear” olabilir. - stochastic_sampling (
bool, varsayılan olarak False) — Stokastik örneklemenin kullanılıp kullanılmayacağı.
Euler zamanlayıcı.
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.
index_for_timestep
< source >( timestep: typing.Union[float, torch.FloatTensor]schedule_timesteps: typing.Optional[torch.FloatTensor] = None ) → int
Verilen zaman adımının indeksini alın.
scale_noise
< source >( sample: FloatTensortimestep: typing.Union[float, torch.FloatTensor]noise: typing.Optional[torch.FloatTensor] = None ) → torch.FloatTensor
Akış eşleştirmede ileri süreç
set_begin_index
< source >( begin_index: int = 0 )
Zamanlayıcının başlangıç indeksini ayarlar. Bu işlev, çıkarım (inference) öncesinde pipeline'dan çalıştırılmalıdır.
Zamanlayıcı için kaydırma değerini ayarlar.
set_timesteps
< source >( num_inference_steps: int | None = Nonedevice: typing.Union[str, torch.device] = Nonesigmas: list[float] | None = Nonemu: float | None = Nonetimesteps: list[float] | None = None )
Parametreler
- num_inference_steps (
int, isteğe bağlı) — Önceden eğitilmiş bir modelle örnekler oluşturulurken kullanılan difüzyon adım sayısı. - device (
strveyatorch.device, isteğe bağlı) — Adımların (timesteps) taşınacağı cihaz.Noneise adımlar taşınmaz. - sigmas (
list[float], isteğe bağlı) — Her difüzyon adımı için kullanılacak sigmaların özel değerleri.Noneise sigmalar otomatik olarak hesaplanır. - mu (
float, isteğe bağlı) — Çözünürlüğe bağlı zaman adımı kaydırma işlemi sırasında sigmalara uygulanan kaydırma miktarını belirler. - timesteps (
list[float], isteğe bağlı) — Her difüzyon adımı için kullanılacak özel timestep değerleri.Noneise, timestepler otomatik olarak hesaplanır.
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: FloatTensortimestep: typing.Union[float, torch.FloatTensor]sample: FloatTensors_churn: float = 0.0s_tmin: float = 0.0s_tmax: float = infs_noise: float = 1.0generator: typing.Optional[torch.Generator] = Noneper_token_timesteps: typing.Optional[torch.Tensor] = Nonereturn_dict: bool = True ) → FlowMatchEulerDiscreteSchedulerOutput or tuple
Parametreler
- model_output (
torch.FloatTensor) — Öğrenen difüzyon modelinden gelen doğrudan çıktı. - timestep (
float) — Difüzyon zincirindeki mevcut ayrık zaman adımı. - sample (
torch.FloatTensor) — Difüzyon süreci tarafından oluşturulan bir örneğin mevcut bir örneği. - s_churn (
float) — - s_tmin (
float) — - s_tmax (
float) — - s_noise (
float, varsayılan 1.0) — Örneğe eklenen gürültü için ölçekleme faktörü. - generator (
torch.Generator, isteğe bağlı) — Rastgele sayı üreteci. - per_token_timesteps (
torch.Tensor, isteğe bağlı) — Örnekteki her token için zaman adımları. - return_dict (
bool, varsayılanTrue) —FlowMatchEulerDiscreteSchedulerOutputveya tuple döndürülüp döndürülmemesi.
Dönüş değeri
FlowMatchEulerDiscreteSchedulerOutput veya tuple
return_dict True ise,
FlowMatchEulerDiscreteSchedulerOutput döndürülür,
aksi halde bir tuple döndürülür ve bu tuple'ın ilk öğesi örnek tensörüdü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.
stretch_shift_to_terminal
< source >( t: Tensor ) → torch.Tensor
Zaman adımlı zaman çizelgesini uzatarak ve kaydırarak, yapılandırılmış shift_terminal yapılandırma değeriyle sonlanmasını sağlar.
time_shift
< source >( mu: floatsigma: floatt: Tensor ) → torch.Tensor
Sigmalara zaman kaydırma uygulayın.