Skip to content

ControlNetModel

ControlNet模型由Lvmin Zhang、Anyi Rao和Maneesh Agrawala在Adding Conditional Control to Text-to-Image Diffusion Models中提出。它通过在模型中引入额外的输入条件(如边缘图、深度图、分割图和姿态检测的关键点),提供了对文本到图像生成过程的更高程度的控制。

论文的摘要如下:

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

从原始格式加载

默认情况下,[ControlNetModel]应通过[~ModelMixin.from_pretrained]加载,但也可以使用[FromOriginalModelMixin.from_single_file]从原始格式加载,如下所示:

py
from diffusers import StableDiffusionControlNetPipeline, ControlNetModel

url = "https://huggingface.co/lllyasviel/ControlNet-v1-1/blob/main/control_v11p_sd15_canny.pth"  # can also be a local path
controlnet = ControlNetModel.from_single_file(url)

url = "https://huggingface.co/stable-diffusion-v1-5/stable-diffusion-v1-5/blob/main/v1-5-pruned.safetensors"  # can also be a local path
pipe = StableDiffusionControlNetPipeline.from_single_file(url, controlnet=controlnet)

ControlNetModel

[[autodoc]] ControlNetModel

ControlNetOutput

[[autodoc]] models.controlnets.controlnet.ControlNetOutput

FlaxControlNetModel

[[autodoc]] FlaxControlNetModel

FlaxControlNetOutput

[[autodoc]] models.controlnets.controlnet_flax.FlaxControlNetOutput