赞
踩
(全套教程文末领取哈)
这份完整版的学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】
ControlNet 1.1模型更新,网络结构没有改变,可以直接下载模型,作者针对以前的模型进行了继续训练并且新增加了几个之前没有放出的模型,nightly模板仓库如下
线稿模型:control_v11p_sd15s2_lineart_anime.pth
洗牌模型(随便叫的):control_v11e_sd15_shuffle.pth
Pix2Pix(不知道中文怎么翻译):control_v11e_sd15_ip2p.pth
以上模型还在测试中,等测试完毕后作者会合并到主仓库,现在(20230416)在webui插件中还找不到对用的预处理器,有消息本文会第一时间更新!
最近Controlnet新增加了脸部检测的模型,详情可见reddit讨论区
Last week we posted a new Controlnet model for controlling facial expression in Stable Diffusion 2.1 using Mediapipe’s face mesh annotator. You can read about the details here. Today we are releasing the version trained from Stable Diffusion 1.5. The 1.5 model can be downloaded from our Hugging Face model page (control_mediapipe_face_sd15_v2) along with the 2.1 model (control_mediapipe_face_sd21_v2). The 1.5 and 2.1 models are roughly equivalent in quality, though neither is perfect. We will continue to refine the models and will post updated versions as we make progress. We’d love to hear your feedback and how you’re making use of the models in your workflows! Feel free to join our Discord and share your creations/ideas with the community. Notes for those who wish to use this via the Controlnet extension in Automatic1111 SD web UI:
We are waiting for our pull request to be merged, but you can check out our branch in the meantime to use the model.
There is a great video here by Olivio Sarikas showing how to apply our branch of the extension, but there are a couple of changes since the video was made regarding the YAML config files (see next point).
For the 1.5 model, you can leave the default YAML config in the settings (though you can also download the control_mediapipe_face_sd15_v2.yaml and place it next to the model). For the 2.1 model, you will need to download the control_mediapipe_face_sd21_v2.yaml and place it in the same folder as the model. In either case, you don’t need to change the default config in the Controlnet settings.
If you apply our branch, remember to revert to the main branch once our pull request is merged in the future, so that you can continue to get updates from the main repo.
Samples below were made with a mix of some awesome custom models, including Deliberate, AyoniMix, Realistic Vision, and ReV Animated. 下面是一些例子
目前(20230416)还没办法直接在ControlNet主仓库拉取到更新,需要拉取分支仓库(作者说后续和主仓库合并了就没有这么麻烦了,现在已经提交了PullRequest等待审核中),可以将原来的extensions/sd-webui-controlnet备份,然后在从下面Fork的仓库拉取代码
cd extensions
git clone https://github.com/crucible-ai/sd-webui-controlnet.git
再到huggingface下载模型到models目录中
目前,模型下载control_v2p_sd15_mediapipe_face.safetensors或control_v2p_sd15_mediapipe_face.pth均可,实测两种格式的模型都能使用大小几乎是一致的,应该是一个模型的两种格式,选择一个即可,目前大多是基于sd15的模型,因此下载sd15的
此时就能选择到对用的预处理器和模型
下面实测一把,ControlNet参数选择如上,图片参数及模型为
open mouth,terrified,
best quality ,masterpiece, an extremely delicate and beautiful, extremely detailed ,CG ,unity ,8k wallpaper, Amazing, finely detail, masterpiece,best quality, extremely detailed CG unity 8k wallpaper,absurdres, incredibly absurdres, huge filesize , ultra-detailed, highres, extremely detailed, beautiful detailed girl, light on face, <lora:koreanDollLikeness_v15:1.0>
Negative prompt: (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes,
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 7, Seed: 894196194, Face restoration: CodeFormer, Size: 600x800, Model hash: 59ffe2243a, Model: chilloutmix_NiPrunedFp16Fix, ControlNet Enabled: True, ControlNet Module: mediapipe_face, ControlNet Model: control_v2p_sd15_mediapipe_face [0653d983], ControlNet Weight: 1, ControlNet Guidance Start: 0, ControlNet Guidance End: 1
抽卡如下
测试下来目前还是需要同时在tag中增加对应的提示词引导,如本次增加了open mouth,terrified,如果不增加tag,出来的图将会是下面这样
在测试一组
多张人脸
ControlNet中文翻译为控制网络,即和控制息息相关,通过前面的介绍我们知道了文生图和图生图,其中的控制是什么?思考一秒钟
其实图生图中已经有ControlNet的雏形了,即将图像或者图像中的一部分作为输入参数,但是ControlNet高级在什么地方?它高级在可以自动提取原本图像中某种维度的信息作为参数一起作用于最终图像的生成,比如
等等,这些信息人眼看比较容易看出来,但是要准确的描述给AI,十分的困难,不管是文生图还是图生图的方式,所以这就是ControlNet产生的背景及其作用,它能够把这些信息很准确的给到AI,让AI按照这些信息去生成最终的图像,增加对输入参数的控制权,所以叫做控制网络,其仓库地址如下,其中有描述它的原理及在Stable Diffusion中处于哪些控制层
当然以上只是笔者在实际使用中对ControlNet浅显的理解,不一定准确。
安装很简单,直接在扩展 > 可用中找到sd-webui-controlnet点击安装即可,但是需要注意的是,安装好i以后需要下载ControlNet对用的模型,这些模型比较大,每个模型大概3~5G,一共40+G左右,可以先下载其中部分模型进行尝试,模型下载地址为:
本文演示所用模型:https://huggingface.co/lllyasviel/ControlNet/tree/main/models
另外此处有一些压缩的模型,16位浮点数模型(16fp,数字表示范围更小,但是文件也更小、内存需求也更小),每个模型仅700MB左右,模型文件大为减小,可以在此处下载
https://huggingface.co/webui/ControlNet-modules-safetensors/tree/main
根据一些实测,换了模型后质量没有明显下降,但是模型加载的时间和显存利用率明显下降,可以推荐尝试,下文也有一些实测对比
可以参考
另外一些TencentARC/T2I-Adapter模型可以在这里找到,比如202303新增的color和clip_vision预处理器只有T2I的模型有,具体参考下面的预处理器-模型表
模型下载好以后放到如下路径
stable-diffusion-webui/extensions/sd-webui-controlnet/models
如下载了control_sd15_canny.pth
模型,那么它应放置的完整路径为:
stable-diffusion-webui/extensions/sd-webui-controlnet/models/control_sd15_canny.pth
安装完整后在文生图或图生图中会有ControlNet的界面,如下图所示(笔者的界面顶部会有多个选项卡是因为开启了多ControlNet,没看错,一次绘画动作中可以将多个ControlNet输入一起进行,在设置 > ControlNet > MutiControlNet)
在上图展示的界面中对每个参数进行解释,不用细看,在使用到的时候在回头查阅即可。
启用(Enable)
生成
按钮时,将会实时通过ControlNet
引导图像生成,否则不生效。反色模式(Invert Input Color)
RGB转RGB(RGB to BGR)
低显存优化(Low VRAM)
无提示词模式(Guess Mode)
预处理器(Preprocessor)
ControlNet
的模型都有不同的功能,后续将会单独介绍。模型(Model)
权重(Weight)
ControlNet
生成图片的权重占比影响。引导介入时机(Guidance Start(T))
引导推出时机(Guidance End(T))
缩放模式(Resize Mode)
画布宽度和高度(Canvas Width和Canvas Height)
ControlNet
引导图像时所使用的比例,假如你用SD生成的图片是1000x2000的分辨率,那么使用ControlNet
引导图像时,对显存的消耗将是具大的;我们可以将该分辨率设置为500x1000,也就是缩放为你原本图像一半的分辨率尺寸去进行引导,有利于节省显存消耗。创建空白画布(Create blank canvas)
ControlNet
功能,那么将会在ControlNet
的图像区域留有历史图片,点击该按钮可以清空之前的历史,也就是创建一张空白的画布。预览预处理结果(Preview annotator result)
隐藏预处理结果(Hide annotator result)
即ControlNet中的模型,每一种模型对图片的关注不同,比如一些是关注主体边缘,一些是关注建筑线条,一些是关注人物姿势等,可以简单理解成,每种模型都干一种自己擅长的活儿,模型也就是上面提到的几十G的文件,目前包括如下模型:
模型名称 | 对应模型 | 模型描述 |
---|---|---|
canny | control_canny | 边缘检测 |
depth | control_depth | 深度检测 |
hed | control_hed | 边缘检测但保留更多细节,适合重新着色和风格化。 |
mlsd | control_mlsd | 线段识别,识别人物功能极差,非常适合建筑。 |
normal_map | control_normal | 根据图片生成法线贴图,非常适合CG建模师。 |
openpose | control_openpose | 提取人物骨骼姿势 |
openpose_hand | control_openpose | 提取人物+手部骨骼姿势 |
scribble | control_scribble | 提取黑白稿 |
fake_scribble | control_scribble | 涂鸦风格提取(很强大的模型) |
segmentation | control_seg | 语义分割 |
预处理器与模型的对应关系,每种模型并非对应一种预处理器,有可能多个预处理器对应一种模型,参考如下
预处理器-模型表(202303版):
预处理器 | 对应模型 | 对应腾讯t2i模型 | 模型描述 |
---|---|---|---|
canny | control_canny | t2iadapter_canny | 边缘检测 |
depth或depth_leres或depth_leres_boost | control_depth | t2iadapter_depth | 深度检测 |
hed或pidinet | control_hed | 无 | 边缘检测但保留更多细节,适合重新着色和风格化。 |
mlsd | control_mlsd | 无 | 线段识别,识别人物功能极差,非常适合建筑。 |
normal_map | control_normal | 无 | 根据图片生成法线贴图,非常适合CG建模师。 |
openpose或openpose_hand | control_openpose | t2iadapter_openpose或t2iadapter_keypose | 提取人物骨骼姿势 |
scribble或fake_scribble或binary | control_scribble | t2iadapter_sketch | 提取黑白稿、涂鸦风格提取 |
segmentation | control_seg | t2iadapter_seg | 语义分割 |
color | 无 | t2iadapter_color | 色彩分布 |
clip_vision | 无 | t2iadapter_style | 风格转移 |
具体下面我们一一尝试,具体第一个模型的时候会详细介绍,后续模型是的介绍则会简略些,不会做过多冗余的介绍,只会介绍其核心内容
先准备一张图片,使用如下参数生成
<lora:koreanDollLikeness_v15:0.33>, <lora:fte_futuanerV1:0.1>, <lora:aespaKarina_aespaKarina2023128DB:0.5>, <lora:iu_V35:0.1>, <lora:chilloutmixss_xss10:0.2>, ulzzang-6500, (aegyo sal:1.4), best quality, ultra high res, (photorealistic:1.4), (beautiful Korean woman:1.0), (Kpop idol:1.0),, (bangs:1.4), masterpiece, illustration, an extremely delicate and beautiful, extremely detailed, CG,unity, 8k wallpaper, Amazing, finely detail, masterpiece, official art, extremely detailed CG unity 8k wallpaper, absurdres, incredibly absurdres, ultra-detailed, highres, extremely detailed, beautiful detailed girl, extremely detailed eyes and face, beautiful detailed eyes, light on face, (looking at viewer:1.4), wide hips, thick thighs, (1 girl), detailed shiny skin, (looks like Amber Heard:1.2), natural breast, beach of sea, sunset,(80 denier stockings, high heels :1.4)(white shirt:1.4),(long pink or brown pleated skirt:1.4), cross legs,(medium hair:1.6),(full body:1.6)
Negative prompt: (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality, ((monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, bad anatomy,DeepNegative,(fat:1.2),bad anatomy,bad hands, text, error, missing fingers,extra digit, fewer digits, cropped, worstquality, low quality, normal quality,jpegartifacts,signature, watermark, username,blurry,bad feet,cropped,poorly drawn hands,poorly drawn face,mutation,deformed,worst quality,low quality,normal quality,jpeg artifacts,signature,watermark,extra fingers,fewer digits,extra limbs,extra arms,extra legs,malformed limbs,fused fingers,too many fingers,long neck,cross-eyed,mutated hands,polar lowres, bad body, bad proportions, gross proportions,text,error,missing fingers,missing arms,missing legs,extra digit, extra arms, extra leg, extra foot, extra navel, body wet, large head, bad hand, bad hands, bad fingers, bad finger, extra finger
Steps: 20, Sampler: DPM++ SDE Karras, CFG scale: 7.5, Seed: 2315907369, Face restoration: CodeFormer, Size: 512x1024, Model hash: fc2511737a, Model: chilloutmix_NiPrunedFp32Fix, ENSD: 31337
如下图所示
在文生图的界面可以将图片拖曳到ControlNet中,然后预处理器和模型均选择canny,点击一下预览预处理模型,然后在右侧会出现原图的边缘信息,类似于线稿图
然后此处需要注意,删除掉正向tag中所有和角色描述相关的词,只保留画质的词,如下
masterpiece, illustration, an extremely delicate and beautiful, extremely detailed, CG,unity, 8k wallpaper, Amazing, finely detail, masterpiece, official art, extremely detailed CG unity 8k wallpaper, absurdres, incredibly absurdres, ultra-detailed, highres, extremely detailed, beautiful detailed girl, extremely detailed eyes and face, beautiful detailed eyes, light on face
然后勾选上抽卡模式(即无提示词模型,后文均以抽卡模式代替),然后随便来4张,有没有一点点感受到ControlNet是什么?
没感受到?没关系,再来9张
这下感受到了吧,正如文初所说,ControlNet故意保留了一点点原图的信息,让生成的图片更加原汁原味,让你多一点控制感,上图中通过检测保留原图的边缘,让输出的图片都有一样的边缘信息!图像的边缘类似于线稿,上面的作用类似于将线稿渲染成实际的图片,假设我们有了一张线稿呢?下图为我的一位画师朋友画的线稿,下面我们来试试ControlNet能不能保留线稿的原汁原味:
原线稿如下
通过ControlNet后如画出的图如下,可以看到头发、裙子、动作、脸朝向都和线稿图一致,其他的细节均由AI生成。
换个模型继续尝试
加了个VAE,提高画面对比度再试试,开启VAE在之前文生图讲过此处就不再赘述了
该模型的主要功能是捕捉画面深度,获取图片前后景关系,图片颜色越浅的区域,代表距离镜头越近;图片越是偏黑色,则代表这部分区域距离镜头越远,如下图左边为原图,右边为该图的深度图,近处的草、重点的人物和花朵、背景的河流树木的颜色依次变慢,代表着依次离镜头越来越远
抽卡模式来9张看看效果,可以看到它会严格按照上图的远近关系进行构图
往下翻还可以看到Depth_Leres算法,此为Depth的变体,据说会比Depth效果更好,变形更加流畅,可以对比下默认参数下深度图的区别,发现Depth_Leres能检测到的深度信息更多
在抽卡4张试试,发现出现了一些奇怪的图,猜测可能是Depth_Leres检测到的信息太多反而导致主要信息被混杂其中,感兴趣的可以多调整下参数尝试
Hed模型同样是边缘检测算法,与Canny的提取边缘类似,但可以把Canny理解为用铅笔提取边缘,而Hed算法则是用毛笔,被提取的边缘将会非常柔和,细节也会更加丰富,所以,如果是生成棱角分明,或者机械一类的推荐使用Canny;如果是毛发一类的动物,使用Hed可能效果会更好。
抽卡4张看看效果,细节什么的就各位看官自行品尝吧,不在赘述
该算法,可以对于有棱角的建筑进行非常好的检测,但是对人或其它有弧度的物体边缘提取效果很差,对建筑设计师非常友好,比如给一个毛坯房,按照提示词去进行室内设计,直接给出渲染图,下图左侧为毛坯房,右侧为检测出原来的线条
下面来看看装修效果,看起来AI有些放飞自我了,通过调节权重等和tag等参数可调节
在来试一张卧室的照片,下图为线条信息检测,没有任何主体相关的提示词,让AI放飞自我试试
可以看到效果还是十分不错的,特别是光影
在三维影视行业中,normal其实是模型最为重要的贴图之一,一个模型需要数张贴图合成之后进行渲染才能够达到不错的效果。 在模型材质制作中,normal贴图被称之为法线贴图,一般是用来保存模型上的深度信息。例如模型表现的细小凹凸纹理,并不是用模型雕刻出来的,也有可能是使用了normal贴图,normal贴图将会控制模型表面的阴影深度,以此来达到凹凸不平的感觉。
凹凸不凹凸相信各位绅士都可以看出来,当然法线贴图也保存了这些凹凸信息。
抽卡4张检验下凹凸信息是否被保存,相信各位绅士应该清楚有没有保留(雾,在提示词中加入了(pink shirt:1.4), (white skirt:1.4)
,因此衣服颜色都一致
接下来就是喜闻乐见的姿势检测了,先随便检测一下
抽卡4张,记得加关键词(white silk stockings and pink shirt and white skirt:1.4)
不然可能出来直接没衣服的
再来试试之前网上比较火的一张图
换了两个模型,效果还是十分nice,前面2张没加VAE,有点灰、
当然还有一个插件叫做OpenPose Editor,可以编辑自己想要的姿势,稍微调整后,可发送到文生图或者图生图中
老规矩抽卡4张,此时拓展一下思维,假设有一个比较流程的动作序列,那么再将这些动作一张张转换为图片,最终合起来的就是一个人物衣服背景不停的变换,但是姿势比较流畅
和姿势提取类似,不过多了一个手部姿势的提取
老方法抽3张看看,手部姿势几乎一致
同样是边缘检测,但是效果与Canny和Hed有很大区别,该边缘检测方法是对于色差较大的地方进行边缘提取,但是细节没有太多的保留。
模型可以选择Canny或者Hed,Canny和Hed分别抽一张如下图所示
该算法提取了曝光对比度比较明显的区域,以此来重新引导。可以看到提取的涂鸦,仅保留了曝光度对比较大的部分,但是细节保留的很不错,细节保留的越多,那么重新引导时所能更改的部分就越小。
抽两张试试
下面来试试纯涂鸦,提示词为house,sun in sky
抽4张结果如下,和图生图的蒙版有些类似
还有个算法,手绘涂鸦(Fake scribble),它只保留主要线条,无内部细节,区别如下所示,可以看到,房子的线条由实心变成了空心
抽4张试试
对图像种的多个物体,比如建筑、天空、花草树木等,进行区块分割,可以看到主体和背景能够被很好的识别
抽4张试试,效果还是很nice,tag为(black silk stockings:1.2),(pink shirt:1.2),(Pearl light tan skirt:1.4)
二值化即0和1,没有中间值,也就是要么是0,要么是1,没有0和1之间的过渡,反映到画面就是没有黑和白的过度,要么是黑,要么是白,要注意其对用的模型是control_scribble,没有专门二值化的模型,可以查阅文初预处理器-模型对照表
抽卡4张试试,发现画面比较干净
在抽几张,效果还是不错,灯笼是加了关键词画出来的,在原图中及预处理后的二值化参数中没有这些元素
这是近期新出的一个模型,在实际使用中,选择预处理的时候并没有预览图像,猜测是因为风格转移,一种风格并不好预览,按照之前的用法可能并没有效果,参考了一些资料,其用法如下,首先生成一张颜色丰富的照片
colorful
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 26125066, Size: 512x512, Model hash: fc2511737a, Model: chilloutmix_NiPrunedFp32Fix, ENSD: 31337
然后以该照片作为ControlNet输入,该预处理器叫做clip_vision,但是模型叫做t2iadapter_style,参考上面的预处理器-模型表,去掉所有正负tag,随机抽两张,这大概就是风格和转移的意思
另外更有趣的是可以把一张照片的风格转移到另外一张上,如先生成一把剑,再将上述彩色的照片和剑结合,如下所示,剑的生成tag为,多尝试几次,找一把只有剑的照片
just a sword
Negative prompt: man,woman,person,protagonist
Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 2026071917, Size: 512x512, Model hash: fc2511737a, Model: chilloutmix_NiPrunedFp32Fix, ENSD: 31337, ControlNet-0 Enabled: True, ControlNet-0 Module: canny, ControlNet-0 Model: control_sd15_canny [fef5e48e], ControlNet-0 Weight: 1, ControlNet-0 Guidance Start: 0, ControlNet-0 Guidance End: 1
这里要用到两个ControlNet,第一个使用之前的canny,第二个使用clip_vision,如下所示
这是老外做的一个效果图
注意202303使用的时候提示词不要超过75个,否则会报错
StyleAdapter and cfg/guess mode may not works due to non-batch-cond inference
具体可参考
仍然以风格转移中第一张图为例,使用色彩预处理后会检测出原图中色彩的分布情况,分辨率影响色彩块的大小
分辨率512不加任何提示词,随便抽4张,艺术感爆棚,仔细观察下颜色和检测出来的颜色分布趋于一致,这就是这个模型的效果
和之前的剑结合到一起产生的结果,之前的风格转移颜色更多的是集中到剑本身上(即主体),而色彩更关注的是颜色的分布情况,这是他们的区别
在和我们之前的小姐姐结合一下,观察下颜色分布情况,这个效果还是很nice
之前有提到一个压缩模型,(上文所有的章节中,除风格转移clip_vision和色彩color之外的模型用了腾讯t2i模型之外,其他模型均为原版未压缩模型)
另外此处有一些压缩的模型,16位浮点数模型(16fp,数字表示范围更小,但是文件也更小、内存需求也更小),每个模型仅700MB左右,模型文件大为减小,可以在此处下载
https://huggingface.co/webui/ControlNet-modules-safetensors/tree/main
根据一些实测,换了模型后质量没有明显下降,但是模型加载的时间和显存利用率明显下降,可以推荐尝试,下文也有一些实测对比
可以参考
下面来做一个对照试验,使用canny模型,除了模型不同之外其他参数全部相同,分别抽卡两张,查看效果和生成时间,下面是结果
原图如下
结论:在上述条件下,使用压缩版canny算法比原版canny算法快大约29%,其中原版canny算法能主观感受到模型的加载时间,压缩版加载时间较快,1秒左右,生成的图像在质量上肉眼看不出差别,比如人物轮廓,五官位置等(背景有变化不算,这和模型特点有关系,canny是提取轮廓,轮廓没有大的变化那就不算)
使用腾讯t2i模型比原版快大约53%,比压缩版快大约33%,在速度上完胜(因为模型文件比较小),在生成的结果上没有明显差异,但是有细微差异,比如脸型。
学好 AI绘画 不论是就业还是做副业赚钱都不错,但要学会 AI绘画 还是要有一个学习规划。最后大家分享一份全套的 AI绘画 学习资料,给那些想学习 AI绘画 的小伙伴们一点帮助!
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/911506
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。