Diffusers documentation
HeliosScheduler
HeliosScheduler
HeliosScheduler, Helios makalesinde tanıtılan piramidal akış eşleştirme örneklemesine dayanmaktadır.
HeliosScheduler
sınıf diffusers.HeliosScheduler
< source >( num_train_timesteps: int = 1000shift: float = 1.0stages: int = 3stage_range: list = [0, 0.3333333333333333, 0.6666666666666666, 1]gamma: float = 0.3333333333333333thresholding: bool = Falseprediction_type: str = 'flow_prediction'solver_order: int = 2predict_x0: bool = Truesolver_type: str = 'bh2'lower_order_final: bool = Truedisable_corrector: list = []solver_p: SchedulerMixin = Noneuse_flow_sigmas: bool = Truescheduler_type: str = 'unipc'use_dynamic_shifting: bool = Falsetime_shift_type: typing.Literal['exponential', 'linear'] = 'exponential' )
convert_model_output
< source >( model_output: Tensor*argssample: Tensor = Nonesigma: Tensor = None**kwargs ) → torch.Tensor
Parametreler
- model_output (
torch.Tensor) — Öğrenen difüzyon modelinden gelen doğrudan çıktı. - timestep (
int) — Difüzyon zincirindeki mevcut ayrık zaman adımı. - sample (
torch.Tensor) — Difüzyon süreci tarafından oluşturulan bir örneğin mevcut bir örneği. - sigma (
torch.Tensor, isteğe bağlı) — Gürültü zamanlamasındaki mevcut adımın sigması.
Dönüş değeri
torch.Tensor
Dönüştürülen model çıktısı.
Model çıktısını UniPC algoritmasının gerektirdiği ilgili tipe dönüştürün.
global timesteps ve sigmas değerlerini başlatın
Her aşama için zaman adımlarını başlatın
multistep_uni_c_bh_update
< source >( this_model_output: Tensor*argslast_sample: Tensor = Nonethis_sample: Tensor = Noneorder: int = Nonesigma_before: Tensor = Nonesigma: Tensor = None**kwargs ) → torch.Tensor
Parametreler
- this_model_output (
torch.Tensor) — Modelinx_tçıktısı. - this_timestep (
int) — Güncel zaman adımıt. - last_sample (
torch.Tensor) — Son tahmincix_{t-1}öncesindeki üretilmiş örnek. - this_sample (
torch.Tensor) — Son tahmincix_{t}sonrasında üretilen örnek. - order (
int) — Bu adımda UniC-p'ninpdeğeri. Etkin doğruluk derecesiorder + 1olmalıdır. - sigma_before (
torch.Tensor, isteğe bağlı) — Gürültü zamanlamasındaki bir önceki adımın sigması. - sigma (
torch.Tensor, isteğe bağlı) — Gürültü zamanlamasındaki mevcut adımın sigması.
Dönüş değeri
torch.Tensor
Güncel zaman adımındaki düzeltilmiş örnek tensörü.
UniC (B(h) sürümü) için bir adım.
multistep_uni_p_bh_update
< source >( model_output: Tensor*argssample: Tensor = Noneorder: int = Nonesigma: Tensor = Nonesigma_next: Tensor = None**kwargs ) → torch.Tensor
Parametreler
- model_output (
torch.Tensor) — Mevcut zaman adımında öğrenilen difüzyon modelinden gelen doğrudan çıktı. - prev_timestep (
int) — Difüzyon zincirindeki önceki ayrık zaman adımı. - sample (
torch.Tensor) — Difüzyon süreci tarafından oluşturulan bir örneğin mevcut bir örneği. - order (
int) — Bu zaman adımındaki UniP sırası (UniPC-p'deki p'ye karşılık gelir). - sigma (
torch.Tensor, isteğe bağlı) — Gürültü zamanlamasındaki mevcut adımın sigması. - sigma_next (
torch.Tensor, isteğe bağlı) — Gürültü zamanlamasındaki bir sonraki adımın sigması.
Dönüş değeri
torch.Tensor
Önceki zaman adımındaki örnek tensör.
UniP (B(h) sürümü) için bir adım. Alternatif olarak, self.solver_p belirtilirse kullanılır.
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.
set_timesteps
< source >( num_inference_steps: intstage_index: int | None = Nonedevice: typing.Union[str, torch.device] = Nonesigmas: bool | None = Nonemu: bool | None = Noneis_amplify_first_chunk: bool = False )
Her aşama için timesteps ve sigmas değerlerini ayarlama
time_shift
< source >( mu: floatsigma: floatt: Tensor ) → torch.Tensor
Sigmalara zaman kaydırma uygulayın.
scheduling_helios
Update on GitHub