金磊发自凹非寺
量子位公众号 QbitAI
四位美少女,带着 AI 画画在 ChatGPT 的热浪中杀出了一片天地。
新“魔法”一出,瞬间吸引全场目光:
原本是一张四个闺蜜在沙滩边上的普通合影照:
在新魔法的加持下,“啪的一下”画风两极反转,瞬间进入唯美动漫风:
还有效果截然不同的,例如酱紫:
不仅是动漫画风效果上的惊艳,就连人物的 pose 也是保持得“原汁原味”,美女们这下子算是分分钟实现了动漫自由。
如此效果一出,也是引来了不少网友们的围观,直呼“在线求教程”:
也有不少人呼吁可以将这套玩法商业化了:
两大 AI 高手联动
使出这套 AI 组合拳的,是一位叫“viggo”的华人小哥博主。
他所持的两大法宝分别是:左手StableDiffusion,右手ControlNet。
StableDiffusion,相信很多友友们都已经很熟悉了,是根据输入提示的文本,就可以快速出图的 AI 作画神器。
ControlNet,则是新晋当红 AI 插件(GitHub 上线 2 天狂揽 4.6K 星),相当于给 AI 作画这事加了 buff,可以精准控制手部细节和整体结构等。
小哥的做法说起也是比较简单,就是先将原图导入进去,用 StableDiffusion 图片转文字。
再用 Text2Prompt 插件拓展找到对应的关键词;最后用 ControlNet 插件绑定骨骼开始换关键词试效果。
当然,原图中四位美女的姿势,也可以根据小哥绘制骨骼结构的不同发生相应的改变。例如这样的:
相比原图中人物的位置,上面这张中的人物更分散了一些,也站到了一排;以及上半身手臂的姿势也发生了变化。
也是得益于 StableDiffusion 的能力,AI 生成画作在画风上也能产出截然不同的效果:
效果之惊艳,已经有网友按耐不住,照着小哥的说法“复现”了一遍,并表示:第一次接触,很好玩,尝试复现下,感觉良好。
不过有一说一,这位新晋 AI 作画顶流插件 ControlNet 的“神通”可不仅于此。
简单几笔也可画出真人效果
例如微博博主“海辛 Hyacinth”便分享了他用 ControlNet 插件后“草图变美女”的玩法。
他先是找了一张线稿:
然后是开启了 ControlNet 的 scribble 模细化效果,便得到了这样的结果:
效果之逼真,也是令人叹服了。
“海辛 Hyacinth”还测试了在同一 seed 下不同参数的效果:
有小伙伴就要问了,那如果关闭了 ControlNet,效果会如何?别急,博主也做了测试,效果是这样的:
“海辛 Hyacinth”的这波操作也是得到了 ControlNet 作者的认可:
这也把博主本人激动坏了,直呼“尖叫”:
当然,ControlNet 还可以实现其它诸多的功能,例如在装修设计上,可以输入一张拍好的卧室图,分分钟输出草图和换了风格的效果图:
以及在 ControlNet 的在线网站中,也提供了许多不同功能玩法体验,感兴趣的小伙伴可以去尝试哦:
给 AI 画画模型加 buff
ControlNet 的原理,本质上是给预训练扩散模型增加一个额外的输入,控制它生成的细节。
这里可以是各种类型的输入,作者给出来的有 8 种,包括草图、边缘图像、语义分割图像、人体关键点特征、霍夫变换检测直线、深度图、人体骨骼等。
那么,让大模型学会“按输入条件生成图片”的原理是什么呢?
ControlNet 整体思路和架构分工如下:
具体来说,ControlNet 先复制一遍扩散模型的权重,得到一个“可训练副本”(trainable copy)。
相比之下,原扩散模型经过几十亿张图片的预训练,因此参数是被“锁定”的。而这个“可训练副本”只需要在特定任务的小数据集上训练,就能学会条件控制。
据作者表示,即使数据量很少(不超过 5 万张图片),模型经过训练后条件控制生成的效果也很好。
“锁定模型”和“可训练副本”通过一个1×1 的卷积层连接,名叫“0 卷积层”。
0 卷积层的权重和偏置初始化为0,这样在训练时速度会非常快,接近微调扩散模型的速度,甚至在个人设备上训练也可以。
例如一块英伟达 RTX 3090TI,用 20 万张图像数据训练的话只需要不到一个星期:
作者基于当前大火的 Stable Diffusion 进行了具体实现,主要架构如下:
针对不同的输入,作者也给出了对应不同的模型,生成效果也都不错。
具体效果,就如我们刚才所展示的那样了。
One More Thing
最后来一个温馨提示……男同胞们不要觉得 2 月 14 日这个情人节过完就安全了。
接下来还可能有白色情人节(3 月 14 日)、黑色情人节(4 月 14 日)、玫瑰情人节(5 月 14 日)、亲亲情人节(6 月 14 日)……
赶紧把这套“AI 组合拳”学起来,送自己的老婆/女朋友一张唯美的礼物吧!
[1] https://twitter.com/decohack/status/1627378506857611264
[2] https://weibo.com/timerainer1015
[3] https://github.com/lllyasviel/ControlNet
[4] https://twitter.com/lvminzhang/status/1627142848788463616