Diffusers documentation

AutoPipeline

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