一、Canny边缘检测
(1)旧版
canny是一种老式算法,会通过灰度变化检测图像中内容的边缘并提取出来,包括曲线直线等等各种线,类似于线稿,但是线条宽度固定没有粗细。出图时需要配合canny模型使用。
选择预处理器后,就可以点击插件最下方的预览预处理按钮,预览预处理结果↓
能发现,它提取的内容都是有明显边界的,对于变化不明显的,如原图中的背景明暗衔接并没有提取出来,只有一条线,还有腮红、手指、光影,都没有体现,
随机抽一张看看,背景衔接的地方已经失去了空间感↓
查资料时都说canny还有一个缺点是容易受到图片噪声影响,如果是噪点较多的图像,可能会把噪点当做边缘提取。
分辨率的效果上面说过了,先保持默认,我们调节剩下的两个选项
1. 弱边缘判断阈值 & 强边缘判断阈值:
这俩货一看就是能把人绕晕的功能。既然是判断值,那肯定是需要提取原图中的某个值进行判断,正常情况下,我们都会认为低于最低值和超出最高值不会被提取,只提取他们中间的值,但是并不是这样。以下只是我的个人理解,不保证正确。
弱边缘阈值,它的意思就是低于它的值一定不会被提取;强边缘阈值,就是超过它的值一定会被提取。那中间的值哪去了?中间的值如果和超出强边缘阈值的值有关联,那它也会被提取。
举个例子,图上有一件衣服,衣服上有几道褶皱,有的明显有的不明显。使用canny提取这件衣服,这些褶皱该怎么提取?
明显的褶皱值经过判断是高于强边缘阈值的,它们被提取,这些会被提取的我们统称为强边缘;
一些不明显的褶皱值是低于弱边缘阈值的,它们不会被提取,我们统称为弱边缘;
假设还有两道褶皱的值既高于弱边缘阈值又低于强边缘阈值,我们称之为A和B,这时候会进行判断,A褶皱恰好连接在强边缘上,那么A就会被提取。B孤家寡人,没有与之相连的强边缘,那么B就会被舍弃。
总结一下:
调低弱边缘阈值,并不一定会增加边缘数量,只是让原本没机会的有机会,有可能它正好有个强边缘的亲戚,所以说即使增加了,也是在强边缘附近增加。同理,调高弱边缘阈值会剔除一些强边缘附近的不够格的亲戚;
调低强边缘阈值,会使原本不达标的直接达标,还能让处于中间的亲戚沾光,显著增加边缘数量。如果调高,不仅会剔除原本的边缘,还会连累一大批亲戚。
如果弱边缘阈值高于强边缘阈值会发生什么?
强者为尊,强边缘阈值说了算
然后回到前面美女和桃花的例子,在预处理器分辨率提升以后,被模糊的桃花有一部分从边缘提取中消失了,↓
分辨率提升意味着更精细的处理,更精细的处理时它们消失了,我认为大概率还是因为他们处在中间值的位置,就好像一放大,原本看着是连着的线其实并没有连在一起。因此我们直接调低强边缘阈值看看效果↓
果然又回来了
所以说自身强才是真的强,依靠政策迟早黄….
下一个
2. HED边缘检测
如同翻译的说明一样,hed会保留细节,且线条柔和,对比canny↓
hed擅长外部轮廓的边缘提取,像一个整体的感觉(我查了下它的全称,Holistically-Nested Edge Detection,翻译为整体嵌套边缘检测 ),内部的细节会丢失一些。比如头像旁边的这串桃花和背景的桃花一起形成了整体,还有眼睛、袖子的细节都缺失的厉害↓
通过调节预处理器分辨率,可以缓解这一问题,下图是1024的分辨率↓
我们换个图出图看一下,这个图实在是跑不动
主要是看一下头部这一部分
原图–hed出图–不知道画了个什么的canny↓
毛绒绒的耳朵得到了保留。
3. PiDiNet边缘检测
PiDiNet需要和hed模型一起使用,这效果和伪涂鸦有的一拼…只保留了大体内容
原图–预处理图–出图↓
同样的,提高分辨率会增加细节↓
hed、pidinet与canny的最大区别就是线条不再是固定宽度,有了粗细,粗细变化代表还原度更高。
(2)新版[v1.1]
v1.1中新模型都需要单独的配置文件,上面说了配置文件需要和模型文件一样的名称,官方也提醒从第三方下载的模型可能会出现名称不匹配的问题。
Canny边缘检测
对应的模型文件为control_v11p_sd15_canny。
预处理器似乎并没有啥改变,左旧版,右新版↓
模型升级了,看机翻
出图稍微对比一下。左旧版;右新版↓
我感觉模型变化蛮大的。更自由了些,不再是死板套用,后面那些不明意义的东西也给与了实质响应↓
后面的内容因为v1.1变化较大,所以全都删了重写了
按照整理的顺序进行
1. threshold / 阈值法
threshold对应旧版的binary/二值,但是并不一样,具体有什么区别搞不清,从效果看就是二值的反色,应该是为了统一样式(黑色背景白色线条)进行的修改。
左:二值;右:阈值↓
接触过ps的应该熟悉阈值。
二值是最简单的图像分割方法,它的效果就是把所有颜色都变成黑白,要么黑要么白,通过调节阈值来调节分割效果的方法称为阈值法。也就是这个预处理名称,亮度超过阈值的变成白色,低于阈值的变成黑色,默认的阈值是0-255的中间值127。
因为是靠像素亮度进行分割,所以对于具有复杂色彩的物体很难进行精准区分。它适用于背景简单,颜色对比强烈的图像。
阈值法实际上有两种,一种是全局阈值,一种是局部阈值,插件的这种就是全局阈值,也就是整张图片都使用一个阈值就行分割。所以问题很明显,很容易受光线影响,即便是同一个颜色,光照导致的明暗,也会造成分割出现问题。
对应的模型没有明确,暂且是control_v11p_sd15_scribble和t2iadapter_sketch吧,出个图看一下…
看选项:
调节分辨率会让预处理图更清晰,在一定程度上可能会影响预处理结果;
二值化阈值会直接影响预处理结果,上面说了,这个值表示 低于它为黑,大于它为白,默认为127,
左:127;右:180↓
二值很简单,之所以放在前面说,是因为它向我们阐述了最基本的计算机视觉,它们眼里木得感情,只有数字….后面的canny、hed、pidinet等都是基于这种原理。
canny上面说过了,不重复了;
二、depth深度图系列
深度信息估算就是按照远近使用黑白灰进行预处理。镜头越近,白色越深;镜头越远,黑色越深。v1.1中除了旧版的depth_midas 、depth_leres,新增了depth_zoe预处理器。这三个预处理器均对应control_v11f1p_sd15_depth模型。
新的control_v11f1p_sd15_depth模型增强了多分辨率的训练,其他看官方说明:
1. depth_midas
midas是一种单眼深度感知算法,意思就是从单张图片中感知深度。正常的比如3d电影,是由两个画面合在一起才让我们感觉立体感。具体我也搞不懂,可以简单理解为它使用了透视原理。
使用depth_midas提取深度图:↓
可以看出MiDaS会更注重近景内容的提取,远景的内容也有,虽然并不明显;小腿部位的前后关系有正确表达,但是整体的细节并不丰富,头发和胳膊没有明显区分,小蛮腰也没了。
放到原图上看一下↓
出图看一下,为了减少影响,不使用无提示词模式,也不输入提示词:↓
MiDaS也只有一个分辨率调节块,下图分别是386–512–1024。
1024时已经能看到后面的轮廓↑
分辨率增加,首先增强的仍然是近景,512相比386,右侧不知道是什么的什么明显变亮,还有腰间、头发和胳膊有了一点点区分。到1024时前景的增强更明显,同时能肉眼看见一些远景。↓
分别出图看一下:左386;右1024
换一张大空间图看看,
原图–512–1024–512出图↓
总结:depth_midas综合能力好,提升分辨率会增加细节与远景,适用于远近景兼顾的需求。
2. depth_leres
leres全称是 Learning to Recover 3D Scene Shape from a Single Image,学习从单个图像中恢复3D场景形状,因此会还原更多内容。
左:midas;右:leres↓
因为要顾及远景内容,前景整体泛白,细节缺失,远景还原的也不够协调。
放到原图上看一下↓
出图看一下↓
1024分辨率远近景都要好一点,最起码小蛮腰出来了,头发依然一片混沌↓
可以通过调节滑块排除近景和远景。
排除近景,就是给近景添加白色;
排除远景,就是给远景添加黑色,数值百分比的意思应该占整个画面的百分比。
在深度图中白色代表最靠前,排除近景事实上并不会让被排除的画面消失,而是消除了他们的深度信息;添加黑色排除远景是抹去了一些东西,会出现什么需要提示词指引。
近景排除30%,不写提示词随便发挥,原本处在不同深度的腿、两边的墙啥的,现在都在一个深度↓
远景排除40%,提示词写riverside,这个就是比较正常的排除↓
(事实上,上面的图我还是添加了一些负面提示词,不然全是比基尼….)
无论是排除近景还是远景,都会影响到原本的细节,比如上图中的头发
看看大空间,原图–512–1024–512出图↓
总结:leres对于远景的提取更好,但是会影响近景,总体感觉并不如midas,但是leres有个优点就是可以自定义排除远近景,可控性好。
3. depth_zoe 新增
zoe全称是Zero-shot Transfer by Combining Relative and Metric Depth,是一种是结合相对深度与绝对深度的新算法,啥意思我也不懂,就是相比其他的,zoe误差更少、结果更准确
先看对比,都是512的分辨率
左:midas;中:leres;右:zoe↓
放到原图上看一下↓
这个是人物细节还原的最好的,但是特点也很明显,远景直接无
再换个图感受下,最左原图,左:midas;中:leres;右:zoe↓
这张图更能反应三种预处理器的特点,
midas是最均衡的,远近景都还原较好,但是整个房间内的颜色差距并不大,也可以说深度差距并不大;
leres的远景甚至到了窗外,但也因此前景丢失了很多;
zoe对空间深度更敏感,从右下到左上,由近及远层次清晰,甚至连帽子的深度都有估算,但是远景丢失;
出图看一下,最左原图,左:midas;中:leres;右:zoe↓
zoe走遍竟然还把窗户补上了实在是让人没想到,使用ps处理一下看看黑的地方到底有没有内容
实际上还是有一点的。↑
使用zoe深度图做个gif玩玩
以近景为支点画圈↓
以中点为支点画圈↓
以远景为支点画圈↓
大空间图:最左原图,左:midas;中:leres;右:zoe↓
zoe出图↓
大空间这种,zoe的远景反而比midas要好
总结:默认选zoe就行~
三、lineart / 线稿系列
lineart系列是此次v1.1更新新增加的内容,四个预处理器:lineart_realistic、lineart_coarse、lineart_standard、lineart_anime;两个模型:control_v11p_sd15_lineart、control_v11p_sd15s2_lineart_anime。
其中lineart_realistic、lineart_coarse、lineart_standard对应control_v11p_sd15_lineart模型,用于正常图片转线稿出图;
lineart_anime对应control_v11p_sd15s2_lineart_anime模型,是动漫线稿专用,配合二次元大模型出图。
1. lineart_realistic
以前就叫lineart,后来加了个realistic。就是将正常的图片转成线稿,并不仅限写实类图片。
这次出动美女做实验对象↓
能看到它的线条并不是正儿八经的那种实线条,带一点hed那种柔化的效果↓
会受光照的影响↓
另外主体很完整,背景的内容似乎会被舍弃
出图看一下
提示词统一使用:
masterpiece, best quality, highly detailed, absurdres,1girl, Negative prompt: bad-hands-5,EasyNegative,nsfw, lowres,worst quality,low quality,normal quality, jpeg artifacts,bad anatomy,text,error, signature, watermark, username,
写实这种影响蛮大的,二次元的反倒是还行↓
程序有自己的判断,并不会一昧的舍弃背景。
提高分辨率会使线条更精细,增加更多的线条。左512;右1024↓
2. lineart_coarse
lineart_realistic的粗略版,
中:lineart_realistic;右:lineart_coarse↓
不知道在绘画中这个叫什么,感觉就像是线稿的草稿一样,有类似参考线一样的延伸线条没有擦掉似的
上面说的光照的影响,减弱了许多
出图看看
左:原图;中:realistic;右:coarse↓
脸越来越黑系列….
裙子上的褶皱、阴影,线稿并没有提取,AI还是给画了,还画的不好
提高分辨率会减少一些莫名其妙的线,增加细节
左:512;右:1024↓
换复杂的图:
对比realistic看出来什么叫粗略线稿了
粗略的好处就是会有更大的变化,更自由
其实我蛮好奇将它们反色以后是什么样,然后试了一下↓
coarse
3. lineart_standard
这个预处理器还有个后缀:from white bg and black line,按照官方的说法,standard是专门用来处理白色背景黑丝色线条的线稿图的,但是我们还是都试一下
上:standard;中:coarse;下:realistic↓
standard
因为是用来处理线稿图,所以基本不会做改变,主打还原,可以看第三张图基本是百分百还原了线稿。还原度太高也因此不适合用来处理正常图片,当然也不是不能用,如果就是拿来换个颜色,我觉用standard还蛮合适的
coarse
使用standard出图:
左:原图;中:realistic;右:standard↓
左:原图;中:realistic;右:standard
左:原图;中:realistic;右:standard
告诉你们一个秘密,不要放大看最后一张图,否则会发现一个秘密
4. lineart_anime
lineart_anime需要使用control_v11p_sd15s2_lineart_anime,需要输入尽可能详细的提示词才好用,不支持无提示词模式。
先看下预处理器,前两张图只是拿来对比一下效果,可能并不适用:
左:原图;中:realistic;右:anime↓
左:原图;中:realistic;右:anime
左:原图;中:realistic;右:anime
不好评价,第一感觉anime像是提高了阈值版的realistic,线条变少变淡,但是又没少多少….还原程度上来说稍稍变低。
官方表示这是专门用来处理动漫线稿的,因此我们主要看下线稿,用standard那张与它对比
左standard;右anime↓
左standard;右anime
首先背景的云彩直接无了;头发的轮廓没变,里面的变化忽略不计;可能是睫毛的地方没变,眼睛变淡;再下面就是线条颜色稍稍变淡。
再换个图试试↓
这次倒是能看出一些特点:原图的线条越粗,在anime预处理图中就越亮;原图中线条越细,anime预处理图中就越淡
再找个验证一下↓
确实是如此,但如果线条太粗,会被直接忽略,不确定判定标准是什么↓
网图
再看看模型的效果,
先试试搭配control_v11p_sd15_lineart,然后搭配control_v11p_sd15s2_lineart_anime,使用前面的realistic的出图作对比
左:realistic+sd15_lineart;左二:anime+sd15_lineart;
右二:anime+sd15s2_lineart_anime;右:anime+sd15s2_lineart_anime+二次元模型↓
左:realistic+sd15_lineart;中:anime+sd15_lineart;右:anime+sd15s2_lineart_anime;↓
左:realistic+sd15_lineart;中:anime+sd15_lineart;右:anime+sd15s2_lineart_anime;↓
再看看后面试验的那几个,实在不想写提示词,使用anythingv3出图↓
最后这张不同的大模型效果不同,anythingv5就不会补全另一只眼睛,另外鼻子上这个黑点实在是让人难受…..↓
sd15s2_lineart_anime需要长提示词才能发挥好的效果,意思就是最好详细的描述想要的内容和效果,我就不尝试了,大家自己试试吧
这几个预处理器都只有一个调节分辨率的选项,仍然是越高越精细,但是效果不一定好,尤其是对正常图片来说,对线稿的影响是比较小的,也不在进行比对
总结:lineart是还原度最高的预处理器。使用正常图片时选择realistic,想要进一步降低还原度可以选coarse,反之想要高度还原选standard;anime专门给线稿使用,是画家们的首选,应该是….
四、mlsd / 直线检测
不再测试,直接放官方的图↑
继续下一个
五、 normal / 法线贴图
midas预处理器虽然还在,但是官方的说法这个已经被弃了。旧版的模型无法兼容其他引擎,也弃了。所以直接使用新版就行。
法线是一个数学概念,使用垂直于表面的矢量来表示其方向。法线贴图虽然看着花花绿绿的,但是颜色并不是真的颜色,是数值,表示法线矢量的方向。就和深度图的颜色一样,深度图的颜色代表空间深度,法线贴图的颜色代表纹理或深度。
简单理解就是用光线照射一个物体,如果表面凹凸不平,光就会被往不同的方向反射,通过这些方向可以反推物体的形状。但是我们上传的并不是一个物体而是一张平面的图片,所以这个可能还是以深度估算为基础进行的。
因此法线贴图是用来还原原图的形状、纹理等等表面特征,上传图片时就要注意,如果立体感很差,预处理基本不会有效果。
这个颜色前面说RGB to BGR的时候也说过。
normal_midas就不说了,反正不维护了。
1. normal_bae
新增的法线预处理器,用以替代midas,只有一个分辨率选项↓
相比深度图的黑白,这个使用三个颜色代表数值,变化太多,一些小的变化肉眼实在是很难观察,但是看出图确实是有的
原图的空间感是很足的,出图就不行了,再开启一个窗口使用深度depth结合看看
六、openpose/ 姿势检测系列
这次的openpose优化了手部检测,添加了表情检测,对应的模型是contro
1. openpose、openpose_hand、openpose_face、openpose_full
openpose是姿势检测的预处理器,hand是姿势+手,face是姿势+脸部表情,full是姿势+手+脸部表情
看示例,全身图脸部实在是太难了,高清修复又浪费时间,最后终于找了个还能看的
openpose_hand:可以发现原图的手就不行,依照原图提取的手也没还原,而且只提取了一只手↓
openpose_face:即使把分辨率提到1024,仍然只有一点笑意,等会专门找个面部大图试试↓
openpose_full:↓
试试脸部大图,512和1024分辨率并没有区别,只不过是看着点大点小,数量和位置是一样的,眼部并没有还原↓
原图是我随机生成的,本来就不咋样,和原图一比,这俩出图就和看牙医一样….
2. openpose_faceonly、mediapipe_face
还是上面那个图,看看只有脸部的情况
openpose_faceonly,多试几次也能还原出眯着眼,还会出现意外….↓
mediapipe_face,还原眯着眼的概率极高,也会出现睁眼的状态↓
关于mediapipe_face,机翻
三周前就开始试验,几天前才合并进来,需要单独下载模型和配置文件,放到…\extensions\sd-webui-controlnet\models
https://huggingface.co/CrucibleAI/ControlNetMediaPipeFace/tree/main
一般的话下载sd15就行
mediapipe_face除了分辨率还有两个调节选项。
max faces:最大面部数量;
Min Face Confidence:最小面部置信度。置信度的意思就是它检测到一个地方像又不像面部,就会给它一个置信度,如果低于这个值,就不会被当做面部进行提取。
图片上有三个人脸,我们要全部提取,就需要设置max数量为3(或者大于3…)↓
没要中间的,不知道什么原理,可能是按照置信度排序?继续看1个的情况↓
只要了左边的,再试试其他图。↓
图片来自百度。这一张上有6个面部,左后方的那个不是我打的码,试试全部提取,max设置为6↓
少了一个,那个被胳膊挡住了一部分,置信度低于0.5了,调低置信度试一下↓
大家根据自己的需要设置。
七、scribble / 涂鸦系列
scribble_xdog、scribble_pidinet是新增的,scribble_hed是旧版的伪涂鸦,本来还有个scribble_thr是旧版的涂鸦(类似二值),后面的更新被移除了。它们对应的模型是control_v11p_sd15_scribble。
涂鸦的线条较粗,因此大部分的细节都难以得到精细的保留,但是相对的也更自由,更适合拿来自由调校。
随便选个好看的大模型做测试
1. scribble_hed
只有一个分辨率选项,上:512,下1024,为了减少出图影响,都不填写提示词↓
scribble_hed预处理器出图的线条虽然简单,但是能发现scribble模型对线条很敏感,线条的增加减少都会得到很明确的反馈。
这个大模型和anythingv3有的一拼,什么提示词都没有,仅凭几条线就出图就这么好
似乎更喜欢二次元图,线条真多↑
对于线稿,512的分辨率直接啥都看不出来,但是还画出来了。而且出图对线稿十分不友好,特别喜欢把衣服的线条当成关键布料,然后其他地方全都镂空,上面那张1024的出图是我随机了好多张才选出来的。↑
小新哭晕在厕所….↑
2. scribble_pidinet
相比hed,pidinet会保持线条尽量连贯,但是会舍弃一些小细节,看不懂原理
左:pidinet 512/1024;右:hed 512/1024↓
为了照顾小新的情绪,娜娜子就不上了
3. scribble_xdog
DoG实际上是一种类似canny的边缘检测,xdog改进了dog,加宽了边缘,添加了阈值选项进行范围判定,阈值越小,轮廓边缘越宽,还原的原图内容越多;阈值越大,边缘会变细一点,但是会舍弃很多内容,这也可能是把它放到涂鸦这一系列里的原因。
左:xdog 512/1024;中:pidinet 512/1024;右:hed 512/1024↓
分辨率的提升对xdog基本没啥影响,看着不一样是因为图缩小了,放大看其实是差不多的↓
主要看一下不同阈值的影响,默认值是32
左:1;左二:16;右二:32;右:64↓
出图看一下↓
八、segmentation / 语义分割系列
语义分割预处理器使用不同的颜色标记不同的物体,然后通过模型还原,还原出来的是同一类,并不是同一个。
seg_ofade20k(ofa)、seg_ofcoco(ofc)是新增的预处理器,使用了Oneformer,seg_ufade20k(ufa)就是旧版的语义分割,使用了Uniformer。ade20k和coco的区别就是颜色代表的物体不同,另外coco拥有更多的颜色,可以精确区分更多物体。感兴趣的自行百度ADE20K和COCO颜色表,看看分别代表什么
原图;左:seg_ufade20k;中:seg_ofade20k;右:seg_ofcoco↓
吉他ade20k和coco都没识别出来,看来是都没有这个;ufa的识别显然是很混乱,边界不清;ofa就好很多了,背景上的两个牌子都识别出来了,但是墙整个是一体的;ofc分的倒是很清楚,不过墙上的牌子没识别出来。
换个场景↓
从这张看ofc就强太多了,海洋、沙滩、房屋、绿地、道路、树木、道路分的很清楚
插播一个汉堡包,由artiusv15_v1大厨制作
九、shuffle / 随机洗牌(试验)
新增的预处理器和模型
根据官方的说法,这应该是一个风格转换模型,类似t2i的style,我们按照官方给的两个示例测试。
洗牌:
打乱原图的特征,赋给新图。预处理器选择shuffle,模型选v11e_sd15_shuffle
左原图;右shuffle,因为是随机洗牌,所以每次的预处理图都是不一样的,我就放了第一次预览的↓
新图我们就输入1girl提示词吧↓
robot↓
哈哈,
没搞懂…..
再换一个,提示词写cyberpunk city,↓
像是把两者糅合在一起了,但应该还是赛博朋克city做主导。
试试输入一张线稿,↓
接下来不洗牌:
官方的示例中,使用了钢铁侠作为原图,然后提示词输入蜘蛛侠,于是得到了一个钢铁蜘蛛侠。
取消预处理器的选择,只选择模型
用上面的原图,cyberpunk city,↓
还是再换一个…
输入一个机器人,提示词就写cat吧↓
赞
输入一张线稿图↓
输入一张彩虹女孩图↓
输入一个足球图↓
输入一个汉堡包图↓
这个还是蛮有意思,可以创造出很多奇思妙想,我能玩一天
…
我玩了一天,发现大多数情况,只是将配色输出;原图的结构特点如果十分鲜明,会优先使用结构;使用fantasy标签的大模型会更有意思;可以先只使用模型,如果没啥效果再考虑预处理器+模型↓
猫猫头已经称霸宇宙
十、softedge /软边缘系列
只有softedge_hed是旧版的hed边缘检测,softedge_pidinet虽然名字和旧版一样,但是效果完全不一样,softedge_hedsafe、softedge_pidisafe是新增的。四个预处理器共用control_v11p_sd15_softedge模型。
softedge就是最上面说的hed的那种软边缘效果,相比canny固定宽度的边缘,softedge使用粗细、明暗变化的线条表示边缘,线条更流畅,会保留更多的细节与内容。
1. softedge_hed、softedge_hedsafe
虽然官方对safe模型做了介绍,但是完全看不懂,看看他们的效果。出图仍然不写提示词,也不使用无提示词模式。
softedge_hed,上:分辨率512;下:分辨率1024↓
不知道为啥1024的出图全是这样,调整了各个选项都没效果,不知道是不是bug。
分辨率提升,线条分的更细,层次更清晰。
整体还原度非常高。但是能看到hed还是会受到光照得到影响,那一片头发完全分不开,脸上多了一道沟。
softedge_hedsafe,上:分辨率512;下:分辨率1024↓
相比hed,多了一些灰色的部分,光照的头发终于分开了,脸上的沟也减轻了。但是背景消失了一部分。分辨率提升,灰色部分变少了,背景消失的更多。
仔细对比一下:上hed,下hedsafe↓
灰色填充的部分主要是hed中没完全分开混在一起的地方:比如受光照影响的头发、阴影,刘海头发之间的间隙。虽然台灯依旧没发光,safe还原了一些光照效果。有一个很细节的地方就是领子上的红色和头发正好交织,hed直接把它们放在一起,safe中给分开了。
虚化的背景几乎全部被灰色替代。也能很明显的察觉到safe少了一些细节,因为safe的线条更粗,而且没有了那种明暗的虚化效果(被灰色代替),脖颈处的头发、衣服上的褶皱都没有表现。
总的来看s
2. softedge_pidinet、softedge_pidisafe
softedge_pidinet,上:分辨率512;下:分辨率1024↓
pidinet线条更多更细,512甚至看着有些模糊。有点不合常理,按理说hed应该线条更多。
1024线条明朗了许多,但是内容有增加有减少。
对比一下,上hed,下pidinet↓
pidinet线条更柔和,因此头发的还原更好,其他的地方差不多。线条多我猜是图的原因,换个细节丰富的图对比,
左hed,右pidinet↓
1024分辨率↓
这次能够看出差距,显然是hed内容更多。pidinet更注重轮廓,轮廓内的细节丢失
softedge_pidisafe,上:分辨率512;下:分辨率1024↓
pidinet safe的效果和上面的hed safe的表现差不多,适用于光影的图。
看一下对比:上pidinet,下pidinetsafe↓
safe脸部全被灰色填充,出图不大一样了,睫毛没了,眼睛就感觉小了不少….
对比一下lineart,出图的大模型不一样,lineart当时用的写实模型
上lineart realistic;中softedge hed;下:softedge pidisafe↓
softedge系列更适合毛绒绒的原图↑
十一、ip2p / 指令编辑(试验)
ip2p在sd上早就有大模型了,可以在wiki页看到
我也下载体验过了,并不怎么好用↓
很多都不好使
在v1.1中的ip2p
目前并没有预处理器,我们尝试下看看
Turn the cat into a mechanical cat↓
….
Let the cat wear the mech↓
….
Change cat fur color to red↓
….
gg
换个官方示例中的图↓
make it on fire↓
make it winter↓
make it dilapidated↓
make iron man on roof↓
这两张和原图根本就没关系啊↑
make it on riverbank↓
let the house be destroyed by cat↓
make the house black↓
目前还没啥用…
十二、inpaint / 局部重绘
和图生图的inpaint差不多,不过图生图是只重绘蒙版区域,而cnet的inpaint是全图重绘,只是蒙版区域变化更大,其他区域变化小。
预处理器选择inpaint global,模型选择inpaint
遮住猫猫头,提示词输入dog↓
狗头太大了…puppy
有点模糊,没有景深,背景没区分开,其他地方虽然形状没变,但是颜色和纹理都变了
一样的问题
但是依然比图生图的要好,主要是衔接的比较协调,看一下图生图的效果
蒙版没有画到的地方衔接的不好,这还是简单背景的
换个复杂的看看↓
inpaint↓
图生图↓
换个更高难度的↓
提示词用body
看一下比例,有点不协调,原图的胳膊其实也有点不协调↓
主要是看衔接的地方↓
图生图↓
十三、tile / 分块
v1.1中新增,现在的预处理器为tile_gaussian,模型为tile
在图生图的局部重绘中,蒙版区域是重绘的区域,如果放入原图的提示词,它会在蒙版区域按照提示词生成一个和原图类似的图像。这个官方也是说,为了生成一张大图,把一个图片分成小块绘制,但是它会按照提示词在每个小块都生成差不多的内容,而tile可以解决这一问题。
先实验一下官方的示例
c站找一张图,使用图生图上传这个做原图,复制原始数据填充,修改出图尺寸为512512。可以看到手不大好,编辑图像只剩手,比例差不多一比一,和512512匹配。
使用tile时不需要在controlnet上传图片了,它会直接使用图生图我们调整那个图片。预处理器选择无,模型选tile
出图
不但没啥变化,画质还变差了,搞不懂….
难道要选预处理器?选上看看
预处理图
出图
还是搞不懂,因为这个模型是标记的未完成状态,不先管它了。
十四、t2i系列
t2ia_color_grid、t2ia_sketch_pidi、t2ia_style_clipvision预处理器分别对应t2iadapter_color、t2iadapter_sketch、t2iadapter_style模型。t2i预处理器可以用t2i的模型,也可以用cnet的模型,但是类别要对应;同理,cnet的预处理器也可以用t2i的模型。
t2i和controlnet的原理不一样,只知道一个是前一个是后,具体是什么看不懂,但是一个显著的区别就是模型的大小不一样,t2i小,cnet大。
下面的示例都是用t2i的模型。
1. t2ia_color_grid
提取图片中的色彩,分辨率越大色块越小。出图方面没有cnet的模型效果那么好,需要提示词辅助
2. t2ia_sketch_pidi
3. t2ia_style_clipvision
这个和shuffle一样,都是风格转移类的,但效果不如shuffle,只能生成类似的风格,另外这个没有预览
左原图;右出图
输入彩虹女孩↓
输入发光小熊↓
输入二次元风景↓
大家自己尝试吧
十五、IP-adapter (图像提示词适配器)
图像提示适配器 (IP-adapter) 是一种 ControlNet model(模型),它允许你使用图像作为提示词(prompt)。请阅读 He Ye 和他的同事们的文章_ IP-Adapter: Text Compatible Image Prompt Adapter for Text-to-Image Diffusion Models _,并访问他们的 Github 页面了解实现细节。
1. 安装 IP 适配器模型
在使用 ControlNet 中的 IP-adapter 之前,下载 v1.5 模型的 IP-adapter 模型。
将它们放入 ControlNet 的模型文件夹中。
s
2. 使用 IP-Adapter
IP-adapter 允许你使用图像作为提示词(prompt),因此你需要提供一个参考图像。比如我们用下面这个图。
图像提示的参考图像。
在 ControlNet 部分,将图像上传到图像画布。
下面是是使用 IP-adapter 的 ControlNet 设置:
- Enable: 是
- Pixel Perfect: 是
- Control Type: IP-Adapter
- Preprocessor(预处理器): ip-adapter_clip_sd15
- Model(模型): ip-adapter_sd15
下面是使用和不使用 IP-adapter 的图像对比。
不使用 IP-adapter.
可以看到参考图像中的特征,如花朵和较暗的颜色,被转移到了生成的图像中!
SD 1.5 Plus IP-Adapter 模型也有类似的效果,但作用更强。
SD1.5 Plus 模型非常强大。它几乎会完全复制参考图像。你可以降低Control Weight来调节强度。
十六、ControlNet Inpainting(修复控制)
ControlNet inpainting(修复) 允许你在inpainting中使用高降噪强度,以生成较大的变化,同时不牺牲图像整体的一致性。
例如,我使用了现实人物的提示词(prompt)。
模型:HenmixReal v4
提示词(prompt):
photo of young woman, highlight hair, sitting outside restaurant, wearing dress, rim lighting, studio lighting, looking at the camera, dslr, ultra quality, sharp focus, tack sharp, dof, film grain, Fujifilm XT3, crystal clear, 8K UHD, highly detailed glossy eyes, high detailed skin, skin pores
年轻女性的照片,高光头发,坐在餐厅外,穿着连衣裙,边缘光,工作室照明,看着相机,单反,超高质量,清晰对焦,锐利,景深,胶片颗粒,富士XT3,相当清晰,8K UHD,高度细致的光泽眼睛,高细节皮肤,皮肤毛孔。
反向提示词:
disfigured, ugly, bad, immature, cartoon, anime, 3d, painting, b&w
畸形、丑陋、糟糕、不成熟、卡通、动漫、3D、绘画、黑白。
比如我有这张图片,准备用inpainting来重新生成面部。
如果我以高降噪强度(> 0.4)重绘面部,结果可能会整体不一致。以下是降噪强度为1的未重绘图像。
使用ControlNet inpainting(修复):
1. 最好使用生成图像时使用的相同模型。在txt2img页面生成图像后,点击Send to Inpaint将图像发送到Img2img页面上的Inpaint标签。
2. 使用画笔工具在你想要重新生成的区域创建一个这遮罩层。如果你不熟悉 inpainting,请参阅初学者教程inpainting。
- 将Inpaint area设置为Only masked。(Whole picture也可以)
- 将denoising strength设置为1。(通常不会在没有 ControlNet 的情况下设置这么高)
- 在ControlNet部分设置以下参数。你不需要上传参考图像。
Enable: Yes
现在,即使在最大降噪强度(1)下,我也能获得与整体图像一致的新面部!
目前,有三个 inpainting 修复预处理器:
- Inpaint_global_harmonious:提高全局一致性,允许使用高降噪强度。
- Inpaint_only:不会改变未遮罩区域。它与 AUTOMATIC1111 中的 Inpaint_global_harmonious 相同。
- Inpaint_only+lama:使用lama模型处理图像。它倾向于生成更干净的结果,适合移除对象。
原始图片:
必须 注册 为本站用户, 登录 后才可以发表评论!