老鹿学Ai绘画:ControlNet三维类控制

用户头像
成都/设计爱好者/1年前/9824浏览
老鹿学Ai绘画:ControlNet三维类控制
用户头像
野鹿志
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDU5NTI=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
今天我们要分享的内容视频版如下,
视频已添加进度条及配音
想要原视频、文中对比图以及模型
的鹿友可以
联系我
获取:
以下是图文版内容:
正文共:2906字 37图
预计阅读时间:8分钟
上一篇文章我们分享了ControlNet线条类控制,还没有看过的鹿友欢迎阅读:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDU5NTY=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
今天我们接着分享ControlNet的三维类控制,废话不多说,进入今天的正题吧!
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDU5NjA=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
01 
前言
三维类控制包括Depth (深度)和NormalMap (法线贴图),这两种控制在三维软件中比较常见,所以我把它们归类为三维类。
随着Stable Diffusion的更新,这两种控制类型都增加了一些新的预处理,今天大家就跟着老鹿一起把它们梳理一遍吧!
02 
Depth (深度)
使用过C4D的鹿友应该比较熟悉,在三维渲染的时候,我们通常会多通道渲染保存一张深度图,用于后期添加景深效果。
Depth (深度)也是一样,可以将图片提取成一张用黑白灰表示的深度图,用于表达图片常见中的远近关系,其中白色代表近景,黑色代表远景:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDU5NjQ=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
在Stable Diffusion中,如果你希望生成与原图构图类似,但是内容不同的图通常可以选择Depth控制类型:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDU5Njg=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
在Depth中一共有六个预处理器,分别是Midas、Zoe、Leres、Leres++、Anything和Hand_Refiner:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDU5NzI=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
Anything和Hand_Refiner是新增的两个预处理器,其中Hand_Refiner是专门用来修复手部,我们稍后再说。
Anything会有它专门的模型,需要下载下来放置到ControlNet的模型文件夹里:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDU5NzY=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
同时它还有自己的预处理器,通常情况下你点击爆炸图标它会在后台自动下载:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDU5ODA=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
但如果你是因为网络问题下载失败的话就会麻烦一点,因为通过控制台可以看到,在下载模型之前,后台还进行了一些环境部署:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDU5ODQ=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
文后我会把相关文件以及手动安装方法分享给大家:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDU5ODg=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
需要先将facebookresearch压缩包解压如图所示的指定路径中,如果cache文件夹里没有torch和hub文件夹,新建即可:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDU5OTI=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
然后把dinov2_vitl14_pretrain存放如图所示的路径里,同样如果没有checkpoints文件夹新建即可:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDU5OTY=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
再将depth_anything_vitl14模型文件存放到ControlNet对应的预处理器文件夹中:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwMDA=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
最后再将control_sd15_depth_anything模型存放到ControlNet对应模型文件夹中:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwMDQ=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
分享给大家的文档里,也写了具体的安装步骤供大家参考:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwMDg=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
在Leres和Leres++这两种预处理器中会有两个特有参数,移除近景和移除远景:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwMTI=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
作用如同字面意思,就是对远景和近景的修剪,下面是远近各自修剪百分之50之后的对比图:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwMTY=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
下面是五种预处理器的对比,可以看到Midas和Zoe忽略了一部分背景的细节,但是前景比较清楚。
Leres和Leres++背景细节最多,但是相对的,前景就会有点模糊。
新的预处理器Anything在处理远近的细节上跟接近Midas和Zoe,但是近景更加清晰锐利:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwMjA=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
在实际进行生图测试的时候,我发现用于适配Anything的ControlNet模型生成的图都坏掉了,不知道如果是生成室内效果图会不会好一些。
因此建议多数时候,我们还是用默认的depth模型吧:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwMjQ=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
最后我们再来说这个新增的Hand_Refiner预处理器,要使用它首先需要将hrnetv2和gaphormer这两个文件放到ControlNet对应的预处理器文件夹中:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwMjg=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
然后再将control_sd15_inpaint_depth_hand_fp16存放到ControlNet对应模型文件夹中:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwMzI=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
这里我先用sd生成了一张两只手都有问题的女孩图像:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwMzY=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
将它发送到图生图局部重绘里,并用画笔涂抹有问题的手部区域:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwNDA=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
然后在ControlNet中Depth控制类型中选择Hand_Refiner预处理器以及对应的适配模型,点击爆炸图标可以看到能够提取出一张正确的手部深度图:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwNDQ=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
点击生成手部的问题就被修复了:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwNDg=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
03 
NormalMap (法线贴图)
相信许多鹿友应该都是我以前写C4D内容的时候关注野鹿志的,所以对法线贴图这个概念并不陌生。
NormalMap (法线贴图)就是用图片的RGB通道记录物体在三维场景中的坐标信息,从而模拟光影以达到凹凸效果。
三维软件中我们通常是在制作材质的时候会用到法线贴图,而在Stable Diffusion中,这项NormalMap控制类型和Depth使用场景类似,主要是通过光影来还原画面的布局:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwNTI=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
在NormalMap中一共有三个预处理器,分别是Bae、Midas和Dsine:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwNTY=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
其中Midas是以前ControlNet1.0的算法,官方表示已经弃用,大家仅做了解:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwNjA=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
在这个算法中有一个Normal Background Threshold的选项,默认数值0.4,数值范围是0-1:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwNjQ=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
它的作用主要就是移除远景的信息,数值越大,远景的信息越少:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwNjg=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
Dsine是新增的一种算法,我在网上暂时没有找到相关的使用说明,它似乎是有专门的ControlNet SDXL模型。
要使用它需要将预处理器模型dsine.pt存放到对应的ControlNet预处理器文件夹中:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwNzI=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
同时要将ControlNet模型放到对应的模型文件夹中:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwNzY=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
但经过我的测试,它在SD1.5模型下也可以使用,下图中我们可以看到,当我SD大模型选择1.5模型,同时ControlNet模型也使用1.5模型时,控制仍然生效。
而且说实话,我个人并不觉得在这个例子上,SDXL控制会比1.5模型好:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwODA=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
Dsine中会有Fov和Iterations两个参数,同样我在网上暂时没有找到相关说明,只能说下自己的理解:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwODQ=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
Fov是视场角的意思,数值默认为60,数值范围0-360,我觉得这里的单位应该是度。
应该是为了模拟三维场景摄像机中不同视场角所看到的光影变化。
从下图我们可以看到,当数值为0和数值为360的时候,法线贴图完全相同,这就是由于360度和0度的位置是一样的:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwODg=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
Iterations是迭代的意思,默认数值为5,参数范围1-20,这个参数我只能从三维软件的使用经验来推测它的用途。
在三维软件中,迭代次数通常指的是对某个数值计算的次数,这里可能就是用迭代次数来对生成的法线贴图进行微调吧。
从下图的对比中我们可以看到,法线贴图的区别并不是很大:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwOTI=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
接下来是三种预处理器在默认参数情况下生成法线贴图的对比图,Dsine算法会比Bae更加清晰,而Midas算法和我们常见的法线贴图差异较大:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYwOTY=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
最后则是三款预处理器生成图的对比,Midas基本可以弃用了,Dsine生成的图也Bae清晰,但是反而少了景深的效果。
至于修改Dsine中的Fov参数,是否也可以得到景深效果我就没有进一步测试了。
说实话,我从来就没有用过NormalMap这个控制类型:
老鹿学Ai绘画:ControlNet三维类控制(图ZMTQ4MDYxMDA=) - 教程 - 站酷设计师野鹿志原创素材 - 站酷ZCOOL
Collect
好了以上就是ControlNet三维类控制的所有内容。
如果觉得对自己有所帮助,请不要吝啬自己的一键三连,你们的支持对我很重要,谢谢!
143
Report
|
227
Share
相关推荐
评论
用户头像
in to comment
Add emoji
喜欢TA的作品吗?喜欢就快来夸夸TA吧!
推荐素材
You may like
相关收藏夹
大家都在看
Log in