Diffusers 文件

IP-Adapter

Hugging Face's logo
加入 Hugging Face 社群

並獲得增強的文件體驗

開始使用

IP-Adapter

IP-Adapter 是一種輕量級介面卡,能夠透過影像來提示擴散模型。該方法將影像和文字特徵的交叉注意力層解耦。影像特徵由影像編碼器生成。

請查閱 IP-Adapter 載入 指南以瞭解如何載入 IP-Adapter 檢查點和影像,並查閱 使用 指南以瞭解如何使用它。

IPAdapterMixin

class diffusers.loaders.IPAdapterMixin

< >

( )

用於處理 IP 介面卡的 Mixin。

load_ip_adapter

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.List[str], typing.Dict[str, torch.Tensor]] subfolder: typing.Union[str, typing.List[str]] weight_name: typing.Union[str, typing.List[str]] image_encoder_folder: typing.Optional[str] = 'image_encoder' **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (strList[str]os.PathLikeList[os.PathLike]dictList[dict]) — 可以是:

    • Hub 上託管的預訓練模型的模型 ID 字串(例如 google/ddpm-celebahq-256)。
    • 包含使用 ModelMixin.save_pretrained() 儲存的模型權重的目錄路徑(例如 ./my_model_directory)。
    • 一個 torch 狀態字典
  • subfolder (strList[str]) — Hub 或本地較大模型倉庫中模型檔案的子資料夾位置。如果傳入列表,其長度應與 weight_name 相同。
  • weight_name (strList[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 (Union[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 (strbool, 可選) — 用作遠端檔案 HTTP bearer 授權的令牌。如果為 True,則使用 diffusers-cli login 生成的令牌(儲存在 ~/.huggingface 中)。
  • revision (str, 可選, 預設為 "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • low_cpu_mem_usage (bool, 可選, 如果 torch 版本 >= 1.9.0 則預設為 True,否則為 False) — 透過僅載入預訓練權重而不初始化權重來加速模型載入。這還嘗試在載入模型時不超過 CPU 記憶體中模型大小的 1 倍(包括峰值記憶體)。僅支援 PyTorch >= 1.9.0。如果您使用的是舊版 PyTorch,將此引數設定為 True 將引發錯誤。

set_ip_adapter_scale

< >

( scale )

按每個 Transformer 塊設定 IP-Adapter 縮放。輸入 scale 可以是單個配置或一個配置列表,用於對每個 IP-Adapter 的行為進行精細控制。配置可以是浮點數或字典。

示例

# 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 介面卡權重

示例

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

SD3IPAdapterMixin

class diffusers.loaders.SD3IPAdapterMixin

< >

( )

用於處理 StableDiffusion 3 IP 介面卡的 Mixin。

is_ip_adapter_active

< >

( ) bool

返回

布林值

當 IP-Adapter 載入且任意層的縮放比例 > 0 時為 True。

檢查 IP-Adapter 是否已載入且縮放比例 > 0。

IP-Adapter 縮放比例控制影像提示相對於文字提示的影響。當此值設定為 0 時,影像上下文無關緊要。

load_ip_adapter

< >

( pretrained_model_name_or_path_or_dict: typing.Union[str, typing.Dict[str, torch.Tensor]] weight_name: str = 'ip-adapter.safetensors' subfolder: typing.Optional[str] = None image_encoder_folder: typing.Optional[str] = 'image_encoder' **kwargs )

引數

  • pretrained_model_name_or_path_or_dict (stros.PathLikedict) — 可以是:
    • Hub 上託管的預訓練模型的模型 ID 字串(例如 google/ddpm-celebahq-256)。
    • 包含使用 ModelMixin.save_pretrained() 儲存的模型權重的目錄路徑(例如 ./my_model_directory)。
    • 一個 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 (Union[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 (strbool, 可選) — 用作遠端檔案 HTTP bearer 授權的令牌。如果為 True,則使用 diffusers-cli login 生成的令牌(儲存在 ~/.huggingface 中)。
  • revision (str, 可選, 預設為 "main") — 要使用的特定模型版本。它可以是分支名稱、標籤名稱、提交 ID 或 Git 允許的任何識別符號。
  • 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 (浮點數) — 要設定的 IP-Adapter 縮放比例。

設定 IP-Adapter 縮放比例,它控制影像提示條件。值為 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 介面卡權重。

示例

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

IPAdapterMaskProcessor

diffusers.image_processor.IPAdapterMaskProcessor

< >

( do_resize: bool = True vae_scale_factor: int = 8 resample: str = 'lanczos' do_normalize: bool = False do_binarize: bool = True do_convert_grayscale: bool = True )

引數

  • do_resize (bool, 可選, 預設為 True) — 是否將影像的 (高度, 寬度) 尺寸下采樣為 vae_scale_factor 的倍數。
  • vae_scale_factor (int, 可選, 預設為 8) — VAE 縮放因子。如果 do_resizeTrue,影像會自動調整大小以適應此因子的倍數。
  • resample (str, 可選, 預設為 lanczos) — 調整影像大小時使用的重取樣濾波器。
  • do_normalize (bool, 可選, 預設為 False) — 是否將影像歸一化到 [-1,1] 範圍。
  • do_binarize (bool, 可選, 預設為 True) — 是否將影像二值化為 0/1。
  • do_convert_grayscale (bool, 可選, 預設為 True) — 是否將影像轉換為灰度格式。

IP Adapter 影像遮罩的影像處理器。

下采樣

< >

( mask: Tensor batch_size: int num_queries: int value_embed_dim: int ) torch.Tensor

引數

  • mask (torch.Tensor) — 使用 IPAdapterMaskProcessor.preprocess() 生成的輸入遮罩張量。
  • batch_size (int) — 批處理大小。
  • num_queries (int) — 查詢的數量。
  • value_embed_dim (int) — 值嵌入的維度。

返回

torch.Tensor

下采樣後的遮罩張量。

對提供的遮罩張量進行下采樣,使其與縮放點積注意的預期維度匹配。如果遮罩的寬高比與輸出影像的寬高比不匹配,則會發出警告。

< > 在 GitHub 上更新

© . This site is unofficial and not affiliated with Hugging Face, Inc.