已有 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 张你更喜欢哪个呢?