Skip to content

使用 Stable Diffusion 3 的 ControlNet

StableDiffusion3ControlNetPipeline 是针对 Stable Diffusion 3 实现的 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 可能有助于更广泛的应用,以控制图像扩散模型。

此 ControlNet 代码主要由 The InstantX Team 实现。与修复相关的代码由 The Alimama Creative Team 开发。你可以在下表中找到 SD3-ControlNet 的预训练检查点:

ControlNet typeDeveloperLink
CannyThe InstantX TeamLink
PoseThe InstantX TeamLink
TileThe InstantX TeamLink
InpaintingThe AlimamaCreative Teamlink

StableDiffusion3ControlNetPipeline

[[autodoc]] StableDiffusion3ControlNetPipeline - all - call

StableDiffusion3ControlNetInpaintingPipeline

[[autodoc]] pipelines.controlnet_sd3.pipeline_stable_diffusion_3_controlnet_inpainting.StableDiffusion3ControlNetInpaintingPipeline - all - call

StableDiffusion3PipelineOutput

[[autodoc]] pipelines.stable_diffusion_3.pipeline_output.StableDiffusion3PipelineOutput