这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)

在前几篇文章中讲述了如何在ComfyUI中使用Embeddings和LoRA,不知道有没有小伙伴们去尝试一下。其实出图的效果是不错的,只是像我这样用习惯了WebUI的人来说ComfyUI并不是我的首选。

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

像是这样的图片可能第一眼看上去没什么问题,甚至我都知道你们在往哪看,但是眼尖的小伙伴们可能发现了,这个AI画出来的手好奇怪。

其实这个并不是个例,AI画手画不好一直是个困扰着业界许久的问题:

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

即便在提示词中加入了避免手指出现问题的关键词,还是会因为AI的随机性导致上图类似的情况发生。

而能够很大程度上解决这一问题的就是我们今天的主角:ControlNet,相信已经学过WebUI部分的同学已经不陌生了,这个东西在学习Stable Diffusion的道路上属于是绕不开的大山了。

ControlNet

在ComfyUI中ControlNet是以一个“扩展插件”的形式出现的,当然核心还是那些加载在里面的ControlNet模型。

在生成时会根据输入的“控制信息”动态调节Unet层来改变生成结果,从而实现姿势、轮廓等要素的迁移。在官方提供的示例中有Control的工作流可以参考:

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区https://comfyanonymous.github.io/ComfyUI_examples/controlnet/

只需要将官方提供的这张图另存为,然后打开ComfyUI后将其拖拽进去即可。

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

比起之前使用的文生图,ControlNet多出了两个组件,一个是ControlNet的模型加载器Load ControlNet Model;另一个是应用ControlNet模型的节点Apply ControlNet

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

核心就是这个Apply ControlNet,它负责接受预处理的图像信息并按照加载的模型来实现控制要素。这个节点上只有一个参数Strentgth,这个参数是用来调节ControlNet的权重也就是效果的强弱。

如果要控制开始和结束的时机,则是需要用另一个节点Apply ControlNet(Advanced)

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

Apply ControlNet输出的信息是以CONDITIONING也就是条件的方式,会和输入的正面提示词一起输入进KSampler里。

ControlNet操作

操作也很简单,先下载一个包含预处理器功能的自定义节点,在Manager-Install Custom Nodes里面搜索ComfyUI’s ControlNet。

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

这个节点包含了近乎所有的控制类型,下载好后这些预处理器就会出现在右键菜单的“ControlNet Prerocessor”选项里,直接双击空白处搜索会更快些。

例如我想要OpenPose的节点,这样直接输入Preprocessor就可以找到了。

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

在选择完OpenPose处理器后再加载一个Load Image节点,这里挑选一张有比较喜欢的姿势的图片上传即可,然后将Load Image节点里的IMAGE和OpenPose Pose节点的image连接起来。

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

OpenPose处理器里面的这些选项和在WebUI里面的是一样的,就是识别hand(手部姿势)、body(身体姿势)、face(面部表情)。

然后将OpenPose节点上的IMAGE链接到Apply ControlNet节点的image上:

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

如果不放心输出结果的话,还可以加一个预览图片的节点Preview Image与IMAGE连接。

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

这样就能简单控制生成啦!

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

大部分情况下ControlNet是用一个就行,有的时候为了追求更完美的出图会选择多个ControlNet同时进行,当然这对设备也是一种考验希望大伙量力而行。

多个ControlNet(有节点包需额外下载)

其实也不难,先创建一个Apply ControlNet节点,需要开几个ControlNet就创建几个,我这里为了能直观点我就加载两个。

然后搜索想要的预处理器类型并加载进来,然后再创建一个Load ControlNet Model节点,选择对应的模型。

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

1、先将Load Image的IMAGE连接到第一个预处理器也就是OpenPose的image上。

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

2、然后OpenPose预处理器的IMAGE连接到Apply ControlNet的image上。

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

3、然后把Load ControlNet Model的CONTROL_NET与Apply ControlNet的control_net连接。

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

要加载多少个ControlNet就把以上的操作重复多少次,直到每一个Apply节点都匹配了对应的预处理器和模型。

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

4、在正向提示词的编码器里CONDITIONING连接到第一个Apply ControlNet的conditioning上,之后Apply节点之间的CONDITIONINGconditioning相互连接。

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

5、最后一个Apply ControlNet节点的CONDITIONING连接到KSample的positive上。

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

当然忙活了半天,上篇笔记的LoRA有stack,ControlNet也有stacker。感兴趣的小伙伴可以去看文末原教程的27:56秒开始,节点包的下载链接也会放在文末。

当然,一般情况下1-2个ControlNet就足够用了,过多的ControlNet也会加重设备的负担甚至爆显存。


今天的内容就到这里结束啦!

ControlNet这个扩展真的是我学习Stable Diffusion开始到现在使用频率第二高的扩展,用得最多还是高清放大。

那么大伙就下篇笔记见啦!拜了个拜。

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

《这黑丝穿上了可就脱不下了(Stable Diffusion进阶篇:ComfyUI-ControlNet)》- 投稿作者:简历白纸一张 - 发布于:GetAI社区

论ControlNet的重要性

masterpiece, best quality,<(realistic:1.3), intricate details>,1girl,(0d),full body,black pantyhose,mary janes, pleated skirt, black_footwear,serafuku,sitting,desk,looking at viewer,class,day, <lora:hsod:0.4>, <lora:yjk:0.6>

Negative prompt: bag,(worst quality:2),(low quality:2),(normal quality:2),lowres,watermark,badhandv4,ng_deepnegative_v1_75t,

  • Steps: 30
  • Sampler: DPM++ SDE
  • Schedule type: Karras
  • CFG scale: 7
  • Seed: 971660482
  • Size: 512×512
  • Model hash: 7c819b6d13
  • Model: majicmixRealistic_v7
  • Denoising strength: 0.7
  • Clip skip: 2
  • ControlNet 0: “Module: openpose_full
  • Model: control_v11p_sd15_openpose [cab727d4]
  • Weight: 1
  • Resize Mode: Crop and Resize
  • Low Vram: False
  • Processor Res: 512
  • Guidance Start: 0
  • Guidance End: 1
  • Pixel Perfect: True
  • Control Mode: Balanced
  • Hr Option: Both
  • Save Detected Map: True”
  • Hires upscale: 2
  • Hires upscaler: R-ESRGAN 4x+
  • Lora hashes: “hsod: e15569ee4fdd”
  • Version: v1.9.3

0

评论0

请先
显示验证码