太实用了!关于ControlNet,这篇你一定要看

34 篇文章 0 订阅
20 篇文章 0 订阅

一篇文章教会你,从入门到使用。

这里是行者AI,我们专注于人工智能在游戏领域的研究和应用,凭借自研算法,推出游戏AI、智能内容审核、数据平台等产品服务。

controlNet控制生成

anypaint

看到这篇文章的你,一定也是AI绘画的爱好者吧。我们有一款可以0门槛上手入门,也可以满足复杂专业生图需求的AI美术在线学习工具anypaint。在线生图,无需硬件和部署。anypaint功能包括文生图、图生图、局部重绘、高清放大、LoRA、ControlNet、潜变量局部放大、平铺扩散、姿势编辑等。不论你是初学者还是专业人士,都能在图刷刷中找到适合自己的绘图方式和独特风格,为你的创意提供无限可能。入股绝对不亏。

链接给各位看官奉上:

https://www.anypaint.art/

ControlNet的出现代表着 AI 生成开始进入真正可控的时期,而 AIGC 的可控性是它进入实际生产最关键的一环。如果说Lora是把你想要画面的风格炼制成模型,那么ControlNet就是更好地控制这个模型,生成你想要的特定姿势或画面。文章以下关于ControlNet的教学都以anypaint为例(https://www.anypaint.art/),建议可以边看边打开网页操作,效果更好,不方便的话可以先收藏

ControlNet 的核心能力就是能让我们通过设置各种条件来让AI更可控地生成最终图像结果。这些条件就是通过调节预处理器参数来实现的,所以我们首先要先了解下 ControlNet 各种预处理器的功能,展示部分预处理器效果如下:

每个 ControlNet 的预处理器都有不同的功能接下来我们具体一个一个来看,他们究竟是什么?怎么用?什么时候用哪个?或者那些合适?

(表格太长,完整表格已放评论区,需要自取)

1.Canny 边缘检测

Canny 边缘检测预处理器可很好识别出图像内各对象的边缘轮廓,帮助我们标注轮廓、动作、衣服褶皱、表情等等画面的细节,多用在3转2;常用于生成线稿。
缺点:主体容易被其他的背景影响
1. 预处理器分辨率
预处理器分辨率数值越高越精细,也越吃显存。但如果数值太低生成的线条也会很粗糙。默认512,具体设置时需根据素材大小和实际情况来做权衡。
也可直接勾选【Pixel Perfect】选项,系统自动设置最佳分辨率(推荐)

2.长和宽的阈值,这个值越高线条越简单,越低线条越复杂。
注意:一定要找到和预处理器对应名字一样的模型。

Depth 深度检测

通过提取原始图片中的深度信息,生成具有原图同样深度结构的深度图,越白的越靠前,越黑的越靠后。

MiDaS 深度信息估算

● 用来表示空间距离,也就是前后距离,体现透视关系;越白的就越靠前,越黑的就越往后
● 可以用来更换背景、主体、还有画风之类的东西;有时我们也可以用于生成遮罩蒙版。
● 深度图可由3D软件生成,也可以使用PS
● 如果用人像来检测的话,边缘轮廓没问题,但白色里面是没有细节的,所以单独使用的话一般就用风景,或者能表示纵深关系的图。

LeReS 深度信息估算


LeReS 深度信息估算比 MiDaS 深度信息估算方法的成像焦点在中间景深层,这样的好处是能有更远的景深,且中距离物品边缘成像会更清晰,但近景图像的边缘会比较模糊,具体实战中需用哪个估算方法可根据需要灵活选择。
如下图能看出我们很好地控制住了生成结果的整体结构,这与原图基本保持一致。

HED 边缘检测

HED 边缘检测可保留更多柔和的边缘细节,类似手绘效果。

参数也是分辨率越高越精细,但也越吃显存。
相对于使用普通的 img2img ,边缘线提取的方式可以生成更加清晰完整的图,黑色描边也得到了很好的重绘。

M-LSD 线条检测

  • 适用于四四方方的场景,建筑物,物体,房间、车辆等,生成的预览图就是很正直的线条
  • 非常适合搞建筑和室内设计的朋友用

  • 直线检测mlsd与canny区别 mlsd只会检测直线,而canny会检测所有边缘线条 如图里的人物,canny会检测出来并生成灯

Normal Map 法线贴图

Normal Map 法线贴图能根据原始素材生成一张记录凹凸信息的法线贴图,便于AI给图片内容进行更好的光影处理,它比深度模型对于细节的保留更加的精确。法线贴图在游戏制作领域用的较多,常用于贴在低模上模拟高模的复杂光影效果。

  • RGB 转 BGR

如需要把 Normal map 从 RGB 反转成 BGR 的可把这个选项勾上。(注:因坐标系问题,有时需要反转下通道信息,如生成结果的光照信息和你预期是反的,可能需要勾选此选项)

人物姿势检测

OpenPose 姿态检测

OpenPose 姿态检测可生成图像中角色动作姿态的骨架图,这个骨架图可用于控制生成角色的姿态动作。这个没有涉及手部的骨架,所以手部控制不行有时会出问题。

OpenPose 姿态及手部检测

OpenPose 姿态及手部检测解决了姿态检测手的问题。如下图有了手部骨骼控制生成的手部效果会更好。

除了生成单人的姿势,它甚至可以生成多人的姿势,这点非常关键,在此之前AI生成的画面里多个人物的特定动作是几乎无法靠提示词来实现的。
通过控制人物姿势,在人物角色设计时也可以得到很好应用。

PiDiNet 边缘检测(像素差分网络,配合 hed 模型)

PiDiNet 边缘检测生成的线条较粗壮,类似雕刻效果。这个预处理器要配合选择 hed 模型效果才会比较好。

Scribble 涂鸦(要配合 scribble 模型)

Fake_Scribble 伪涂鸦

不用自己画,扔个图片给AI,生成类似涂鸦效果的草图线条。
该算法提取了曝光对比度比较明显的区域,以此来重新引导。可以看到提取的涂鸦,仅保留了曝光度对比较大的部分,但是细节保留的很不错,细节保留的越多,那么重新引导时所能更改的部分就越小。

Reference 参考原图

参考原图的风格或角色
reference只有预处理器,不需要模型,该功能对于保持人物角色也有不错的效果。

anypaint中界面具体操作解释:

  • 启用
    勾选此选项后,点击 “生成” 按钮时,ControlNet 才会生效。
  • 反色模式(Invert Input Color)
    将图像颜色进行反转后应用。
  • RGB 转 BGR(RGB to BGR)
    把颜色通道进行反转,在 NormalMap 模式可能会用到。
  • 低显存优化(Low VRAM)
    低显存模式,如果你的显卡内存小于等于4GB,建议勾选此选项。
  • 无提示词的猜测模式(Guess Mode)
    也就是盲盒模式,不需要任何正面与负面提示词,出图效果随机,很有可能产生意想不到的惊喜效果!
  • 预处理器(Preprocessor)
    在此列表我们可选择需要的预处理器,每个 ControlNet 的预处理器都有不同的功能,后续将会详细介绍。
  • 模型(Model)
    配套各预处理器需要的专属模型。该列表内的模型必须与预处理选项框内的名称选择一致,才能保证正确生成预期结果。如果预处理与模型不致其实也可以出图,但效果无法预料,且一般效果并不理想。
  • 权重(Weight)
    权重,代表使用 ControlNet 生成图片时被应用的权重占比。
  • 引导介入时机(Guidance Start(T))
    在理解此功能之前,我们应该先知道生成图片的 Sampling steps 采样步数功能,步数代表生成一张图片要刷新计算多少次,Guidance Start(T) 设置为 0 即代表开始时就介入,默认为 0,设置为 0.5 时即代表 ControlNet从 50% 步数时开始介入计算。
  • 引导退出时机(Guidance End(T))
    和引导介入时机相对应,如设置为1,则表示在100%计算完时才会退出介入也就是不退出,默认为 1,可调节范围 0-1,如设置为 0.8 时即代表从80% 步数时退出介入。
  • 缩放模式(Resize Mode)
    用于选择调整图像大小的模式:默认使用(Scale to Fit (Inner Fit))缩放至合适即可,将会自动适配图片。
    一共三个选项:Just Resize,Scale to Fit (Inner Fit),Envelope (Outer Fit)
  • 画布宽度和高度(Canvas Width 和 Canvas Height)
    画布宽高设置,请注意这里的宽高,并不是指 SD 生成图片的图像宽高比。该宽高代表 ControlNet 引导时所使用的控制图像的分辨率,假如你用 SD 生成的图片是 1000x2000 分辨率,那么使用 ControlNet 引导图像时,对显存的消耗将是非常大的;我们可以将引导控制图像的分辨率设置为 500x1000 ,也就是缩放为原本图像一半的分辨率尺寸去进行引导,这有利于节省显存消耗。
  • 创建空白画布(Create Blank Canvas)
    如果之前使用过 ControlNet 功能,那么将会在 ControlNet 的图像区域留有历史图片,点击该按钮可以清空之前的历史,也就是创建一张空白的画布。
  • 预览预处理结果(Preview Annotator Result)
    点击该按钮可以预览生成的引导图。例如:如果使用 Canny 作为预处理器,那么点击该按钮之后,可以看到一张通过 Canny 模型提取的边缘线图片。
  • 隐藏预处理结果(Hide Annotator Result)
    点击该按钮可以隐藏通过 Preview 按钮生成的预览图像窗口(不建议隐藏)
  • 16
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ControlNet API是一种用于控制网络设备的应用程序接口。它提供了一组编程接口和协议,使开发人员可以与网络设备进行通信和交互。通过ControlNet API,开发人员可以实现对网络设备的远程监控、状态查询、配置管理和故障诊断等功能。 ControlNet API具有以下特点: 1. 灵活性:ControlNet API可以与各种类型的网络设备进行通信,包括交换机、路由器、防火墙等。无论设备是采用何种操作系统或硬件平台,都可以通过ControlNet API进行控制和管理。 2. 安全性:ControlNet API提供了严格的安全机制,确保通信过程中的数据传输和交换是安全的。它支持各种加密算法和身份验证机制,可以防止未经授权的访问和信息泄露。 3. 易用性:ControlNet API具有友好的开发接口和文档,开发人员可以快速上手并实现所需的功能。它还提供了丰富的示例代码和调试工具,方便开发人员进行调试和测试。 4. 扩展性:ControlNet API提供了可扩展的架构和接口,可以根据实际需求进行定制和扩展。开发人员可以根据自己的需求添加新的功能和模块,以满足不同场景和需求的要求。 总之,ControlNet API是一种强大而灵活的控制网络设备的工具,它可以帮助开发人员实现对网络设备的管理和控制,提高网络的可靠性和安全性。在现代网络环境中,ControlNet API具有重要的意义和应用前景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

手把手教你学AI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值