AI大模型教程
一起来学习

Stable Diffusion Controlnet常用控制类型解析与实战课程 5

本节内容,是stable diffusion controlnet常用控制类型与实战的第5节课程。在前面几期课程中,我们已经陆续学习了controlnet的多种控制类型,本节课程,我们将继续讲解revision,instructp2p,ip-adapter,t2i-adapter这几种控制类型,这些控制类型提供了丰富的图像控制视角,也为stable diffusion增加了更多维度的应用能力。

一:Revision

我们先看一看revision控制类型

revision控制类型需要配合SDXL模型使用,对SD1.5模型是无效的。该控制类型可以通过上传的参考图来推测图片的内容,然后控制图片的生成。

我们演示一下。先选择sdxl模型,不填写任何提示词,

启用controlnet并选择revision_ignore_prompt预处理器,我们使用一些非stable diffusion绘制的图片作为控制图片

比如上传一张主体内容是一只狗的控制图片,分辨率调整与参考图一致(1024*1024)

点击生成,可以看到,stable diffusion同样输出了一幅关于狗的图片。

再使用另外一张关于主体内容是男人的控制图片,点击生成,可以看到,stable diffusion同样输出了一幅关于男人的图片。

revision控制类型能够识别图片中的内容,比如动物,人物等等,但对于复杂的图像,revision则未必能很准确地识别整体的内容。比如我们上传一张男人和狗的图像作为控制图,此时生成的图片只包含了男人,

如果上传一幅风景图,此时绘制的图片内容与原图会有非常大的差异。

1.1:反推提示词

我们在这里再引申讲解一个stable diffusion提供的一个比较有用的功能-反推提示词,比如上面的复杂图像,我们可以更多会使用反推提示词来解析图像内容,在图生图中上传参考图,生成按钮下方最右侧是两个提供反推提示词功能的按钮clip反推和deepbooru反推,比如,我们刚刚上传的风景图,图生图模式中,作为参考图上传。点击clip或者deepbooru按钮,stable diffusion会帮我们推测出图片内容,并以文字形式填写到提示词输入框中。

我们可以利用这些反推出来的提示词进一步生成图像。

在第一次使用clip和deepbooru反推提示词时,stable diffusion需要下载一些模型文件,所以需要保证外部网络连接正常。另外clip或deepbooru反推出的提示词,也可以进一步按需修改和调整,以便生成的图像更贴近我们的设想和预期。

我们在midjourney的课程中曾经讲述过可以使用describe指令获取图像提示词信息,然后使用垫图加提示词的方式进一步生成新的图像。在stable diffusion中,借助反推提示词功能,也可以实现类似的图像绘制思路。

  

我们回到revision控制类型的讲解,

revision有两个细分预处理器,

刚才演示时使用的是revision_ignore_prompt

使用该预处理器,提示词会被忽略,比如上传的男人图像,即使我们填写了提示词1 dog,生成的图片是没有dog这个元素的,

另外一个预处理器时revision_clipvision,该预处理器会根据提示词和参考图中的信息来控制图片生成过程,但是根据官方解释,目前阶段使用revision_clipvision预处理器,提示词的作用还是影响太强,此时controlnet几乎不起作用或作用比较小,所以该预处理器目前应用场景很少。

二:instructP2P

我们接下来学习另外一个控制类型-instructP2P

该控制类型提供了一种通过人类自然语言指令编辑图像的方法。其模型能够接受一张图像和相应的文字指令(也就是prompt),然后根据指令来编辑图像。

该模型可以在很短的时间内快速完成图片的编辑。

instructP2p常用的指令有make,change等等,结合into等介词来实现图片编辑。我们看一下演示:

文生图模式下(instructP2p主要在文生图下使用,图生图很少用) ,启用controlnet,选择instructP2p,该控制类型不需要使用到预处理器,

上传一幅人物图作为控制图片,我们增加下雪场景,在正向提示词里输入make it snow,点击生成,绘制的图片会增加下雪元素。

希望将女孩的头发换一个颜色,我们可以继续输入change her hair to red,

我们还可以更换衣服,change her clothes to sweater

make it snow,

change her hair to red,

change her clothes to sweater

可以看到,instructP2p对于编辑修改图片场景,有着让人惊讶的表现。利用好该控制类型,很多时候可以让我们a快速地应对图片修改需求

在controlnet控制类型列表中,可以看到几个带有adapter关键字的控制类型。

