在AI绘画中,有时候我们需要主角(人物或动物)摆出特定的姿势,该怎么做呢? 第一种方法:以图生图 打开Stable Diffusion界面,点击imag2img

下面出现一个”drop image here or click to upload”的方框,从网上找一张你希望呈现的姿势图片,比如一个老鹰,姿势:双眼盯着远方。把这张图片拖拽到方框,或者从本地电脑上传。

然后在提示词框里输入提示词,比如:a dragon ,然后点击generate生成图像。但是这样生成的图像,姿势不好控制,有些会比较像,有些差很远。 第二种方法:使用ControlNet。这是一个很强大的stable Diffusion插件,可以精准的控制AI绘画中人物或动物的姿势,从而生成很多好玩有创意的图片。 比如,穿上钢铁侠战衣的擎天柱:

现在大部分stable Diffusion的colab包都自带ControlNet,如果你使用的版本里没有,可以打开extensions,在安装时勾选ControlNet

下载ControlNet模型那一栏,选择通用的姿势控制模型ControlNet_openpose(也可以都选)

现在,打开stable Diffusion,可以在提示词框下面看到control net的按钮

有一个Enable的方框,勾选,就启用control net了。 我们来测试下control net的效果。先不启用control net,输入提示词,生成如下图片,可以看到图片中人物的姿势各异。

然后我们上传一张瑜伽动作姿势的图片到control net,然后勾选enable,Preprocessor选择openpose,Model选择openpose-sd21-safe [2be3125b]

再次点击generate按钮,这时候生成的图片基本保持了和上传图像中的瑜伽动作

但是,这个动作和源照片中的瑜伽动作差距有些大,生成效果不是很理想。这不是插件的问题,而是选用的模型不太对。 Control net的Preprocessor有很多种模型可选:canny、depth、depth_leres、hed、mlsd、 normal_map、openpose、openposehand、clip_vision、color、pidinet、scribble、fake_scribble、segmentation、binary。这些都是什么意思呢? Openpose:最常用的模型,采取图片中的人物骨架做为参考,以生成图片。用于人物动作。

Canny: 撷取图片中的边缘线做为参考,以生成图片

mlsd : 撷取图片中明显的直线做为参考,以生成图片。一般用于建筑、物体的检测,常用于室内装潢,建筑设计

Hed: 撷取图片中的特征做为参考,以生成图片。也是边缘提取,跟canny类似

Scribbles:手稿模型 撷取使用者提供的线条做为参考,以生成图片。可以把随手画的涂鸦生成精美的画面

Segmentation:将图片化为大略的色块作为参考,以生成图片

Depth:提取深度检测信息,可以生成具有同样深度结构的图 。

normal:模型识别,跟深度图有点类似,但对于细节的保留更加的精确。通过读取原图片中的深度信息和法线背景阈值。

Pidinet:检测图像中的曲线和直线条,然后生成图片。生成的结果和HED有些相似。不过,细节会少一些。

Fake Scribble:从成品图中提取出草图 ,和涂鸦是倒过来的。 总结下,这些不同的模型采用的不同方法来控制姿势,并没有谁更好谁更差,而是需要根据需要和图像特征来选择对应的合适模型。

通常来说,对于人像,HED 模型可以最精准的复制人物动作。Canny 、 depth、normal也不错,但是有时可能会有一些变形。从上面图像来看,不仅复制了动作,还复制了、发型和衣服,效果不是很理想。OpenPose在复制动作的同时,则没有死板的去复制衣服和发型,而是精准的生成提示词中的内容,可以说是形神兼备,效果最佳。mLSD则完全不适合人像,复制效果非常差。 回到最开始的例子中,将preprocessor模型从openpose改成hed,可以看到生成图片中人物的动作和源图片中的人物动作一模一样,精准还原。

订阅评论
提醒
guest
0 评论
内联反馈
查看所有评论
在线客服
在线客服
QQ客服
旺旺客服