Diffusers 文档

AutoPipeline

Hugging Face's logo
加入 Hugging Face 社区

并获得增强的文档体验

开始使用

AutoPipeline

AutoPipeline 旨在让加载任务的检查点变得容易,而无需了解特定的 pipeline 类。 基于任务,AutoPipeline 会自动从检查点 model_index.json 文件中检索正确的 pipeline 类。

查看 AutoPipeline 教程,了解如何使用此 API!

AutoPipelineForText2Image

class diffusers.AutoPipelineForText2Image

< >

( *args **kwargs )

AutoPipelineForText2Image 是一个通用 pipeline 类,它实例化一个文本到图像 pipeline 类。 特定的底层 pipeline 类是从 from_pretrained()from_pipe() 方法中自动选择的。

此类不能使用 __init__() 实例化(会引发错误)。

类属性

  • config_name (str) — 配置文件名,用于存储所有扩散 pipeline 组件的类名和模块名。

from_pretrained

< >

( pretrained_model_or_path **kwargs )

参数

  • pretrained_model_or_path (stros.PathLike, 可选) — 可以是以下之一:

    • 一个字符串,预训练管道在 Hub 上的 repo id (例如 CompVis/ldm-text2im-large-256)。
    • 一个指向目录的路径(例如 ./my_pipeline_directory/),其中包含使用 save_pretrained() 保存的管道权重。
  • torch_dtype (strtorch.dtype, 可选) — 覆盖默认的 torch.dtype 并使用另一种 dtype 加载模型。如果传入 “auto”,则 dtype 会自动从模型的权重中推导出来。
  • force_download (bool, 可选, 默认为 False) — 是否强制(重新)下载模型权重和配置文件,覆盖缓存版本(如果存在)。
  • cache_dir (Union[str, os.PathLike], 可选) — 下载的预训练模型配置的缓存目录路径(如果未使用标准缓存)。
  • proxies (Dict[str, str], 可选) — 代理服务器字典,用于按协议或端点使用,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。代理服务器用于每个请求。
  • output_loading_info(bool, 可选, 默认为 False) — 是否同时返回一个字典,其中包含缺失的键、意外的键和错误消息。
  • local_files_only (bool, 可选, 默认为 False) — 是否仅加载本地模型权重和配置文件。如果设置为 True,则不会从 Hub 下载模型。
  • token (strbool, 可选) — 用作远程文件 HTTP Bearer 授权的令牌。如果为 True,则使用从 diffusers-cli login 生成的令牌(存储在 ~/.huggingface 中)。
  • revision (str, 可选, 默认为 "main") — 要使用的特定模型版本。它可以是分支名称、标签名称、提交 ID 或 Git 允许的任何标识符。
  • custom_revision (str, 可选, 默认为 "main") — 要使用的特定模型版本。它可以是分支名称、标签名称或提交 ID,类似于从 Hub 加载自定义管道时的 revision。从 GitHub 加载自定义管道时,它可以是 🤗 Diffusers 版本,否则从 Hub 加载时默认为 "main"
  • mirror (str, 可选) — 镜像源,用于解决在中国下载模型时的可访问性问题。我们不保证来源的及时性或安全性,您应参考镜像站点以获取更多信息。
  • device_map (strDict[str, Union[int, str, torch.device]], 可选) — 一个映射,用于指定每个子模块应放置的位置。无需为每个参数/缓冲区名称定义;一旦给定的模块名称包含在内,它的每个子模块都将被发送到同一设备。

    设置 device_map="auto" 以使 🤗 Accelerate 自动计算最优化的 device_map。有关每个选项的更多信息,请参阅设计设备映射

  • max_memory (Dict, 可选) — 设备标识符字典,用于指定最大内存。如果未设置,则默认为每个 GPU 的最大可用内存和可用 CPU RAM。
  • offload_folder (stros.PathLike, 可选) — 如果 device_map 包含值 "disk",则用于卸载权重的路径。
  • offload_state_dict (bool, 可选) — 如果为 True,则临时将 CPU 状态字典卸载到硬盘驱动器,以避免在 CPU 状态字典的权重 + 检查点最大分片的大小不合适时耗尽 CPU RAM。当存在一些磁盘卸载时,默认为 True
  • low_cpu_mem_usage (bool, 可选, 如果 torch 版本 >= 1.9.0 则默认为 True,否则为 False) — 加速模型加载,仅加载预训练权重,而不初始化权重。这还尝试在加载模型时,CPU 内存(包括峰值内存)的使用量不超过模型大小的 1 倍。仅支持 PyTorch >= 1.9.0。如果您使用的是旧版本的 PyTorch,则将此参数设置为 True 将引发错误。
  • use_safetensors (bool, 可选, 默认为 None) — 如果设置为 None,则在 safetensors 权重可用安装了 safetensors 库的情况下,下载 safetensors 权重。如果设置为 True,则强制从 safetensors 权重加载模型。如果设置为 False,则不加载 safetensors 权重。
  • kwargs (剩余的关键字参数字典, 可选) — 可用于覆盖可加载和可保存的变量(特定管道类的管道组件)。被覆盖的组件直接传递给管道的 __init__ 方法。有关更多信息,请参见下面的示例。
  • variant (str, 可选) — 从指定的变体文件名(例如 "fp16""ema")加载权重。当从 from_flax 加载时,此参数将被忽略。