带有adapter字样的控制类型实际上是使用适配器的方式将控制单元接入到controlnet中,这些控制单元通常设计为可插拔方式,可以按需接入到系统中,

controlnet目前包含了两个adapter,ip-adapter和t2i-adapter,这两个adapter都是由腾讯主导开发,为stable diffusion提供特别的绘图控制方式。

三:IP-Adapter

我们先看一下ip-adapter控制类型

ip-adapter可以识别参考图的艺术风格和内容,然后生成相似的作品,ip-adapter的常用方式是将参考图的风格迁移融合到新的图片中,

ip-adapter的模型是需要单独下载的,其官方网址为github上的项目地址,https://github.com/tencent-ailab/IP-Adapter,模型则需要到hugging face下载, https://huggingface.co/h94/IP-Adapter/tree/main/models。其中有多个模型,比如有针对面部带有face关键字的模型,

我们根据使用需要下载对应的模型文件即可,我们在下面的演示使用到的是ip-adapter-plus-face_sd15.safetensors这个模型,将这个模型下载好放置到sd-controlnet的models目录中,刷新controlnet模型列表,就可以看到新添加的controlnet模型,

我们演示一下ip-adapter提供的功能,

文生图模式下,启用controlnet,选择ip-adapter,同时选择我们刚刚下载的对应模型文件. 上传一张赛博朋克风格的图片作为控制图像

在提示词中填入1 girl, wearing a hat,  beach 描述了一个戴帽子的女孩在沙滩的场景

点击生成,可以看到生成的也是赛博朋克风格的图片

在早前如果期望生成赛博朋克风格人物图片,往往需要去寻找赛博朋克Lora或LyCoris,而使用ip-adapter,只需要一张赛博朋克风格的人物图片,便能控制绘制过程,使生成的图片具有赛博朋克的风格。

我们再看一看ip-adapter的一个应用方式:

在文生图中,提示词只简单地填入 1 girl,。我们启用两个controlnet控制单元,

第一个控制单元使用ip-adapter,并上传赛博朋克风格的图片作为参考图,该控制类型的控制权重可以适当调整,这里设置为0.5

第二个控制单元使用canny并上传一张人物参考图

ip-adapter的参考图人物戴有眼镜,我们希望生成的图片不带眼镜,可以添加反向提示词描述,(glass:2)

点击生成,可以看到,赛博朋克风格已经融入到canny上传的人物参考图中。

可以看到这种应用方式非常适合人物特定风格化应用场景,比如上传个人照片,打造专属的赛博朋克人物肖像。

四:T2I-Adapter

演示了ip-adapter的用法,最后我们来看一下t2i-adapter。

t2i-adapter是腾讯推出的可以对预训练模型提供引导的一个控制类型集合。

t2i-adapter提供了很多控制方式,包括controlnet本身就已经具备的canny,depth,sketch等等。

但t2i-adapter相比controlnet有很多优势,比如t2i-adapter的模型更小,占用存储空间更少,t2i-adapter可以在整个去噪过程中仅运行一次,所以其运行速度也更快。我们甚至可以根据不同的情况和需求去训练适配器,以实现想要的控制和编辑效果。

除了canny,depth这些controlnet常用控制方式,t2i-adapter也提供了一些另外的控制方式,比如color_grid。我们这里就演示一下t2i_color_grid的用法,模型的下载地址如下https://huggingface.co/TencentARC/T2I-Adapter/tree/main/models

下载后将文件放置到sd-controlnet-webui程序主目录的models文件夹下,

我们这里t2i_color_grid使用的是coadapter-color-sd15v1.pth这个模型文件,

t2i_color_grid主要从参考图中学习图片的颜色风格特征,然后引入到图像生成过程中。

在文生图中,填入简单的提示词1 girl

启用两个controlnet控制单元,

第一个控制单元。启用t2i_adapter控制类型,选择t2i_color_grid预处理器以及下载好的对应的color模型(实测,模型不选择,生成的图片不会收到颜色特征引导),提高控制权重到1.5,并上传控制参考图

第二个控制单元,启用canny并上传人物图片作为控制图像。

点击生成,可以看到生成的图片,引入了t2i_adapter控制单元下参考图的颜色特征。

t2i-adapter是一个控制集合,提供了多种控制方式,包括 canny,depth,sketch,这些控制方式与controlnet本身的canny,depth,sketch控制效果是类似的,我们就不再演示。

