Diffusers 文件
IP-Adapter
並獲得增強的文件體驗
開始使用
IP-Adapter
IP-Adapter 是一種輕量級介面卡,能夠透過影像來提示擴散模型。該方法將影像和文字特徵的交叉注意力層解耦。影像特徵由影像編碼器生成。
IPAdapterMixin
用於處理 IP 介面卡的 Mixin。
load_ip_adapter
< source >( 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 (
str
或List[str]
或os.PathLike
或List[os.PathLike]
或dict
或List[dict]
) — 可以是:- Hub 上託管的預訓練模型的模型 ID 字串(例如
google/ddpm-celebahq-256
)。 - 包含使用 ModelMixin.save_pretrained() 儲存的模型權重的目錄路徑(例如
./my_model_directory
)。 - 一個 torch 狀態字典。
- Hub 上託管的預訓練模型的模型 ID 字串(例如
- 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 (
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 (
str
或 bool, 可選) — 用作遠端檔案 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
將引發錯誤。
按每個 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)
解除安裝 IP 介面卡權重
SD3IPAdapterMixin
用於處理 StableDiffusion 3 IP 介面卡的 Mixin。
檢查 IP-Adapter 是否已載入且縮放比例 > 0。
IP-Adapter 縮放比例控制影像提示相對於文字提示的影響。當此值設定為 0 時,影像上下文無關緊要。
load_ip_adapter
< source >( 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 (
str
或os.PathLike
或dict
) — 可以是:- Hub 上託管的預訓練模型的模型 ID 字串(例如
google/ddpm-celebahq-256
)。 - 包含使用 ModelMixin.save_pretrained() 儲存的模型權重的目錄路徑(例如
./my_model_directory
)。 - 一個 torch 狀態字典。
- Hub 上託管的預訓練模型的模型 ID 字串(例如
- 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 (
str
或 bool, 可選) — 用作遠端檔案 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
將引發錯誤。
設定 IP-Adapter 縮放比例,它控制影像提示條件。值為 1.0 表示模型僅受影像提示條件限制,0.0 表示僅受文字提示條件限制。降低此值會鼓勵模型生成更多樣化的影像,但它們可能與影像提示的對齊程度不高。
解除安裝 IP 介面卡權重。
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_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: Tensor batch_size: int num_queries: int value_embed_dim: int ) → torch.Tensor
對提供的遮罩張量進行下采樣,使其與縮放點積注意的預期維度匹配。如果遮罩的寬高比與輸出影像的寬高比不匹配,則會發出警告。