# FlowMatchEulerDiscreteScheduler

`FlowMatchEulerDiscreteScheduler`, [Stable Diffusion 3](https://huggingface.co/papers/2403.03206)'te tanıtılan akış eşleştirme örneklemesine dayanmaktadır.

## FlowMatchEulerDiscreteScheduler[[diffusers.FlowMatchEulerDiscreteScheduler]]

#### diffusers.FlowMatchEulerDiscreteScheduler[[diffusers.FlowMatchEulerDiscreteScheduler]]

```python
diffusers.FlowMatchEulerDiscreteScheduler(num_train_timesteps: int = 1000, shift: float = 1.0, use_dynamic_shifting: bool = False, base_shift: float | None = 0.5, max_shift: float | None = 1.15, base_image_seq_len: int = 256, max_image_seq_len: int = 4096, invert_sigmas: bool = False, shift_terminal: float = None, use_karras_sigmas: bool = False, use_exponential_sigmas: bool = False, use_beta_sigmas: bool = False, time_shift_type: typing.Literal['exponential', 'linear'] = 'exponential', stochastic_sampling: bool = False)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_flow_match_euler_discrete.py#L48)

**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 değeri False) : Görsel çözünürlüğüne göre zaman adımı kaydırmasının (timestep shifting) anlık olarak uygulanıp uygulanmayacağını belirtir.

base_shift (`float`, varsayılan 0.5) : Görsel üretimi kararlılaştırmak için kullanılan değer. `base_shift` artırıldığında çeşitlilik azalır ve görsel, istenen çıktıyla daha tutarlı hale gelir.

max_shift (`float`, varsayılan 1.15) : Gizli vektörlere izin verilen değer değişimi. `max_shift` değerini artırmak daha fazla çeşitliliği teşvik eder ve görsel 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 değeri False) : Sigmaların tersine çevrilip çevrilmeyeceğini belirtir.

shift_terminal (`float`, varsayılan olarak None) : Kaydırılmış timestep zaman çizelgesinin son değeri.

use_karras_sigmas (`bool`, varsayılan değeri False) : Örnekleme sırasında gürültü zamanlamasında adım boyutları için Karras sigmalarının kullanılıp kullanılmayacağı.

use_exponential_sigmas (`bool`, varsayılan değeri False) : Örnekleme sırasında gürültü zamanlamasında adım boyutları için üstel sigmaların kullanılıp kullanılmayacağını belirtir.

use_beta_sigmas (`bool`, varsayılan değeri 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ük bağımlı zaman adımı kaydırma türü. Ya "exponential" ya da "linear" olmalıdır.

stochastic_sampling (`bool`, varsayılan değeri False) : Stokastik örneklemenin kullanılıp kullanılmayacağı.

Euler zamanlayıcı.

Bu model [SchedulerMixin](/docs/diffusers/main/tr/api/schedulers/overview#diffusers.SchedulerMixin) ve [ConfigMixin](/docs/diffusers/main/tr/api/configuration#diffusers.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[[diffusers.FlowMatchEulerDiscreteScheduler.index_for_timestep]]

```python
index_for_timestep(timestep: typing.Union[float, torch.FloatTensor], schedule_timesteps: typing.Optional[torch.FloatTensor] = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_flow_match_euler_discrete.py#L393)

**Parametreler:**

timestep (`float` veya `torch.FloatTensor`) : İndeksini bulmak için kullanılan zaman adımı.

schedule_timesteps (`torch.FloatTensor`, *isteğe bağlı*) : Doğrulanacak zaman adımları. `None` ise, zamanlayıcının zaman adımları kullanılır.

**Dönüş:** `int`

Zaman adımı indeksi.

Verilen zaman adımının indeksini alın.

#### scale_noise[[diffusers.FlowMatchEulerDiscreteScheduler.scale_noise]]

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

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_flow_match_euler_discrete.py#L188)

**Parametreler:**

sample (`torch.FloatTensor`) : Girdi örneği.

timestep (`torch.FloatTensor`) : Difüzyon zincirindeki mevcut zaman adımı.

noise (`torch.FloatTensor`) : Gürültü tensörü.

**Dönüş:** `torch.FloatTensor`

Ölçeklendirilmiş bir girdi örneği.

Akış eşleştirmede ileri süreç

#### set_begin_index[[diffusers.FlowMatchEulerDiscreteScheduler.set_begin_index]]

```python
set_begin_index(begin_index: int = 0)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_flow_match_euler_discrete.py#L168)

**Parametreler:**

begin_index (`int`, varsayılan `0`) : Zamanlayıcının başlangıç indeksi.

Zamanlayıcının başlangıç indeksini ayarlar. Bu işlev, çıkarım (inference) öncesinde pipeline'dan çalıştırılmalıdır.

#### set_shift[[diffusers.FlowMatchEulerDiscreteScheduler.set_shift]]

```python
set_shift(shift: float)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_flow_match_euler_discrete.py#L178)

**Parametreler:**

shift (`float`) : Ayarlanacak kaydırma değeri.

Zamanlayıcı için kaydırma değerini ayarlar.

#### set_timesteps[[diffusers.FlowMatchEulerDiscreteScheduler.set_timesteps]]

```python
set_timesteps(num_inference_steps: int | None = None, device: typing.Union[str, torch.device] = None, sigmas: list[float] | None = None, mu: float | None = None, timesteps: list[float] | None = None)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_flow_match_euler_discrete.py#L283)

**Parametreler:**

num_inference_steps (`int`, *isteğe bağlı*) : Ön eğitilmiş bir modelle örnekler oluşturulurken kullanılan difüzyon adım sayısı.

device (`str` veya `torch.device`, *opsiyonel*) : Timestep'lerin taşınacağı cihaz. `None` ise timestep'ler taşınmaz.

sigmas (`list[float]`, *isteğe bağlı*) : Her difüzyon adımı için kullanılacak sigma değerleri için özel değerler. `None` ise, 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 zaman adımlarına özel değerler. `None` ise, zaman adımları 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[[diffusers.FlowMatchEulerDiscreteScheduler.step]]

```python
step(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.Generator] = None, per_token_timesteps: typing.Optional[torch.Tensor] = None, return_dict: bool = True)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_flow_match_euler_discrete.py#L432)

**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ı*) : Örnek içindeki her token için zaman adımları.

