Buckets:
| # 파이프라인 | |
| Pipelines는 여러 독립적으로 학습된 모델, 스케줄러, 프로세서와 같은 모든 필수 구성 요소를 하나의 끝에서 끝(end-to-end) 클래스로 묶어, 최첨단 diffusion 모델을 추론(inference)으로 실행하는 간단한 방법을 제공합니다. Pipelines는 유연하며, 다른 스케줄러 또는 심지어 모델 구성 요소를 사용하도록 조정할 수 있습니다. | |
| 모든 파이프라인은 모든 구성 요소를 로드, 다운로드 및 저장하는 기본 기능을 제공하는 기본 [DiffusionPipeline](/docs/diffusers/main/ko/api/pipelines/overview#diffusers.DiffusionPipeline) 클래스로 구성됩니다. [from_pretrained()](/docs/diffusers/main/ko/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained)로 로드되는 특정 파이프라인 유형(예: [StableDiffusionPipeline](/docs/diffusers/main/ko/api/pipelines/stable_diffusion/text2img#diffusers.StableDiffusionPipeline))은 자동으로 감지되며, 파이프라인 구성 요소가 로드되어 해당 파이프라인의 `__init__` 함수에 전달됩니다. | |
| > [!WARNING] | |
| > [DiffusionPipeline](/docs/diffusers/main/ko/api/pipelines/overview#diffusers.DiffusionPipeline) 클래스는 학습에 사용해서는 안 됩니다. diffusion 파이프라인의 개별 구성 요소(예: [UNet2DModel](/docs/diffusers/main/ko/api/models/unet2d#diffusers.UNet2DModel) 및 [UNet2DConditionModel](/docs/diffusers/main/ko/api/models/unet2d-cond#diffusers.UNet2DConditionModel))는 일반적으로 개별적으로 학습되므로, 대신 해당 구성 요소에 직접 작업하는 것을 권장합니다. | |
| > | |
| > | |
| > | |
| > Pipelines에는 학습 기능이 제공되지 않습니다. 파이프라인은 학습에 사용되지 않아야 하므로, [`torch.no_grad`](https://pytorch.org/docs/stable/generated/torch.no_grad.html) 데코레이터로 `__call__()` 메서드를 장식하여 PyTorch의 autograd가 비활성화됨을 확인할 수 있습니다. 학습에 관심이 있으시다면 [Training](../../training/overview) 가이드를 참고해 주세요! | |
| 사이드바의 **API > 파이프라인**을 사용하여 모달리티별 모든 파이프라인 참조를 탐색할 수 있습니다. 작업 중심 워크플로우의 경우 [빠른 시작](../../quicktour) 또는 [텍스트-이미지 변환](../../using-diffusers/conditional_image_generation), [이미지-이미지 변환](../../using-diffusers/img2img), [인페인팅](../../using-diffusers/inpaint), [비디오 생성](../../using-diffusers/text-img2vid)과 같은 가이드로 시작하세요. | |
| ## DiffusionPipeline[[diffusers.DiffusionPipeline]] | |
| #### diffusers.DiffusionPipeline[[diffusers.DiffusionPipeline]] | |
| ```python | |
| diffusers.DiffusionPipeline() | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L198) | |
| 모든 파이프라인의 베이스 클래스입니다. | |
| [DiffusionPipeline](/docs/diffusers/main/ko/api/pipelines/overview#diffusers.DiffusionPipeline)는 diffusion 파이프라인의 모든 구성 요소(모델, 스케줄러, 프로세서)를 저장하고 모델의 로딩, 다운로드 및 저장을 위한 메서드를 제공합니다. 또한 다음 메서드를 포함합니다: | |
| - PyTorch 모듈을 원하는 장치로 모두 이동 | |
| - denoising 반복에 대한 진행 표시줄을 활성화/비활성화합니다 | |
| 클래스 속성: | |
| - **config_name** (`str`) -- 모든 diffusion pipeline 구성 요소의 클래스 및 모듈 이름을 저장하는 구성 파일 이름입니다. | |
| - **_optional_components** (`List[str]`) -- 파이프라인이 동작하기 위해 전달할 필요가 없는 모든 선택적 컴포넌트의 목록 (서브클래스에서 오버라이드해야 합니다). | |
| #### __호출__[[diffusers.DiffusionPipeline.__call__]] | |
| ```python | |
| __call__(*args, **kwargs) | |
| ``` | |
| self를 함수로 호출합니다. | |
| #### device[[diffusers.DiffusionPipeline.device]] | |
| ```python | |
| device() | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L600) | |
| **반환값:** `torch.device` | |
| 파이프라인이 위치한 torch 디바이스입니다. 구성 요소가 여러 디바이스에 걸쳐 분할된 경우(예: 텍스트 인코더는 CPU에, 디노이징 백본은 가속기에서 실행되는 경우) 가속기 디바이스가 반환됩니다. | |
| #### (으)로[[diffusers.DiffusionPipeline.to]] | |
| ```python | |
| to(*args, **kwargs) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L397) | |
| **매개변수:** | |
| dtype (`torch.dtype`, *선택 사항*) : 지정된 [`dtype`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype)를 가진 파이프라인을 반환합니다 | |
| device (`torch.Device`, *선택 사항*) : 지정된 [`device`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.device)를 가진 파이프라인을 반환합니다 | |
| silence_dtype_warnings (`str`, *선택 사항*, 기본값 `False`) : 대상 `dtype`이 대상 `device`와 호환되지 않는 경우 경고를 생략할지 여부. | |
| **반환값:** [DiffusionPipeline](/docs/diffusers/main/ko/api/pipelines/overview#diffusers.DiffusionPipeline) | |
| 파이프라인이 지정된 `dtype` 및/또는 `dtype`으로 변환되었습니다. | |
| Performs Pipeline dtype and/or device conversion. A torch.dtype and torch.device are inferred from the arguments of `self.to(*args, **kwargs).` | |
| > [!TIP] > 파이프라인에 이미 올바른 torch.dtype와 torch.device가 있는 경우, 그대로 반환됩니다. | |
| 그렇지 않은 경우, > 반환되는 pipeline은 원하는 torch.dtype과 torch.device를 가진 self의 복사본입니다. | |
| `to`를 호출하는 방법은 다음과 같습니다: | |
| - `to(dtype, silence_dtype_warnings=False) → DiffusionPipeline`를 사용하여 지정된 [`dtype`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype)을 가진 파이프라인을 반환합니다 | |
| - `to(device, silence_dtype_warnings=False) → DiffusionPipeline`를 호출하여 지정된 [`device`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.device)를 가진 파이프라인을 반환합니다 | |
| - `to(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipeline`는 지정된 [`device`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.device)와 [`dtype`](https://pytorch.org/docs/stable/tensor_attributes.html#torch.dtype)를 가진 파이프라인을 반환합니다 | |
| #### 컴포넌트[[diffusers.DiffusionPipeline.components]] | |
| ```python | |
| components() | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1925) | |
| `self.components` 속성은 추가 메모리를 할당하지 않고 동일한 가중치와 구성으로 다른 파이프라인을 실행하는 데 유용할 수 있습니다. | |
| Returns (`dict`): 파이프라인 초기화에 필요한 모든 모듈을 포함하는 사전입니다. | |
| 예: | |
| ```py | |
| >>> from diffusers import ( | |
| ... StableDiffusionPipeline, | |
| ... StableDiffusionImg2ImgPipeline, | |
| ... StableDiffusionInpaintPipeline, | |
| ... ) | |
| >>> text2img = StableDiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5") | |
| >>> img2img = StableDiffusionImg2ImgPipeline(**text2img.components) | |
| >>> inpaint = StableDiffusionInpaintPipeline(**text2img.components) | |
| ``` | |
| #### disable_attention_slicing[[diffusers.DiffusionPipeline.disable_attention_slicing]] | |
| ```python | |
| disable_attention_slicing() | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L2085) | |
| 슬라이스된 어텐션 계산 기능을 비활성화합니다. `enable_attention_slicing`가 이전에 호출된 경우, 어텐션은 한 번에 계산됩니다. | |
| #### disable_xformers_memory_efficient_attention[[diffusers.DiffusionPipeline.disable_xformers_memory_efficient_attention]] | |
| ```python | |
| disable_xformers_memory_efficient_attention() | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L2024) | |
| [xFormers](https://facebookresearch.github.io/xformers/)에서 메모리 효율적 어텐션을 비활성화합니다. | |
| #### 다운로드[[diffusers.DiffusionPipeline.download]] | |
| ```python | |
| download(pretrained_model_name, **kwargs) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1501) | |
| **매개변수:** | |
| pretrained_model_name (`str` 또는 `os.PathLike`, *선택 사항*) : Hub에 호스팅된 사전 학습된 파이프라인의 문자열 또는 *리포지토리 ID*(예: `CompVis/ldm-text2im-large-256`). | |
| custom_pipeline (`str`, *선택 사항*) : 다음 중 하나일 수 있습니다: - Hub에 호스팅된 사전 학습된 파이프라인의 *리포지토리 ID* 문자열(예: `CompVis/ldm-text2im-large-256`). 해당 리포지토리에는 커스텀 파이프라인을 정의하는 `pipeline.py`라는 파일이 포함되어 있어야 합니다. - GitHub의 [Community](https://github.com/huggingface/diffusers/tree/main/examples/community) 아래에 호스팅된 커뮤니티 파이프라인의 *파일 이름* 문자열. 유효한 파일 이름은 파이프라인 스크립트가 아닌 파일 이름과 일치해야 합니다(`clip_guided_stable_diffusion.py`가 아닌 `clip_guided_stable_diffusion`). 커뮤니티 파이프라인은 항상 GitHub의 현재 `main` 브랜치에서 로드됩니다. - 커스텀 파이프라인을 포함하는 *디렉터리* 경로(`./my_pipeline_directory/`). 해당 디렉터리에는 커스텀 파이프라인을 정의하는 `pipeline.py`라는 파일이 포함되어 있어야 합니다. > [!WARNING] > 🧪 이는 실험적 기능이며 향후 변경될 수 있습니다. 커스텀 파이프라인을 로드하고 만드는 방법에 대한 자세한 내용은 [커뮤니티 파이프라인 기여하기](https://huggingface.co/docs/diffusers/main/en/using-diffusers/contribute_pipeline)를 참고하세요. | |
| 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 또는 기타 식별자일 수 있습니다. | |
| custom_revision (`str`, *선택 사항*, 기본값 `"main"`) : 사용할 특정 모델 버전입니다. Hub에서 커스텀 파이프라인을 로드할 때 `revision`과 유사하게 브랜치 이름, 태그 이름 또는 커밋 id일 수 있습니다. GitHub에서 커스텀 파이프라인을 로드할 때는 🤗 Diffusers 버전일 수 있으며, Hub에서 로드하는 경우를 제외하면 기본값은 `"main"`입니다. | |
| mirror (`str`, *선택 사항*) : 중국에서 모델을 다운로드할 때 접근성 문제를 해결하기 위한 미러 소스입니다. 해당 소스의 적시성이나 안전성을 보장하지 않으며, 자세한 내용은 미러 사이트를 참고하세요. | |
| variant (`str`, *선택 사항*) : `"fp16"` 또는 `"ema"`와 같이 지정된 변형 파일 이름에서 가중치를 로드합니다. | |
| use_safetensors (`bool`, *선택 사항*, 기본값 `None`) : `None`으로 설정하면, safetensors 라이브러리가 설치되어 있고 **그리고** safetensors 가중치가 사용 가능한 경우 해당 가중치가 다운로드됩니다. `True`로 설정하면 모델이 safetensors 가중치에서 강제 로드됩니다. `False`로 설정하면 safetensors 가중치가 로드되지 않습니다. | |
| use_onnx (`bool`, *선택 사항*, 기본값 `False`) : `True`로 설정하면 ONNX 가중치가 존재하는 경우 항상 다운로드됩니다. `False`로 설정하면 ONNX 가중치는 절대 다운로드되지 않습니다. 기본적으로 `use_onnx`는 `_is_onnx` 클래스 속성의 기본값을 따르며, 이는 ONNX가 아닌 파이프라인의 경우 `False`, ONNX 파이프라인의 경우 `True`입니다. ONNX 가중치에는 `.onnx` 및 `.pb`로 끝나는 두 가지 파일이 모두 포함됩니다. | |
| trust_remote_code (`bool`, *선택 사항*, 기본값 `False`) : Hub에서 자체 파일로 정의된 사용자 정의 파이프라인 및 구성 요소를 허용할지 여부입니다. 이 옵션은 Hub에 존재하는 코드가 로컬 머신에서 실행되므로, 신뢰할 수 있는 저장소에서만 `True`로 설정해야 하며, 해당 저장소의 코드를 읽은 경우에만 사용해야 합니다. | |
| use_flashpack (`bool`, *선택 사항*, 기본값 `False`) : `True`로 설정하면 FlashPack 가중치가 존재하는 경우 항상 다운로드됩니다. `False`로 설정하면 FlashPack 가중치는 절대 다운로드되지 않습니다. | |
| **반환값:** `os.PathLike` | |
| 다운로드된 파이프라인의 경로입니다. | |
| PyTorch diffusion 파이프라인을 사전 학습된 파이프라인 가중치에서 다운로드하고 캐시합니다. | |
| > [!TIP] > 비공개 또는 [게이트된 모델](https://huggingface.co/docs/hub/models-gated#gated-models)을 사용하려면 로그인하세요 | |
| hf > auth login | |
| #### enable_attention_slicing[[diffusers.DiffusionPipeline.enable_attention_slicing]] | |
| ```python | |
| enable_attention_slicing(slice_size: str | int = 'auto') | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L2048) | |
| **매개변수:** | |
| slice_size (`str` 또는 `int`, *선택 사항*, 기본값 `"auto"`) : `"auto"`인 경우 attention heads에 전달되는 입력을 절반으로 줄여 attention을 두 단계로 계산합니다. `"max"`인 경우 한 번에 하나의 슬라이스만 실행하여 최대의 메모리를 절약합니다. 숫자가 제공되면 `attention_head_dim // slice_size`만큼의 슬라이스를 사용합니다. 이 경우 `attention_head_dim`은 `slice_size`의 배수여야 합니다. | |
| 슬라이스된 어텐션 계산을 활성화합니다. 이 옵션이 활성화되면 어텐션 모듈은 입력 텐서를 슬라이스로 분할하여 여러 단계에 걸쳐 어텐션을 계산합니다. 어텐션 헤드 하나가 넘는 경우, 각 헤드를 순차적으로 계산합니다. 이는 속도가 약간 감소하는 대신 메모리를 절약하는 데 유용합니다. | |
| > [!WARNING] > ⚠️ 이미 `scaled_dot_product_attention`(SDPA)를 사용 중이라면 attention slicing을 활성화하지 마세요 | |
| from PyTorch > 2.0 or xFormers. 이러한 attention 계산은 이미 메모리 효율성이 매우 높아 이 기능을 활성화할 필요가 없습니다. SDPA 또는 xFormers와 함께 attention slicing을 활성화하면 심각한 성능 저하가 발생할 수 있습니다! | |
| 예: | |
| ```py | |
| >>> import torch | |
| >>> from diffusers import StableDiffusionPipeline | |
| >>> pipe = StableDiffusionPipeline.from_pretrained( | |
| ... "stable-diffusion-v1-5/stable-diffusion-v1-5", | |
| ... dtype=torch.float16, | |
| ... use_safetensors=True, | |
| ... ) | |
| >>> prompt = "a photo of an astronaut riding a horse on mars" | |
| >>> pipe.enable_attention_slicing() | |
| >>> image = pipe(prompt).images[0] | |
| ``` | |
| #### enable_group_offload[[diffusers.DiffusionPipeline.enable_group_offload]] | |
| ```python | |
| enable_group_offload(onload_device: device, offload_device: device = torch.device(), offload_type: str = 'block_level', num_blocks_per_group: int | None = None, non_blocking: bool = False, use_stream: bool = False, record_stream: bool = False, low_cpu_mem_usage = False, offload_to_disk_path: str | None = None, exclude_modules: str | list[str] | None = None) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1361) | |
| **매개변수:** | |
| onload_device (`torch.device`) : 모듈 그룹이 로드된 디바이스. | |
| offload_device (`torch.device`, 기본값은 `torch.device("cpu")`) : 모듈 그룹이 오프로드될 장치입니다. 일반적으로 CPU여야 합니다. 기본값은 CPU입니다. | |
| offload_type (`str` 또는 `GroupOffloadingType`, 기본값은 "block_level") : 적용할 오프로딩 유형입니다. "block_level" 또는 "leaf_level" 중 하나여야 합니다. 기본값은 "block_level"입니다. | |
| offload_to_disk_path (`str`, *선택 사항*, 기본값 `None`) : 매개변수가 오프로드될 디렉터리의 경로입니다. 이 옵션을 설정하면 제한된 RAM 환경에서 합리적인 속도-메모리 트레이드오프가 필요한 경우 유용할 수 있습니다. | |
| num_blocks_per_group (`int`, *선택 사항*) : offload_type="block_level"을 사용할 때 그룹당 블록 수입니다. offload_type="block_level"을 사용할 때 필수입니다. | |
| non_blocking (`bool`, 기본값은 `False`) : True인 경우, offloading과 onloading이 non-blocking 데이터 전송으로 수행됩니다. | |
| use_stream (`bool`, 기본값은 `False`) : True인 경우, CUDA 스트림을 사용하여 오프로딩과 온로딩을 비동기적으로 수행합니다. 이는 계산과 데이터 전송을 오버랩하는 데 유용할 수 있습니다. | |
| record_stream (`bool`, 기본값은 `False`) : `use_stream`와 함께 활성화되면, 현재 텐서가 해당 스트림에 의해 사용되었음을 표시합니다. 메모리 사용량이 약간 증가하는 대신 더 빠른 성능을 제공합니다. 자세한 내용은 [PyTorch 공식 문서](https://pytorch.org/docs/stable/generated/torch.Tensor.record_stream.html)를 참조하세요. | |
| low_cpu_mem_usage (`bool`, 기본값은 `False`) : True인 경우, 사전 고정 대신 텐서를 온더플라이로 고정하여 CPU 메모리 사용량을 최소화합니다. 이 옵션은 스트림된 CPU 오프로딩(즉, `use_stream=True`)을 사용할 때만 의미가 있습니다. CPU 메모리가 병목 현상을 일으키는 경우 유용할 수 있지만, 스트림 사용의 이점을 상쇄할 수도 있습니다. | |
| exclude_modules (`Union[str, List[str]]`, 기본값은 `None`) : 오프로딩에서 제외할 모듈 목록. | |
| torch.nn.Module의 내부 레이어에 group offloading을 적용합니다. group offloading이 무엇인지, 그리고 어떤 상황에서 이점이 있는지 이해하려면, 먼저 다른 지원되는 offloading 방식이 어떻게 작동하는지에 대한 배경을 제공해야 합니다. | |
| 일반적으로 오프로딩은 두 단계에서 수행됩니다: | |
| - 모듈 수준: Diffusers에서는 `ModelMixin::enable_model_cpu_offload()` 메서드를 사용하여 이를 활성화할 수 있습니다. | |
| 각 파이프라인 구성 요소를 CPU로 오프로딩하여 저장하고, 계산이 필요할 때 가속기 디바이스로 온로딩하는 방식으로 작동합니다. 이 방법은 모든 구성 요소를 가속기에 유지하는 것보다 메모리 효율이 높지만, 여전히 메모리 요구량이 상당히 높습니다. 이 방법이 작동하려면 런타임 데이터 타입 기준 모델 크기 + 포워드 패스를 완료하기 위한 가장 큰 중간 활성화 텐서 크기에 해당하는 메모리가 필요합니다. | |
| - Leaf-level: Diffusers에서는 `ModelMixin::enable_sequential_cpu_offload()` 메서드를 사용하여 이를 활성화할 수 있습니다. | |
| works는 계산 그래프의 가장 낮은 리프 레벨 파라미터를 CPU로 오프로딩하여 저장하고, 계산 시 리프만 가속기 디바이스로 온로딩하는 방식으로 동작합니다. 이는 가장 적은 양의 가속기 메모리를 사용하지만, 과도한 디바이스 동기화로 인해 속도가 느려질 수 있습니다. | |
| Group offloading은 두 가지 방법의 중간 단계입니다. 내부 레이어 그룹(`torch.nn.ModuleList` 또는 `torch.nn.Sequential`)을 offload하는 방식으로 동작합니다. 이 방법은 모듈 수준 offloading보다 메모리 사용량이 적습니다. 또한 장치 동기화 횟수가 줄어들어 leaf 수준/순차적 offloading보다 빠릅니다. | |
| CUDA 디바이스에서 비동기 데이터 전송 스트림을 지원하는 경우, 또 다른 지원되는 기능은 순차적 오프로딩과 비교하여 전체 실행 시간을 줄이기 위해 데이터 전송과 계산을 겹치게 하는 능력입니다. 이는 스트림을 사용한 레이어 프리페칭으로 활성화되며, 즉 현재 레이어가 실행되는 동안 다음으로 실행될 레이어가 가속기 디바이스로의 온로딩을 시작합니다 - 이로 인해 메모리 요구량이 약간 증가합니다. 이 구현은 리프 레벨 오프로딩도 지원하지만, 스트림을 사용할 때 훨씬 더 빨라질 수 있습니다. | |
| 예: | |
| ```python | |
| >>> from diffusers import DiffusionPipeline | |
| >>> import torch | |
| >>> pipe = DiffusionPipeline.from_pretrained("Qwen/Qwen-Image", dtype=torch.bfloat16) | |
| >>> pipe.enable_group_offload( | |
| ... onload_device=torch.device("cuda"), | |
| ... offload_device=torch.device("cpu"), | |
| ... offload_type="leaf_level", | |
| ... use_stream=True, | |
| ... ) | |
| >>> image = pipe("a beautiful sunset").images[0] | |
| ``` | |
| #### enable_model_cpu_offload[[diffusers.DiffusionPipeline.enable_model_cpu_offload]] | |
| ```python | |
| enable_model_cpu_offload(gpu_id: int | None = None, device: typing.Union[torch.device, str] = None) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1174) | |
| **매개변수:** | |
| gpu_id (`int`, *선택 사항*) : 추론에 사용할 accelerator의 ID입니다. 지정하지 않으면 기본값으로 0이 사용됩니다. | |
| device (`torch.Device` 또는 `str`, *선택 사항*, 기본값 None) : 추론에 사용할 가속기의 PyTorch 장치 유형입니다. 지정하지 않으면 사용 가능한 가속기를 자동으로 감지하여 사용합니다. | |
| accelerate를 사용하여 모든 모델을 CPU로 오프로드하여 성능에 미치는 영향은 적으면서 메모리 사용량을 줄입니다. `enable_sequential_cpu_offload`와 비교하면, 이 메서드는 `forward` 메서드가 호출될 때 한 번에 하나의 모델을 가속기로 이동시키고, 다음 모델이 실행될 때까지 해당 모델이 가속기에 유지됩니다. `enable_sequential_cpu_offload`를 사용하는 경우보다 메모리 절감 효과는 낮지만, `unet`의 반복적 실행 덕분에 성능이 훨씬 좋습니다. | |
| #### enable_sequential_cpu_offload[[diffusers.DiffusionPipeline.enable_sequential_cpu_offload]] | |
| ```python | |
| enable_sequential_cpu_offload(gpu_id: int | None = None, device: typing.Union[torch.device, str] = None) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1293) | |
| **매개변수:** | |
| gpu_id (`int`, *선택 사항*) : 추론에 사용할 accelerator의 ID입니다. 지정하지 않으면 기본값으로 0이 사용됩니다. | |
| device (`torch.Device` 또는 `str`, *선택 사항*, 기본값 None) : 추론에 사용할 가속기의 PyTorch 장치 유형입니다. 지정하지 않으면 사용 가능한 가속기를 자동으로 감지하여 사용합니다. | |
| 🤗 Accelerate를 사용하여 모든 모델을 CPU로 오프로드하여 메모리 사용량을 크게 줄입니다. 호출 시 `self._exclude_from_cpu_offload`에 포함된 것을 제외한 모든 `torch.nn.Module` 구성 요소의 상태 딕트가 CPU에 저장된 후 `torch.device('meta')`로 이동되며, 해당 서브모듈의 `forward` 메서드가 호출될 때에만 가속기로 로드됩니다. 오프로딩은 서브모듈 단위로 수행됩니다. `enable_model_cpu_offload`를 사용할 때보다 메모리 절감 효과가 크지만 성능은 낮습니다. | |
| #### enable_xformers_memory_efficient_attention[[diffusers.DiffusionPipeline.enable_xformers_memory_efficient_attention]] | |
| ```python | |
| enable_xformers_memory_efficient_attention(attention_op: typing.Optional[typing.Callable] = None) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1993) | |
| **매개변수:** | |
| attention_op (`Callable`, *선택 사항*) : xFormers의 [`memory_efficient_attention()`](https://facebookresearch.github.io/xformers/components/ops.html#xformers.ops.memory_efficient_attention) 함수에 `op` 인수로 사용될 때 기본 `None` 연산자를 재정의합니다. | |
| [xFormers](https://facebookresearch.github.io/xformers/)에서 메모리 효율적인 어텐션을 활성화합니다. 이 옵션을 활성화하면 추론 시 GPU 메모리 사용량이 감소하고 속도가 향상될 수 있습니다. 학습 시 속도 향상은 보장되지 않습니다. | |
| > [!WARNING] > ⚠️ memory efficient attention과 sliced attention이 모두 활성화된 경우, memory efficient | |
| attention은 > 우선순위를 가집니다. | |
| 예: | |
| ```py | |
| >>> import torch | |
| >>> from diffusers import DiffusionPipeline | |
| >>> from xformers.ops import MemoryEfficientAttentionFlashAttentionOp | |
| >>> pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1", dtype=torch.float16) | |
| >>> pipe = pipe.to("cuda") | |
| >>> pipe.enable_xformers_memory_efficient_attention(attention_op=MemoryEfficientAttentionFlashAttentionOp) | |
| >>> # Workaround for not accepting attention shape using VAE for Flash Attention | |
| >>> pipe.vae.enable_xformers_memory_efficient_attention(attention_op=None) | |
| ``` | |
| #### from_pipe[[diffusers.DiffusionPipeline.from_pipe]] | |
| ```python | |
| from_pipe(pipeline, **kwargs) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L2101) | |
| **매개변수:** | |
| pipeline (`DiffusionPipeline`) : 새로운 파이프라인을 생성할 원본 파이프라인. | |
| **반환값:** `DiffusionPipeline` | |
| `pipeline`와 동일한 가중치와 구성을 가진 새로운 파이프라인. | |
| … | |
| 예: | |
| ```py | |
| >>> from diffusers import StableDiffusionPipeline, StableDiffusionSAGPipeline | |
| >>> pipe = StableDiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5") | |
| >>> new_pipe = StableDiffusionSAGPipeline.from_pipe(pipe) | |
| ``` | |
| #### from_pretrained[[diffusers.DiffusionPipeline.from_pretrained]] | |
| ```python | |
| from_pretrained(pretrained_model_name_or_path: str | os.PathLike, **kwargs) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L638) | |
| **매개변수:** | |
| pretrained_model_name_or_path (`str` 또는 `os.PathLike`, *선택 사항*) : 다음 중 하나일 수 있습니다. - Hub에 호스팅된 사전 학습된 파이프라인의 *repo id* 문자열(예: `CompVis/ldm-text2im-large-256`). - [save_pretrained()](/docs/diffusers/main/ko/api/pipelines/overview#diffusers.DiffusionPipeline.save_pretrained)를 사용하여 저장된 파이프라인 가중치가 포함된 *디렉터리* 경로(예: `./my_pipeline_directory/`). | |
| dtype (`torch.dtype` 또는 `dict[str, Union[str, torch.dtype]]`, *선택 사항*) : 기본 `torch.dtype`를 재정의하여 다른 dtype로 모델을 로드합니다. 서브모델을 서로 다른 dtype로 로드하려면 `dict`를 전달합니다(예: `{'transformer': torch.bfloat16, 'vae': torch.float16}`). 지정되지 않은 구성 요소의 기본 dtype는 `default`로 설정합니다(예: `{'transformer': torch.bfloat16, 'default': torch.float16}`). 구성 요소가 지정되지 않았고 기본값도 설정되지 않은 경우 `torch.float32`가 사용됩니다. | |
| custom_pipeline (`str`, *선택 사항*) : > [!WARNING] > 🧪 이는 실험적 기능이며 향후 변경될 수 있습니다. 다음 중 하나일 수 있습니다: - Hub에 호스팅된 커스텀 파이프라인의 *repo id* 문자열(예: `hf-internal-testing/diffusers-dummy-pipeline`). 저장소에는 커스텀 파이프라인을 정의하는 pipeline.py라는 파일이 포함되어야 합니다. - [Community](https://github.com/huggingface/diffusers/tree/main/examples/community) 아래 GitHub에 호스팅된 커뮤니티 파이프라인의 *파일 이름* 문자열. 유효한 파일 이름은 파이프라인 스크립트(`clip_guided_stable_diffusion.py`)가 아닌 파일 이름(`clip_guided_stable_diffusion`)과 일치해야 합니다. 커뮤니티 파이프라인은 항상 GitHub의 현재 main 브랜치에서 로드됩니다. - 커스텀 파이프라인을 포함하는 디렉터리 경로(`./my_pipeline_directory/`). 디렉터리에는 커스텀 파이프라인을 정의하는 `pipeline.py`라는 파일이 포함되어야 합니다. 커스텀 파이프라인을 로드하고 만드는 방법에 대한 자세한 내용은 [커스텀 파이프라인 로드 및 추가](https://huggingface.co/docs/diffusers/using-diffusers/custom_pipeline_overview)를 참고하세요. | |
| force_download (`bool`, *선택 사항*, 기본값 `False`) : 캐시된 버전이 존재하더라도 모델 가중치 및 구성 파일의 (재)다운로드를 강제할지 여부. | |
| cache_dir (`Union[str, os.PathLike]`, *선택 사항*) : 표준 캐시를 사용하지 않을 경우, 다운로드된 사전 학습된 모델 구성이 캐시되는 디렉터리의 경로입니다. | |
| 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 또는 기타 식별자일 수 있습니다. | |
| custom_revision (`str`, *선택 사항*) : 사용할 특정 모델 버전입니다. Hub에서 커스텀 파이프라인을 로드할 때 `revision`과 유사하게 브랜치 이름, 태그 이름 또는 커밋 ID를 사용할 수 있습니다. 기본값은 최신 안정 버전인 🤗 Diffusers입니다. | |
| mirror (`str`, *선택 사항*) : 중국에서 모델을 다운로드할 때 접근성 문제를 해결하기 위한 미러 소스입니다. 해당 소스의 적시성이나 안전성을 보장하지 않으며, 자세한 내용은 미러 사이트를 참고하세요. | |
| device_map (`str`, *선택 사항*) : 파이프라인의 각 구성 요소를 사용 가능한 장치에 배치하는 방식을 결정하는 전략입니다. 현재 "balanced" `device_map`만 지원됩니다. 자세한 내용은 [여기](https://huggingface.co/docs/diffusers/main/en/tutorials/inference_with_big_models#device-placement)를 확인하세요. | |
| max_memory (`Dict`, *선택 사항*) : 최대 메모리에 대한 디바이스 식별자를 나타내는 사전입니다. 설정되지 않으면 각 GPU의 사용 가능한 최대 메모리와 사용 가능한 CPU RAM이 기본값으로 사용됩니다. | |
| offload_folder (`str` 또는 `os.PathLike`, *선택 사항*) : `"disk"` 값을 포함하는 device_map의 경우, 가중치를 오프로드할 경로입니다. | |
| offload_state_dict (`bool`, *선택 사항*) : `True`인 경우, CPU 상태 사전의 가중치와 체크포인트의 가장 큰 샤드 합이 CPU RAM에 맞지 않을 때 CPU RAM 부족을 방지하기 위해 CPU 상태 사전을 하드 드라이브로 일시적으로 오프로드합니다. 디스크 오프로드가 있는 경우 기본값은 `True`입니다. | |
| low_cpu_mem_usage (`bool`, *선택 사항*, torch 버전이 1.9.0 이상이면 기본값은 `True`, 그 외에는 `False`) : 가중치를 초기화하지 않고 사전 학습된 가중치만 로드하여 모델 로딩 속도를 높입니다. 모델 로딩 시 CPU 메모리(피크 메모리 포함)를 모델 크기의 1배를 초과하지 않도록 시도합니다. PyTorch 1.9.0 이상에서만 지원됩니다. PyTorch의 이전 버전을 사용하는 경우 이 인수를 `True`로 설정하면 오류가 발생합니다. | |
| use_safetensors (`bool`, *선택 사항*, 기본값 `None`) : `None`으로 설정하면, safetensors 라이브러리가 설치되어 있고 **그리고** safetensors 가중치가 사용 가능한 경우 해당 가중치가 다운로드됩니다. `True`로 설정하면 모델이 safetensors 가중치에서 강제 로드됩니다. `False`로 설정하면 safetensors 가중치가 로드되지 않습니다. | |
| use_onnx (`bool`, *선택 사항*, 기본값 `None`) : `True`로 설정하면 ONNX 가중치가 존재하는 경우 항상 다운로드됩니다. `False`로 설정하면 ONNX 가중치는 절대 다운로드되지 않습니다. 기본적으로 `use_onnx`는 `_is_onnx` 클래스 속성의 기본값을 따르며, 이는 ONNX가 아닌 파이프라인의 경우 `False`, ONNX 파이프라인의 경우 `True`입니다. ONNX 가중치에는 `.onnx` 및 `.pb`로 끝나는 두 가지 파일이 모두 포함됩니다. | |
| kwargs (남은 키워드 인수의 사전, *선택 사항*) : 로드 및 저장 가능한 변수(특정 파이프라인 클래스의 파이프라인 구성 요소)를 덮어쓸 수 있습니다. 덮어쓰기된 구성 요소는 파이프라인의 `__init__` 메서드에 직접 전달됩니다. 자세한 내용은 아래 예시를 참조하세요. | |
| variant (`str`, *선택 사항*) : `"fp16"` 또는 `"ema"`와 같이 지정된 변형 파일 이름에서 가중치를 로드합니다. | |
| disable_mmap ('bool', *선택 사항*, 기본값 'False') : Safetensors 모델을 로드할 때 mmap을 비활성화할지 여부입니다. 네트워크 마운트나 하드 드라이브에 모델이 있는 경우, mmap의 seek 동작을 잘 처리하지 못할 수 있으므로 이 옵션을 사용하면 성능이 더 좋아질 수 있습니다. | |
| PyTorch 확산 파이프라인을 사전 학습된 파이프라인 가중치에서 초기화합니다. | |
| 파이프라인은 기본적으로 평가 모드(`model.eval()`)로 설정됩니다. | |
| 아래와 같은 오류 메시지가 표시되면 다운스트림 작업을 위해 가중치를 미세 조정해야 합니다: | |
| ``` | |
| Some weights of UNet2DConditionModel were not initialized from the model checkpoint at stable-diffusion-v1-5/stable-diffusion-v1-5 and are newly initialized because the shapes did not match: | |
| - conv_in.weight: found shape torch.Size([320, 4, 3, 3]) in the checkpoint and torch.Size([320, 9, 3, 3]) in the model instantiated | |
| You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference. | |
| ``` | |
| > [!TIP] > 비공개 또는 [gated](https://huggingface.co/docs/hub/models-gated#gated-models) 모델을 사용하려면 로그인 | |
| `hf > auth login`로 | |
| 예: | |
| ```py | |
| >>> from diffusers import DiffusionPipeline | |
| >>> # Download pipeline from huggingface.co and cache. | |
| >>> pipeline = DiffusionPipeline.from_pretrained("CompVis/ldm-text2im-large-256") | |
| >>> # Download pipeline that requires an authorization token | |
| >>> # For more information on access tokens, please refer to this section | |
| >>> # of the documentation](https://huggingface.co/docs/hub/security-tokens) | |
| >>> pipeline = DiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5") | |
| >>> # Use a different scheduler | |
| >>> from diffusers import LMSDiscreteScheduler | |
| >>> scheduler = LMSDiscreteScheduler.from_config(pipeline.scheduler.config) | |
| >>> pipeline.scheduler = scheduler | |
| ``` | |
| #### maybe_free_model_hooks[[diffusers.DiffusionPipeline.maybe_free_model_hooks]] | |
| ```python | |
| maybe_free_model_hooks() | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1270) | |
| 다음과 같은 작업을 수행하는 메서드입니다: | |
| - 모든 구성 요소를 오프로드합니다. | |
| - `enable_model_cpu_offload`을 사용할 때 추가된 모든 모델 훅을 제거한 후 다시 적용합니다. 모델이 오프로드되지 않은 경우 이 함수는 아무 동작도 하지 않습니다. | |
| - `register_hook()`으로 추가된 경우, denoiser 구성 요소의 상태ful diffusers 훅을 초기화합니다. | |
| `enable_model_cpu_offload`를 적용할 때 올바르게 작동하도록 하려면 이 함수를 파이프라인의 `__call__` 함수 끝에 추가하세요. | |
| #### numpy_to_pil[[diffusers.DiffusionPipeline.numpy_to_pil]] | |
| ```python | |
| numpy_to_pil(images) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1963) | |
| NumPy 이미지 또는 이미지 배치를 PIL 이미지로 변환합니다. | |
| #### remove_all_hooks[[diffusers.DiffusionPipeline.remove_all_hooks]] | |
| ```python | |
| remove_all_hooks() | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1165) | |
| `enable_sequential_cpu_offload` 또는 `enable_model_cpu_offload`을 사용할 때 추가된 모든 훅을 제거합니다. | |
| #### reset_device_map[[diffusers.DiffusionPipeline.reset_device_map]] | |
| ```python | |
| reset_device_map() | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L1488) | |
| None으로 디바이스 맵(있는 경우)을 초기화합니다. | |
| #### save_pretrained[[diffusers.DiffusionPipeline.save_pretrained]] | |
| ```python | |
| save_pretrained(save_directory: str | os.PathLike, safe_serialization: bool = True, variant: str | None = None, max_shard_size: int | str | None = None, push_to_hub: bool = False, use_flashpack: bool = False, **kwargs) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L254) | |
| **매개변수:** | |
| save_directory (`str` 또는 `os.PathLike`) : 파이프라인을 저장할 디렉터리입니다. 존재하지 않으면 생성됩니다. | |
| safe_serialization (`bool`, *선택 사항*, 기본값 `True`) : `safetensors` 또는 `pickle`를 사용한 전통적인 PyTorch 방식으로 모델을 저장할지 여부. | |
| variant (`str`, *선택 사항*) : 지정된 경우, 가중치가 `pytorch_model.<variant>.bin` 형식으로 저장됩니다. | |
| max_shard_size (`int` 또는 `str`, 기본값은 `None`) : 샤딩되기 전 체크포인트의 최대 크기입니다. 샤딩된 각 체크포인트의 크기는 이 크기보다 작아집니다. 문자열로 표현할 경우, 숫자 뒤에 단위(예: `"5GB"`)가 따라야 합니다. 정수로 표현할 경우, 단위는 바이트입니다. 2024년 10월부터 특정 기간이 지난 후 이 제한이 낮아질 수 있으며, 이는 사용자가 `diffusers`의 최신 버전으로 업그레이드할 수 있도록 하기 위한 것입니다. 이는 Hugging Face 생태계의 다른 라이브러리(예: `transformers`, `accelerate`)에서 이 인수의 공통 기본 크기를 설정하기 위한 것입니다. | |
| push_to_hub (`bool`, *선택 사항*, 기본값 `False`) : 모델을 저장한 후 Hugging Face 모델 허브에 푸시할지 여부입니다. `repo_id`를 사용하여 푸시할 저장소를 지정할 수 있습니다(기본값은 네임스페이스의 `save_directory` 이름입니다). | |
| kwargs (`Dict[str, Any]`, *선택*) : [push_to_hub()](/docs/diffusers/main/ko/api/schedulers/overview#diffusers.utils.PushToHubMixin.push_to_hub) 메서드로 전달되는 추가 키워드 인자입니다. | |
| [from_pretrained()](/docs/diffusers/main/ko/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) 클래스 메서드를 사용하여 파이프라인을 쉽게 다시 로드할 수 있습니다. 파이프라인 변수는 해당 클래스가 저장 및 로드 메서드를 모두 구현한 경우에만 저장 및 로드할 수 있습니다. 파이프라인의 모든 저장 가능한 변수를 디렉토리에 저장합니다. | |
| #### diffusers.StableDiffusionMixin.enable_freeu[[diffusers.StableDiffusionMixin.enable_freeu]] | |
| ```python | |
| diffusers.StableDiffusionMixin.enable_freeu(s1: float, s2: float, b1: float, b2: float) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L2285) | |
| **매개변수:** | |
| s1 (`float`) : 스킵 특징의 기여도를 감쇠시키기 위한 1단계의 스케일링 계수입니다. 이는 강화된 노이즈 제거 과정에서 "과도한 매끄러움 효과(oversmoothing effect)"를 완화하기 위해 수행됩니다. | |
| s2 (`float`) : 스킵 특징의 기여도를 감쇠시키기 위한 2단계의 스케일링 계수입니다. 이는 강화된 노이즈 제거 과정에서 "과도한 매끄러움 효과(oversmoothing effect)"를 완화하기 위해 수행됩니다. | |
| b1 (`float`) : 1단계에서 백본 특징의 기여도를 증폭하기 위한 스케일링 계수. | |
| b2 (`float`) : 2단계에서 백본 특징의 기여도를 증폭하기 위한 스케일링 계수. | |
| https://huggingface.co/papers/2309.11497 에 설명된 FreeU 메커니즘을 활성화합니다. | |
| 스케일링 인자 뒤에 붙는 접미사는 해당 인자가 적용되는 단계를 나타냅니다. | |
| Stable Diffusion v1, v2, Stable Diffusion XL과 같은 다양한 파이프라인에서 잘 작동하는 것으로 알려진 값 조합에 대해서는 [공식 저장소](https://github.com/ChenyangSi/FreeU)를 참고하세요. | |
| #### diffusers.StableDiffusionMixin.disable_freeu[[diffusers.StableDiffusionMixin.disable_freeu]] | |
| ```python | |
| diffusers.StableDiffusionMixin.disable_freeu() | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/pipeline_utils.py#L2307) | |
| 활성화된 경우 FreeU 메커니즘을 비활성화합니다. | |
| ## 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") | |
| ``` | |
| ## 콜백[[diffusers.callbacks.PipelineCallback]] | |
| #### diffusers.callbacks.PipelineCallback[[diffusers.callbacks.PipelineCallback]] | |
| ```python | |
| diffusers.callbacks.PipelineCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/callbacks.py#L7) | |
| 파이프라인에서 사용되는 모든 공식 콜백의 베이스 클래스입니다. 이 클래스는 사용자 정의 콜백을 구현하기 위한 구조를 제공하며, 모든 콜백이 일관된 인터페이스를 갖도록 보장합니다. | |
| 다음과 같이 구현하세요: `tensor_inputs`: 이 메서드는 콜백에 특화된 텐서 입력 목록을 반환해야 합니다. 파이프라인 클래스의 `._callback_tensor_inputs` 속성에 나열된 변수만 포함할 수 있습니다. `callback_fn`: 이 메서드는 콜백의 핵심 기능을 정의합니다. | |
| #### diffusers.callbacks.SDCFGCutoffCallback[[diffusers.callbacks.SDCFGCutoffCallback]] | |
| ```python | |
| diffusers.callbacks.SDCFGCutoffCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/callbacks.py#L69) | |
| Stable Diffusion 파이프라인용 콜백 함수입니다. 특정 단계 수( `cutoff_step_ratio` 또는 `cutoff_step_index`로 설정) 이후에 이 콜백은 CFG를 비활성화합니다. | |
| Note: 이 콜백은 카utoff 단계 이후 `_guidance_scale` 속성을 0.0으로 변경하여 파이프라인을 변경합니다. | |
| #### diffusers.callbacks.SDXLCFGCutoffCallback[[diffusers.callbacks.SDXLCFGCutoffCallback]] | |
| ```python | |
| diffusers.callbacks.SDXLCFGCutoffCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/callbacks.py#L98) | |
| 기본 Stable Diffusion XL 파이프라인의 콜백 함수입니다. 특정 단계 수(이 값은 `cutoff_step_ratio` 또는 `cutoff_step_index`로 설정됨) 이후에 이 콜백은 CFG를 비활성화합니다. | |
| Note: 이 콜백은 카utoff 단계 이후 `_guidance_scale` 속성을 0.0으로 변경하여 파이프라인을 변경합니다. | |
| #### diffusers.callbacks.SDXLControlnetCFGCutoffCallback[[diffusers.callbacks.SDXLControlnetCFGCutoffCallback]] | |
| ```python | |
| diffusers.callbacks.SDXLControlnetCFGCutoffCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/callbacks.py#L140) | |
| Controlnet Stable Diffusion XL 파이프라인용 콜백 함수입니다. 특정 단계 수(이 값은 `cutoff_step_ratio` 또는 `cutoff_step_index`로 설정됨) 이후에 이 콜백은 CFG를 비활성화합니다. | |
| Note: 이 콜백은 카utoff 단계 이후 `_guidance_scale` 속성을 0.0으로 변경하여 파이프라인을 변경합니다. | |
| #### diffusers.callbacks.IPAdapterScaleCutoffCallback[[diffusers.callbacks.IPAdapterScaleCutoffCallback]] | |
| ```python | |
| diffusers.callbacks.IPAdapterScaleCutoffCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/callbacks.py#L188) | |
| `IPAdapterMixin`을 상속하는 모든 파이프라인에 대한 콜백 함수입니다. 특정 단계 수(이 값은 `cutoff_step_ratio` 또는 `cutoff_step_index`로 설정됨) 이후에 이 콜백은 IP Adapter 스케일을 `0.0`으로 설정합니다. | |
| Note: 이 콜백은 cutoff 단계 이후 scale을 0.0으로 설정하여 IP Adapter attention processors를 변경합니다. | |
| #### diffusers.callbacks.SD3CFGCutoffCallback[[diffusers.callbacks.SD3CFGCutoffCallback]] | |
| ```python | |
| diffusers.callbacks.SD3CFGCutoffCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None) | |
| ``` | |
| [소스](https://github.com/huggingface/diffusers/blob/main/src/diffusers/callbacks.py#L212) | |
| Stable Diffusion 3 파이프라인용 콜백 함수입니다. 특정 단계 수(이것은 `cutoff_step_ratio` 또는 `cutoff_step_index`로 설정됨) 이후에 이 콜백은 CFG를 비활성화합니다. | |
| Note: 이 콜백은 카utoff 단계 이후 `_guidance_scale` 속성을 0.0으로 변경하여 파이프라인을 변경합니다. | |
Xet Storage Details
- Size:
- 49.3 kB
- Xet hash:
- 0b5ce3e16a8d6b078dd1923e8344e6bdbde13a34cf45098f4345496fd7b27032
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.