从预训练管道权重实例化一个 text-to-image Pytorch 扩散管道。

from_pretrained() 方法负责通过以下方式返回正确的管道类实例:

  1. 基于 pretrained_model_or_path 的 config 对象的 _class_name 属性检测管道类
  2. 使用管道类名称的模式匹配查找链接到管道类的 text-to-image 管道。

如果传递了 controlnet 参数,它将实例化一个 StableDiffusionControlNetPipeline 对象。

默认情况下,管道设置为评估模式 (model.eval())。

如果您收到以下错误消息,则需要针对您的下游任务微调权重

Some weights of UNet2DConditionModel were not initialized from the model checkpoint at runwayml/stable-diffusion-v1-5 and are newly initialized because the shapes did not match:
- conv_in.weight: found shape torch.Size([320, 4, 3, 3]) in the checkpoint and torch.Size([320, 9, 3, 3]) in the model instantiated
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.

要使用私有或 受限 模型,请使用 huggingface-cli login 登录。

示例

>>> from diffusers import AutoPipelineForText2Image

>>> pipeline = AutoPipelineForText2Image.from_pretrained("runwayml/stable-diffusion-v1-5")
>>> image = pipeline(prompt).images[0]

from_pipe

< >

( pipeline **kwargs )

参数

  • pipeline (DiffusionPipeline) — 实例化的 DiffusionPipeline 对象

从另一个实例化的扩散管道类实例化一个 text-to-image Pytorch 扩散管道。

from_pipe() 方法负责通过使用管道类名称的模式匹配查找链接到管道类的 text-to-image 管道,从而返回正确的管道类实例。

管道包含的所有模块将用于初始化新管道,而无需重新分配额外的内存。

默认情况下,管道设置为评估模式 (model.eval())。

>>> from diffusers import AutoPipelineForText2Image, AutoPipelineForImage2Image

>>> pipe_i2i = AutoPipelineForImage2Image.from_pretrained(
...     "runwayml/stable-diffusion-v1-5", requires_safety_checker=False
... )

>>> pipe_t2i = AutoPipelineForText2Image.from_pipe(pipe_i2i)
>>> image = pipe_t2i(prompt).images[0]

AutoPipelineForImage2Image

diffusers.AutoPipelineForImage2Image

< >

( *args **kwargs )

AutoPipelineForImage2Image 是一个通用 pipeline 类,用于实例化一个 图像到图像 (image-to-image) pipeline 类。特定的底层 pipeline 类会从 from_pretrained()from_pipe() 方法中自动选择。

此类不能使用 __init__() 实例化(会引发错误)。

类属性

  • config_name (str) — 配置文件名,用于存储所有扩散 pipeline 组件的类名和模块名。

from_pretrained

< >

( pretrained_model_or_path **kwargs )

