跳到主要内容

在 Hugging Face 使用 🧨 diffusers

Diffusers 是用于生成图像、音频甚至分子 3D 结构的最先进预训练扩散模型的首选库。无论你是在寻找简单的推理解决方案,还是想训练自己的扩散模型,Diffusers 都是一个支持两者的模块化工具箱。该库的设计重点是可用性优于性能,简单优于容易,可定制性优于抽象。

在 Hub 上探索 Diffusers

Hub 上有超过 10,000 个 diffusers 兼容管道,你可以通过在模型页面左侧筛选来找到它们。扩散系统通常由多个组件组成,例如文本编码器、UNet、VAE 和调度器。尽管它们不是独立模型,但管道抽象使它们易于用于推理或训练。

你可以找到用于许多不同任务的扩散管道:

如果你想在不下载模型的情况下测试它们,可以直接在浏览器中试用模型,这要归功于浏览器内小部件!

Diffusers 仓库文件

Diffusers 模型仓库包含所有必需的模型子组件,例如用于编码图像和解码潜在表示的变分自编码器、文本编码器、Transformer 模型等。这些子组件被组织成多文件夹布局。

每个子文件夹包含每个组件的权重和配置(如适用),类似于 Transformers 模型。

权重通常存储为 safetensors 文件,配置通常是包含模型架构信息的 json 文件。

使用现有管道

所有 diffusers 管道都只需一行代码即可使用!要运行生成,我们建议始终从 DiffusionPipeline 开始:

from diffusers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0")

如果你想加载特定的管道组件(例如 UNet),可以这样做:

from diffusers import UNet2DConditionModel

unet = UNet2DConditionModel.from_pretrained("stabilityai/stable-diffusion-xl-base-1.0", subfolder="unet")

分享你的管道和模型

所有管道类模型类调度器类都与 Hub 完全兼容。更具体地说,它们可以使用 from_pretrained() 方法轻松地从 Hub 加载,并且可以使用 push_to_hub() 方法与他人分享。

有关更多详细信息,请查看文档

其他资源