分享

AI绘画教程 Stable Diffusion中如何控制人像的姿势?

 AIGC部落 2023-04-04 发布于广东

在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,可以看到生成图片中人物的动作和源图片中的人物动作一模一样,精准还原。

      AI绘画交流社群:AIGC部落,扫码加入

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多