算力平台:
AutoPipeline
Diffusers 提供了许多用于基本任务的管道,如生成图像、视频、音频和修复。除此之外,还有专门的管道用于适配器和功能,如放大、超分辨率等。不同的管道类甚至可以使用相同的检查点,因为它们共享相同的预训练模型!由于有如此多的管道,选择使用哪个管道类可能会让人感到不知所措。
AutoPipeline 类旨在简化 Diffusers 中的多种管道。它是一个通用的 任务优先 管道,让你可以专注于任务(如 [AutoPipelineForText2Image
]、[AutoPipelineForImage2Image
] 和 [AutoPipelineForInpainting
]),而无需知道具体的管道类。AutoPipeline 会自动检测要使用的正确管道类。
例如,让我们使用 dreamlike-art/dreamlike-photoreal-2.0 检查点。
在内部,AutoPipeline 会:
- 从 model_index.json 文件中检测到一个
"stable-diffusion"
类。 - 根据你感兴趣的任务,加载 [
StableDiffusionPipeline
]、[StableDiffusionImg2ImgPipeline
] 或 [StableDiffusionInpaintPipeline
]。你可以传递给这些特定管道的任何参数(如strength
、num_inference_steps
等)也可以传递给 AutoPipeline。
不支持的检查点
AutoPipeline 支持 Stable Diffusion、Stable Diffusion XL、ControlNet、Kandinsky 2.1、Kandinsky 2.2 和 DeepFloyd 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"