本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。
“新·AI绘画细节控制大师”ControlNet-XS来啦!
敲重点的是参数只要原始ControlNet的1%。
就能做到蛋糕口味随意切换:
△左图为改前
改变一个人的行头也轻轻松松:
上图同款,身形不变艺术氛围感拉满:
自然风光也能hou住,一年四季任意切换:
还有这猫头鹰,直接从活物变雕塑:
参数很小的情况下,能做到这样的效果,网友也是直呼绝绝子,并迫不及待想看论文。
ControlNet-XS由海德堡大学计算机视觉实验室研发,目前相关论文、预训练模型还未公布。
但研究人员表示ControlNet-XSFID分数明显优于ControlNet。
且控制Stable Diffusion-XL和Stable Diffusion 2.1的代码将在不久后开源。
新生代控制大师
先来康康对StableDiffusion-XL的控制。
研究人员在评估了不同大小的控制模型后发现,控制模型甚至不必和2.6B参数的StableDiffusion-XL基础网络大小一样。
400M、104M和48M参数的ControlNet-XS控制也很明显。
深度图给出了更为直观的展示,根据图像内容的距离、深度,深度图呈现出准确的颜色深浅度:
要注意的是,这里研究人员设置的每行seed值不同,每列seed值相同。
此外,还有Canny边缘检测图,物体的边界、轮廓都能清晰地展现出来:
对StableDiffusion的控制,研究人员则是评估了491M、55M和14M参数的三个版本的ControlNet-XS。
结果表明1.6%的参数(865M)也能够可靠地控制生成过程。
那这是如何做到的呢?
从头开始训练
原始ControlNet是StableDiffusion基础模型(base model)中U-Net编码器的副本,所以接收与基础模型相同的输入,并带有额外的引导信号,比如说边缘图。
然后,经过训练的ControlNet的中间输出被添加到基础模型的解码器层的输入中。在ControlNet的整个训练过程中,基础模型的权重保持冻结状态。
ControlNet-XS的研究者们认为这种方法存在问题,ControlNet不必这么庞大。
首先是Stable Diffusion最终输出图像,是在一系列步骤中迭代生成的。每个步骤会在U-Net网络结构的编码器(Encoder)和解码器(Decoder)两部分中执行。
每次迭代基础模型和控制模型的输入是前一个步骤生成的图像。控制模型还接收一个控制图像。
问题在于,在编码器阶段这两个模型都独立运行,而控制模型的反馈只在基础模型的解码阶段输入。
总之,结果就是一个延迟的校正/控制机制。
也就是说ControlNet必须执行两项任务:一边校正/控制,一边还要提前预测基本模型的编码器将犯哪些“错误”。
通过暗示图像生成和控制需要相似的模型容量,自然而然地可以用基础模型的权重初始化ControlNet的权重,然后进行微调。
而对于ControlNet-XS,研究人员表示从设计上就与基础模型不同,是从零开始训练ControlNet-XS权重,解决了延迟反馈的问题。
如上图所示,方法是从基础模型的编码器添加连接到控制编码器(A),这样校正过程可以更快地适应基础模型的生成过程。但这并不能完全消除延迟,因为基础模型的编码器仍然没有受到引导。
因此,研究人员从ControlNet-XS添加额外的连接到基础模型编码器,直接影响整个生成过程(B)。
此外,他们还评估了在ControlNet设置中使用镜像解码架构是否有用(C)。
最终,研究人员在COCO2017验证集上,针对Canny边缘引导的三种不同变体(A、B、C)与原始的ControlNet进行了FID分数性能评估。
结果所有变体都有了显著提升,同时仅使用了原始ControlNet参数的一小部分。
研究人员又拿出了变体B,分别使用Canny边缘图和深度图引导,针对StableDiffusion2.1和StableDiffusion-XL分别训练了三种不同大小的模型。
所以下一步就等相关论文、代码以及预训练模型公布啦~
项目地址:https://vislearn.github.io/ControlNet-XS/