已有 IP 如下所示图左,希望将改成类似图右的姿势,该怎么用Stable Diffusion 实现呢,完整教程来了!
往期教程:
首先经过测试 SD 的 Controlnet Openpose 无法识别卡通形象的骨骼,因此需要我们用 Openpose editer 手动添加骨骼图,大致得到以下骨骼图,点击按钮发送到 Controlnet,为了方便后续使用,可以将骨骼图下载下来备用;
接下来的思路:
- 首先需要在 SD 中跑出和图 1 形象,这样后续才可以在 SD 中做控制和重绘等工作,并让形象按新骨骼换姿势
- 得到相似度高的形象后(可能无法得到 100%一样的形象) 在 Controlnet Openpose 中给新的骨骼图引导,让 SD 在保持形象画风统一的前提下换姿势
那么话不多说,先开始在 SD 中生成形象
1. 将图 1 传入 SD,利用 tag 反推插件,反推出提示词,界面如下所示
反推出如下关键词,复制进文生图中
robot, solo, black background, no humans, mecha, standing, chibi, clenched hands, science fiction, glowing
添加通用质量关键词得到正向 tag,负面 tag 用我们常用的模版,大模型使用泛化性极高的「revAnimated_v122」几乎可以适应生成大多数类型的图,整体上部分设置如图所示
2. 采样方法,迭代步数保持以下默认设置就可以
画面宽高 在原图上等比缩小了一倍(365-640), 在文生图这里,更小的尺寸有利于我们快速批量看生成效果
3. 接下来的重点是 Controlnet 的控制,这里至少需要用到以下 3 个 Controlnet
①第一个:Reference_only
作用是控制图像风格与样式统一延续;
Style Fidelity 是样式保真度,数值越大相似度越高,数值越小相似度越低,我这里给到 1;
权重给到 2,因为我们这里最重要的就是希望 SD 控制生成与原风格统一的形象,需要控制度高一些;
②Canny
作用是识别提取图像线稿,使新图像按线稿轮廓生成。
Canny Low Threshold: 低阀值,数值越小,识别的线稿越多;反之越少;
Canny High Threshold:高阀值,数值越高,识别的线稿越少,反之越多;
具体数值可以根据情况尝试,以最终显示最完整的线稿为准。我这里给到低阀值 41、高阀值 136,权重为 1.25;
③t2ia_color
作用是对颜色进行网格检测,用来生成与原图色谱一致,分布近似的图像,因此提取结果会呈现马赛克效果,在 t2ia_color 的作用下,重新生成的图片会按照原图色彩特征进行重绘。
Preprocessor Resolution:预处理器分辨率,数值越高,马赛克格子越小,控制越精确;数值越大,马赛克格分布越概括,控制越粗略;
这里我们想让颜色精准的按照原机器人图的色彩分布来,因此预处理分辨率给的很高:1960,大家使用可根据具体需求进行调节。
以上设置完成后,加大生成批次 1 次跑 20 张,从中挑选最合适的,我这边生成了以下这张,基本与原图保持了 90%的相似性;
完成这一步形象生成后,接下来的重点就是让 IP 根据骨骼的走向生成新的姿势,这一环节的思路是:
- 将图片发送到「局部重绘」中,涂抹胳膊和腿的部分作为蒙版区域,对蒙版进行重绘;
- 配合 SD Controlnet:Reference_only(使重绘的部分保持原图风格统一) Openpose 骨骼(按新骨骼引导生成姿势)
- 得到新姿势后,在「图生图」中用 tile diffusion 和分块 vae 进行高清修复,补充细节高清放大;
那么接下来进入详细步骤讲解
1)将图片发送到「局部重绘」中,涂抹蒙版区域(胳膊和腿的部分),这步非常重要的是——要尽量根据新姿势的走向多涂抹一些作为预留空间,供AI 生图自由发挥,尤其是右手部分,因为是一个挡脸的姿势,需要多涂到脸上一部分,我的涂抹如下
参数部分可参考以下设置
比较重要的是以下 3 点
- 采样迭代步数可适当开大到 30
- 重绘需要保证生成高质量图像,提示词相关性可以开大一点到 13 (提示词中多为质量关键词) 具体数值可根据生成效果调节
- 整个重绘过程中,重绘幅度的大小是最关键的,可以多次使用「脚本」功能进行测试,能大大提高效率;
接下来是 Controlnet, 这里至少需要开启 2 个
- Reference_only:保持风格与原图一致,这里要用原图去喂,而不要用新生成的。 权重给到 1.5,样式保真度给到 1;
- Openpose 骨骼:让图像按新的骨骼图生成姿势,这个很重要,权重高一点,开到 2;
设计好以上参数后,接下来需要打开神器「脚本」X/Y/Z 轴 测试最合适的重绘幅度。
这里我们先做一次粗略的测试,在 0.3-1 的重绘幅度中,每 0.1 生成 1 张图,看看哪个重绘效果最好,脚本的具体设置如下
测试结果如下,可以看到 0.7 以上的重绘幅度,能够出来上举的双臂;
接下来测试 0.7-0.95 的重绘幅度,从结果可以看到 0.8 以上重绘太大,形象就发生改变了,0.75-0.8 之间相对好一些;
接下来测试 0.75-0.8 的重绘幅度,从结果可以看到 0.8 开始,机器人右臂可以上举了,更接近我们想要的姿势,但形变太大;
为了使形象风格控制更严瑾,加大 Reference_only 的权重到 1.5,使形象控制更准确;
再次测试 0.7-1 的重绘幅度,从结果可以看到:形象更精准,且重绘幅度为 1 时整体姿势生成更彻底,没有多余的手臂;
暂时关闭「脚本」,选择图 4,设置重绘幅度为 1;
到这一步已经生成了新的姿势(不过还不准确理想),可以在这张图基础上重绘,成功率将会更高;
将图 4 发送到图生图「局部重绘」,这次只需要用画笔涂抹手和脚的部分就可以,能够控制更精准;
接下来是在上图基础上重绘,保持 controlnet 不变,openpose 权重开到 2,再用一轮「脚本」来测试下 合适的重绘幅度;
根据结果可以看到 0.9、1.0 的重绘效果更好,我们再进一步测试 0.9-1.0 之间每 0.5 步生成一张图
从结果可以看到 1.0 的重绘效果更好;
这一批的姿势已经非常接近我们想要的,不再需要继续局部重绘了;
选择第 3 张图,发送到「图生图」通过小幅度重绘为画面填充细节,高清修复;
测试「图生图」合适的重绘幅度,看结果 0.3 的重绘幅度就够了,后面基本没太大变化,甚至数值大可能更差;
关闭「脚本」设置重绘幅度为 0.3,加大批次生成,挑选最合适的两张 1 与 3,在 ps 中将瑕疵去除,融合优点合成得到右图
到这里,我们已经基本得到了一张 70 分的换好姿势的图了
接下来将是最后一步,发送到「图生图」,通过插件 tile diffusion 和分块 vae 进行高清修复,补充细节高清放大;
同时保持 2 个 controlnet 设置不变;
加大批次生成后,挑选得到左图,在 PS 中微调后得到右图;
到这一步基本工作已完成了,为了更好玩有趣,我们可以生一个与动作更匹配的开心表情~~~
怎么样,上图 2 张你更喜欢哪个呢?
是不是觉得很简单,快拿你喜欢的形象练练如何轻松的换姿势叭, 期待你的返稿哟~~
复制本文链接 文章为作者独立观点不代表优设网立场,未经允许不得转载。
热评 暮色