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 — это лёгкий адаптер, позволяющий использовать изображение в качестве промпта для диффузионной модели. Этот метод разделяет слои кросс-внимания для признаков изображения и текста. Признаки изображения генерируются с помощью энкодера изображений.

Узнайте, как загрузить и использовать контрольную точку и изображение IP-Adapter в руководстве IP-Adapter.

IPAdapterMixin

класс diffusers.loaders.IPAdapterMixin

< >

( )

Миксин для работы с IP-адаптерами.

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]) — Может быть:
    • Строка, идентификатор модели (например, google/ddpm-celebahq-256) предобученной модели, размещенной на Hub.
    • Путь к каталогу (например, ./my_model_directory), содержащему веса модели, сохранённые с помощью ModelMixin.save_pretrained().
    • Словарь состояния torch.
  • subfolder (str or 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.
  • low_cpu_mem_usage (bool, необязательный, по умолчанию True, если версия torch >= 1.9.0, иначе False) — Ускоряет загрузку модели, загружая только предобученные веса и не инициализируя их. Это также позволяет не использовать более 1x размера модели в оперативной памяти CPU (включая пиковое потребление) при загрузке модели. Поддерживается только для PyTorch >= 1.9.0. Если вы используете более старую версию PyTorch, установка этого аргумента в True вызовет ошибку.

set_ip_adapter_scale

< >

( scale )

Устанавливает масштабы 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 Adapter

Примеры:

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

SD3IPAdapterMixin

класс diffusers.loaders.SD3IPAdapterMixin

< >

( )

Миксин для работы с IP-адаптерами StableDiffusion 3.

is_ip_adapter_active

< >

( ) → bool

Возвращает

bool

Истина, если IP-Adapter загружен и у любого слоя scale > 0.

Проверяет, загружен ли 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) — Может быть одним из следующих:
    • Строка, идентификатор модели (например, 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

< >

( scale: float )

Параметры

  • scale (float) — Масштаб 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 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) — Определяет, следует ли масштабировать размеры изображения (высота, ширина) до кратных 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

< >

( 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

Тензор маски после уменьшения разрешения.

Уменьшает размер предоставленного тензора маски, чтобы он соответствовал ожидаемым размерам для масштабированного внимания на основе скалярного произведения. Если соотношение сторон маски не совпадает с соотношением сторон выходного изображения, выводится предупреждение.

Update on GitHub