Diffusers documentation

AutoPipeline

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

AutoPipeline

AutoPipeline 旨在简化任务检查点的加载过程,无需了解具体的 pipeline 类。根据任务类型,AutoPipeline 会自动从检查点的 model_index.json 文件中获取正确的 pipeline 类。

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

AutoPipelineForText2Image

class diffusers.AutoPipelineForText2Image

< >

( *args**kwargs )

AutoPipelineForText2Image is a generic pipeline class that instantiates a text-to-image pipeline class. The specific underlying pipeline class is automatically selected from either the from_pretrained() or from_pipe() methods.

此类无法通过 __init__() 实例化(会抛出错误)。

类属性:

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

from_pretrained

< >

( pretrained_model_or_path**kwargs )

参数

  • pretrained_model_or_path (str 或 os.PathLike, 可选) — 可以是以下之一: Hub 上托管的预训练管道的仓库 ID(例如 CompVis/ldm-text2im-large-256)的字符串,或包含使用 save_pretrained() 保存的管道权重的目录路径(例如 ./my_pipeline_directory/)。
    • 一个字符串,即托管在 Hub 上的预训练流水线的 repo id(例如 CompVis/ldm-text2im-large-256)。
    • 指向一个 目录(例如 ./my_pipeline_directory/)的路径,该目录包含使用 save_pretrained() 保存的流水线权重。
  • dtype (torch.dtype,可选) — 覆盖默认的 torch.dtype,并使用其他 dtype 加载模型。
  • force_download (bool,可选,默认为 False) — 是否强制(重新)下载模型权重和配置文件,如果存在缓存版本则覆盖它们。
  • cache_dir (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 (str 或 bool,可选) — 用于远程文件的 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 (str 或 dict[str, int | str | torch.device], 可选) — 一个映射,用于指定每个子模块应放置的位置。无需为每个参数/缓冲区名称单独定义;一旦某个模块名称被包含在内,其所有子模块都将被发送到同一设备。

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

  • max_memory (Dict, 可选) — 用于指定最大内存的设备标识符字典。如果未设置,则默认为每个 GPU 的最大可用内存以及可用的 CPU 内存。
  • offload_folder (str 或 os.PathLike,可选) — 如果 device_map 包含值 "disk",则用于卸载权重的路径。
  • offload_state_dict (bool, 可选) — 如果为 True,则临时将 CPU 状态字典卸载到硬盘,以避免在 CPU 状态字典的权重加上检查点中最大的分片无法容纳时耗尽 CPU 内存。当存在磁盘卸载时,默认值为 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")加载权重。

从预训练流水线权重实例化一个文本到图像的 Pytorch 扩散流水线。

from_pretrained() 方法通过以下方式确保返回正确的 pipeline 类实例:

  1. 根据 pretrained_model_or_path 的 config 对象的 _class_name 属性,检测其 pipeline 类
  2. 使用模式匹配管道类名称,找到与管道类关联的文本到图像管道。

如果传入了 controlnet 参数,则会实例化一个 StableDiffusionControlNetPipeline 对象。

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

如果出现以下错误消息,您需要针对下游任务微调权重:

Some weights of UNet2DConditionModel were not initialized from the model checkpoint at stable-diffusion-v1-5/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.

> 若要使用私有或 受限 模型,请使用 hf > auth login 登录。

示例:

>>> from diffusers import AutoPipelineForText2Image

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

from_pipe

< >

( pipeline**kwargs )

参数

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

从另一个已实例化的扩散流水线类实例化一个文本到图像的 Pytorch 扩散流水线。

from_pipe() 方法通过根据管道类名称进行模式匹配,找到与管道类关联的文本到图像管道,从而负责返回正确的管道类实例。

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

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

>>> from diffusers import AutoPipelineForText2Image, AutoPipelineForImage2Image

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

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

AutoPipelineForImage2Image

class diffusers.AutoPipelineForImage2Image

< >

( *args**kwargs )

AutoPipelineForImage2Image is a generic pipeline class that instantiates an image-to-image pipeline class. The specific underlying pipeline class is automatically selected from either the from_pretrained() or from_pipe() methods.

此类无法通过 __init__() 实例化(会抛出错误)。

类属性:

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

from_pretrained

< >

( pretrained_model_or_path**kwargs )

参数

  • pretrained_model_or_path (str 或 os.PathLike, 可选) — 可以是以下之一: Hub 上托管的预训练管道的仓库 ID(例如 CompVis/ldm-text2im-large-256)的字符串,或包含使用 save_pretrained() 保存的管道权重的目录路径(例如 ./my_pipeline_directory/)。
    • 一个字符串,即托管在 Hub 上的预训练流水线的 repo id(例如 CompVis/ldm-text2im-large-256)。
    • 指向一个 目录(例如 ./my_pipeline_directory/)的路径,该目录包含使用 save_pretrained() 保存的流水线权重。
  • dtype (str 或 torch.dtype,可选) — 覆盖默认的 torch.dtype,并使用其他 dtype 加载模型。
  • force_download (bool,可选,默认为 False) — 是否强制(重新)下载模型权重和配置文件,如果存在缓存版本则覆盖它们。
  • cache_dir (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 (str 或 bool,可选) — 用于远程文件的 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 (str 或 dict[str, int | str | torch.device], 可选) — 一个映射,用于指定每个子模块应放置的位置。无需为每个参数/缓冲区名称单独定义;一旦某个模块名称被包含在内,其所有子模块都将被发送到同一设备。

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

  • max_memory (Dict, 可选) — 用于指定最大内存的设备标识符字典。如果未设置,则默认为每个 GPU 的最大可用内存以及可用的 CPU 内存。
  • offload_folder (str 或 os.PathLike,可选) — 如果 device_map 包含值 "disk",则用于卸载权重的路径。
  • offload_state_dict (bool, 可选) — 如果为 True,则临时将 CPU 状态字典卸载到硬盘,以避免在 CPU 状态字典的权重加上检查点中最大的分片无法容纳时耗尽 CPU 内存。当存在磁盘卸载时,默认值为 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")加载权重。

从预训练流水线权重实例化一个图像到图像的 Pytorch 扩散流水线。

from_pretrained() 方法通过以下方式确保返回正确的 pipeline 类实例:

  1. 根据 pretrained_model_or_path 的 config 对象的 _class_name 属性,检测其 pipeline 类
  2. 通过模式匹配 pipeline 类名称,找到与 pipeline 类关联的图像到图像 pipeline。

如果传入了 controlnet 参数,则会实例化一个 StableDiffusionControlNetImg2ImgPipeline 对象。

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

如果出现以下错误消息,您需要针对下游任务微调权重:

Some weights of UNet2DConditionModel were not initialized from the model checkpoint at stable-diffusion-v1-5/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.

> 若要使用私有或 受限 模型,请使用 hf > auth login 登录。

示例:

>>> from diffusers import AutoPipelineForImage2Image

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

from_pipe

< >

( pipeline**kwargs )

参数

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

从另一个已实例化的扩散流水线类实例化一个图像到图像的 Pytorch 扩散流水线。

from_pipe() 方法通过基于管道类名称的模式匹配,找到与管道类关联的图像到图像管道,从而负责返回正确的管道类实例。

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

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

示例:

>>> from diffusers import AutoPipelineForText2Image, AutoPipelineForImage2Image

>>> pipe_t2i = AutoPipelineForText2Image.from_pretrained(
...     "stable-diffusion-v1-5/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 是一个通用的流水线类,用于实例化图像修复流水线类。具体的底层流水线类会通过 from_pretrained() 或 from_pipe() 方法自动选择。

此类无法通过 __init__() 实例化(会抛出错误)。

类属性:

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

from_pretrained

< >

( pretrained_model_or_path**kwargs )

参数

  • pretrained_model_or_path (str 或 os.PathLike, 可选) — 可以是以下之一: Hub 上托管的预训练管道的仓库 ID(例如 CompVis/ldm-text2im-large-256)的字符串,或包含使用 save_pretrained() 保存的管道权重的目录路径(例如 ./my_pipeline_directory/)。
    • 一个字符串,即托管在 Hub 上的预训练流水线的 repo id(例如 CompVis/ldm-text2im-large-256)。
    • 指向一个 目录(例如 ./my_pipeline_directory/)的路径,该目录包含使用 save_pretrained() 保存的流水线权重。
  • dtype (str 或 torch.dtype,可选) — 覆盖默认的 torch.dtype,并使用其他 dtype 加载模型。
  • force_download (bool,可选,默认为 False) — 是否强制(重新)下载模型权重和配置文件,如果存在缓存版本则覆盖它们。
  • cache_dir (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 (str 或 bool,可选) — 用于远程文件的 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 (str 或 dict[str, int | str | torch.device], 可选) — 一个映射,用于指定每个子模块应放置的位置。无需为每个参数/缓冲区名称单独定义;一旦某个模块名称被包含在内,其所有子模块都将被发送到同一设备。

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

  • max_memory (Dict, 可选) — 用于指定最大内存的设备标识符字典。如果未设置,则默认为每个 GPU 的最大可用内存以及可用的 CPU 内存。
  • offload_folder (str 或 os.PathLike,可选) — 如果 device_map 包含值 "disk",则用于卸载权重的路径。
  • offload_state_dict (bool, 可选) — 如果为 True,则临时将 CPU 状态字典卸载到硬盘,以避免在 CPU 状态字典的权重加上检查点中最大的分片无法容纳时耗尽 CPU 内存。当存在磁盘卸载时,默认值为 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")加载权重。

从预训练流水线权重实例化一个 inpainting Pytorch 扩散流水线。

from_pretrained() 方法通过以下方式确保返回正确的 pipeline 类实例:

  1. 根据 pretrained_model_or_path 的 config 对象的 _class_name 属性,检测其 pipeline 类
  2. 使用模式匹配 pipeline 类名,找到与 pipeline 类关联的 inpainting pipeline。

如果传入了 controlnet 参数,则会实例化一个 StableDiffusionControlNetInpaintPipeline 对象。

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

如果出现以下错误消息,您需要针对下游任务微调权重:

Some weights of UNet2DConditionModel were not initialized from the model checkpoint at stable-diffusion-v1-5/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.

> 若要使用私有或 受限 模型,请使用 hf > auth login 登录。

示例:

>>> from diffusers import AutoPipelineForInpainting

>>> pipeline = AutoPipelineForInpainting.from_pretrained("stable-diffusion-v1-5/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)管道,从而负责返回正确的管道类实例。

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

默认情况下,pipeline 会设置为评估模式(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]

AutoPipelineForText2Audio

class diffusers.AutoPipelineForText2Audio

< >

( *args**kwargs )

AutoPipelineForText2Audio is a generic pipeline class that instantiates a text-to-audio pipeline class. The specific underlying pipeline class is automatically selected from either the from_pretrained() or from_pipe() methods.

此类无法通过 __init__() 实例化(会抛出错误)。

类属性:

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

from_pretrained

< >

( pretrained_model_or_path**kwargs )

参数

  • pretrained_model_or_path (str 或 os.PathLike, 可选) — 可以是以下之一:
    • 一个字符串,即托管在 Hub 上的预训练 repo id(例如 stabilityai/stable-audio-open-1.0)的 pipeline。
    • 指向一个 目录(例如 ./my_pipeline_directory/)的路径,该目录包含使用 save_pretrained() 保存的流水线权重。
  • dtype (torch.dtype,可选) — 覆盖默认的 torch.dtype,并使用其他 dtype 加载模型。
  • force_download (bool,可选,默认为 False) — 是否强制(重新)下载模型权重和配置文件,如果存在缓存版本则覆盖它们。
  • cache_dir (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 (str 或 bool,可选) — 用于远程文件的 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 (str 或 dict[str, int | str | torch.device], 可选) — 一个映射,用于指定每个子模块应放置的位置。无需为每个参数/缓冲区名称单独定义;一旦某个模块名称被包含在内,其所有子模块都将被发送到同一设备。

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

  • max_memory (Dict, 可选) — 用于指定最大内存的设备标识符字典。如果未设置,则默认为每个 GPU 的最大可用内存以及可用的 CPU 内存。
  • offload_folder (str 或 os.PathLike,可选) — 如果 device_map 包含值 "disk",则用于卸载权重的路径。
  • offload_state_dict (bool, 可选) — 如果为 True,则临时将 CPU 状态字典卸载到硬盘,以避免在 CPU 状态字典的权重加上检查点中最大的分片无法容纳时耗尽 CPU 内存。当存在磁盘卸载时,默认值为 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")加载权重。

从预训练流水线权重实例化一个文本到音频的 PyTorch 扩散流水线。

from_pretrained() 方法通过以下方式确保返回正确的 pipeline 类实例:

  1. 根据 pretrained_model_or_path 的 config 对象的 _class_name 属性,检测其 pipeline 类
  2. 使用模式匹配 pipeline 类名,找到与 pipeline 类关联的文本转音频流水线。

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

> 若要使用私有或 受限 模型,请使用 hf > auth login 登录。

示例:

>>> import torch
>>> import soundfile as sf
>>> from diffusers import AutoPipelineForText2Audio

>>> pipeline = AutoPipelineForText2Audio.from_pretrained(
...     "stabilityai/stable-audio-open-1.0", torch_dtype=torch.float16
... )
>>> pipeline = pipeline.to("cuda")

>>> output = pipeline(
...     "Generate a male voice reading a paragraph",
...     num_inference_steps=200,
...     audio_end_in_s=10.0,
... )
>>> audio = output.audios[0].T.float().cpu().numpy()
>>> sf.write("audio.wav", audio, pipeline.vae.sampling_rate)

from_pipe

< >

( pipeline**kwargs )

参数

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

从另一个已实例化的扩散流水线类实例化一个文本到音频的 PyTorch 扩散流水线。

from_pipe() 方法通过匹配管道类名称,找到与管道类关联的文本到音频管道,从而负责返回正确的管道类实例。

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

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

>>> import torch
>>> import soundfile as sf
>>> from diffusers import AutoPipelineForText2Audio, StableAudioPipeline

>>> pipe = StableAudioPipeline.from_pretrained("stabilityai/stable-audio-open-1.0", torch_dtype=torch.float16)

>>> pipe_audio = AutoPipelineForText2Audio.from_pipe(pipe)
>>> output = pipe_audio(
...     "Generate a sound",
...     num_inference_steps=200,
...     audio_end_in_s=10.0,
... )
>>> audio = output.audios[0].T.float().cpu().numpy()
>>> sf.write("audio.wav", audio, pipe_audio.vae.sampling_rate)
Update on GitHub