Skip to content

使用 Stable Diffusion XL 的 ControlNet

ControlNet 由 Lvmin Zhang、Anyi Rao 和 Maneesh Agrawala 在论文 Adding Conditional Control to Text-to-Image Diffusion Models 中提出。

通过 ControlNet 模型,你可以提供一个额外的控制图像来调节和控制 Stable Diffusion 的生成过程。例如,如果你提供一个深度图,ControlNet 模型生成的图像将保留深度图中的空间信息。这是一种更灵活和准确的方式来控制图像生成过程。

论文的摘要如下:

我们提出了 ControlNet,一种神经网络架构,用于向大型预训练的文本到图像扩散模型添加空间条件控制。ControlNet 锁定生产就绪的大型扩散模型,并重用其深度且稳健的编码层,这些编码层通过数十亿张图像预训练,作为强大的骨干网络来学习各种条件控制。神经架构通过“零卷积”(零初始化的卷积层)连接,这些层从零开始逐步增长参数,并确保不会引入有害噪声影响微调。我们使用 Stable Diffusion 测试了各种条件控制,例如边缘、深度、分割、人体姿态等,使用单个或多个条件,有或没有提示。我们展示了 ControlNet 的训练在小规模(<50k)和大规模(>1m)数据集上都很稳健。广泛的结果表明,ControlNet 可能有助于更广泛的应用,以控制图像扩散模型。

你可以在 🤗 Diffusers Hub 组织中找到额外的较小 Stable Diffusion XL (SDXL) ControlNet 检查点,并在 Hub 上浏览 社区训练的 检查点。

如果你没有找到感兴趣的检查点,可以使用我们的 训练脚本 训练你自己的 SDXL ControlNet。

StableDiffusionXLControlNetPipeline

[[autodoc]] StableDiffusionXLControlNetPipeline - all - call

StableDiffusionXLControlNetImg2ImgPipeline

[[autodoc]] StableDiffusionXLControlNetImg2ImgPipeline - all - call

StableDiffusionXLControlNetInpaintPipeline

[[autodoc]] StableDiffusionXLControlNetInpaintPipeline - all - call

StableDiffusionPipelineOutput

[[autodoc]] pipelines.stable_diffusion.StableDiffusionPipelineOutput