参数

  • pretrained_model_or_path (stros.PathLike, 可选) — 可以是以下之一:

    • 一个字符串,预训练 pipeline 的 repo id (例如 CompVis/ldm-text2im-large-256),托管在 Hub 上。
    • 一个 目录 的路径 (例如 ./my_pipeline_directory/),其中包含使用 save_pretrained() 保存的 pipeline 权重。
  • torch_dtype (strtorch.dtype, 可选) — 覆盖默认的 torch.dtype 并使用另一种 dtype 加载模型。如果传入 “auto”,则 dtype 会从模型的权重中自动推导出来。
  • force_download (bool, 可选, 默认为 False) — 是否强制(重新)下载模型权重和配置文件,覆盖缓存版本(如果存在)。
  • cache_dir (Union[str, os.PathLike], 可选) — 下载的预训练模型配置的缓存目录路径,如果未使用标准缓存。
  • proxies (Dict[str, str], 可选) — 按协议或端点使用的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。代理用于每个请求。
  • output_loading_info(bool, 可选, 默认为 False) — 是否也返回一个字典,其中包含缺失的键、意外的键和错误消息。
  • local_files_only (bool, 可选, 默认为 False) — 是否仅加载本地模型权重和配置文件。如果设置为 True,则不会从 Hub 下载模型。
  • token (strbool, 可选) — 用作远程文件的 HTTP Bearer 授权的 token。如果为 True,则使用从 diffusers-cli login 生成的 token(存储在 ~/.huggingface 中)。
  • revision (str, 可选, 默认为 "main") — 要使用的特定模型版本。它可以是分支名称、标签名称、提交 ID 或 Git 允许的任何标识符。
  • custom_revision (str, 可选, 默认为 "main") — 要使用的特定模型版本。它可以是分支名称、标签名称或提交 ID,类似于从 Hub 加载自定义 pipeline 时的 revision。当从 GitHub 加载自定义 pipeline 时,它可以是 🤗 Diffusers 版本,否则从 Hub 加载时,它默认为 "main"
  • mirror (str, 可选) — 镜像源,用于解决在中国下载模型时的可访问性问题。我们不保证来源的及时性或安全性,您应参考镜像站点以获取更多信息。
  • device_map (strDict[str, Union[int, str, torch.device]], 可选) — 一个映射,指定每个子模块应放置的位置。无需为每个参数/缓冲区名称定义;一旦给定的模块名称在其中,它的每个子模块都将被发送到同一设备。

    设置 device_map="auto" 以使 🤗 Accelerate 自动计算最优化的 device_map。有关每个选项的更多信息,请参阅 设计设备映射

  • max_memory (Dict, 可选) — 最大内存的设备标识符字典。如果未设置,则默认为每个 GPU 的最大可用内存和可用的 CPU RAM。
  • offload_folder (stros.PathLike, 可选) — 如果 device_map 包含值 "disk",则为卸载权重的路径。
  • offload_state_dict (bool, 可选) — 如果为 True,则将 CPU 状态字典临时卸载到硬盘驱动器,以避免在 CPU 状态字典的权重 + checkpoint 的最大分片不适合时耗尽 CPU RAM。当存在一些磁盘卸载时,默认为 True
  • low_cpu_mem_usage (bool, 可选, 如果 torch 版本 >= 1.9.0 则默认为 True,否则为 False) — 加速模型加载,仅加载预训练权重,而不初始化权重。这也会尝试在加载模型时,在 CPU 内存中(包括峰值内存)不使用超过 1 倍的模型大小。仅支持 PyTorch >= 1.9.0。如果您使用的是旧版本的 PyTorch,则将此参数设置为 True 将引发错误。
  • use_safetensors (bool, 可选, 默认为 None) — 如果设置为 None,则当 safetensors 权重可用 安装了 safetensors 库时,将下载 safetensors 权重。如果设置为 True,则强制从 safetensors 权重加载模型。如果设置为 False,则不加载 safetensors 权重。
  • kwargs (剩余的关键字参数字典, 可选) — 可用于覆盖可加载和可保存的变量(特定 pipeline 类的 pipeline 组件)。覆盖的组件将直接传递给 pipeline 的 __init__ 方法。有关更多信息,请参见下面的示例。
  • variant (str, 可选) — 从指定的变体文件名加载权重,例如 "fp16""ema"。从 from_flax 加载时,此参数将被忽略。

从预训练的 pipeline 权重实例化一个图像到图像 (image-to-image) 的 Pytorch 扩散 pipeline。

from_pretrained() 方法负责通过以下方式返回正确的管道类实例:

  1. 基于 pretrained_model_or_path 的 config 对象的 _class_name 属性检测管道类
  2. 通过在 pipeline 类名称上使用模式匹配,查找链接到 pipeline 类的图像到图像 (image-to-image) pipeline。

如果传递了 controlnet 参数,它将实例化一个 StableDiffusionControlNetImg2ImgPipeline 对象。

默认情况下,管道设置为评估模式 (model.eval())。

如果您收到以下错误消息,则需要针对您的下游任务微调权重

