# FlowMatchHeunDiscreteScheduler

`FlowMatchHeunDiscreteScheduler` didasarkan pada pengambilan sampel flow-matching yang diperkenalkan dalam [EDM](https://huggingface.co/papers/2403.03206).

## FlowMatchHeunDiscreteScheduler[[diffusers.FlowMatchHeunDiscreteScheduler]]

#### diffusers.FlowMatchHeunDiscreteScheduler[[diffusers.FlowMatchHeunDiscreteScheduler]]

```python
diffusers.FlowMatchHeunDiscreteScheduler(num_train_timesteps: int = 1000, shift: float = 1.0)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L43)

**Parameter:**

num_train_timesteps (`int`, defaultnya 1000) : Jumlah langkah difusi untuk melatih model.

shift (`float`, defaultnya 1.0) : Nilai pergeseran untuk jadwal timestep.

Scheduler Heun.

Model ini mewarisi dari [SchedulerMixin](/docs/diffusers/v0.43.0/id/api/schedulers/overview#diffusers.SchedulerMixin) dan [ConfigMixin](/docs/diffusers/v0.43.0/id/api/configuration#diffusers.ConfigMixin). Periksa dokumentasi kelas induk untuk metode generik yang diimplementasikan pustaka ini untuk semua scheduler, seperti pemuatan dan penyimpanan.

#### index_for_timestep[[diffusers.FlowMatchHeunDiscreteScheduler.index_for_timestep]]

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

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L179)

**Parameter:**

timestep (`float` atau `torch.FloatTensor`) : Nilai timestep yang akan dicari dalam jadwal.

schedule_timesteps (`torch.FloatTensor`, *opsional*) : Jadwal timestep untuk dicari. Jika `None`, menggunakan `self.timesteps`.

**Mengembalikan:** `int`

Indeks timestep dalam jadwal.

Cari indeks dari timestep tertentu dalam jadwal timestep.

#### scale_noise[[diffusers.FlowMatchHeunDiscreteScheduler.scale_noise]]

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

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L106)

**Parameter:**

sample (`torch.FloatTensor`) : Sampel input.

timestep (`float` atau `torch.FloatTensor`) : Langkah waktu saat ini dalam rantai difusi.

noise (`torch.FloatTensor`) : Tensor noise.

**Mengembalikan:** `torch.FloatTensor`

Contoh input yang diskalakan.

Proses maju dalam flow-matching

#### set_begin_index[[diffusers.FlowMatchHeunDiscreteScheduler.set_begin_index]]

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

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L96)

**Parameter:**

begin_index (`int`, defaultnya `0`) : Indeks awal untuk scheduler.

Menetapkan indeks awal untuk penjadwal. Fungsi ini harus dijalankan dari pipeline sebelum inferensi.

#### set_timesteps[[diffusers.FlowMatchHeunDiscreteScheduler.set_timesteps]]

```python
set_timesteps(num_inference_steps: int, device: typing.Union[str, torch.device] = None)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L139)

**Parameter:**

num_inference_steps (`int`) : Jumlah langkah difusi yang digunakan saat menghasilkan sampel dengan model terlatih sebelumnya.

device (`str` atau `torch.device`, *opsional*) : Perangkat tempat timestep harus dipindahkan. Jika `None`, timestep tidak dipindahkan.

Menetapkan langkah waktu diskrit yang digunakan untuk rantai difusi (untuk dijalankan sebelum inferensi).

#### langkah[[diffusers.FlowMatchHeunDiscreteScheduler.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, return_dict: bool = True)
```

[Sumber](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/schedulers/scheduling_flow_match_heun_discrete.py#L225)

**Parameter:**

model_output (`torch.FloatTensor`) : Output langsung dari model difusi yang telah dipelajari.

timestep (`float` atau `torch.FloatTensor`) : Langkah waktu diskret saat ini dalam rantai difusi.

sample (`torch.FloatTensor`) : Instans saat ini dari sampel yang dibuat oleh proses difusi.

s_churn (`float`) : Parameter stokastisitas yang mengatur jumlah noise yang ditambahkan selama sampling. Nilai yang lebih tinggi meningkatkan keacakan.

s_tmin (`float`) : Ambang batas timestep minimum untuk menerapkan stokastisitas. Hanya timestep di atas nilai ini yang akan ditambahkan noise.

s_tmax (`float`) : Ambang batas timestep maksimum untuk menerapkan stokastisitas. Hanya timestep di bawah nilai ini yang akan ditambahkan noise.

s_noise (`float`, defaultnya 1.0) : Faktor penskalaan untuk noise yang ditambahkan ke sampel.

generator (`torch.Generator`, *opsional*) : Generator angka acak.

return_dict (`bool`) : Apakah akan mengembalikan tuple `FlowMatchHeunDiscreteSchedulerOutput`.

**Mengembalikan:** `FlowMatchHeunDiscreteSchedulerOutput` atau `tuple`

Jika `True`, `FlowMatchHeunDiscreteSchedulerOutput` akan dikembalikan, selain itu sebuah tuple yang akan dikembalikan di mana elemen pertama adalah tensor sampel.

Prediksi sampel dari langkah waktu sebelumnya dengan membalik SDE. Fungsi ini menyebarkan proses difusi dari keluaran model yang dipelajari (paling sering berupa noise yang diprediksi).

