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识别轮廓/深度的准确度,进而在重绘中提高手型的还原度。

相关推荐
我曾经是个程序员8 分钟前
鸿蒙学习记录之http网络请求
服务器·学习·http
m0_7482323918 分钟前
WebRTC学习二:WebRTC音视频数据采集
学习·音视频·webrtc
虾球xz2 小时前
游戏引擎学习第55天
学习·游戏引擎
oneouto2 小时前
selenium学习笔记(二)
笔记·学习·selenium
sealaugh322 小时前
aws(学习笔记第十九课) 使用ECS和Fargate进行容器开发
笔记·学习·aws
炭烤玛卡巴卡2 小时前
学习postman工具使用
学习·测试工具·postman
thesky1234563 小时前
活着就好20241224
学习·算法
蜗牛hb3 小时前
VMware Workstation虚拟机网络模式
开发语言·学习·php
汤姆和杰瑞在瑞士吃糯米粑粑3 小时前
【C++学习篇】AVL树
开发语言·c++·学习
虾球xz3 小时前
游戏引擎学习第58天
学习·游戏引擎