Diffusers documentation
DDPM
DDPM
Jonathan Ho, Ajay Jain, Pieter Abbeel의 Denoising Diffusion Probabilistic Models(DDPM)은 동명의 diffusion 기반 모델을 제안합니다. 🤗 Diffusers 라이브러리에서 DDPM은 해당 논문에서 제시한 discrete denoising scheduler와 파이프라인을 모두 가리킵니다.
해당 논문의 초록은 다음과 같습니다:
비평형 열역학의 고려 사항에서 영감을 받은 잠재 변수 모델의 한 종류인 확률적 확산 모델(diffusion probabilistic models)을 사용하여 고품질 이미지 합성 결과를 제시합니다. 우리의 최우수 결과는 Langevin 동역학을 통한 노이즈 제거 점수 매칭(denoising score matching)과 확률적 확산 모델 간의 새로운 연결에 따라 설계된 가중치 변분 경계(weighted variational bound)로 학습함으로써 얻어졌으며, 우리의 모델은 자기 회귀 디코딩(autoregressive decoding)의 일반화로 해석될 수 있는 점진적 손실 압축 해제(progressive lossy decompression) 스킴을 자연스럽게 허용합니다. 무조건적 CIFAR10 데이터셋에서 Inception score 9.46과 최첨단 FID score 3.17을 달성했습니다. 256x256 LSUN에서는 ProgressiveGAN과 유사한 샘플 품질을 얻었습니다.
원본 코드베이스는 hohonathanho/diffusion에서 찾을 수 있습니다.
Scheduler의 가이드를 확인하여 스케줄러의 속도와 품질 사이의 트레이드오프를 탐색하는 방법을 배우고, 파이프라인 간 구성 요소 재사용 섹션을 확인하여 동일한 구성 요소를 여러 파이프라인에 효율적으로 로드하는 방법을 배워보세요.
DDPMPipeline
클래스 diffusers.DDPMPipeline
< source >( unet: UNet2DModelscheduler: DDPMScheduler )
매개변수
- unet (UNet2DModel) —
인코딩된 이미지 latents의 노이즈를 제거하기 위한
UNet2DModel. - scheduler (SchedulerMixin) —
인코딩된 이미지를 디노이즈하기 위해
unet와 함께 사용할 스케줄러입니다. DDPMScheduler 또는 DDIMScheduler 중 하나를 사용할 수 있습니다.
이미지 생성을 위한 Pipeline.
이 모델은 DiffusionPipeline에서 상속됩니다. 모든 파이프라인에 대해 구현된 일반적 메서드(다운로드, 저장, 특정 디바이스에서 실행 등)에 대해서는 상위 클래스 문서를 확인하세요.
__call__
< source >( batch_size: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonenum_inference_steps: int = 1000output_type: str | None = 'pil'return_dict: bool = True ) → ImagePipelineOutput or tuple
매개변수
- batch_size (
int, 선택 사항, 기본값 1) — 생성할 이미지의 수입니다. - generator (
torch.Generator, 선택 사항) — 생성을 결정적으로 만들기 위한torch.Generator입니다. - num_inference_steps (
int, 선택 사항, 기본값 1000) — 디노이징 단계의 수입니다. 디노이징 단계가 많을수록 일반적으로 더 높은 품질의 이미지를 생성하지만, 추론 속도가 느려집니다. - output_type (
str, 선택 사항, 기본값"pil") — 생성된 이미지의 출력 형식입니다."pil"(PIL.Image),"np"(np.array) 또는"pt"(torch.Tensor) 중 하나를 선택합니다. - return_dict (
bool, 선택 사항, 기본값True) — 일반 튜플 대신 ImagePipelineOutput을 반환할지 여부.
반환값
ImagePipelineOutput 또는 tuple
return_dict가 True인 경우 ImagePipelineOutput가 반환되고, 그렇지 않으면 첫 번째 요소가 생성된 이미지의 목록인 tuple이 반환됩니다.
생성을 위한 pipeline의 호출 함수.
ImagePipelineOutput
클래스 diffusers.ImagePipelineOutput
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
이미지 파이프라인의 출력 클래스입니다.