Diffusers documentation

UNet

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

UNet

LoRA와 Custom Diffusion과 같은 일부 학습 방법은 일반적으로 UNet의 attention 레이어를 대상으로 하지만, 이러한 학습 방법은 attention이 아닌 다른 레이어를 대상으로 할 수도 있습니다. 모델의 모든 파라미터를 학습하는 대신, 파라미터의 일부만 학습하므로 더 빠르고 효율적입니다. 이 클래스는 UNet에 오직 가중치를 로드하는 경우에 유용합니다. 텍스트 인코더 또는 텍스트 인코더와 UNet에 가중치를 로드해야 하는 경우, 대신 load_lora_weights() 함수를 사용하는 것이 좋습니다.

UNet2DConditionLoadersMixin 클래스는 가중치 로드 및 저장, LoRA 융합 및 역융합, LoRA 비활성화 및 활성화, 어댑터 설정 및 삭제에 대한 함수를 제공합니다.

LoRA 가중치를 로드하는 방법에 대해 자세히 알아보려면 LoRA 가이드를 참조하세요.

UNet2DConditionLoadersMixin

클래스 diffusers.loaders.UNet2DConditionLoadersMixin

< >

( )

UNet2DCondtionModel에 LoRA 레이어를 로드합니다.

load_attn_procs

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]**kwargs )

매개변수

  • pretrained_model_name_or_path_or_dict (str 또는 os.PathLike 또는 dict) — 다음 중 하나일 수 있습니다:
    • Hub에 호스팅된 사전 학습된 모델의 모델 ID(예: google/ddpm-celebahq-256)를 나타내는 문자열입니다.
    • ./my_model_directory와 같이 ModelMixin.save_pretrained()로 저장된 모델 가중치가 포함된 디렉토리의 경로
    • torch 상태 사전입니다.
  • cache_dir (str | os.PathLike, 선택 사항) — 표준 캐시를 사용하지 않을 경우, 다운로드된 사전 학습 모델 구성이 캐시되는 디렉터리의 경로입니다.
  • force_download (bool, 선택 사항, 기본값 False) — 모델 가중치 및 구성 파일의 (재)다운로드를 강제할지 여부입니다. 캐시된 버전이 존재하는 경우 이를 무시합니다.
  • proxies (dict[str, str], 선택) — 프로토콜 또는 엔드포인트별로 사용할 프록시 서버의 사전입니다. 예를 들어, {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}와 같습니다. 각 요청에 프록시가 사용됩니다.
  • local_files_only (bool, 선택 사항, 기본값 False) — 로컬 모델 가중치 및 구성 파일만 로드할지 여부를 지정합니다. True로 설정하면 Hub에서 모델을 다운로드하지 않습니다.
  • token (str 또는 bool, 선택 사항) — 원격 파일에 대한 HTTP bearer 인증으로 사용할 토큰입니다. True인 경우, diffusers-cli login에서 생성된 토큰(~/.huggingface에 저장됨)이 사용됩니다.
  • revision (str, 선택 사항, 기본값 "main") — 사용할 특정 모델 버전입니다. Git에서 허용하는 브랜치 이름, 태그 이름, 커밋 ID 또는 기타 식별자일 수 있습니다.
  • subfolder (str, 선택 사항, 기본값 "") — Hub 또는 로컬의 더 큰 모델 저장소 내에서 모델 파일의 서브폴더 위치입니다.
  • weight_name (str, 선택 사항, 기본값 None) — 직렬화된 state dict 파일의 이름.

사전 학습된 Custom Diffusion attention processor 레이어를 UNet2DConditionModel에 로드합니다. Attention processor 레이어는 attention_processor.py에 정의되어 있어야 하며 torch.nn.Module 클래스여야 합니다. LoRA 레이어를 로드하려면 대신 load_lora_adapter()를 사용하세요.

예:

import torch
from diffusers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4",
    torch_dtype=torch.float16,
).to("cuda")
pipeline.unet.load_attn_procs("path-to-save-model", weight_name="pytorch_custom_diffusion_weights.bin")

save_attn_procs

< >

( save_directory: str | os.PathLikeis_main_process: bool = Trueweight_name: str = Nonesave_function: typing.Callable = Nonesafe_serialization: bool = True**kwargs )

매개변수

  • save_directory (str 또는 os.PathLike) — attention processor를 저장할 디렉터리입니다(존재하지 않으면 생성됩니다).
  • is_main_process (bool, 선택 사항, 기본값 True) — 이 함수를 호출하는 프로세스가 메인 프로세스인지 여부입니다. 분산 학습 중에 모든 프로세스에서 이 함수를 호출해야 하는 경우 유용합니다. 이 경우 레이스 조건을 피하기 위해 메인 프로세스에서만 is_main_process=True로 설정하세요.
  • save_function (Callable) — 상태 사전(state dictionary)을 저장하는 데 사용할 함수입니다. 분산 학습(distributed training) 중에 torch.save를 다른 방법으로 대체해야 할 때 유용합니다. 환경 변수 DIFFUSERS_SAVE_MODE로 설정할 수 있습니다.
  • safe_serialization (bool, 선택 사항, 기본값 True) — safetensors 또는 pickle를 사용하여 모델을 저장할지 여부

Custom Diffusion attention processor 레이어를 디렉터리에 저장하여 load_attn_procs() 메서드로 다시 로드할 수 있습니다. LoRA 레이어를 저장하려면 대신 save_lora_adapter()를 사용하세요.

예:

import torch
from diffusers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained(
    "CompVis/stable-diffusion-v1-4",
    torch_dtype=torch.float16,
).to("cuda")
pipeline.unet.load_attn_procs("path-to-save-model", weight_name="pytorch_custom_diffusion_weights.bin")
pipeline.unet.save_attn_procs("path-to-save-model", weight_name="pytorch_custom_diffusion_weights.bin")
Update on GitHub