Diffusers documentation
IP-Adapter
IP-Adapter
IP-Adapter — это лёгкий адаптер, позволяющий использовать изображение в качестве промпта для диффузионной модели. Этот метод разделяет слои кросс-внимания для признаков изображения и текста. Признаки изображения генерируются с помощью энкодера изображений.
Узнайте, как загрузить и использовать контрольную точку и изображение IP-Adapter в руководстве IP-Adapter.
IPAdapterMixin
Миксин для работы с IP-адаптерами.
load_ip_adapter
< source >( 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]) — Может быть:- Строка, идентификатор модели (например,
google/ddpm-celebahq-256) предобученной модели, размещенной на Hub. - Путь к каталогу (например,
./my_model_directory), содержащему веса модели, сохранённые с помощью ModelMixin.save_pretrained(). - Словарь состояния torch.
- Строка, идентификатор модели (например,
- subfolder (
strorlist[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. - low_cpu_mem_usage (
bool, необязательный, по умолчаниюTrue, если версия torch >= 1.9.0, иначеFalse) — Ускоряет загрузку модели, загружая только предобученные веса и не инициализируя их. Это также позволяет не использовать более 1x размера модели в оперативной памяти CPU (включая пиковое потребление) при загрузке модели. Поддерживается только для PyTorch >= 1.9.0. Если вы используете более старую версию PyTorch, установка этого аргумента вTrueвызовет ошибку.
Устанавливает масштабы 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 Adapter
SD3IPAdapterMixin
Миксин для работы с IP-адаптерами StableDiffusion 3.
is_ip_adapter_active
< source >( ) → bool
Возвращает
bool
Истина, если IP-Adapter загружен и у любого слоя scale > 0.
Проверяет, загружен ли IP-Adapter и что scale > 0.
IP-Adapter scale управляет влиянием изображения-промпта по сравнению с текстовым промптом. Если это значение установлено в 0, контекст изображения не имеет значения.
load_ip_adapter
< source >( 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) — Может быть одним из следующих:- Строка, идентификатор модели (например,
google/ddpm-celebahq-256) предобученной модели, размещенной на Hub. - Путь к каталогу (например,
./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. - low_cpu_mem_usage (
bool, необязательный, по умолчаниюTrue, если версия torch >= 1.9.0, иначеFalse) — Ускоряет загрузку модели, загружая только предобученные веса и не инициализируя их. Это также позволяет не использовать более 1x размера модели в оперативной памяти CPU (включая пиковое потребление) при загрузке модели. Поддерживается только для PyTorch >= 1.9.0. Если вы используете более старую версию PyTorch, установка этого аргумента вTrueвызовет ошибку.
set_ip_adapter_scale
< source >( scale: float )
Установите масштаб IP-Adapter, который управляет условным формированием на основе изображения. Значение 1.0 означает, что модель опирается только на изображение, а 0.0 — только на текстовый промпт. Уменьшение этого значения побуждает модель генерировать более разнообразные изображения, однако они могут хуже соответствовать исходному изображению.
Разгружает веса IP Adapter.
IPAdapterMaskProcessor
класс diffusers.IPAdapterMaskProcessor
< source >( 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) — Определяет, следует ли масштабировать размеры изображения (высота, ширина) до кратных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) — Определяет, следует ли преобразовать изображения в формат grayscale.
Обработчик изображений для масок изображений IP Adapter.
downsample
< source >( 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
Тензор маски после уменьшения разрешения.
Уменьшает размер предоставленного тензора маски, чтобы он соответствовал ожидаемым размерам для масштабированного внимания на основе скалярного произведения. Если соотношение сторон маски не совпадает с соотношением сторон выходного изображения, выводится предупреждение.