Stable Diffusion 使用详解(3)---- ControlNet

评论: 0 浏览: 857 ***新更新时间: 1个月前

背景

炼丹师在AI绘画的过程中,由于Stable Diffusion的原理是水滴式的扩散作图原理,其实在前面也有提到,他的发挥是‘不稳定’的,因为你没有办法做到***控制,只能说是大致符合你的预期。你不能总依赖抽卡+固定随机数种子的方式来寻找你满意的结果,那样太耗时,所以有必要深入研究下ControlNet 的使用方法,做到***控图,满足你生产的需求。

ControlNet 简介

如果想对图做精准控制,那就需要使用ControlNet 告诉AI 你想绘制的东西答案有哪些表定量的部分,因为有的东西通过文生图与图生图无法准确表达。简单介绍下  ControlNet。

ControlNet的工作原理

  • 条件生成:ControlNet是一种条件生成对抗神经网络(GAN),它通过额外的输入(如参考图像)来控制预训练的大模型(如Stable Diffusion)。
  • 图像迁移:它能够将参考图像的构图、人体姿势等特征迁移到目标图像中,实现图像的高效控制。

    ControlNet的优势与应用

    • 优势:
      • 细节控制:相比单纯的关键词控制,ControlNet提供了更精细的图像控制能力。
      • 多场景适用:适用于各种图像处理任务,如线条检测、风格迁移等。
      • 扩展性强:可以与其他Stable Diffusion模型搭配使用,增强图像生成的效果。
    • 应用:
      • 线条检测:如动漫线稿提取、标准线稿提取等,用于生成以线稿为框架的新图像。
      • 风格迁移:通过对构图类似但风格不同的图像进行风格迁移尝试。
      • 姿态控制:通过OpenPose等模型提取人体姿态信息,控制Stable Diffusion生成具有特定姿态的图像。

      ControlNet 种类

      ControlNet 种类很多,目前我使用过的差不多有20种。而且不同ControlNet彼此可以相互组合,而且不仅限于两两相互组合,如果显存够好,组合3-5个也没有问题。我先说下我用的比较多的几个ControlNet:

      OpenPose

      就是检测pose 的,我希望检测一个pose 来让AI作图。比如:

      Stable Diffusion 使用详解(3)---- ControlNet

      Depth

      描述前后关系,有颈深的概念在里面,其实就是描述 Z 方向的关系,比如手在头的前还是以后面。

      Stable Diffusion 使用详解(3)---- ControlNet

      Canny

      Canny是一种硬边缘检测模型,用于提取图片中的边缘信息,生成对应的轮廓线稿图。

      它能够很好地识别图像内各对象的边缘轮廓,生成的线稿图较为精细且边缘清晰。

      在图像生成过程中,可以通过Canny模型提取参考图片的线稿,再基于该线稿和提示词生成具有相同轮廓结构的新图。常用于需要***控制图像轮廓的场景,如人物、物体等的轮廓重建。

      SoftEdge

      SoftEdge是一种软边缘检测模型,也是用于提取图片中的边缘信息,但与Canny不同,它生成的边缘更为柔和。

      SoftEdge模型提供了多种预处理器选项,如softedge_hed、softedge_hedsafe、softedge_pidinet等,这些预处理器在处理边缘时具有不同的效果和质量。

      在图像生成中,SoftEdge模型可以生成更自然的边缘效果,适用于需要保留更多细节且不希望边缘过于生硬的场景。

      通过SoftEdge提取的线稿图,可以在后续的图像着色和风格化过程中获得更加自然的视觉效果。

      Sketch

      Sketch(或Scribble)模型用于处理涂鸦或草图形式的输入,并基于这些输入生成图像。

      它支持从参考图中提取涂鸦信息,也支持在空白画布上直接手绘涂鸦作为输入。

      在艺术创作和设计中,Sketch/Scribble模型提供了一种自由度更高的图像生成方式。

      用户可以通过手绘草图来表达自己的创意,然后利用Sketch/Scribble模型将这些草图转化为具体的图像。这种方式特别适用于需要快速迭代和试错的场景,如概念设计、草图渲染等。

      Stable Diffusion 使用详解(3)---- ControlNet

      生成效果

      我们先看看上面的生成效果,注意这里还是要和提示词,图生图等一起结合使用。

      正向提示词

      one girl,standing near the sea,

      (masterpiece:1,2),best quality,masterpiece,highres,original,extremely detailed wallpaper,

      负向提示词

      下载embeddings 直接填写, 内容: BadDream UnrealisticDream.,easynegative,ng_deepnegative_v1_75t,negative_hand,

      使用模型

      找一个类似写真的底膜就行,我这里用了随便选了一个写真底膜。

      生成图片

      Stable Diffusion 使用详解(3)---- ControlNet

       还是挺不错的,我个人比较偏向第三幅图片。通过 controlnet 的精细化控制,结合promption及对的底膜,及embeddings,还是比较好的还原出了我想要的场景和人物。

      Stable Diffusion 使用详解(3)---- ControlNet

      下面的sketch 生成的画面:
      Stable Diffusion 使用详解(3)---- ControlNet

      脸部有点问题,重新矫正下,为了减少出图时间,我直接用图生图生成,promption 加强了下对face 的描述:

      (radiant beautiful face:1.22)

      Stable Diffusion 使用详解(3)---- ControlNet

      手的姿势不太对,再调整下:

      Stable Diffusion 使用详解(3)---- ControlNetStable Diffusion 使用详解(3)---- ControlNet

      raise left hand diagonally upwards towards the sky,

      Stable Diffusion 使用详解(3)---- ControlNet

      注意事项

      当然对于controlNet的使用,正如上面所说,他只是构图中的一环,其他promption,底膜,图生图原图等都是AI 作画需要考虑的因素,因此,如果你试图在图生图中,使用一个infomation 不太够的图片,而又妄图想从controlnet 中补充时,你要特别注意,通常来讲,图生图的原理还是脱离不开底图。比如,在上面的例子中,你使用上一次我上次使用的一张深渊橘的底膜绘制的AI,保持上面设置不动,出图结果是这样:

      Stable Diffusion 使用详解(3)---- ControlNetStable Diffusion 使用详解(3)---- ControlNetStable Diffusion 使用详解(3)---- ControlNetStable Diffusion 使用详解(3)---- ControlNet

      看着还是挺舒服的,但是你看到了,你设置的pose 完全没体现出来,为什么?因为图生图,就是要依据你的原图,你通过controlnet 做动作调整这些是没有问题的,但是你***好不要试图通过它去完成一些原图没有的场景,那样的话,你***好还是用文生图比较好。


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

点击启动AI问答
Draggable Icon