Diffusers 文档

IP 适配器

Hugging Face's logo
加入 Hugging Face 社区

并使用增强版文档体验

上手

IP-Adapter

IP-Adapter 是一款轻量级适配器,用于使用图像提示扩散模型。此方法隔离了图像和文本特征的交叉注意层。图像特征由图像编码器生成。

了解如何在 IP-Adapter 加载指南中加载 IP-Adapter 检查点和图像,你可以在 用法指南中查看如何使用它。

IPAdapterMixin

diffusers.loaders.IPAdapterMixin

< >

( )

IP Adapter 相关的 Mixin。

load_ip_adapter

< >

( pretrained_model_name_or_path_or_dict: Union subfolder: Union weight_name: Union image_encoder_folder: Optional = 'image_encoder' **kwargs )

参数

  • pretrained_model_name_or_path_or_dict (strList[str]os.PathLikeList[os.PathLike]dictList[dict]) — 可以是任一选项:

    • 字符串,预训练模型的模型 ID(例如 google/ddpm-celebahq-256),该模型托管在 Hub 上。
    • 指向包含使用 ModelMixin.save_pretrained() 保存的模型权重的目录(例如 ./my_model_directory)的路径。
    • 一个Torch 状态字典
  • subfolder (strList[str]) — Hub 上更大的模型仓库或本地中模型文件的子文件夹位置。若传递了一个列表,则其长度应与 weight_name 相同。
  • weight_name (strList[str]) — 要加载的权重文件的名称。如果传入列表,则其长度应与 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 (Union[str, os.PathLike]可选) — 下载的预训练模型配置缓存的目录路径,如果未使用标准缓存。
  • force_download (bool可选,默认为False) — 是否强制(重新)下载模型权重和配置文件,覆盖存在的缓存版本。
  • 代理 (Dict[str, str]可选) — 用于根据协议或端点使用的代理服务器字典,例如, {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。代理服务器用于每个请求。
  • 仅限本地文件 (bool可选,默认为 False) — 是否仅加载符合当地模型权重和配置文件。如果设置为 True,不会从 Hub 下载该模型。
  • 令牌 (strbool可选) — 用于远程文件的 HTTP 持有者授权的令牌。如果为 True,则使用从 diffusers-cli login (存储在 ~/.huggingface) 中生成的令牌。
  • revision (str可选,默认为 "main") — 要使用的特定模型版本。它可以是分支名称、标签名称、提交 ID 或 Git 允许的任何标识符。
  • low_cpu_mem_usage (布尔值可选,默认为 True,如果火炬版本 >= 1.9.0 则为 False) — 仅加载预训练权重而不初始化权重,从而加快模型加载速度。这还尝试在加载模型时不使用超过 1 倍的 CPU 内存(包括峰值内存)。仅支持 PyTorch >= 1.9.0。如果你使用的是旧版 PyTorch,则将此参数设置为 True 将引发错误。
  • set_ip_adapter_scale

    < >

    ( scale )

    按变压器块设置 IP 适配器比例。输入 scale 可以是单个配置或配置列表,以便对每个 IP 适配器行为进行精细控制。配置可以是浮点数或字典。

    示例

    # 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 适配器权重

    示例

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

    IPAdapterMaskProcessor

    diffusers.image_processor.IPAdapterMaskProcessor

  • do_resize (bool, 可选, 默认为 True) — 是否要将图像的 (高度, 宽度) 尺寸按 vae_scale_factor 的倍数缩小。
  • vae_scale_factor (int, 可选, 默认为 8) — VAE 缩放系数。如果 do_resizeTrue,图像会自动按该系数的倍数进行缩放。
  • resample (str, 可选,默认为 lanczos) — 在调整图像尺寸时使用的重采样滤镜。
  • do_normalize (bool, 可选,默认为 False) — 是否将图像标准化为 [-1,1]。
  • do_convert_grayscale (布尔可选,默认为 True) — 是否将图像转换为灰度格式。
  • IP 适配器图像掩码的图像处理器。

    降采样

    < >

    ( 掩码: 张量 批大小: int 查询次数: int value_embed_dim: int ) torch.张量

    参数

  • mask (torch.Tensor) — 使用 IPAdapterMaskProcessor.preprocess() 生成的输入遮罩张量。
  • batch_size (int) — 批量大小。
  • value_embed_dim (int) — 值嵌入的维数。
  • 返回

    torch.Tensor

    下采样掩码张量。

    对提供的掩码张量进行下采样,使其匹配缩放点积注意力的预期尺寸。如果掩码的纵横比与目标图像的纵横比不匹配,则会发出警告。

    < > 更新 GitHub 上的