Diffusers 文档
AutoPipeline
加入 Hugging Face 社区
并获得增强的文档体验
开始使用
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。
文本到图像
图像到图像
图像修复
from diffusers import AutoPipelineForText2Image
import torch
pipe_txt2img = AutoPipelineForText2Image.from_pretrained(
"dreamlike-art/dreamlike-photoreal-2.0", torch_dtype=torch.float16, use_safetensors=True
).to("cuda")
prompt = "cinematic photo of Godzilla eating sushi with a cat in a izakaya, 35mm photograph, film, professional, 4k, highly detailed"
generator = torch.Generator(device="cpu").manual_seed(37)
image = pipe_txt2img(prompt, generator=generator).images[0]
image

不支持的检查点
AutoPipeline 支持 Stable Diffusion、Stable Diffusion XL、ControlNet、Kandinsky 2.1、Kandinsky 2.2 和 DeepFloyd IF 检查点。
如果您尝试加载不支持的检查点,将会收到错误。
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"