Diffusers documentation
IP-Adapter
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
Mixin para lidar com IP Adapters.
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 )
Parâmetros
- pretrained_model_name_or_path_or_dict (
stroulist[str]ouos.PathLikeoulist[os.PathLike]oudictoulist[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.
- Uma string, o id do modelo (por exemplo,
- subfolder (
stroulist[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 queweight_name. - weight_name (
stroulist[str]) — O nome do arquivo de pesos a ser carregado. Se uma lista for passada, ela deve ter o mesmo comprimento quesubfolder. - image_encoder_folder (
str, opcional, padrãoimage_encoder) — A localização da subpasta do codificador de imagem dentro de um repositório de modelo maior no Hub ou localmente. PasseNonepara não carregar o codificador de imagem. Se o codificador de imagem estiver localizado em uma pasta dentro desubfolder, 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 desubfolder, 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ãoFalse) — 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ãoFalse) — Se deve carregar apenas os pesos e arquivos de configuração do modelo localmente. Se definido comoTrue, o modelo não será baixado do Hub. - token (
strou bool, opcional) — O token a ser usado como autorização de bearer HTTP para arquivos remotos. SeTrue, o token gerado pordiffusers-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ãoTruese a versão do torch >= 1.9.0, caso contrárioFalse) — 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 comoTruecausará um erro.
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)Descarrega os pesos do IP Adapter
SD3IPAdapterMixin
Mixin para lidar com IP Adapters do StableDiffusion 3.
is_ip_adapter_active
< source >( ) → 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
< 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 )
Parâmetros
- pretrained_model_name_or_path_or_dict (
strouos.PathLikeoudict) — 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.
- Uma string, o id do modelo (por exemplo,
- 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 quesubfolder. - 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 queweight_name. - image_encoder_folder (
str, opcional, padrãoimage_encoder) — A localização da subpasta do codificador de imagem dentro de um repositório de modelo maior no Hub ou localmente. PasseNonepara não carregar o codificador de imagem. Se o codificador de imagem estiver localizado em uma pasta dentro desubfolder, 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 desubfolder, 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ãoFalse) — 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ãoFalse) — Se deve carregar apenas os pesos e arquivos de configuração do modelo localmente. Se definido comoTrue, o modelo não será baixado do Hub. - token (
strou bool, opcional) — O token a ser usado como autorização de bearer HTTP para arquivos remotos. SeTrue, o token gerado pordiffusers-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ãoTruese a versão do torch >= 1.9.0, caso contrárioFalse) — 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 comoTruecausará um erro.
set_ip_adapter_scale
< source >( scale: float )
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.
Descarrega os pesos do IP Adapter.
IPAdapterMaskProcessor
classe diffusers.IPAdapterMaskProcessor
< source >( 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ãoTrue) — Se as dimensões (altura, largura) da imagem devem ser reduzidas para múltiplos devae_scale_factor. - vae_scale_factor (
int, opcional, padrão8) — Fator de escala do VAE. Sedo_resizeforTrue, a imagem será redimensionada automaticamente para múltiplos deste fator. - resample (
str, opcional, padrãolanczos) — Filtro de reamostragem a ser usado ao redimensionar a imagem. - do_normalize (
bool, opcional, padrãoFalse) — Se a imagem deve ser normalizada para [-1,1]. - do_binarize (
bool, opcional, padrãoTrue) — Se deve binarizar a imagem para 0/1. - do_convert_grayscale (
bool, opcional, padrãoTrue) — 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
< source >( mask: Tensorbatch_size: intnum_queries: intvalue_embed_dim: int ) → torch.Tensor
Parâmetros
- mask (
torch.Tensor) — O tensor de máscara de entrada gerado comIPAdapterMaskProcessor.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.