# RFD4ProteinaScheduler

`RFD4ProteinaScheduler`는 RFD4-Proteína의 단일 모달리티용 temporal-score-rescaled flow sampler입니다. 파이프라인은 두 개의 인스턴스를 사용하며, 하나는 백본(`bb_ca`, 나노미터 단위 좌표)용이고 다른 하나는 토큰별 로컬 라텐트(`local_latents`)용입니다. 각 인스턴스는 자체적인 시간 스케줄, 노이즈 스케줄 및 리스케일링을 가집니다. 샘플링 루프에 대해서는 [RFD4ProteinaPipeline](/docs/diffusers/main/ko/api/pipelines/rfd4_proteina#diffusers.RFD4ProteinaPipeline)을 참조하세요.

## RFD4ProteinaScheduler[[diffusers.RFD4ProteinaScheduler]]

#### diffusers.RFD4ProteinaScheduler[[diffusers.RFD4ProteinaScheduler]]

```python
diffusers.RFD4ProteinaScheduler(schedule_mode: str, noise_mode: str, tsr_k: float, tsr_sigma: float, tail_steps: int = 10, tail_step_multiplier: int = 2, t_lim_ode: float = 0.95, t_lim_ode_below: float = 0.02)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_rfd4_proteina.py#L76)

**매개변수:**

schedule_mode (`str`) : 노이즈와 데이터 사이의 시간 간격: `"log"` 또는 `"power"`.

noise_mode (`str`) : 확률적 윈도우에 주입되는 노이즈의 형태: `"1/t"` 또는 `"tan"`.

tsr_k (`float`) : 샘플링 온도가 얼마나 낮아지는지를 나타냅니다. 값이 높을수록 온도가 낮아집니다.

tsr_sigma (`float`) : 낮은 온도에 도달하는 속도입니다. 값이 높을수록 빠릅니다.

tail_steps (`int`, 기본값 `10`) : 나머지 구간보다 `tail_step_multiplier` 배로 세밀한 마지막 구간의 개수.

tail_step_multiplier (`int`, 기본값 `2`) : 최종 구간의 세분화 정도를 나타냅니다.

t_lim_ode (`float`, 기본값 `0.95`) : 이 시간 이후로는 단계가 결정적입니다.

t_lim_ode_below (`float`, 기본값 `0.02`) : 이 시간보다 아래에서는 단계가 결정적입니다.

RFD4-Proteína의 한 모달리티에 대한 시간 점수 재조정(flow) 샘플러.

은 두 가지 모달리티, 즉 백본과 토큰별 로컬 라텐트를 통합하며, 각각 하나의 스케줄러를 사용합니다. 이들은 시간 스케줄, 노이즈 스케줄 및 리스케일링에서 차이가 있습니다.

샘플링 전에 `set_timesteps`을 호출하세요. 시간은 노이즈에서 깨끗한 데이터 방향으로 증가합니다. 스케줄러는 현재 구간을 추적하며, 동시 생성 사이에 공유해서는 안 됩니다.

#### set_timesteps[[diffusers.RFD4ProteinaScheduler.set_timesteps]]

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

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_rfd4_proteina.py#L133)

**매개변수:**

num_inference_steps (`int`) : 적분 구간의 수.

device (`str` 또는 `torch.device`, *선택 사항*) : `timesteps`에 사용할 Device입니다. 간격 길이와 노이즈 계수는 CPU에 유지됩니다.

start_time (`float`, *선택 사항*) : `[0, 1)` 범위의 부분 확산 시작 시간입니다. 전체 생성을 원하면 생략하세요.

스케줄을 해결하고 통합 커서를 초기화합니다.

#### add_noise[[diffusers.RFD4ProteinaScheduler.add_noise]]

```python
add_noise(original_samples: Tensor, noise: Tensor, timesteps: typing.Union[float, torch.Tensor])
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_rfd4_proteina.py#L194)

**매개변수:**

original_samples (`torch.Tensor`) : Clean 상태 `(batch, tokens, D)`.

noise (`torch.Tensor`) : 호출자가 생성한 동일한 모양의 노이즈.

timesteps (`float` 또는 `torch.Tensor`) : `[0, 1)` 범위의 시간, 스칼라 또는 `(batch,)`.

전방 주변부 `(1 - t) * noise + t * clean`을 샘플링합니다.

#### step[[diffusers.RFD4ProteinaScheduler.step]]

```python
step(model_output: Tensor, timestep: Tensor, sample: Tensor, emit_mask: Tensor, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, return_dict: bool = True)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_rfd4_proteina.py#L212)

**매개변수:**

model_output (`torch.Tensor`) : `sample`과 동일한 모양을 가진 예측된 속도.

timestep (`torch.Tensor`) : `timesteps`의 다음 요소입니다. 순서가 어긋난 단계는 거부됩니다.

sample (`torch.Tensor`) : 현재 상태 `(B, N, D)`.

emit_mask (`torch.Tensor`) : Boolean `(B, N)`, 업데이트되는 토큰(컨텍스트 또는 패딩이 아닌 토큰)에 대해 true입니다.

generator (`torch.Generator` 또는 `list[torch.Generator]`, *선택 사항*) : 단일 행에 사용할 생성기 또는 배치의 각 행에 사용할 개별 생성기입니다. 생략하면 전역 스트림을 사용합니다.

return_dict (`bool`, 기본값 `True`) : `RFD4ProteinaSchedulerOutput`를 반환합니다. 그렇지 않으면 상태를 포함하는 1개 항목의 튜플을 반환합니다.

**반환값:** `RFD4ProteinaSchedulerOutput` 또는 `tuple`

업데이트된 상태.

`step_index`을 업데이트하고 통합 간격을 한 단계 진행합니다.

## RFD4ProteinaSchedulerOutput[[diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput]]

#### diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput[[diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput]]

```python
diffusers.schedulers.scheduling_rfd4_proteina.RFD4ProteinaSchedulerOutput(prev_sample: Tensor)
```

[소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_rfd4_proteina.py#L19)

**매개변수:**

prev_sample (`torch.Tensor`) : 스텝 이후의 상태, 모양은 `(B, N, D)`: `D`는 백본의 경우 3(나노미터 단위 좌표), 로컬 라텐트의 경우 라텐트 폭입니다.

Updated state of one modality.

