Diffusers documentation

IP-Adapter

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

IP-Adapter

IP-Adapter는 이미지로 diffusion model을 프롬프팅할 수 있게 해주는 경량 어댑터입니다. 이 방법은 이미지와 텍스트 특징의 cross-attention 레이어를 분리합니다. 이미지 특징은 이미지 인코더에서 생성됩니다.

IP-Adapter 가이드에서 IP-Adapter 체크포인트와 이미지를 로드하고 사용하는 방법을 배워보세요.

IPAdapterMixin

class diffusers.loaders.IPAdapterMixin

< >

( )

IP Adapter를 처리하기 위한 Mixin입니다.

load_ip_adapter

< >

( pretrained_model_name_or_path_or_dict: str | list[str] | dict[str, torch.Tensor]subfolder: str | list[str]weight_name: str | list[str]image_encoder_folder: str | None = 'image_encoder'**kwargs )

매개변수

  • pretrained_model_name_or_path_or_dict (str 또는 list[str] 또는 os.PathLike 또는 list[os.PathLike] 또는 dict 또는 list[dict]) — 다음 중 하나일 수 있습니다:
    • Hub에 호스팅된 사전 학습 모델의 model id 문자열(예: google/ddpm-celebahq-256).
    • ./my_model_directory와 같이 ModelMixin.save_pretrained()로 저장된 모델 가중치를 포함하는 디렉터리의 경로
    • torch 상태 사전입니다.
  • subfolder (str 또는 list[str]) — Hub 또는 로컬의 더 큰 모델 저장소 내에서 모델 파일의 서브폴더 위치입니다. 리스트가 전달되면 weight_name과 동일한 길이를 가져야 합니다.
  • weight_name (str 또는 list[str]) — 로드할 가중치 파일의 이름입니다. 리스트가 전달되면 subfolder와 동일한 길이를 가져야 합니다.
  • image_encoder_folder (str, 선택 사항, 기본값 image_encoder) — Hub 또는 로컬의 더 큰 모델 저장소 내에서 이미지 인코더의 서브폴더 위치입니다. 이미지 인코더를 로드하지 않으려면 None을(를) 전달하세요. 이미지 인코더가 subfolder 안의 폴더에 있는 경우, 이미지 인코더 가중치를 포함하는 폴더의 이름만 전달하면 됩니다. 예를 들어 image_encoder_folder="image_encoder". 이미지 인코더가 subfolder가 아닌 다른 폴더에 있는 경우, 이미지 인코더 가중치를 포함하는 폴더의 경로를 전달해야 합니다. 예를 들어, image_encoder_folder="different_subfolder/image_encoder".
  • 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 또는 기타 식별자일 수 있습니다.
  • low_cpu_mem_usage (bool, 선택 사항, torch 버전이 1.9.0 이상이면 기본값은 True, 그 외에는 False) — 가중치를 초기화하지 않고 사전 학습된 가중치만 로드하여 모델 로딩 속도를 높입니다. 또한 모델 로딩 중 CPU 메모리(피크 메모리 포함)를 모델 크기의 1배를 초과하지 않도록 시도합니다. PyTorch 1.9.0 이상에서만 지원됩니다. PyTorch의 이전 버전을 사용하는 경우 이 인수를 True로 설정하면 오류가 발생합니다.

set_ip_adapter_scale

< >

( scale )

IP-Adapter 스케일을 트랜스포머 블록별로 설정합니다. 입력 scale은 단일 설정 또는 각 IP-Adapter 동작에 대한 세밀한 제어를 위한 설정 목록일 수 있습니다. 설정은 float 또는 딕셔너리일 수 있습니다.

예:

# To use original IP-Adapter
scale = 1.0
pipeline.set_ip_adapter_scale(scale)

# To use style block only
scale = {
    "up": {"block_0": [0.0, 1.0, 0.0]},
}
pipeline.set_ip_adapter_scale(scale)

# To use style+layout blocks
scale = {
    "down": {"block_2": [0.0, 1.0]},
    "up": {"block_0": [0.0, 1.0, 0.0]},
}
pipeline.set_ip_adapter_scale(scale)

# To use style and layout from 2 reference images
scales = [{"down": {"block_2": [0.0, 1.0]}}, {"up": {"block_0": [0.0, 1.0, 0.0]}}]
pipeline.set_ip_adapter_scale(scales)

unload_ip_adapter

< >

( )

IP Adapter 가중치를 언로드합니다

예:

>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.unload_ip_adapter()
>>> ...

SD3IPAdapterMixin

클래스 diffusers.loaders.SD3IPAdapterMixin

< >

( )

StableDiffusion 3 IP Adapters를 처리하는 Mixin입니다.

is_ip_adapter_active

< >

( ) → bool

반환값

bool

IP-Adapter가 로드되고 어떤 레이어의 scale 값이 0보다 큰 경우 true입니다.

IP-Adapter가 로드되어 있는지 및 scale > 0인지 확인합니다.

IP-Adapter scale은 이미지 프롬프트와 텍스트 프롬프트 간의 영향을 제어합니다. 이 값이 0으로 설정되면 이미지 컨텍스트는 관련이 없습니다.

load_ip_adapter

< >

( pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor]weight_name: str = 'ip-adapter.safetensors'subfolder: str | None = Noneimage_encoder_folder: str | None = 'image_encoder'**kwargs )

매개변수

  • pretrained_model_name_or_path_or_dict (str 또는 os.PathLike 또는 dict) — 다음 중 하나일 수 있습니다:
    • Hub에 호스팅된 사전 학습 모델의 model id 문자열(예: google/ddpm-celebahq-256).
    • ./my_model_directory와 같이 ModelMixin.save_pretrained()로 저장된 모델 가중치를 포함하는 디렉터리의 경로
    • torch 상태 사전입니다.
  • weight_name (str, 기본값 “ip-adapter.safetensors”) — 로드할 가중치 파일의 이름입니다. 리스트가 전달되면 subfolder와 동일한 길이를 가져야 합니다.
  • subfolder (str, 선택 사항) — Hub 또는 로컬의 더 큰 모델 저장소 내에서 모델 파일의 서브폴더 위치입니다. 리스트가 전달되면 weight_name과 동일한 길이를 가져야 합니다.
  • image_encoder_folder (str, 선택 사항, 기본값 image_encoder) — Hub 또는 로컬의 더 큰 모델 저장소 내에서 이미지 인코더의 서브폴더 위치입니다. 이미지 인코더를 로드하지 않으려면 None을(를) 전달하세요. 이미지 인코더가 subfolder 안의 폴더에 있는 경우, 이미지 인코더 가중치를 포함하는 폴더의 이름만 전달하면 됩니다. 예를 들어 image_encoder_folder="image_encoder". 이미지 인코더가 subfolder가 아닌 다른 폴더에 있는 경우, 이미지 인코더 가중치를 포함하는 폴더의 경로를 전달해야 합니다. 예를 들어, image_encoder_folder="different_subfolder/image_encoder".
  • 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 또는 기타 식별자일 수 있습니다.
  • low_cpu_mem_usage (bool, 선택 사항, torch 버전이 1.9.0 이상이면 기본값은 True, 그 외에는 False) — 가중치를 초기화하지 않고 사전 학습된 가중치만 로드하여 모델 로딩 속도를 높입니다. 또한 모델 로딩 중 CPU 메모리(피크 메모리 포함)를 모델 크기의 1배를 초과하지 않도록 시도합니다. PyTorch 1.9.0 이상에서만 지원됩니다. PyTorch의 이전 버전을 사용하는 경우 이 인수를 True로 설정하면 오류가 발생합니다.

set_ip_adapter_scale

< >

( scale: float )

매개변수

  • scale (float) — 설정할 IP-Adapter 스케일입니다.

이미지 프롬프트 조건화를 제어하는 IP-Adapter scale을 설정합니다. 값이 1.0이면 모델은 이미지 프롬프트에만 조건화되고, 0.0이면 텍스트 프롬프트에만 조건화됩니다. 이 값을 낮추면 모델이 더 다양한 이미지를 생성하도록 장려하지만, 이미지 프롬프트와의 정합성이 낮아질 수 있습니다.

예:

>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.set_ip_adapter_scale(0.6)
>>> ...

unload_ip_adapter

< >

( )

IP Adapter 가중치를 언로드합니다.

예:

>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.unload_ip_adapter()
>>> ...

IPAdapterMaskProcessor

클래스 diffusers.IPAdapterMaskProcessor

< >

( do_resize: bool = Truevae_scale_factor: int = 8resample: str = 'lanczos'do_normalize: bool = Falsedo_binarize: bool = Truedo_convert_grayscale: bool = True )

매개변수

  • do_resize (bool, 선택 사항, 기본값 True) — 이미지의 (height, width) 차원을 vae_scale_factor의 배수로 축소할지 여부.
  • vae_scale_factor (int, 선택 사항, 기본값 8) — VAE scale factor입니다. do_resize가 True인 경우 이미지는 이 배수의 배수로 자동으로 리사이즈됩니다.
  • resample (str, 선택 사항, 기본값 lanczos) — 이미지 크기 조정 시 사용할 리샘플링 필터.
  • do_normalize (bool, 선택 사항, 기본값 False) — 이미지를 [-1,1] 범위로 정규화할지 여부입니다.
  • do_binarize (bool, 선택 사항, 기본값 True) — 이미지를 0/1로 바이너리화할지 여부입니다.
  • do_convert_grayscale (bool, 선택 사항, 기본값 True) — 이미지를 회색조 형식으로 변환할지 여부입니다.

IP Adapter 이미지 마스크용 이미지 프로세서.

다운샘플링

< >

( mask: Tensorbatch_size: intnum_queries: intvalue_embed_dim: int ) → torch.Tensor

매개변수

  • mask (torch.Tensor) — IPAdapterMaskProcessor.preprocess()로 생성된 입력 마스크 텐서입니다.
  • batch_size (int) — 배치 크기입니다.
  • num_queries (int) — 쿼리의 수입니다.
  • value_embed_dim (int) — 값 임베딩의 차원입니다.

반환값

torch.Tensor

다운샘플링된 마스크 텐서.

제공된 mask 텐서를 스케일된 dot-product attention에 필요한 차원에 맞게 다운샘플링합니다. mask의 종횡비가 출력 이미지의 종횡비와 일치하지 않으면 경고가 발생합니다.

Update on GitHub