# ConsistencyDecoderScheduler

이 스케줄러는 `ConsistencyDecoderPipeline`의 일부이며 [DALL-E 3](https://openai.com/dall-e-3)에서 도입되었습니다.

원본 코드베이스는 [openai/consistency_models](https://github.com/openai/consistency_models)에서 찾을 수 있습니다.

## ConsistencyDecoderScheduler[[diffusers.schedulers.ConsistencyDecoderScheduler]]

#### diffusers.schedulers.ConsistencyDecoderScheduler[[diffusers.schedulers.ConsistencyDecoderScheduler]]

```python
diffusers.schedulers.ConsistencyDecoderScheduler(num_train_timesteps: int = 1024, sigma_data: float = 0.5)
```

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

**매개변수:**

num_train_timesteps (`int`, *선택 사항*, 기본값 `1024`) : 모델을 학습하기 위한 diffusion step 수입니다.

sigma_data (`float`, *선택 사항*, 기본값 `0.5`) : 데이터 분포의 표준 편차입니다. skip 및 output 스케일링 계수를 계산하는 데 사용됩니다.

Stable Diffusion 파이프라인에서 사용되는 consistency decoder용 스케줄러입니다.

이 스케줄러는 잠재 표현을 이미지로 디코딩하기 위해 일관성 모델을 사용하여 2단계 디노이징 과정을 구현합니다.

이 모델은 [SchedulerMixin](/docs/diffusers/main/ko/api/schedulers/overview#diffusers.SchedulerMixin)과 [ConfigMixin](/docs/diffusers/main/ko/api/configuration#diffusers.ConfigMixin)을 상속합니다. 로딩 및 저장과 같은 모든 스케줄러에 대해 라이브러리가 구현하는 일반적 메서드에 대해서는 상위 클래스 문서를 확인하세요.

#### scale_model_input[[diffusers.schedulers.ConsistencyDecoderScheduler.scale_model_input]]

```python
scale_model_input(sample: Tensor, timestep: int | None = None)
```

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

**매개변수:**

sample (`torch.Tensor`) : 입력 샘플.

timestep (`int`, *선택 사항*) : 확산 체인에서의 현재 시간 단계입니다.

**반환값:** `torch.Tensor`

스케일된 입력 샘플.

현재 타임스텝에 따라 디노이징 모델 입력을 스케일링해야 하는 스케줄러와의 호환성을 보장합니다.

#### step[[diffusers.schedulers.ConsistencyDecoderScheduler.step]]

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

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

**매개변수:**

model_output (`torch.Tensor`) : 학습된 diffusion 모델의 직접적인 출력입니다.

timestep (`float` 또는 `torch.Tensor`) : diffusion chain의 현재 timestep.

sample (`torch.Tensor`) : 확산 과정에서 생성된 샘플의 현재 인스턴스.

generator (`torch.Generator`, *선택 사항*) : 재현성을 위한 난수 생성기.

return_dict (`bool`, *선택 사항*, 기본값 `True`) : `ConsistencyDecoderSchedulerOutput` 또는 `tuple`을 반환할지 여부.

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

`return_dict`가 `True`인 경우 `ConsistencyDecoderSchedulerOutput`가 반환되고, 그렇지 않으면 첫 번째 요소가 샘플 텐서인 튜플이 반환됩니다.

이전 시간 단계의 샘플을 SDE를 역방향으로 적용하여 예측합니다. 이 함수는 학습된 모델의 출력(대부분 예측된 노이즈)으로부터 확산 과정을 전파합니다.