Some weights of UNet2DConditionModel were not initialized from the model checkpoint at runwayml/stable-diffusion-v1-5 and are newly initialized because the shapes did not match:
- conv_in.weight: found shape torch.Size([320, 4, 3, 3]) in the checkpoint and torch.Size([320, 9, 3, 3]) in the model instantiated
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.

要使用私有或 受限 模型,请使用 huggingface-cli login 登录。

示例

>>> from diffusers import AutoPipelineForImage2Image

>>> pipeline = AutoPipelineForImage2Image.from_pretrained("runwayml/stable-diffusion-v1-5")
>>> image = pipeline(prompt, image).images[0]

from_pipe

< >

( pipeline **kwargs )

参数

  • pipeline (DiffusionPipeline) — 一个已实例化的 DiffusionPipeline 对象

从另一个已实例化的扩散 pipeline 类实例化一个图像到图像 (image-to-image) 的 Pytorch 扩散 pipeline。

from_pipe() 方法负责通过在 pipeline 类名称上使用模式匹配,查找链接到 pipeline 类的图像到图像 (image-to-image) pipeline,从而返回正确的 pipeline 类实例。

管道包含的所有模块将用于初始化新管道,而无需重新分配额外的内存。

默认情况下,管道设置为评估模式 (model.eval())。

示例

>>> from diffusers import AutoPipelineForText2Image, AutoPipelineForImage2Image

>>> pipe_t2i = AutoPipelineForText2Image.from_pretrained(
...     "runwayml/stable-diffusion-v1-5", requires_safety_checker=False
... )

>>> pipe_i2i = AutoPipelineForImage2Image.from_pipe(pipe_t2i)
>>> image = pipe_i2i(prompt, image).images[0]

AutoPipelineForInpainting

class diffusers.AutoPipelineForInpainting

< >

( *args **kwargs )

AutoPipelineForInpainting 是一个通用 pipeline 类,用于实例化一个图像修复 (inpainting) pipeline 类。特定的底层 pipeline 类会从 from_pretrained()from_pipe() 方法中自动选择。

此类不能使用 __init__() 实例化(会引发错误)。

类属性

  • config_name (str) — 配置文件名,用于存储所有扩散 pipeline 组件的类名和模块名。

from_pretrained

< >

( pretrained_model_or_path **kwargs )

