stable diffusion学习笔记 手部修复

图片手部修复原理

某张图片在生成后,仅有手部表现不符合预期(多指,畸形等)。这种情况下我们通常使用【局部重绘】的方式对该图片的手部进行【图生图】操作,重新绘制手部区域。

但是仅采用重绘的方式也很难保证生成的手没有问题。因此这里我们采用【contorlNet】进行辅助,定向生成某种手部的形状。

Depth Library

depth library是stable diffusion里的一个拓展插件。

该插件的主要作用是生成一张包含特定深度图的PNG图片,方便在controlNet中使用。

具体的操作方式如下图所示:

1、将需要修改手部的图片通过【添加背景图片】导入到depth library里。需要根据当前图片的大小设置相同的分辨率,这样才能保证【局部重绘】的手部区域和我们设定的新手部区域相同。

2、在depth map中找到合适的手型,鼠标长按移动到图中的【选择】区域。素材可以从c站下载:https://civitai.com/models/67174/900-hands-library-for-depth-library-or-controlnet

3、点击【添加】,将选择的手型添加到基底图片上。

4、手动调整大小和位置,确定无误后点击右下角的生成png图片导出。

局部重绘

在局部重绘工具栏我们先通过画笔的方式建立重绘区域(蒙版)。

设置controlNet,将刚刚生成的png导入:

注意这里采用canny控制类型,将控制权重提高到1.5,并将控制模式修改为更偏向controlNet。

在提示词中无关的正向提示词删除,仅保留【hand】(手部相关提示词)和画质提示词(best quality)等,负向提示词通常不需要改动。

再次生成图片,可以看到手部有巨大改善。

小tips

在Depth library中选择手型,尽量选择5根手指能够明确区分的图片(比如手掌全部张开)。这样可以提升controlNet识别轮廓/深度的准确度,进而在重绘中提高手型的还原度。

相关推荐
向上的车轮1 小时前
MATLAB学习笔记(七):MATLAB建模城市的雨季防洪排污的问题
笔记·学习·matlab
躺着听Jay2 小时前
Oracle-相关笔记
数据库·笔记·oracle
田梓燊2 小时前
数学复习笔记 19
笔记·线性代数·机器学习
前端小崔2 小时前
从零开始学习three.js(18):一文详解three.js中的着色器Shader
前端·javascript·学习·3d·webgl·数据可视化·着色器
逼子格3 小时前
硬件工程师笔记——二极管Multisim电路仿真实验汇总
笔记·嵌入式硬件·硬件工程师·multisim·硬件工程师学习·电子器件·电路图
龙湾开发3 小时前
计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 10.增强表面细节(二)法线贴图
c++·笔记·学习·图形渲染·贴图
liang_20263 小时前
【HT周赛】T3.二维平面 题解(分块:矩形chkmax,求矩形和)
数据结构·笔记·学习·算法·平面·总结
虾球xz3 小时前
游戏引擎学习第290天:完成分离渲染
c++·人工智能·学习·游戏引擎
虾球xz3 小时前
游戏引擎学习第285天:“Traversables 的事务性占用”
c++·学习·游戏引擎
汇能感知4 小时前
光谱相机的空间分辨率和时间分辨率
经验分享·笔记·科技