AI绘画调整手指任意姿态
最近本站一直忙给大家搭建免费的ChatGPT给大家体验,所以关于AI绘画这一块暂时搁置了几天。
最近AI方面关于Stable Diffusion
比较火爆的是技术是ControlNet
、Chilloutmix
、LoRA
等,这些本站之前都有写过详细的教程,感兴趣的可以通过下面给出的链接自行查看一下。
本站今天为大家带来Depth Library
的使用教程,该插件可以让手指绘画的可控性更上一层楼。
本套教程中的基础模型为LoRA,如果您对LoRA感兴趣,可以看这里。
Depth Library
最近最新的技术是通过Github开源插件Depth Library
,该插件可以通过深度图来调整AI绘画人物的手指姿态,和语义描述比较起来,简直精确太多太多了。AI不会画手这件事,已经成为昨日之谈。
安装教程
目前该插件还未集成到Stable Diffusion WebUI
的官方扩展列表内,估计迟早会的。
但安装方法非常简单,下面有两种方式介绍给大家。
在线安装
Stable Diffusion WebUI -> 拓展 -> 从网址安装 -> 扩展的 git 仓库网址
,然后将下面的地址粘贴至文本框内,本地目录名留空,不要填写任何内容。
安装完成后记得重启UI,或者直接重启整个SD。
手动安装
手动安装可以分为两种,根据自身情况任选其一即可。
方法1:
前往本地SD安装路径,例如本站是D:\openai.wiki\stable-diffusion-webui
目录,在该目录下可以看到extensions
文件夹,该文件夹是用来放置安装扩展文件的目录。
如果您的电脑有Git,使用Git直接CD至此路径,如果您的路径与本站不一至,请手动修改您自己的路径。
通过Git将远程仓库拉至本地,执行完上面的命令之后,再执行下面的命令即可。
重启SD的WebUI界面,安装完成。
方法2:
如果您不方便下载,没有魔法上网,可以下载本站提供的插件安装包,直接解压至你自己的SD安装路径即可,例如本站的路径为D:\openai.wiki\stable-diffusion-webui\extensions
目录。
重启SD,不是重启UI界面,而是重启SD,本站尝试只重启UI界面无效。
使用教程
经过上面的步骤,我们已经安装好啦,下面进入使用阶段的教程。
UI界面
我们安装好之后,一定要重启SD的UI界面,不然将会无法看到Depth Library
的选项卡。
可以看到,该UI界面还是比较简洁的,没有太多花里胡哨的元素。
基础模特
我们先用LoRA生成一个基础模特,该图将会用作接下来教程的案例。
图像模糊是因为本站为了节省带宽,而压缩了图像质量,实际图片还是蛮清晰的。
本次使用的基础模型为chilloutmix_Ni
,LoRA角色为八重神子
,下面是Prompt,大家可以和本站同步操作,更加方便学习。
⚠️警告:本图的分辨率尺寸为:512*768
像素,Seed(种子)
为:2629576491
,您自己操作时,也一定要记住自己的种子号码和分辨率尺寸,后续还会用到,不然将会生成意料之外的效果。
我们为了解决手指问题,所以本站有意生成了一张手指存在问题的图片,该图中模特的手指仅为三根。
加载图片
我们现在已经准备好了模型、插件、基础图,下面我们进入Depth Library教程部分。
我们需要先将生成的图片发送至Depth Library选项卡
,在此之前我们应该先将生成后的图片保存至本地,然后切换至Depth Library选项卡
,点击添加背景图片
按钮,选择我们刚刚保存的图片,然后就能够看到图片已经被加载至Depth Library界面内。
⚠️警告:在加载Depth Library选项卡内的基础图片之后,一定要调整一下宽和高的滑杆条,与自己所生成的图片尺寸一致,本站所生成的图片尺寸为512*768像素,宽高比已经根据实际情况调整好啦。
加载手势
我们可以看到,在界面左侧有很多手势,我们点击一个自己想要的手势,即可将该手势加载到中间的空白区域,方面我们后面使用。
按顺序点击所有按钮之后,将会自动在最右侧图片区域加载图片,我们调整一下,调整一个自己满意的手势,最终效果如下图。
如果您的图片是双手出镜,可以再添加一只手到画面内进行调整,为方便各位理解,本站的教程内仅以一只手为例。
BUG
在调整完手势的深度图之后,我们点击Depth Library选项卡
人物图片区域右下角的Send to ControlNet
按钮,将已经调整完的人物图,发送到ControlNet
模型面板。
这时你可能会遇到一种情况,点击该按钮之后你可能遇到图片无法发送至,ControlNet面板。
⚠️警告
Depth Library插件存在一个非常严重的BUG,这个BUG会导致发送到 ControlNet
或Send To ControlNet
功能失效,图片发送失败。本站因为该BUG困扰了一个小时之久,最后终于经过多次尝试,找到了解决办法。
如果你想要使用该插件来对手部进行绘制,那么你必须不能使用任何本地化语言文件,必须是英文原版。
如果你现在是中文界面,请通过以下该方法恢复英文界面。
Stable Diffusion WebUI -> 设置 -> 用户界面 -> 本地化翻译(需要保存设置并重启)
,将zh_CN
设置为无
,然后应用设置
,重启UI
即可。
问题分析:其实该问题的主要原因可能是汉化补丁修改了HTML的<div>
或<class>
类的标签等情况,导致Depth Library
原本应该发送到Send To ControlNet
的按钮功能失效。本站仅是猜测,并没有实际对比。
Depth Library|普通用法
在解决完BUG,并且成功发送到ControlNet
面板之后,我们需要做一些设置。
- Enable:勾选
- Preprocessor:none
- Model:control_sd15_depth[fef5e48e]
- 宽高分辨率:尽量设置为与原图大小一致
此时我们直接点击生成
按钮,来看一下效果怎么样。
我们可以看到,效果不可以用差来形容了,简直是完全无关。造成这个问题的原因我也研究了很久,才找取问题的关键。
其实该问题是因为渲染顺序引起的,当我们使用手指的深度图进行渲染引导时,将会先渲染深度图,然后根据描述和种子之类的东西去影响画面,但是深度在初始时的影响太大了,所以导致后面的渲染就会与我们所想要的完全无关了。
要解决这个问题,我们可以尝试修改ControlNet中的Guidance Start
参数,该参数的作用是指我们所使用的深度图,在什么时候才开始引导。该参数的数值默认为0,也就是从最开始就进行引导,那我们将这个参数设置为0.3测试一下,该参数0.3的意思是指“在通过描述正常渲染到30%时,开始使用ControlNet的深度图进行引导渲染”。
补充:其实调整降低ControlNet的权重也是可以解决的,大家根据自身情况选择,或者两个参数互相协调搭配使用。
通过上面的测试图,我们可以看到,手指已经有些趋于正常了,但还是些畸形,可最起码距离我们想要的比较近了。
其实这个效果不如人意最主要的原因,和手势的复杂程度也有很大关系,如果是五指张开,或者结构简单的手势,效果会相对还可以,下面是两个简单的手势图。
可以看到,效果还是有些智障的,但是总的来说,已经比用文本提示词来控制要强一些。
其实关于只通过深度图来生成的相关内容,本站研究了一下,基本也就这样了。
因为本站长也是一边学、一边做、一边写给大家,可能学艺不精,如果有错误欢迎指正。
进阶用法
其实本文中的内容只是基础用法,可以看到效果只能说是一般般,下一期本站将会介绍关于Depth Library的进阶用法,通过多重控制,获得更好的效果。
学习推荐
可能手势库里并没有你想要的手势,其实这些图可以通过DDC类软件来生成,下载一个只有手部的模型,然后自己在模型内摆出想要的Pose,再通过软件渲染出尝试图,可以使用的常见3D类渲染软件包括Blender、Maya、3DMax,以上软件都可以完成上述摆Pose和渲染深度图的功能。
其实本站推荐想深入学习AI绘画的友友们,都尽量学习一下Blender这款软件,这是一款开源免费的三维动画制作软件,以后AI的发展方向肯定是要像DDC类软件靠拢的,现在Blender和Houdini等软件已经有AI渲染插件的介入了。
如果大家对该类软件感兴趣,那么本站后续也可以更新此方面的基础类教程。