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.43.0).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

IP-Adapter

IP-Adapter é um adaptador leve que permite usar uma imagem como prompt para um modelo de difusão. Esse método desacopla as camadas de atenção cruzada dos recursos de imagem e texto. Os recursos de imagem são gerados a partir de um codificador de imagem.

Aprenda a carregar e usar um checkpoint e uma imagem do IP-Adapter no guia IP-Adapter.

IPAdapterMixin

classe diffusers.loaders.IPAdapterMixin

< >

( )

Mixin para lidar com 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 ou list[str] ou os.PathLike ou list[os.PathLike] ou dict ou list[dict]) — Pode ser:
    • Uma string, o id do modelo (por exemplo, google/ddpm-celebahq-256) de um modelo pré-treinado hospedado no Hub.
    • Um caminho para um diretório (por exemplo, ./my_model_directory) contendo os pesos do modelo salvos com ModelMixin.save_pretrained().
    • Um torch state dict.
  • subfolder (str ou list[str]) — A localização da subpasta de um arquivo de modelo dentro de um repositório de modelo maior no Hub ou localmente. Se uma lista for passada, ela deve ter o mesmo comprimento que weight_name.
  • weight_name (str ou list[str]) — O nome do arquivo de pesos a ser carregado. Se uma lista for passada, ela deve ter o mesmo comprimento que subfolder.
  • image_encoder_folder (str, opcional, padrão image_encoder) — A localização da subpasta do codificador de imagem dentro de um repositório de modelo maior no Hub ou localmente. Passe None para não carregar o codificador de imagem. Se o codificador de imagem estiver localizado em uma pasta dentro de subfolder, você só precisa passar o nome da pasta que contém os pesos do codificador de imagem, por exemplo, image_encoder_folder="image_encoder". Se o codificador de imagem estiver localizado em uma pasta diferente de subfolder, você deve passar o caminho para a pasta que contém os pesos do codificador de imagem, por exemplo, image_encoder_folder="different_subfolder/image_encoder".
  • cache_dir (str | os.PathLike, opcional) — Caminho para um diretório onde a configuração de um modelo pré-treinado baixado é armazenada em cache, caso o cache padrão não seja utilizado.
  • force_download (bool, opcional, padrão False) — Se deve forçar o (re-)download dos pesos do modelo e dos arquivos de configuração, sobrescrevendo as versões em cache, caso existam.
  • proxies (dict[str, str], opcional) — Um dicionário de servidores proxy a serem usados por protocolo ou endpoint, por exemplo, {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Os proxies são usados em cada solicitação.
  • local_files_only (bool, opcional, padrão False) — Se deve carregar apenas os pesos e arquivos de configuração do modelo localmente. Se definido como True, o modelo não será baixado do Hub.
  • token (str ou bool, opcional) — O token a ser usado como autorização de bearer HTTP para arquivos remotos. Se True, o token gerado por diffusers-cli login (armazenado em ~/.huggingface) é utilizado.
  • revision (str, opcional, padrão "main") — A versão específica do modelo a ser usada. Pode ser o nome de um branch, o nome de uma tag, um id de commit ou qualquer identificador permitido pelo Git.
  • low_cpu_mem_usage (bool, opcional, padrão True se a versão do torch >= 1.9.0, caso contrário False) — Acelera o carregamento do modelo carregando apenas os pesos pré-treinados e não inicializando os pesos. Isso também tenta não usar mais do que 1x o tamanho do modelo na memória de CPU (incluindo a memória de pico) durante o carregamento do modelo. Suportado apenas para PyTorch >= 1.9.0. Se você estiver usando uma versão mais antiga do PyTorch, definir este argumento como True causará um erro.

set_ip_adapter_scale

< >

( scale )

Defina as escalas do IP-Adapter por bloco de transformer. A entrada scale pode ser uma única configuração ou uma lista de configurações para controle granular de cada comportamento do IP-Adapter. Uma configuração pode ser um float ou um dicionário.

Exemplo:

# 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

< >

( )

Descarrega os pesos do IP Adapter

Exemplos:

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

SD3IPAdapterMixin

classe diffusers.loaders.SD3IPAdapterMixin

< >

( )

Mixin para lidar com IP Adapters do StableDiffusion 3.

is_ip_adapter_active

< >

( ) → bool

Retorna

bool

Verdadeiro quando o IP-Adapter está carregado e qualquer camada tem scale > 0.

Verifica se o IP-Adapter está carregado e se scale > 0.

A escala do IP-Adapter controla a influência do prompt de imagem em relação ao prompt de texto. Quando esse valor é definido como 0, o contexto da imagem é 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 ou os.PathLike ou dict) — Pode ser:
    • Uma string, o id do modelo (por exemplo, google/ddpm-celebahq-256) de um modelo pré-treinado hospedado no Hub.
    • Um caminho para um diretório (por exemplo, ./my_model_directory) contendo os pesos do modelo salvos com ModelMixin.save_pretrained().
    • Um torch state dict.
  • weight_name (str, padrão “ip-adapter.safetensors”) — O nome do arquivo de pesos a ser carregado. Se uma lista for passada, ela deve ter o mesmo comprimento que subfolder.
  • subfolder (str, opcional) — A localização da subpasta de um arquivo de modelo dentro de um repositório de modelo maior no Hub ou localmente. Se uma lista for passada, ela deve ter o mesmo comprimento que weight_name.
  • image_encoder_folder (str, opcional, padrão image_encoder) — A localização da subpasta do codificador de imagem dentro de um repositório de modelo maior no Hub ou localmente. Passe None para não carregar o codificador de imagem. Se o codificador de imagem estiver localizado em uma pasta dentro de subfolder, você só precisa passar o nome da pasta que contém os pesos do codificador de imagem, por exemplo, image_encoder_folder="image_encoder". Se o codificador de imagem estiver localizado em uma pasta diferente de subfolder, você deve passar o caminho para a pasta que contém os pesos do codificador de imagem, por exemplo, image_encoder_folder="different_subfolder/image_encoder".
  • cache_dir (str | os.PathLike, opcional) — Caminho para um diretório onde a configuração de um modelo pré-treinado baixado é armazenada em cache, caso o cache padrão não seja utilizado.
  • force_download (bool, opcional, padrão False) — Se deve forçar o (re-)download dos pesos do modelo e dos arquivos de configuração, sobrescrevendo as versões em cache, caso existam.
  • proxies (dict[str, str], opcional) — Um dicionário de servidores proxy a serem usados por protocolo ou endpoint, por exemplo, {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Os proxies são usados em cada solicitação.
  • local_files_only (bool, opcional, padrão False) — Se deve carregar apenas os pesos e arquivos de configuração do modelo localmente. Se definido como True, o modelo não será baixado do Hub.
  • token (str ou bool, opcional) — O token a ser usado como autorização de bearer HTTP para arquivos remotos. Se True, o token gerado por diffusers-cli login (armazenado em ~/.huggingface) é utilizado.
  • revision (str, opcional, padrão "main") — A versão específica do modelo a ser usada. Pode ser o nome de um branch, o nome de uma tag, um id de commit ou qualquer identificador permitido pelo Git.
  • low_cpu_mem_usage (bool, opcional, padrão True se a versão do torch >= 1.9.0, caso contrário False) — Acelera o carregamento do modelo carregando apenas os pesos pré-treinados e não inicializando os pesos. Isso também tenta não usar mais do que 1x o tamanho do modelo na memória de CPU (incluindo a memória de pico) durante o carregamento do modelo. Suportado apenas para PyTorch >= 1.9.0. Se você estiver usando uma versão mais antiga do PyTorch, definir este argumento como True causará um erro.

set_ip_adapter_scale

< >

( scale: float )

Parâmetros

  • scale (float) — Escala do IP-Adapter a ser definida.

Defina a escala do IP-Adapter, que controla a condicionamento do prompt de imagem. Um valor de 1.0 significa que o modelo é condicionado apenas pelo prompt de imagem, e 0.0 apenas pelo prompt de texto. Reduzir esse valor incentiva o modelo a produzir imagens mais diversas, mas elas podem não estar tão alinhadas com o prompt de imagem.

Exemplo:

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

unload_ip_adapter

< >

( )

Descarrega os pesos do IP Adapter.

Exemplo:

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

IPAdapterMaskProcessor

classe 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, padrão True) — Se as dimensões (altura, largura) da imagem devem ser reduzidas para múltiplos de vae_scale_factor.
  • vae_scale_factor (int, opcional, padrão 8) — Fator de escala do VAE. Se do_resize for True, a imagem será redimensionada automaticamente para múltiplos deste fator.
  • resample (str, opcional, padrão lanczos) — Filtro de reamostragem a ser usado ao redimensionar a imagem.
  • do_normalize (bool, opcional, padrão False) — Se a imagem deve ser normalizada para [-1,1].
  • do_binarize (bool, opcional, padrão True) — Se deve binarizar a imagem para 0/1.
  • do_convert_grayscale (bool, opcional, padrão True) — Se as imagens devem ser convertidas para o formato de escala de cinza.

Processador de imagem para máscaras de imagem do IP Adapter.

downsample

< >

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

Parâmetros

  • mask (torch.Tensor) — O tensor de máscara de entrada gerado com IPAdapterMaskProcessor.preprocess().
  • batch_size (int) — O tamanho do lote.
  • num_queries (int) — O número de consultas.
  • value_embed_dim (int) — A dimensionalidade dos embeddings de valor.

Retorna

torch.Tensor

O tensor de máscara com amostragem reduzida.

Reduz a dimensão do tensor de máscara fornecido para corresponder às dimensões esperadas para a atenção de produto escalar. Se a proporção da máscara não corresponder à proporção da imagem de saída, um aviso é emitido.

Update on GitHub