参数

  • pretrained_model_or_path (stros.PathLike, 可选) — 可以是以下之一:

    • 一个字符串,预训练 pipeline 的 repo id (例如 CompVis/ldm-text2im-large-256),托管在 Hub 上。
    • 一个 目录 的路径 (例如 ./my_pipeline_directory/),其中包含使用 save_pretrained() 保存的 pipeline 权重。
  • torch_dtype (strtorch.dtype, 可选) — 覆盖默认的 torch.dtype 并使用另一种 dtype 加载模型。如果传入 “auto”,则 dtype 会从模型的权重中自动推导出来。
  • force_download (bool, 可选, 默认为 False) — 是否强制(重新)下载模型权重和配置文件,覆盖缓存版本(如果存在)。
  • cache_dir (Union[str, os.PathLike], optional) — 下载的预训练模型配置缓存目录的路径(如果未使用标准缓存)。
  • proxies (Dict[str, str], optional) — 按协议或端点使用的代理服务器字典,例如,{'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}。代理用于每个请求。
  • output_loading_info(bool, optional, defaults to False) — 是否也返回一个包含缺失键、意外键和错误消息的字典。默认为 False
  • local_files_only (bool, optional, defaults to False) — 是否仅加载本地模型权重和配置文件。如果设置为 True,则不会从 Hub 下载模型。默认为 False
  • token (str or bool, optional) — 用作远程文件 HTTP Bearer 授权的令牌。如果为 True,则使用从 diffusers-cli login 生成的令牌(存储在 ~/.huggingface 中)。
  • revision (str, optional, defaults to "main") — 要使用的特定模型版本。它可以是分支名称、标签名称、提交 ID 或 Git 允许的任何标识符。默认为 "main"
  • custom_revision (str, optional, defaults to "main") — 要使用的特定模型版本。当从 Hub 加载自定义管道时,它可以是分支名称、标签名称或类似于 revision 的提交 ID。当从 GitHub 加载自定义管道时,它可以是 🤗 Diffusers 版本,否则,当从 Hub 加载时,它默认为 "main"。默认为 "main"
  • mirror (str, optional) — 镜像源,用于解决在中国下载模型时的可访问性问题。我们不保证来源的及时性或安全性,您应参考镜像站点以获取更多信息。
  • device_map (strDict[str, Union[int, str, torch.device]], optional) — 一个指定每个子模块应放置位置的映射。无需为每个参数/缓冲区名称定义;一旦给定的模块名称包含在内,它的每个子模块都将被发送到同一设备。

    设置 device_map="auto" 以让 🤗 Accelerate 自动计算最优化的 device_map。有关每个选项的更多信息,请参阅 设计设备映射

  • max_memory (Dict, optional) — 设备标识符字典,用于指定最大内存。如果未设置,则默认为每个 GPU 的最大可用内存和可用 CPU RAM。
  • offload_folder (stros.PathLike, optional) — 如果 device_map 包含值 "disk",则为卸载权重的路径。
  • offload_state_dict (bool, optional) — 如果为 True,则临时将 CPU 状态字典卸载到硬盘驱动器,以避免在 CPU 状态字典的权重 + 检查点最大分片不适合时耗尽 CPU RAM。当存在磁盘卸载时,默认为 True
  • low_cpu_mem_usage (bool, optional, defaults to True if torch version >= 1.9.0 else False) — 加速模型加载,仅加载预训练权重,而不初始化权重。这还尝试在加载模型时,CPU 内存(包括峰值内存)的使用量不超过模型大小的 1 倍。仅支持 PyTorch >= 1.9.0。如果您使用的是旧版本的 PyTorch,则将此参数设置为 True 将引发错误。如果 torch 版本 >= 1.9.0,则默认为 True,否则为 False
  • use_safetensors (bool, optional, defaults to None) — 如果设置为 None,则在 safetensors 权重可用安装了 safetensors 库时下载它们。如果设置为 True,则强制从 safetensors 权重加载模型。如果设置为 False,则不加载 safetensors 权重。默认为 None
  • kwargs (剩余的关键字参数字典, optional) — 可用于覆盖可加载和可保存的变量(特定管道类的管道组件)。覆盖的组件直接传递给管道的 __init__ 方法。有关更多信息,请参见下面的示例。
  • variant (str, optional) — 从指定的变体文件名(如 "fp16""ema")加载权重。从 from_flax 加载时,此参数将被忽略。

从预训练管道权重实例化一个 inpainting Pytorch 扩散管道。

from_pretrained() 方法负责通过以下方式返回正确的管道类实例:

  1. 基于 pretrained_model_or_path 的 config 对象的 _class_name 属性检测管道类
  2. 使用管道类名称的模式匹配,查找链接到管道类的 inpainting 管道。

如果传递了 controlnet 参数,它将实例化一个 StableDiffusionControlNetInpaintPipeline 对象。

默认情况下,管道设置为评估模式 (model.eval())。

如果您收到以下错误消息,则需要针对您的下游任务微调权重

Some weights of UNet2DConditionModel were not initialized from the model checkpoint at runwayml/stable-diffusion-v1-5 and are newly initialized because the shapes did not match:
- conv_in.weight: found shape torch.Size([320, 4, 3, 3]) in the checkpoint and torch.Size([320, 9, 3, 3]) in the model instantiated
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.

要使用私有或 受限 模型,请使用 huggingface-cli login 登录。

示例

>>> from diffusers import AutoPipelineForInpainting

>>> pipeline = AutoPipelineForInpainting.from_pretrained("runwayml/stable-diffusion-v1-5")
>>> image = pipeline(prompt, image=init_image, mask_image=mask_image).images[0]

from_pipe

< >

( pipeline **kwargs )

参数

  • pipeline (DiffusionPipeline) — 一个实例化的 DiffusionPipeline 对象

从另一个实例化的扩散管道类实例化一个 inpainting Pytorch 扩散管道。

from_pipe() 方法通过使用管道类名称的模式匹配查找链接到管道类的 inpainting 管道,来负责返回正确的管道类实例。

管道类包含的所有模块都将用于初始化新管道,而无需重新分配额外的内存。

默认情况下,管道设置为评估模式 (model.eval())。

示例

>>> from diffusers import AutoPipelineForText2Image, AutoPipelineForInpainting

>>> pipe_t2i = AutoPipelineForText2Image.from_pretrained(
...     "DeepFloyd/IF-I-XL-v1.0", requires_safety_checker=False
... )

>>> pipe_inpaint = AutoPipelineForInpainting.from_pipe(pipe_t2i)
>>> image = pipe_inpaint(prompt, image=init_image, mask_image=mask_image).images[0]
< > 在 GitHub 上更新