好了,本节课程到这里就结束了,我们在最近的五节课程中,完整讲解了stable diffusion controlnet的不同控制类型,课程的内容有些多,大家可能需要一定时间去消化。也建议大家多实操,这样能更好地理解这些控制类型的作用以及在哪些应用和实战场景可以引入这些控制方式。学习完十几节的stable diffusion课程,相信大家对stable diffusion已经有了全面的认识和理解,stable diffusion是一个非常强大的AI绘画工具,相比midjourney,stable diffusion强大的控图能力使其能完成更多场景的绘图任务。除了stable diffusion软件本身,其生态也在飞速发展,我们也需要多多关注stable diffusion生态相关的信息与资源,这些信息与资源也会带来非凡的价值。学习完stable diffusion,我们将进入AI音视频应用的学习课程,我们将陆续学习AI技术在视频人物换脸,声音克隆,声音转换,唇形对齐,数字人等领域的应用方式,这些技术不仅为整个AI生态注入了丰富的活力,也推动AI技术更深入地融入到我们的日常工作、学习和生活中。

文章来源于互联网:Stable Diffusion Controlnet常用控制类型解析与实战课程 5

相关推荐: 10倍速刷图+语音生图!Midjourney V7如何碾压上一代?

继 ChatGPT-4o 的喧嚣还未沉寂,AI 绘画领域的又迎来了一次较大的升级!沉寂一年多的 Midjourney 终于放出大招——V7 alpha版本正式发布,不仅支持中文语音生图,还引入了颠覆性的Draft草稿模式,再次刷新了AI绘画的边界。 2023 …

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » Stable Diffusion Controlnet常用控制类型解析与实战课程 5

Stable Diffusion Controlnet常用控制类型解析与实战课程 4

本节内容,是stable diffusion Controlnet常用控制类型解析与实战的第四节课程。上节课程,我们陆续讲解了几个与图像风格约束相关的控制类型,本节课程我们再学习一些实用价值较高的控制类型,看一看他们提供了哪些控制思路。

一:Tile

我们先看一下tile控制类型,这是一个非常重要的控制类型,tile的中文翻译是地砖,瓦片。该控制类型采用分块处理的方式,将图像分割为多块区域,同时tile控制类型会主动识别单独块中的语义信息,并对这些分块的区域分别采样处理。最后进行整合生成图像。

 这样的方式有哪些作用呢?我们在之前的课程中讲到过,可以使用图生图中的SD upscale,来增加图像分辨率,比如我们这里使用了一张512×512看起来有点模糊的图片

我们使用SD upscale,并且调整重绘幅度设置为0.3,填好一个简单的提示词(1 girl),选择SD upscale,放大算法设置为R-ESRGAN 4x+,点击生成,可以绘制出放大后的图像。

但是如果我们将重绘幅度调整为默认值0.75,仍然使用SD upscale,点击生成,可以看到,生成了奇怪的图像。

这是因为如果设置了较高的重绘幅度,放大算法在放大图像像素时可能出现难以预料的变化,从而导致最终合成出了奇异的图像。

我们可以借助tile控制类型的分块重采样方式来对放大算法进行约束。比如,重绘幅度仍然设置为0.75,启用controlnet,选择tile控制类型,预处理器默认使用tile_resample , 这里不勾选Upload independent control image选项,则代表使用上面所上传的参考图片作为控制类型的参考图。

点击生成,可以看到生成的图片虽然增加了一些细节,但还是很好地还原了原图。

这是因为tile会逐块去解析语义信息、从而限制全局提示词对分块采样绘制的影响,在还原图片时则会表现得更加准确。

如同上面演示的例子,使用放大算法放大图像的同时使用Tile控制类型进行控图,这是tile控制类型最典型的使用方法。

该方式不仅可以优化图像细节的同时不会影响画面结构。并且由于采用了分块重采样与放大的方式,也能有效减少绘制图片过程中的显存占用,是绘制高分辨率图像的重要手段。

需要注意的是tile控制类型在分块采样绘制图像时,也会增加一些细节,所以与原图并不是完全一致。比如这里生成的图片中人物的眼睛就变大了。

另外,虽然我们经常会在图生图模式中使用tile结合放大算法来生成高清图像,但在文生图模式中我们同样可以使用tile控制类型来控制绘图过程。

