# AutoPipeline

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

> [!TIP]
> 查看 [AutoPipeline](../../tutorials/autopipeline) 教程，了解如何使用此 API！

## AutoPipelineForText2Image[[diffusers.AutoPipelineForText2Image]]

#### diffusers.AutoPipelineForText2Image[[diffusers.AutoPipelineForText2Image]]

```python
diffusers.AutoPipelineForText2Image(*args, **kwargs)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L378)

[AutoPipelineForText2Image](/docs/diffusers/v0.43.0/zh/api/pipelines/auto_pipeline#diffusers.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()](/docs/diffusers/v0.43.0/zh/api/pipelines/auto_pipeline#diffusers.AutoPipelineForText2Image.from_pretrained) or [from_pipe()](/docs/diffusers/v0.43.0/zh/api/pipelines/auto_pipeline#diffusers.AutoPipelineForText2Image.from_pipe) methods.

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

类属性：

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

#### from_pretrained[[diffusers.AutoPipelineForText2Image.from_pretrained]]

```python
from_pretrained(pretrained_model_or_path, **kwargs)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L403)

**参数：**

pretrained_model_or_path (`str` 或 `os.PathLike`，*可选*) : 可以是以下之一： - 一个字符串，即托管在 Hub 上的预训练流水线的 *repo id*（例如 `CompVis/ldm-text2im-large-256`）。 - 一个指向 *目录* 的路径（例如 `./my_pipeline_directory/`），其中包含使用 [save_pretrained()](/docs/diffusers/v0.43.0/zh/api/pipelines/overview#diffusers.DiffusionPipeline.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 承载者授权令牌。如果为 `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`。有关各选项的更多信息，请参阅 [设计设备映射](https://hf.co/docs/accelerate/main/en/usage_guides/big_modeling#designing-a-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 （其余关键字参数字典，*可选*）：可用于覆盖加载和可保存的变量（特定 pipeline 类的 pipeline 组件）。被覆盖的组件会直接传递给 pipeline 的 `__init__` 方法。更多信息请参见下方示例。

variant (`str`, *可选*) : 从指定的变体文件名（例如 `"fp16"` 或 `"ema"`）加载权重。

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

from_pretrained() 方法通过以下方式确保返回正确的 pipeline 类实例：
1. 根据 _class_name 属性，检测 pretrained_model_or_path 的 config 对象对应的 pipeline 类
2. 使用模式匹配 pipeline 类名，找到与 pipeline 类关联的文本生成图像 pipeline。

如果传入了 `controlnet` 参数，则会实例化一个 [StableDiffusionControlNetPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/controlnet#diffusers.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.
```

> [!TIP] > 若要使用私有或 [受限](https://huggingface.co/docs/hub/models-gated#gated-models) 模型，请先登录
使用 `hf > auth login`。

示例：

```py
>>> from diffusers import AutoPipelineForText2Image

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

#### from_pipe[[diffusers.AutoPipelineForText2Image.from_pipe]]

```python
from_pipe(pipeline, **kwargs)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L559)

**参数：**

pipeline (`DiffusionPipeline`)：一个已实例化的 `DiffusionPipeline` 对象

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

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

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

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

```py
>>> 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[[diffusers.AutoPipelineForImage2Image]]

#### diffusers.AutoPipelineForImage2Image[[diffusers.AutoPipelineForImage2Image]]

```python
diffusers.AutoPipelineForImage2Image(*args, **kwargs)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L676)

[AutoPipelineForImage2Image](/docs/diffusers/v0.43.0/zh/api/pipelines/auto_pipeline#diffusers.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()](/docs/diffusers/v0.43.0/zh/api/pipelines/auto_pipeline#diffusers.AutoPipelineForImage2Image.from_pretrained) or [from_pipe()](/docs/diffusers/v0.43.0/zh/api/pipelines/auto_pipeline#diffusers.AutoPipelineForImage2Image.from_pipe) methods.

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

类属性：

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

#### from_pretrained[[diffusers.AutoPipelineForImage2Image.from_pretrained]]

```python
from_pretrained(pretrained_model_or_path, **kwargs)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L701)

**参数：**

pretrained_model_or_path (`str` 或 `os.PathLike`，*可选*) : 可以是以下之一： - 一个字符串，即托管在 Hub 上的预训练流水线的 *repo id*（例如 `CompVis/ldm-text2im-large-256`）。 - 一个指向 *目录* 的路径（例如 `./my_pipeline_directory/`），其中包含使用 [save_pretrained()](/docs/diffusers/v0.43.0/zh/api/pipelines/overview#diffusers.DiffusionPipeline.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 承载者授权令牌。如果为 `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`。有关各选项的更多信息，请参阅 [设计设备映射](https://hf.co/docs/accelerate/main/en/usage_guides/big_modeling#designing-a-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 （其余关键字参数字典，*可选*）：可用于覆盖加载和可保存的变量（特定 pipeline 类的 pipeline 组件）。被覆盖的组件会直接传递给 pipeline 的 `__init__` 方法。更多信息请参见下方示例。

variant (`str`, *可选*) : 从指定的变体文件名（例如 `"fp16"` 或 `"ema"`）加载权重。

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

from_pretrained() 方法通过以下方式确保返回正确的 pipeline 类实例：
1. 根据 _class_name 属性，检测 pretrained_model_or_path 的 config 对象对应的 pipeline 类
2. 通过模式匹配 pipeline 类名，找到与 pipeline 类关联的图像到图像 pipeline。

如果传入了 `controlnet` 参数，则会实例化一个 [StableDiffusionControlNetImg2ImgPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/controlnet#diffusers.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.
```

> [!TIP] > 若要使用私有或 [受限](https://huggingface.co/docs/hub/models-gated#gated-models) 模型，请先登录
使用 `hf > auth login`。

示例：

```py
>>> from diffusers import AutoPipelineForImage2Image

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

#### from_pipe[[diffusers.AutoPipelineForImage2Image.from_pipe]]

```python
from_pipe(pipeline, **kwargs)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L868)

**参数：**

pipeline (`DiffusionPipeline`)：一个已实例化的 `DiffusionPipeline` 对象

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

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

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

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

示例：

```py
>>> 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[[diffusers.AutoPipelineForInpainting]]

#### diffusers.AutoPipelineForInpainting[[diffusers.AutoPipelineForInpainting]]

```python
diffusers.AutoPipelineForInpainting(*args, **kwargs)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L990)

[AutoPipelineForInpainting](/docs/diffusers/v0.43.0/zh/api/pipelines/auto_pipeline#diffusers.AutoPipelineForInpainting) 是一个通用的流水线类，用于实例化图像修复流水线类。具体的底层流水线类会根据 [from_pretrained()](/docs/diffusers/v0.43.0/zh/api/pipelines/auto_pipeline#diffusers.AutoPipelineForInpainting.from_pretrained) 或 [from_pipe()](/docs/diffusers/v0.43.0/zh/api/pipelines/auto_pipeline#diffusers.AutoPipelineForInpainting.from_pipe) 方法自动选择。

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

类属性：

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

#### from_pretrained[[diffusers.AutoPipelineForInpainting.from_pretrained]]

```python
from_pretrained(pretrained_model_or_path, **kwargs)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L1015)

**参数：**

pretrained_model_or_path (`str` 或 `os.PathLike`，*可选*) : 可以是以下之一： - 一个字符串，即托管在 Hub 上的预训练流水线的 *repo id*（例如 `CompVis/ldm-text2im-large-256`）。 - 一个指向 *目录* 的路径（例如 `./my_pipeline_directory/`），其中包含使用 [save_pretrained()](/docs/diffusers/v0.43.0/zh/api/pipelines/overview#diffusers.DiffusionPipeline.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 承载者授权令牌。如果为 `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`。有关各选项的更多信息，请参阅 [设计设备映射](https://hf.co/docs/accelerate/main/en/usage_guides/big_modeling#designing-a-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 （其余关键字参数字典，*可选*）：可用于覆盖加载和可保存的变量（特定 pipeline 类的 pipeline 组件）。被覆盖的组件会直接传递给 pipeline 的 `__init__` 方法。更多信息请参见下方示例。

variant (`str`, *可选*) : 从指定的变体文件名（例如 `"fp16"` 或 `"ema"`）加载权重。

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

from_pretrained() 方法通过以下方式确保返回正确的 pipeline 类实例：
1. 根据 _class_name 属性，检测 pretrained_model_or_path 的 config 对象对应的 pipeline 类
2. 使用模式匹配 pipeline 类名，找到与 pipeline 类关联的 inpainting pipeline。

如果传入了 `controlnet` 参数，则会实例化一个 [StableDiffusionControlNetInpaintPipeline](/docs/diffusers/v0.43.0/zh/api/pipelines/controlnet#diffusers.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.
```

> [!TIP] > 若要使用私有或 [受限](https://huggingface.co/docs/hub/models-gated#gated-models) 模型，请先登录
使用 `hf > auth login`。

示例：

```py
>>> 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[[diffusers.AutoPipelineForInpainting.from_pipe]]

```python
from_pipe(pipeline, **kwargs)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L1179)

**参数：**

pipeline (`DiffusionPipeline`)：一个已实例化的 `DiffusionPipeline` 对象

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

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

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

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

示例：

```py
>>> 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[[diffusers.AutoPipelineForText2Audio]]

#### diffusers.AutoPipelineForText2Audio[[diffusers.AutoPipelineForText2Audio]]

```python
diffusers.AutoPipelineForText2Audio(*args, **kwargs)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L1298)

[AutoPipelineForText2Audio](/docs/diffusers/v0.43.0/zh/api/pipelines/auto_pipeline#diffusers.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()](/docs/diffusers/v0.43.0/zh/api/pipelines/auto_pipeline#diffusers.AutoPipelineForText2Audio.from_pretrained) or [from_pipe()](/docs/diffusers/v0.43.0/zh/api/pipelines/auto_pipeline#diffusers.AutoPipelineForText2Audio.from_pipe) methods.

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

类属性：

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

#### from_pretrained[[diffusers.AutoPipelineForText2Audio.from_pretrained]]

```python
from_pretrained(pretrained_model_or_path, **kwargs)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L1323)

**参数：**

pretrained_model_or_path (`str` 或 `os.PathLike`，*可选*) : 可以是以下之一： - 一个字符串，即托管在 Hub 上的预训练 *repo id*（例如 `stabilityai/stable-audio-open-1.0`）。 - 一个指向 *目录* 的路径（例如 `./my_pipeline_directory/`），其中包含使用 [save_pretrained()](/docs/diffusers/v0.43.0/zh/api/pipelines/overview#diffusers.DiffusionPipeline.save_pretrained) 保存的 pipeline 权重。

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 承载者授权令牌。如果为 `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`。有关各选项的更多信息，请参阅 [设计设备映射](https://hf.co/docs/accelerate/main/en/usage_guides/big_modeling#designing-a-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 （其余关键字参数字典，*可选*）：可用于覆盖加载和可保存的变量（特定 pipeline 类的 pipeline 组件）。被覆盖的组件会直接传递给 pipeline 的 `__init__` 方法。更多信息请参见下方示例。

variant (`str`, *可选*) : 从指定的变体文件名（例如 `"fp16"` 或 `"ema"`）加载权重。

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

from_pretrained() 方法通过以下方式确保返回正确的 pipeline 类实例：
1. 根据 _class_name 属性，检测 pretrained_model_or_path 的 config 对象对应的 pipeline 类
2. 通过模式匹配 pipeline 类名，查找与 pipeline 类关联的文本到音频 pipeline。

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

> [!TIP] > 若要使用私有或 [受限](https://huggingface.co/docs/hub/models-gated#gated-models) 模型，请先登录
使用 `hf > auth login`。

示例：

```py
>>> 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[[diffusers.AutoPipelineForText2Audio.from_pipe]]

```python
from_pipe(pipeline, **kwargs)
```

[源代码](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/auto_pipeline.py#L1467)

**参数：**

pipeline (`DiffusionPipeline`)：一个已实例化的 `DiffusionPipeline` 对象

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

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

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

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

```py
>>> 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)
```

