Buckets:
| # 스케줄러 | |
| 🤗 Diffusers는 확산 과정에 사용할 수 있는 다양한 스케줄러 함수를 제공합니다. 스케줄러는 모델의 출력(확산 과정이 반복적으로 처리하는 샘플)과 타임스텝을 받아 노이즈가 제거된 샘플을 반환합니다. 타임스텝은 확산 과정에서 해당 단계가 어디에 위치하는지를 결정하므로 중요합니다. 데이터는 *n*개의 타임스텝을 순방향으로 반복하여 생성되고, 추론은 타임스텝을 역방향으로 전파하여 수행됩니다. 타임스텝에 따라 스케줄러는 *discrete*일 수 있으며, 이 경우 타임스텝은 `int`입니다. 또는 *continuous*일 수 있으며, 이 경우 타임스텝은 `float`입니다. | |
| 컨텍스트에 따라 스케줄러는 이미지에 노이즈를 반복적으로 추가하는 방법 또는 모델의 출력을 기반으로 샘플을 업데이트하는 방법을 정의합니다: | |
| - *training* 동안 스케줄러는 샘플에 노이즈를 추가하여(노이즈를 추가하는 방식에 따라 다양한 알고리즘이 존재합니다) diffusion 모델을 학습시킵니다 | |
| - *추론* 중에 스케줄러는 사전 학습된 모델의 출력을 기반으로 샘플을 업데이트하는 방식을 정의합니다 | |
| [k-diffusion](https://github.com/crowsonkb/k-diffusion) 라이브러리의 [Katherine Crowson](https://github.com/crowsonkb/)에 의해 구현된 여러 스케줄러가 있으며, A1111에서도 널리 사용됩니다. k-diffusion과 A1111의 스케줄러를 🤗 Diffusers의 스케줄러에 매핑하는 데 도움이 되도록 아래 표를 참고하세요: | |
| | A1111/k-diffusion | 🤗 Diffusers | 사용 | | |
| |---------------------|-------------------------------------|---------------------------------------------------------------------------------------------------------------| | |
| | DPM++ 2M | [DPMSolverMultistepScheduler](/docs/diffusers/main/ko/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | | | |
| | DPM++ 2M Karras | [DPMSolverMultistepScheduler](/docs/diffusers/main/ko/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | `use_karras_sigmas=True`로 초기화 | | |
| | DPM++ 2M SDE | [DPMSolverMultistepScheduler](/docs/diffusers/main/ko/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | `algorithm_type="sde-dpmsolver++"`로 초기화 | | |
| | DPM++ 2M SDE Karras | [DPMSolverMultistepScheduler](/docs/diffusers/main/ko/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) | `use_karras_sigmas=True`와 `algorithm_type="sde-dpmsolver++"`로 초기화 | | |
| | DPM++ 2S a | N/A | `DPMSolverSinglestepScheduler`와 매우 유사합니다 | | |
| | DPM++ 2S a Karras | N/A | `DPMSolverSinglestepScheduler(use_karras_sigmas=True, ...)`와 매우 유사합니다 | | |
| | DPM++ SDE | [DPMSolverSinglestepScheduler](/docs/diffusers/main/ko/api/schedulers/singlestep_dpm_solver#diffusers.DPMSolverSinglestepScheduler) | | | |
| | DPM++ SDE Karras | [DPMSolverSinglestepScheduler](/docs/diffusers/main/ko/api/schedulers/singlestep_dpm_solver#diffusers.DPMSolverSinglestepScheduler) | `use_karras_sigmas=True`로 초기화 | | |
| | DPM2 | [KDPM2DiscreteScheduler](/docs/diffusers/main/ko/api/schedulers/dpm_discrete#diffusers.KDPM2DiscreteScheduler) | | | |
| | DPM2 Karras | [KDPM2DiscreteScheduler](/docs/diffusers/main/ko/api/schedulers/dpm_discrete#diffusers.KDPM2DiscreteScheduler) | `use_karras_sigmas=True`로 초기화 | | |
| | DPM2 a | [KDPM2AncestralDiscreteScheduler](/docs/diffusers/main/ko/api/schedulers/dpm_discrete_ancestral#diffusers.KDPM2AncestralDiscreteScheduler) | | | |
| | DPM2 a Karras | [KDPM2AncestralDiscreteScheduler](/docs/diffusers/main/ko/api/schedulers/dpm_discrete_ancestral#diffusers.KDPM2AncestralDiscreteScheduler) | `use_karras_sigmas=True`로 초기화 | | |
| | DPM 적응 | N/A | | | |
| | DPM fast | N/A | | | |
| | Euler | [EulerDiscreteScheduler](/docs/diffusers/main/ko/api/schedulers/euler#diffusers.EulerDiscreteScheduler) | | | |
| | Euler a | [EulerAncestralDiscreteScheduler](/docs/diffusers/main/ko/api/schedulers/euler_ancestral#diffusers.EulerAncestralDiscreteScheduler) | | | |
| | Heun | [HeunDiscreteScheduler](/docs/diffusers/main/ko/api/schedulers/heun#diffusers.HeunDiscreteScheduler) | | | |
| | LMS | [LMSDiscreteScheduler](/docs/diffusers/main/ko/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) | | | |
| | LMS Karras | [LMSDiscreteScheduler](/docs/diffusers/main/ko/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) | `use_karras_sigmas=True`로 초기화 | | |
| | N/A | [DEISMultistepScheduler](/docs/diffusers/main/ko/api/schedulers/deis#diffusers.DEISMultistepScheduler) | | | |
| | N/A | [UniPCMultistepScheduler](/docs/diffusers/main/ko/api/schedulers/unipc#diffusers.UniPCMultistepScheduler) | | | |
| ## 노이즈 스케줄 및 스케줄 유형 | |
| | A1111/k-diffusion | 🤗 Diffusers | | |
| |--------------------------|----------------------------------------------------------------------------| | |
| | Karras | `use_karras_sigmas=True`로 초기화 | | |
| | sgm_uniform | `timestep_spacing="trailing"`로 초기화 | | |
| | 단순 | `timestep_spacing="trailing"`로 초기화 | | |
| | 지수 | `timestep_spacing="linspace"`, `use_exponential_sigmas=True`로 초기화 | | |
| | beta | `timestep_spacing="linspace"`, `use_beta_sigmas=True`로 초기화 | | |
| 모든 스케줄러는 모든 스케줄러에서 공유되는 저수준 유틸리티를 구현하는 기본 [SchedulerMixin](/docs/diffusers/main/ko/api/schedulers/overview#diffusers.SchedulerMixin) 클래스를 기반으로 구축됩니다. | |
| ## SchedulerMixin[[diffusers.SchedulerMixin]] | |
| #### diffusers.SchedulerMixin[[diffusers.SchedulerMixin]] | |
| ```python | |
| diffusers.SchedulerMixin() | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L79) | |
| 모든 스케줄러의 베이스 클래스입니다. | |
| [SchedulerMixin](/docs/diffusers/main/ko/api/schedulers/overview#diffusers.SchedulerMixin)에는 모든 스케줄러에서 공유하는 일반적인 로딩 및 저장 기능과 같은 공통 함수가 포함되어 있습니다. | |
| [ConfigMixin](/docs/diffusers/main/ko/api/configuration#diffusers.ConfigMixin)은 스케줄러의 `__init__` 함수에 전달되는 구성 속성(예: `num_train_timesteps`)을 저장하는 역할을 하며, 해당 속성은 `scheduler.config.num_train_timesteps`을 통해 접근할 수 있습니다. | |
| 클래스 속성: | |
| - **_compatibles** (`list[str]`) -- 상위 스케줄러 클래스와 호환되는 스케줄러 클래스 목록입니다. [from_config()](/docs/diffusers/main/ko/api/configuration#diffusers.ConfigMixin.from_config)를 사용하여 다른 호환 가능한 스케줄러 클래스를 로드할 수 있습니다(상위 클래스에서 재정의해야 합니다). | |
| #### from_pretrained[[diffusers.SchedulerMixin.from_pretrained]] | |
| ```python | |
| from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None = None, subfolder: str | None = None, return_unused_kwargs: bool = False, **kwargs: Any) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L99) | |
| **매개변수:** | |
| pretrained_model_name_or_path (`str` 또는 `os.PathLike`, *선택 사항*) : 다음 중 하나일 수 있습니다. - Hub에 호스팅된 사전 학습 모델의 *모델 ID* 문자열(예: `google/ddpm-celebahq-256`). - [save_pretrained()](/docs/diffusers/main/ko/api/schedulers/overview#diffusers.SchedulerMixin.save_pretrained)로 저장된 스케줄러 구성이 포함된 *디렉터리* 경로(예: `./my_model_directory`). | |
| subfolder (`str`, *선택 사항*) : Hub 또는 로컬의 더 큰 모델 저장소 내에서 모델 파일의 서브폴더 위치입니다. | |
| return_unused_kwargs (`bool`, *선택 사항*, 기본값 `False`) : Python 클래스에서 소비되지 않는 kwargs를 반환할지 여부. | |
| cache_dir (`str` 또는 `os.PathLike`, *선택 사항*) : 표준 캐시를 사용하지 않을 경우 다운로드된 사전 학습 모델 구성이 캐시되는 디렉터리의 경로입니다. | |
| force_download (`bool`, *선택 사항*, 기본값 `False`) : 캐시된 버전이 존재하더라도 모델 가중치 및 구성 파일의 (재)다운로드를 강제할지 여부. | |
| proxies (`dict[str, str]`, *선택 사항*) : 프로토콜 또는 엔드포인트별로 사용할 프록시 서버의 사전입니다. 예를 들어, `{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}`와 같습니다. 각 요청에 프록시가 사용됩니다. | |
| output_loading_info (`bool`, *선택 사항*, 기본값 `False`) : 누락된 키, 예상치 못한 키 및 오류 메시지가 포함된 사전도 함께 반환할지 여부. | |
| local_files_only (`bool`, *선택 사항*, 기본값 `False`) : 로컬 모델 가중치와 구성 파일만 로드할지 여부를 지정합니다. `True`로 설정하면 Hub에서 모델을 다운로드하지 않습니다. | |
| token (`str` 또는 `bool`, *선택 사항*) : 원격 파일에 대한 HTTP bearer 인증으로 사용할 토큰입니다. `True`인 경우, `diffusers-cli login`에서 생성된 토큰(`~/.huggingface`에 저장됨)이 사용됩니다. | |
| revision (`str`, *선택 사항*, 기본값 `"main"`) : 사용할 특정 모델 버전입니다. Git에서 허용하는 브랜치 이름, 태그 이름, 커밋 ID 또는 기타 식별자일 수 있습니다. | |
| **반환값:** [SchedulerMixin](/docs/diffusers/main/ko/api/schedulers/overview#diffusers.SchedulerMixin) 또는 `tuple[SchedulerMixin, dict[str, Any]]` | |
| 구성에서 인스턴스화된 스케줄러입니다. `return_unused_kwargs`가 `True`인 경우, 두 번째 요소가 사용되지 않은 키워드 인자의 사전인 튜플이 반환됩니다. | |
| 로컬 디렉터리 또는 Hub 저장소의 사전 정의된 JSON 구성 파일에서 스케줄러를 초기화합니다. | |
| > [!TIP] > 비공개 또는 [게이트된 모델](https://huggingface.co/docs/hub/models-gated#gated-models)을 사용하려면 로그인하세요 | |
| `hf > auth login`을(를) 통해 수행할 수 있습니다. 또한 방화벽이 있는 환경에서 이 방법을 사용하려면 특수한 ["오프라인 모드"](https://huggingface.co/diffusers/installation.html#offline-mode)를 활성화할 수도 있습니다. | |
| #### save_pretrained[[diffusers.SchedulerMixin.save_pretrained]] | |
| ```python | |
| save_pretrained(save_directory: str | os.PathLike, push_to_hub: bool = False, **kwargs: Any) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L164) | |
| **매개변수:** | |
| save_directory (`str` 또는 `os.PathLike`) : 구성 JSON 파일을 저장할 디렉터리(존재하지 않으면 생성됨). | |
| push_to_hub (`bool`, *선택 사항*, 기본값 `False`) : 모델을 저장한 후 Hugging Face Hub에 푸시할지 여부입니다. `repo_id`를 사용하여 푸시할 저장소를 지정할 수 있습니다(기본값은 네임스페이스의 `save_directory` 이름입니다). | |
| kwargs (`dict[str, Any]`, *선택 사항*) : [push_to_hub()](/docs/diffusers/main/ko/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) 메서드에 함께 전달되는 추가 키워드 인자입니다. | |
| Save a scheduler configuration object to a directory so that it can be reloaded using the [from_pretrained()](/docs/diffusers/main/ko/api/schedulers/overview#diffusers.SchedulerMixin.from_pretrained) class method. | |
| ## SchedulerOutput[[diffusers.schedulers.scheduling_utils.SchedulerOutput]] | |
| #### diffusers.schedulers.scheduling_utils.SchedulerOutput[[diffusers.schedulers.scheduling_utils.SchedulerOutput]] | |
| ```python | |
| diffusers.schedulers.scheduling_utils.SchedulerOutput(prev_sample: Tensor) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_utils.py#L66) | |
| **매개변수:** | |
| prev_sample (`torch.Tensor`, 이미지인 경우 shape는 `(batch_size, num_channels, height, width)`) : 이전 timestep의 계산된 샘플 `(x_{t-1})`. `prev_sample`은 denoising 루프에서 다음 모델 입력으로 사용해야 합니다. | |
| 스케줄러의 `step` 함수 출력을 위한 베이스 클래스. | |
| ## KarrasDiffusionSchedulers | |
| `KarrasDiffusionSchedulers`는 🤗 Diffusers의 스케줄러를 광범위하게 일반화한 것입니다. 이 클래스의 스케줄러는 노이즈 샘플링 전략, 네트워크 유형 및 스케일링, 학습 전략, 손실 가중 방식에서 고수준으로 구별됩니다. | |
| 이 클래스의 다양한 스케줄러는 상미분방정식(ODE) 솔버 유형에 따라 위의 분류 체계에 속하며, 🤗 Diffusers에 구현된 주요 스케줄러의 설계를 위한 좋은 추상화를 제공합니다. 이 클래스의 스케줄러는 [여기](https://github.com/huggingface/diffusers/blob/a69754bb879ed55b9b6dc9dd0b3cf4fa4124c765/src/diffusers/schedulers/scheduling_utils.py#L32)에서 확인할 수 있습니다. | |
| ## PushToHubMixin[[diffusers.utils.PushToHubMixin]] | |
| #### diffusers.utils.PushToHubMixin[[diffusers.utils.PushToHubMixin]] | |
| ```python | |
| diffusers.utils.PushToHubMixin() | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/utils/hub_utils.py#L491) | |
| Hugging Face Hub에 모델, 스케줄러 또는 파이프라인을 푸시하기 위한 Mixin입니다. | |
| #### push_to_hub[[diffusers.utils.PushToHubMixin.push_to_hub]] | |
| ```python | |
| push_to_hub(repo_id: str, commit_message: str | None = None, private: bool | None = None, token: str | None = None, create_pr: bool = False, safe_serialization: bool = True, variant: str | None = None, subfolder: str | None = None) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/utils/hub_utils.py#L526) | |
| **매개변수:** | |
| repo_id (`str`) : 모델, 스케줄러 또는 파이프라인 파일을 푸시할 저장소의 이름입니다. 조직에 푸시할 경우 조직 이름을 포함해야 합니다. `repo_id`는 로컬 디렉터리의 경로일 수도 있습니다. | |
| commit_message (`str`, *선택 사항*) : push할 때 커밋할 메시지. 기본값은 `"Upload {object}"`입니다. | |
| private (`bool`, *선택 사항*) : 저장소를 비공개로 만들지 여부입니다. `None`(기본값)인 경우, 조직의 기본 설정이 비공개가 아닌 한 저장소는 공개됩니다. 이미 저장소가 존재하면 이 값은 무시됩니다. | |
| token (`str`, *선택 사항*) : 원격 파일에 대한 HTTP bearer 인증으로 사용할 토큰입니다. `hf auth login` 실행 시 생성된 토큰이며 `~/.huggingface`에 저장됩니다. | |
| create_pr (`bool`, *선택 사항*, 기본값 `False`) : 업로드된 파일로 PR을 생성할지 아니면 직접 커밋할지 여부. | |
| safe_serialization (`bool`, *선택 사항*, 기본값 `True`) : 모델 가중치를 `safetensors` 형식으로 변환할지 여부. | |
| variant (`str`, *선택 사항*) : 지정된 경우, 가중치가 `pytorch_model.<variant>.bin` 형식으로 저장됩니다. | |
| 모델, 스케줄러 또는 파이프라인 파일을 🤗 Hugging Face Hub에 업로드합니다. | |
| 예: | |
| ```python | |
| from diffusers import UNet2DConditionModel | |
| unet = UNet2DConditionModel.from_pretrained("stabilityai/stable-diffusion-2", subfolder="unet") | |
| # Push the `unet` to your namespace with the name "my-finetuned-unet". | |
| unet.push_to_hub("my-finetuned-unet") | |
| # Push the `unet` to an organization with the name "my-finetuned-unet". | |
| unet.push_to_hub("your-org/my-finetuned-unet") | |
| ``` | |
Xet Storage Details
- Size:
- 18 kB
- Xet hash:
- b8f3a3fe39b574897a5f698a8b360db546f3eb08da81334134a413feb1be516f
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.