tile控制类型不仅仅适合人物,对物品的细节处理也非常优秀,只需要选择好合适的基础模型即可。

我们举例演示一下,

比如这里有一幅低分辨率的行李箱图片,图片原始分辨率为512*512,我们可以通过tile_resample结合sd upscale去提升图片分辨率,      

使用写实模型,填写简单的提示词bright background, a Luggage,重绘幅度设置为为0.3,启用tile_resample与sd upscale,sd upscale放大倍数调整为4。

点击生成,stable diffusion将绘制出高分辨率的行李箱图片

tile提供了多个细分预处理器。

我们通过在文生图模式下使用tile控制类型控制图像生成来做一下对比

我们填写简单的提示词1girl,启用controlnet,并上传控制图像,

先使用tile_resample预处理器,点击生成,可以看到生成的图片人物衣服的颜色可能发生较大偏移。

将预处理器更换为tile_colorfix,这个预处理则主要用于解决颜色偏移的问题,tile_colorfix 可以更好的控制颜色偏移程度)。tile_colorfix 增加了一个名为 Variation 的参数,可以控制每个tile之间的色彩变化,值越小,tile色彩变化越小,值越大瓦片的色彩变化越大,我们可以根据所需要的颜色变化力度来设置该值。比如我们这里使用较小的Variation,点击生成,出图时与原图的颜色偏差就会比较小。

tile_colorfix有时候生成的某些图像细节可能会过于柔和,

使用tile_colorfix+sharp可以使生成的图像更加锐利。

tile_colorfix+sharp增加了一个Sharpness选项可以控制图像的锐化程度,我们这里调整为0.8,点击生成,看一下效果。

在tile项的预处理下拉列表中还有一个blur_guassian预处理器。

可以在预览图中看到预处理过程会将原图高斯模糊处理,然后再据模糊处理后的图片像素去控制图片绘制过程。

绘制图片时,AI也会尽可能从模糊的像素中去还原图片,该预处理可以通过sigma选项调整高斯噪声效果。

我们可以利用该预处理器实现一个有趣的功能,比如我们上传的图片背景是比较模糊的,我们可以使用该预处理器将整体图像高斯模糊预处理后再控制图像绘制,通过调整sigma选项,可以使绘制出的图像背景与背景中的元素变得清晰。

我们演示一下

还是使用刚才的人物图作为控制图像,可以看到该图像背景是比较模糊的,我们使用blur_guassian预处理器,提示词和参数不变,然后将sigma值调整为5,

点击生成,可以看到绘制的图片背景内容变得更加清晰。

使用blur_guassian预处理器,图片整体构成不会发生太大变化,但是颜色和某些细节可能会有较大的偏移,我们可以调整sigma参数平衡出图结果。 

二:Recolor

讲解完tile,我们再学习一个控制类型Recolor。顾名思义,recolor控制类型可以对图片重新上色,我们可以使用该预处理器给黑白照片上色,也可以给彩色照片重新上色,重新上色时还需要提示词来配合。

recolor需要自行下载对应的模型文件,下载地址为 

https://huggingface.co/lllyasviel/sd_control_collection/tree/main
 

还需要特别注意的是recolor模型文件分为SD1.5版本和SDXL版本,

其中ioclab_sd15_是sd1.5版本,sdi_xl_recolor是SDXL版本,且SDXL版本有128lora和256lora两个模型,这两者都可以使用,带有lora字样,是指该模型在训练时引入了lora训练方法。

我们继续演示recolor的使用,文生图中,启用controlnet,上传参考图,选择recolor后,模型部分还需要自己去选择,因为使用的是基于SD1.5的大模型,我们选择下载好的SD1.5 iolab_sd15_recolor这个模型,点击预览按钮,可以看到预处理后的图片已经去除了颜色信息。

点击生成,可以看到,stable diffusion给照片重新上了颜色,

recolor的一个有价值的用途就是给黑白老照片上色,我们可以上传黑白老照片,然后让recolor帮我们给黑白老照片上色,

比如我们这里有一张黑白老照片,文生图模式下,启用recolor控制类型,并上传老照片作为控制图片,这里控制参考图像的分辨率为640*456,点击上传图片与预览图片下方的箭头图标可以快捷设置目标图像的分辨率为控制图像的分辨率

这里可以不填写任何提示词,点击生成,可以看到,stable diffusion给老照片上了颜色。