return_dict (`bool`, varsayılan `True`) : `FlowMatchEulerDiscreteSchedulerOutput` veya tuple döndürülecek mi?

**Dönüş:** `FlowMatchEulerDiscreteSchedulerOutput` veya `tuple`

return_dict `True` ise `FlowMatchEulerDiscreteSchedulerOutput` döndürülür, aksi takdirde 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.

#### stretch_shift_to_terminal[[diffusers.FlowMatchEulerDiscreteScheduler.stretch_shift_to_terminal]]

```python
stretch_shift_to_terminal(t: Tensor)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_flow_match_euler_discrete.py#L262)

**Parametreler:**

t (`torch.Tensor`) : Uzatılacak ve kaydırılacak zaman adımlarının tensörü.

**Dönüş:** `torch.Tensor`

Son değeri `self.config.shift_terminal` değerine eşit olacak şekilde ayarlanmış adımlardan oluşan bir tensör.

Adım zamanı zaman çizelgesini uzatarak ve kaydırarak, yapılandırılmış `shift_terminal` yapılandırma değeriyle sonlandığından emin olunur.

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

#### time_shift[[diffusers.FlowMatchEulerDiscreteScheduler.time_shift]]

```python
time_shift(mu: float, sigma: float, t: Tensor)
```

[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_flow_match_euler_discrete.py#L241)

**Parametreler:**

mu (`float`) : Zaman kaydırması için mu parametresi.

sigma (`float`) : Zaman kaydırması için sigma parametresi.

t (`torch.Tensor`) : Girdi zaman adımları.

**Dönüş:** `torch.Tensor`

Zaman kaydırılmış zaman adımları.

Sigmalara zaman kaydırma uygulayın.

