Buckets:

mishig's picture
|
download
raw
14.6 kB
# IP-Adapter
[IP-Adapter](https://hf.co/papers/2308.06721) 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.
> [!TIP]
> Aprende a cargar y usar un punto de control y una imagen de IP-Adapter en la guía de [IP-Adapter](../../using-diffusers/ip_adapter).
## IPAdapterMixin[[diffusers.loaders.IPAdapterMixin]]
#### diffusers.loaders.IPAdapterMixin[[diffusers.loaders.IPAdapterMixin]]
```python
diffusers.loaders.IPAdapterMixin()
```
[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/ip_adapter.py#L54)
Mixin para gestionar IP Adapters.
#### load_ip_adapter[[diffusers.loaders.IPAdapterMixin.load_ip_adapter]]
```python
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)
```
[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/ip_adapter.py#L57)
**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()](/docs/diffusers/main/es/api/models/overview#diffusers.ModelMixin.save_pretrained). - Un [torch state dict](https://pytorch.org/tutorials/beginner/saving_loading_models.html#what-is-a-state-dict).
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*, por defecto `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. Pasa `None` para no cargar el codificador de imágenes. Si el codificador de imágenes se encuentra en una carpeta dentro de `subfolder`, solo necesitas 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`, debes 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, reemplazando 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 localmente. 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 archivos remotos. Si es `True`, se utiliza el token generado por `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 no inicializando los pesos. Esto también intenta no usar más de 1x el tamaño del modelo en la memoria de CPU (incluida la memoria pico) mientras se carga el modelo. Solo se admite para 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[[diffusers.loaders.IPAdapterMixin.set_ip_adapter_scale]]
```python
set_ip_adapter_scale(scale)
```
[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/ip_adapter.py#L252)
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:
```py
# 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[[diffusers.loaders.IPAdapterMixin.unload_ip_adapter]]
```python
unload_ip_adapter()
```
[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/ip_adapter.py#L305)
Descarga los pesos del IP Adapter
Ejemplos:
```python
>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.unload_ip_adapter()
>>> ...
```
## SD3IPAdapterMixin[[diffusers.loaders.SD3IPAdapterMixin]]
#### diffusers.loaders.SD3IPAdapterMixin[[diffusers.loaders.SD3IPAdapterMixin]]
```python
diffusers.loaders.SD3IPAdapterMixin()
```
[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/ip_adapter.py#L885)
Mixin para gestionar adaptadores IP de StableDiffusion 3.
#### is_ip_adapter_active[[diffusers.loaders.SD3IPAdapterMixin.is_ip_adapter_active]]
```python
is_ip_adapter_active()
```
[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/ip_adapter.py#L888)
**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[[diffusers.loaders.SD3IPAdapterMixin.load_ip_adapter]]
```python
load_ip_adapter(pretrained_model_name_or_path_or_dict: str | dict[str, torch.Tensor], weight_name: str = 'ip-adapter.safetensors', subfolder: str | None = None, image_encoder_folder: str | None = 'image_encoder', **kwargs)
```
[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/ip_adapter.py#L906)
**Parámetros:**
pretrained_model_name_or_path_or_dict (`str` o `os.PathLike` o `dict`) : Puede ser: - Una cadena, 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()](/docs/diffusers/main/es/api/models/overview#diffusers.ModelMixin.save_pretrained). - Un [torch state dict](https://pytorch.org/tutorials/beginner/saving_loading_models.html#what-is-a-state-dict).
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*, por defecto `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. Pasa `None` para no cargar el codificador de imágenes. Si el codificador de imágenes se encuentra en una carpeta dentro de `subfolder`, solo necesitas 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`, debes 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, reemplazando 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 localmente. 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 archivos remotos. Si es `True`, se utiliza el token generado por `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 no inicializando los pesos. Esto también intenta no usar más de 1x el tamaño del modelo en la memoria de CPU (incluida la memoria pico) mientras se carga el modelo. Solo se admite para 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[[diffusers.loaders.SD3IPAdapterMixin.set_ip_adapter_scale]]
```python
set_ip_adapter_scale(scale: float)
```
[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/ip_adapter.py#L1054)
**Parámetros:**
scale (float) : Escala del 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. Reducir este valor anima al modelo a generar imágenes más diversas, aunque pueden no estar tan alineadas con el prompt de imagen.
Ejemplo:
```python
>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.set_ip_adapter_scale(0.6)
>>> ...
```
#### unload_ip_adapter[[diffusers.loaders.SD3IPAdapterMixin.unload_ip_adapter]]
```python
unload_ip_adapter()
```
[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/loaders/ip_adapter.py#L1077)
Descarga los pesos del IP Adapter.
Ejemplo:
```python
>>> # Assuming `pipeline` is already loaded with the IP Adapter weights.
>>> pipeline.unload_ip_adapter()
>>> ...
```
## IPAdapterMaskProcessor[[diffusers.IPAdapterMaskProcessor]]
#### diffusers.IPAdapterMaskProcessor[[diffusers.IPAdapterMaskProcessor]]
```python
diffusers.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)
```
[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/image_processor.py#L1277)
**Parámetros:**
do_resize (`bool`, *opcional*, valor predeterminado `True`) : Si se deben 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 utiliza al redimensionar la imagen.
do_normalize (`bool`, *opcional*, por defecto `False`) : Si se debe normalizar la imagen a [-1,1].
do_binarize (`bool`, *opcional*, por defecto `True`) : Si se debe binarizar la imagen a 0/1.
do_convert_grayscale (`bool`, *opcional*, por defecto `True`) : Si se deben convertir las imágenes al formato de escala de grises.
Procesador de imágenes para máscaras de imagen de IP Adapter.
#### downsample[[diffusers.IPAdapterMaskProcessor.downsample]]
```python
downsample(mask: Tensor, batch_size: int, num_queries: int, value_embed_dim: int)
```
[Fuente](https://github.com/huggingface/diffusers/blob/main/src/diffusers/image_processor.py#L1318)
**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.

Xet Storage Details

Size:
14.6 kB
·
Xet hash:
b2f12686f9df5c92a9765e47a1ba1a3d133373be0a5336c52cb8c815997db79f

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.