Diffusers 文档

自动流水线

Hugging Face's logo
加入 Hugging Face 社区

并获得增强型文档体验

开始使用

自动管道

Diffusers 提供了许多用于基本任务的管道,例如生成图像、视频、音频和修复。在此基础上,还有用于适配器和功能(如上采样、超分辨率等)的专用管道。不同的管道类甚至可以使用相同的检查点,因为它们共享相同的预训练模型!如此多的不同管道,可能让人难以知道应该使用哪个管道类。

AutoPipeline 类旨在简化 Diffusers 中各种管道。它是一个通用的以任务为先的管道,允许您专注于一项任务(AutoPipelineForText2ImageAutoPipelineForImage2ImageAutoPipelineForInpainting),而无需了解具体的管道类。该 AutoPipeline 自动检测要使用的正确管道类。

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

在幕后,AutoPipeline

  1. model_index.json 文件中检测到一个 "stable-diffusion" 类。
  2. 根据您感兴趣的任务,它会加载 StableDiffusionPipelineStableDiffusionImg2ImgPipelineStableDiffusionInpaintPipeline。您将传递给这些特定管道的任何参数(strengthnum_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 支持 稳定扩散稳定扩散 XLControlNetKandinsky 2.1Kandinsky 2.2DeepFloyd 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"
< > 在 GitHub 上更新