Skip to content

AutoPipeline

Diffusers 提供了许多用于基本任务的管道,如生成图像、视频、音频和修复。除此之外,还有专门的管道用于适配器和功能,如放大、超分辨率等。不同的管道类甚至可以使用相同的检查点,因为它们共享相同的预训练模型!由于有如此多的管道,选择使用哪个管道类可能会让人感到不知所措。

AutoPipeline 类旨在简化 Diffusers 中的多种管道。它是一个通用的 任务优先 管道,让你可以专注于任务(如 [AutoPipelineForText2Image]、[AutoPipelineForImage2Image] 和 [AutoPipelineForInpainting]),而无需知道具体的管道类。AutoPipeline 会自动检测要使用的正确管道类。

例如,让我们使用 dreamlike-art/dreamlike-photoreal-2.0 检查点。

在内部,AutoPipeline 会:

  1. model_index.json 文件中检测到一个 "stable-diffusion" 类。
  2. 根据你感兴趣的任务,加载 [StableDiffusionPipeline]、[StableDiffusionImg2ImgPipeline] 或 [StableDiffusionInpaintPipeline]。你可以传递给这些特定管道的任何参数(如 strengthnum_inference_steps 等)也可以传递给 AutoPipeline

不支持的检查点

AutoPipeline 支持 Stable DiffusionStable Diffusion XLControlNetKandinsky 2.1Kandinsky 2.2DeepFloyd IF 检查点。

如果你尝试加载一个不支持的检查点,你会收到一个错误。

py
from diffusers import AutoPipelineForImage2Image
import torch

pipeline = AutoPipelineForImage2Image.from_pretrained(
    "openai/shap-e-img2img", torch_dtype=torch.float16, use_safetensors=True
)
"ValueError: AutoPipeline can't find a pipeline linked to ShapEImg2ImgPipeline for None"