Diffusers documentation

IP-Adapter

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

IP-Adapter

IP-Adapter es un adaptador ligero que permite usar una imagen como prompt para un modelo de difusión. Este método desacopla las capas de atención cruzada de las características de imagen y texto. Las características de imagen se generan a partir de un codificador de imágenes.

Aprende a cargar y usar un punto de control y una imagen de IP-Adapter en la guía de IP-Adapter.

IPAdapterMixin

clase diffusers.loaders.IPAdapterMixin

< >

( )

Mixin para gestionar IP Adapters.

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 )

Parámetros

  • pretrained_model_name_or_path_or_dict (str o list[str] o os.PathLike o list[os.PathLike] o dict o list[dict]) — Puede ser:
    • Una cadena de texto, el model id (por ejemplo, google/ddpm-celebahq-256) de un modelo preentrenado alojado en el Hub.
    • Una ruta a un directorio (por ejemplo, ./my_model_directory) que contiene los pesos del modelo guardados con ModelMixin.save_pretrained().
    • Un diccionario de estado de torch.
  • subfolder (str o list[str]) — La ubicación de la subcarpeta de un archivo de modelo dentro de un repositorio de modelos más grande en el Hub o localmente. Si se pasa una lista, debe tener la misma longitud que weight_name.
  • weight_name (str o list[str]) — El nombre del archivo de pesos a cargar. Si se pasa una lista, debe tener la misma longitud que subfolder.
  • image_encoder_folder (str, opcional, valor predeterminado image_encoder) — La ubicación de la subcarpeta del codificador de imágenes dentro de un repositorio de modelos más grande en el Hub o localmente. Pase None para no cargar el codificador de imágenes. Si el codificador de imágenes se encuentra en una carpeta dentro de subfolder, solo necesita pasar el nombre de la carpeta que contiene los pesos del codificador de imágenes, por ejemplo, image_encoder_folder="image_encoder". Si el codificador de imágenes se encuentra en una carpeta distinta de subfolder, debe pasar la ruta a la carpeta que contiene los pesos del codificador de imágenes, por ejemplo, image_encoder_folder="different_subfolder/image_encoder".
  • cache_dir (str | os.PathLike, opcional) — Ruta a un directorio donde se almacena en caché la configuración de un modelo preentrenado descargado si no se utiliza la caché estándar.
  • force_download (bool, opcional, valor predeterminado False) — Indica si se debe forzar la (re)descarga de los pesos del modelo y los archivos de configuración, ignorando las versiones en caché si existen.
  • proxies (dict[str, str], opcional) — Un diccionario de servidores proxy a utilizar por protocolo o punto de acceso, por ejemplo, {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Los proxies se utilizan en cada solicitud.
  • local_files_only (bool, opcional, valor predeterminado False) — Indica si se deben cargar únicamente los pesos y archivos de configuración del modelo locales. Si se establece en True, el modelo no se descargará desde el Hub.
  • token (str o bool, opcional) — El token que se usará como autorización HTTP bearer para los archivos remotos. Si True, se utiliza el token generado desde diffusers-cli login (almacenado en ~/.huggingface).
  • revision (str, opcional, valor predeterminado "main") — La versión específica del modelo que se va a utilizar. Puede ser el nombre de una rama, el nombre de una etiqueta, un id de commit o cualquier identificador permitido por Git.
  • low_cpu_mem_usage (bool, opcional, por defecto True si la versión de torch >= 1.9.0, en caso contrario False) — Acelera la carga del modelo cargando solo los pesos preentrenados y sin inicializar los pesos. Esto también intenta no usar más de 1x el tamaño del modelo en memoria de CPU (incluida la memoria pico) durante la carga del modelo. Solo compatible con PyTorch >= 1.9.0. Si estás usando una versión anterior de PyTorch, establecer este argumento en True generará un error.

set_ip_adapter_scale

< >

( scale )

Establece las escalas de IP-Adapter por bloque de transformador. La entrada scale puede ser una sola configuración o una lista de configuraciones para un control granular sobre el comportamiento de cada IP-Adapter. Una configuración puede ser un float o un diccionario.

Ejemplo:

# 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

< >

( )

Descarga los pesos del IP Adapter

Ejemplos:

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

SD3IPAdapterMixin

clase diffusers.loaders.SD3IPAdapterMixin

< >

( )

Mixin para gestionar adaptadores IP de StableDiffusion 3.

is_ip_adapter_active

< >

( ) → bool

Devuelve

bool

Verdadero cuando IP-Adapter está cargado y alguna capa tiene scale > 0.

Comprueba si IP-Adapter está cargado y scale > 0.

La escala de IP-Adapter controla la influencia del prompt de imagen frente al prompt de texto. Cuando este valor se establece en 0, el contexto de la imagen es irrelevante.

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 )