我们可以使用stable diffusion进一步帮上色后的老照片提升分辨率,使图片更加清晰,提升分辨率的方法有很多,我们在之前的课程中已经讲述,这里就不再演示。

recolor有两个细分预处理器,recolor_luminance和recolor_intensity我们看一下对比

recolor_luminance 提取图像特征信息时注重颜色的亮度,

recolor_intensity,提取图像特征信息时更注重颜色的饱和度。

我大部分情况下使用recolor_luminance效果更好。

提示词污染与打断提示词

这里,我们补充一个关于提示词污染和打断提示词的知识点,我们在使用recolor时有时会借助提示词来引导上色。但很多时候recolor无法保证颜色准确出现在特定位置上,可能会出现相互污染的情况,比如控制类型使用recolor, 提示词中添加颜色信息引导AI绘制颜色,(1 girl, green clothes,  red hair),

这里的提示词增加了绿色衣服,红色头发描述,但是此时生成的图像,人物头发可能会出现了绿色,

这就是提示词污染。针对提示词污染问题,我们可以设计打断提示词:

1 girl, green clothes,  BREAK red hair,

提示词中增加了BREAK关键字对不同部分进行打断,该技巧能有效减少提示词污染的概率。点击生成,可以看到头发区域的绿色基本没有了。

recolor增加了一个选项Gamma Correction

翻译成中文是伽马修正,该选项用于调整预处理时检测的图像亮度,我们可以看一下对比,可以看到随着Gamma Correction数值减小,预处理后的图像亮度会增加,生成的图像也会更亮。

三:局部重绘控制类型

本节课程最后,我们再讲解一个控制类型-局部重绘

该控制类型与图生图里的局部重绘功能是类似的,但是controlnet的局部重绘通过更优秀的算法将重绘的地方与原图融合得更好。controlnet的局部重绘通常与图生图局部重绘配合使用,

我们演示一下,图生图模式中,上传一幅图片,该图片中包含了草原,大树,和人物,但是我们想把人物从这张图中擦除,我们可以使用局部重绘,将人物涂刷,修改提示词grassland big tree ,反向提示词中添加human,引导AI在生成的图像不要绘制人物元素,点击生成,可以看到,重绘后,人物的确没有了,但是重绘的区域与原图融合效果并不好,有时候甚至会多出一些完全不协调的元素。

这个时候我们可以使用controlnet的局部重绘控制类型,其中controlnet并选择局部重绘,预处理器选择inpaint_global_harmounious,这里我们不需要上传图片,stable diffusion默认会使用原图做参考,

点击生成,可以看到,此时绘制的图片融合效果明显要优于未使用controlnet局部重绘时生成的图片。

局部重绘根据采用的算法不同,提供了几种细分预处理器,我们对比一下使用这几种预处理器绘制的图像

一般来说inpaint_global_harmounious效果比较好,也使用得最多,

inpaint_only 融合能力通常不如inpaint_global_harmounious

inpaint_only + lamas融合能力比 inpaint_only要更加优秀,在某些场景,也可以实现较好的效果。

好了,本节课的课程到这里就结束了,我们做一下总结,本节课程我们陆续讲解了放大图像时可以增强细节的tile控制类型,可以给黑白老照片上色的recolor控制类型,以及能够帮助图像融合更加自然的局部重绘控制类型。这些控制类型为非常多的实际应用场景提供了有针对性的解决方案。下期课程,我们继续探讨另外几个controlnet控制类型,包括revision,instructp2p,ip-adapter,t2i-adapter,这些控制类型不仅各具特色,提供独特的图像控制方法,同时也从多个角度增强了Stable Diffusion的应用能力。

文章来源于互联网:Stable Diffusion Controlnet常用控制类型解析与实战课程 4

相关推荐: AI 助力开发新篇章:云开发 Copilot 深度体验与技术解析

一、引言:技术浪潮中的个人视角 在数字化转型浪潮的推动下,开发领域正经历前所未有的变革。传统的软件开发流程复杂,耗费大量的时间与资源,而低代码平台的出现则为开发者打开了新的可能性。然而,低代码并不是终点,随着人工智能技术的融入,AI 辅助开发正成为下一阶段的焦…

赞(0)
未经允许不得转载:5bei.cn大模型教程网 » Stable Diffusion Controlnet常用控制类型解析与实战课程 4
分享到: 更多 (0)

AI大模型,我们的未来

小欢软考联系我们