Parámetros

  • pretrained_model_name_or_path_or_dict (str o os.PathLike o dict) — Puede ser:
    • Una cadena de texto, el model id (por ejemplo, google/ddpm-celebahq-256) de un modelo preentrenado alojado en el Hub.
    • Una ruta a un directorio (por ejemplo, ./my_model_directory) que contiene los pesos del modelo guardados con ModelMixin.save_pretrained().
    • Un diccionario de estado de torch.
  • weight_name (str, por defecto “ip-adapter.safetensors”) — El nombre del archivo de pesos a cargar. Si se pasa una lista, debe tener la misma longitud que subfolder.
  • subfolder (str, opcional) — La ubicación de la subcarpeta de un archivo de modelo dentro de un repositorio de modelos más grande en el Hub o localmente. Si se pasa una lista, debe tener la misma longitud que weight_name.
  • image_encoder_folder (str, opcional, valor predeterminado image_encoder) — La ubicación de la subcarpeta del codificador de imágenes dentro de un repositorio de modelos más grande en el Hub o localmente. Pase None para no cargar el codificador de imágenes. Si el codificador de imágenes se encuentra en una carpeta dentro de subfolder, solo necesita pasar el nombre de la carpeta que contiene los pesos del codificador de imágenes, por ejemplo, image_encoder_folder="image_encoder". Si el codificador de imágenes se encuentra en una carpeta distinta de subfolder, debe pasar la ruta a la carpeta que contiene los pesos del codificador de imágenes, por ejemplo, image_encoder_folder="different_subfolder/image_encoder".
  • cache_dir (str | os.PathLike, opcional) — Ruta a un directorio donde se almacena en caché la configuración de un modelo preentrenado descargado si no se utiliza la caché estándar.
  • force_download (bool, opcional, valor predeterminado False) — Indica si se debe forzar la (re)descarga de los pesos del modelo y los archivos de configuración, ignorando las versiones en caché si existen.
  • proxies (dict[str, str], opcional) — Un diccionario de servidores proxy a utilizar por protocolo o punto de acceso, por ejemplo, {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Los proxies se utilizan en cada solicitud.
  • local_files_only (bool, opcional, valor predeterminado False) — Indica si se deben cargar únicamente los pesos y archivos de configuración del modelo locales. Si se establece en True, el modelo no se descargará desde el Hub.
  • token (str o bool, opcional) — El token que se usará como autorización HTTP bearer para los archivos remotos. Si True, se utiliza el token generado desde diffusers-cli login (almacenado en ~/.huggingface).
  • revision (str, opcional, valor predeterminado "main") — La versión específica del modelo que se va a utilizar. Puede ser el nombre de una rama, el nombre de una etiqueta, un id de commit o cualquier identificador permitido por Git.
  • low_cpu_mem_usage (bool, opcional, por defecto True si la versión de torch >= 1.9.0, en caso contrario False) — Acelera la carga del modelo cargando solo los pesos preentrenados y sin inicializar los pesos. Esto también intenta no usar más de 1x el tamaño del modelo en memoria de CPU (incluida la memoria pico) durante la carga del modelo. Solo compatible con PyTorch >= 1.9.0. Si estás usando una versión anterior de PyTorch, establecer este argumento en True generará un error.

set_ip_adapter_scale

< >

( scale: float )

Parámetros

  • scale (float) — Escala de IP-Adapter a configurar.

Establece la escala de IP-Adapter, que controla la condicionamiento del prompt de imagen. Un valor de 1.0 significa que el modelo se condiciona únicamente con el prompt de imagen, y 0.0 solo con el prompt de texto. Disminuir este valor anima al modelo a generar imágenes más diversas, aunque pueden no estar tan alineadas con el prompt de imagen.

Ejemplo:

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

unload_ip_adapter

< >

( )

Descarga los pesos del IP Adapter.

Ejemplo:

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

IPAdapterMaskProcessor

clase diffusers.IPAdapterMaskProcessor

< >

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

Parámetros

  • do_resize (bool, opcional, valor predeterminado True) — Si se debe reducir las dimensiones (altura, ancho) de la imagen a múltiplos de vae_scale_factor.
  • vae_scale_factor (int, opcional, valor predeterminado 8) — Factor de escala del VAE. Si do_resize es True, la imagen se redimensiona automáticamente a múltiplos de este factor.
  • resample (str, opcional, valor predeterminado lanczos) — Filtro de remuestreo que se utilizará al redimensionar la imagen.
  • do_normalize (bool, opcional, valor predeterminado False) — Si se debe normalizar la imagen a [-1,1].
  • do_binarize (bool, opcional, valor predeterminado True) — Si se debe binarizar la imagen a 0/1.
  • do_convert_grayscale (bool, opcional, valor predeterminado True) — Si se convierten las imágenes al formato de escala de grises.

Procesador de imágenes para máscaras de imagen de IP Adapter.

downsample

< >

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

Parámetros

  • mask (torch.Tensor) — El tensor de máscara de entrada generado con IPAdapterMaskProcessor.preprocess().
  • batch_size (int) — El tamaño del lote.
  • num_queries (int) — El número de consultas.
  • value_embed_dim (int) — La dimensionalidad de las incrustaciones de valor.

Devuelve

torch.Tensor

El tensor de máscara con muestreo descendente.

Realiza el downsampling del tensor de máscara proporcionado para que coincida con las dimensiones esperadas para la atención de producto punto escalado. Si la relación de aspecto de la máscara no coincide con la relación de aspecto de la imagen de salida, se emite una advertencia.

Update on GitHub