大家好我是极客菌!现在要拍摄一组写真,需要服装、道具、灯光、场地、布景、拍摄、后期
等过程。整个过程需要同一才华形成好的写真效果。现在有了AI画图技能,我们可以实现通过AI画图,只用计算机计算就得到一组靠近真实的写真照吗?答案是可以的!
实在基于现有的许多AI工具,都能实现真人AI写真,之前我先容过了StableDiffusion的WebUI和ComfyUI,本日我们仍然以所有AI画图工具中,控图本事最强的StableDiffusion为例,为大家深入浅出地先容如何利用Stable Diffusion进行真人AI写真的创作。
话不多说,我们先看效果,下图是我做过的一部分AI写真,有男子,女人,和小孩
一、如何实现
现在,我们来整理一下思绪,如何利用AI实现真人写真?大致上,我们大概可以想到以下几个思绪:
• 网图AI换脸
• AI画图换脸
• 真人训练AI画图
在以上思绪中,我们进一步分析拆解,可以发现实在可以得到以下几个关键步骤
• AI换脸
• AI绘制人物
• 真人模型训练
我们就以此中最小关键步骤为切入点来解说
二、AI换脸
在Stable
Diffusion中进行AI换脸是非常轻易的,重要得益于WebUI强大的第三方插件商店,目前常用的roop和faceSwap两款插件,可以非常方便快速的实现AI换脸
1. 情况准备
要利用AI换脸插件,我们需要先安装在需要的情况 准备情况的过程中,可能出现各种安装错误,这里不一一列举,大家有问题可以提出来,我看到会为大家解答!
1. 安装Microsoft C++ 生成工具
- 1. 进入https://visualstudio.microsoft.com/zh-hans/visual-cpp-build-
tools/ 页面,点击“下载生成工具”。
- 2. 打开下载的exe文件,选择“利用C++的桌面开辟”,然后点击“安装”。安装会占用大约9G空间,建议选择非系统盘并预留空间
- 3. 安装完成后,最好重启电脑。
2. 安装insightface
- 1. 打开命令行窗口(Win+r,输入cmd,回车,可快速打开命令行窗口)
复制代码- 2\. 进入stable-diffusion-webui的Scripts目录下:“X:\xxx\stable-diffusion-
- webui根目录\venv\Scripts”
复制代码- 3. 输入命令pip install insightface==0.7.3(安装特定版本)
复制代码 以下换脸示例中,我们就以马斯克的一张网图为原型进行换脸更换
2. roop
roop插件是WebUI中的此中一款换脸插件
安装
通过代码仓库安装:扩展->从网址安装->扩展的git仓库网址 输入https://github.com/s0md3v/sd-webui-
roop.git再点击安装即可
通过代码仓库安装
通过插件商店安装:扩展->可下载->加载扩展列表 输入roop搜索,再点击安装即可
通过插件商店安装 (留意没有软件的同学可以文末自行扫描获取)
下载模型
下载 inswapper_128.onnx
模型:https://huggingface.co/ezioruan/inswapper_128.onnx/tree/main 将下载的
inswapper_128.onnx 模型更换到 /models/roop/ 目录中。
利用
安装完成之后,重启sd-webui,我们就能在文生图和图生图都看到roop插件了。roop插件的界面基本上也一目了然,大概看看就知道怎么利用了。
Roop只会修改五官、眉毛以及脸型,不会改变肤色
- 1. 1\. 文生图
- 2. 我们用以下咒语先画一个帅哥出来
复制代码
- best quality,masterpiece,
- 1boy,male focus,solo,facial hair,necktie,realistic,formal,suit,brown background,black necktie,looking at viewer,upper body,beard,brown hair,shirt,jacket,tongue,white shirt,black jacket,collared shirt,stubble,brown eyes,black suit,
复制代码
这时,我们还没启用roop,现在我们再启用roop,把马斯克的脸更换上去
于是,我们就得到了这样的图片
- 1. 2. 图生图
- 2. 文生图如此,那图生图其实也大同小异,我们随便从网络抓一个帅哥图片
复制代码
- 然后调整我们的SD参数
- 
- SD参数
- `按照普通的图生图模式,把重绘幅度拉低到0.3-0.6之间就行,当然最重要的还是启动roop换脸插件` 于是,我们最终得到这样的融合图片
- 
- 网络帅哥+马斯克
复制代码
进阶利用
上面流程中,我们利用默认参数即可,实在它的界面上还有一些可调整的参数
- 1. 逗号分割的面部编号 即我们可以选择替换图片中的第几个人脸,从左往右从0开始(比如我们图片有两个人,我们要替换右边的人脸,则填1),非常适合多人脸替换,我们可以挨个进行替换
- 2. 面部修复/面部修复强度 可以选择面部修复算法为CodeFormer或GFPGAN
复制代码 • CodeFormer:对输入图片均有增强效果,如头发,脖子,衣领,脸部,修复有有纹理效果,更靠近真实。适合男士脸部
• GFPGAN:修复后的图片比较光滑,有磨皮效果。适合密斯脸部
- 3. 放大算法/放大倍数 即对输入图片进行放大,可以选择不同的放大算法来保证图片放大后的质量
复制代码 留意:请确保输入图像的脸部不要被头发帽子等遮挡物遮挡
3. faceSwap
那另一款换脸插件faceSwap实在也和roop非常类似
安装
通过代码仓库安装:扩展->从网址安装->扩展的git仓库网址 输入https://github.com/glucauze/sd-webui-
faceswaplab.git再点击安装即可
通过代码仓库安装
通过插件商店安装:扩展->可下载->加载扩展列表 输入faceSwapLab搜索,再点击安装即可
通过插件商店安装
利用
faceSwap
通过faceSwap换脸,我们得到以下效果
文生图换脸
详细过程就不赘述了,同roop一样,文生图和图生图均能换脸
进阶利用
faceSwap,相比于roop来说,要稍微强大一点,它提供的功能更全,提供配置参数更多,不外大要和roop差不多,包括面部序号、面部修复、放大算法以及后重绘等。值得一提的是,faceSwap提供了一个非常轻量的人脸模型训练功能,它只需要你提供少量图片(当然图片越多效果越好),就能轻松训练一个轻量模型,跟直接更换相比,利用训练的模型进行换脸,可以使得最终结果更像,在插件界面可以选择自己训练好的人脸模型
模型训练
总体来说,不管是roop还是faceSwap,他们都提供了一种快速便捷的AI换脸功能,在许多场景下,这样的方式,实在就能完成真人AI写真了。
当然,如果你亲自去实验了,你还是会发现这样的换脸插件在某些情况下,图片是很难达到预期的,包括脸部融合度,包括画面精细度等。
因此,如果需要让写真更加“真 ”,我们需要继续探索其他的方式!
三、AI绘制人物
在聊真人模型训练之前,我们先要学会如何用SD绘制人物的图片。起首,让我们绘制一个美女出来吧!
1. 大模型
起首确定你要绘制的画面风格,选择一个大模型,一般来说,我会将大模型粗暴的分为写实、动漫、2.5D 三大类,然后再去细分不同的画风
比如以下是我收藏的一些写实大模型
写实大模型
我们就以国风大模型为例,选择“国风汉服写实”大模型
2. lora模型
根据实际情况选择是否利用lora模型,lora模型可以是画风lora、可以是人物lora、也可以是特定部位lora 比如以下是我收藏的一些lora模型
lora模型
这里,我不需要选择lora模型
关于模型下载,我一般利用c站和国内的liblib
C站
liblib
下载模型之后,生存网站上的首图首图,以及作者的一些出图建议,能更加方便下次利用
3.咒语(提示词)
提示词,是出图的关键,Stable Diffusion会根据你的提示词的内容、关系、以及权重等,来决定它会如何进行降噪出图。一般来说提示词分为几个部分
画质词 :(masterpiece:1.2), best quality, highres,extremely detailed
CG,perfect lighting,8k wallpaper, 真实系:photograph, photorealistic,
插画风:Illustration, painting, paintbrush, 二次元:anime, comic, game CG, 3D:3D,C4D
render,unreal engine,octane render,
画风词 :Cyberpunk 赛博朋克 8bit/16bit pixel 像素风 studio ghibli 宫崎骏风格 pixel style
皮克斯风格 Chinese ink style 水墨画
人物、年龄、发型,头发颜色感情表情,衣服装束,正在干什么
比如下雨天的咖啡厅,正面视觉、人物特写
加载lora、hypernetwork等触发内容
负面提示词基本可以通用,包括一些低画质,多手多脚之类的
负面词:NSFW, (worst quality:2), (low quality:2), (normal quality:2), lowres,
normal quality, ((monochrome)),((grayscale)), skin spots, acnes, skin
blemishes, age spot, (ugly:1.331), (duplicate:1.331),(morbid:1.21),
(mutilated:1.21), (tranny:1.331), mutated hands, (poorly drawn hands:1.5),
blurry, (bad anatomy:1.21), (bad proportions:1.331), extra limbs,
(disfigured:1.331), (missing arms:1.331),(extra legs:1.331), (fused
fingers:1.5), (too many fingers:1.5), (unclear eyes:1.331), lowers, bad
hands, missing fingers, extra digit,bad hands, missing fingers, (((extra
arms and legs))), NSFW:not Suitable For Work不适合在公开场合出现的图片
我们利用以下提示词来画一个国风汉服写实美女
- best quality,masterpiece,absurdres,Highly detailed,ultra-fine painting,extreme detail description,Professional,
- 1girl,full body,hair ornament,holding,necklace,orange with white chest pleated skirt,red waistband,red with white waistband,tang style outfits,transparent background,
- hanfu,tang style outfits,
复制代码
4. 其他参数
这里的许多参数都还有各自能继续穷究的点,本日重点不在这,就先略过了,有必要可以出文单独分析
- 1. 采样方法:不同的采样方法适用于不同画风
- 2. 迭代步数:理论上迭代步数越高,画面越精细,出图时间也越长,但也和采样方法对应,有的采样方法可以在很少的步数内就出图,后续增加的迭代步数所换来的收益就不大了
- 3. 高分辨率修复:开启高分辨率修复可以让SD对图像进行二次高清重绘放大
- 4. 4\. 放大算法:不同的放大算法有不同放大效果,一般写实画风推荐4x-UltralSharp或8x_NMKD_Superscale_150000_G,动漫画风推荐R-ESRGAN 4x Anime6B
- 5. 宽高:定义出图尺寸,一般需要参考大模型作者或lora作者给出的参考尺寸,需要更大尺寸图片可以再通过后期放大
- 6. 随机种子数:方便重现出图
复制代码 最终我以如下参数(图中标注为关键参数),来绘制一张国风汉服美女图
参数
国风美女
四、lora模型训练
学会绘制美女之后,下一步我们就需要利用自己训练的lora模型去和绘制的美女融合了,那么我们就需要学习如何训练lora模型
训练步骤
训练一个自己的lora模型分为几个步骤
- 1. 1\. 准备数据集:准备好需要训练的lora的数据来源
- 2. 2\. 图片预处理:如果是炼制人物脸部lora,那么尽量让画面纯净,仅包含人物上半身,且只有想要训练的人脸
- 3. 3\. 数据集打标签:这一步的作用是告诉AI你的图片包含什么元素
复制代码 对于标签:如果你想保存人物的某个特性,就删掉对应标签,这样AI就会认为这个人就是这个特性;如果你想机动调整某个特性,那就要把这个特性打上标签。举个例子:如果你有红色头发,你不打红色头发标签,那么炼制的lora模型很大概率会不停出红头发,即保存了这个特性
- 1. 4\. 开始训练:这个过程的时间长短,取决于你的电脑配置
- 2. 5\. 测试lora:除了测试训练出来的lora出图是否和原图像以外,也要测试lora的泛化程度,是否存在和原图过于拟合的情况等
复制代码 工具
lora训练的方式有许多,有通过执行脚本训练,也有通过界面训练。目前比较常用的lora训练工具有sd-trainer和赛博炼丹炉。
留意训练lora对配置有一定要求,显存至少需要6G,我个人是3060ti 8G的显卡,20张图片的训练时长在三个半小时左右
炼丹工具在末端给下载地点
1.sd-trainer
sd-trainer
一般来说,我们直接选用新手模式进行训练即可,当你真正把握了此中参数的含义之后,再去实验专家模型
新手模式下,我们一般只需要修改训练用的底模(即基于什么大模型进行训练),数据集目录,和模型生存名称即可,其他参数如训练轮数,学习率等,都可以在熟悉了训练流程之后再做调整
此中,WD1.4标签器可以帮助对目录下的图片自动打标签(对应前面数据集打标签步骤)
WD1.4标签器
2.赛博炼丹炉
赛博炼丹炉
赛博炼丹炉相对来说界面更加友好,基本上按照界面提示一步一步走即可
- 1. **1\. 选择大模型,训练风格,召唤词**
- 2. 根据自己的需求,来选择大模型和风格
复制代码
选择
- 1. **2\. 上传数据集图片**
- 2. 上传训练数据集,训练人物lora尽量为半身像,最好包含人物各个角度的照片
复制代码
上传数据集图片
- 1. **3\. 设置预处理参数**
- 2. 设置训练分辨率(1.5模型一般默认为512x512),模式以及是否勾选脸部加强(训练人物脸部lora要勾选)
复制代码
上传数据集图片
点击预处置处罚之后,炼丹炉会对图片进行人脸辨认和裁剪,以及自动打标签
预处置处罚
我们需要对标签再做一遍筛选,看看AI辨认的标签是否正确,进行一遍校正
- 1. **5\. 开始训练**
- 2. 没有问题之后,就可以开始训练,训练时间取决于你的电脑配置
复制代码 lora测试
不管是sd-
trainer还是赛博炼丹炉,训练完成之后,都会得到几个训练好的模型文件,模型文件数量根据你的配置决定,对于赛博炼丹炉来说,默认是每一轮训练竣事都生成一个lora模型文件
以下是我之前训练的lora模型
lora模型
训练完成之后,我们就要对这些模型进行测试了,我们需要以1-10(如果训练为10轮,生成了10个lora模型)的全部模型和0.1-1的全部强度两个维度来进行测试,这块我们可以利用stable
diffusion的xyz脚原来进行一个测试,最终确定哪个模型下的哪个强度,是我们训练效果最好的
真人原型
比如我之前训练的模型有iris_20240125002809-000001.safetensors到iris_20240125002809-000010.safetensors,那么我就可以在正向提示词引入lora时,利用参数更换
- <lora:iris_20240125002809-MODEL:STRENGTH>
复制代码
而且在最下方选择利用XYZ脚本进行出图
XYZ参数
配置正向提示词加入“银色头发”,这样,我们能测试lora的泛化水平
- (silver hair:1), best quality, masterpiec8K.HDR. highresabsurdres:1.2, Kodak portra 400, film grain, blurrybokeh:1.2, lens flare, (vibrant color:1.2),1girl, red dress, looking at viewer
复制代码
这样,就能得到一个以模型和强度为维度的二维xyz图表
通过观察xyz图表,我们就可以很快的找到在相似度和泛化度都很符合的lora模型以及利用强度(既很相像,又能出现银色头发)
五、真人AI写真
颠末以上一系列步骤,我们就真的可以开始出AI写真了 利用训练的lora模型出真人AI写真,也有几种方式
1. lora文生图直出
这个很好明白,直接用到我们上面提到的绘制美女的方法,加上我们提炼的lora即可
- best quality,masterpiece,absurdres,Highly detailed,ultra-fine painting,extreme detail description,Professional,
- 1girl,full body,hair ornament,holding,necklace,orange with white chest pleated skirt,red waistband,red with white waistband,tang style outfits,transparent background,
- <lora:iris_v1_000006_0.7-1:0.8>,hanfu,tang style outfits,
复制代码
文生图+lora直出
不难发现,虽然生成的美女很漂亮,但是她和原型差的太多了,重要原因是人脸在画面占比太小导致,如果是半身像或近摄,这个相似度会更高
2. 文生图+lora换脸
为相识决全身像相似度太低的问题,有一种解决方式是利用SD中的强大的修脸工具——ADetailer。可能大家知道ADetailer能修复崩坏的人脸,但是不知道大家有没有留意到,ADetailer是可以配置提示词的,也就是说,我在修脸的时候,可以用上自己的lora来进行修脸
ADetailer修脸
提示词中,我们去掉人物lora,仅仅利用ADetailer中的lora,我们再试一次
- best quality,masterpiece,absurdres,Highly detailed,ultra-fine painting,extreme detail description,Professional,
- 1girl,full body,hair ornament,holding,necklace,orange with white chest pleated skirt,red waistband,red with white waistband,tang style outfits,transparent background,
- hanfu,tang style outfits,
复制代码
文生图+lora换脸
这样一来,这个美女就和原型很像了,但是你可能也发现了,原型的人物脸型更饱满,而这个美女,是个很显着的锥子脸,虽然更悦目了,但是相似度也就降低了,那这个我们有办法解决吗?
当然了,如果对方要求,我就是想要锥子脸,那么到这一步,就够了
3. lora文生图+lora换脸
解决脸型问题,实在也不难,还记得我们之前去掉了提示词中的人物lora的引用吗?实在只要这里也引用lora,情况就会好许多。起首,我们在文生图时,就以我们的人物lora为基准出图,那么脸型一定是相像的,其次,我们再利用ADetailer进行lora换脸,相称于对自己的脸型再做一次换脸,那它的融合度一定是更高的
- best quality,masterpiece,absurdres,Highly detailed,ultra-fine painting,extreme detail description,Professional,
- 1girl,full body,hair ornament,holding,necklace,orange with white chest pleated skirt,red waistband,red with white waistband,tang style outfits,transparent background,
- <lora:iris_v1_000006_0.7-1:0.8>,hanfu,tang style outfits,
复制代码
lora文生图+lora换脸
4. 文生图+图生图+lora换脸
除了lora文生图以外,我们也可以去掉人物lora来出图,正常绘制美女图,然后通过图生图的ADetailer加lora去做脸部更换,可以通过批量出图,总会有融合度高的脸型。当然了,这种方式也适用于直接利用网图来进行lora换脸
以上就是通过lora来AI出图的几种方式了,我们再做个简单的总结
方式优点缺点适用场景lora文生图直出人脸占比大的近摄画面相似度高,脸部边缘无融合问题人脸占比小的全身像画面相似度低半身像,特写像文生图+lora换脸解决全身像相似度低的问题可能出现绘制人物与lora脸型等特性不像的问题,Adetailer易出现脸部边缘边界线全身像lora文生图+lora换脸解决脸型不像的问题Adetailer易出现脸部边缘边界线全身像文生图+图生图+lora换脸不要求出图过程,可用任意图片脸部更换Adetailer易出现脸部边缘边界线其他图片脸部更换 六、AI画手的问题
这个问题,从根上来说,是目前AI算法的通病,很难彻底解决,尽管我们会在负面提示词加许多防止手部崩坏的提示词
- missing fingers,extra fingers,fused fingers,too many fingers,bad hands,mutated hands,badhandv4
复制代码
但是你画多了就会发现,并没有什么用,手该崩还是崩,唯一可能好点的可能是某些比较好的模型,对手部训练的比较好,不太轻易崩坏
如果你看的充足仔细,你可能也发现了我上面的示例图中,就有手部崩坏的问题。
不管是手部崩坏,还是六指琴魔,解决问题的关键有几个思绪:
1. 只管埋伏手
没错,既然手画的不好,那我们就把手藏起来!有两种方式,要么直接把图片裁切截掉;要么我们可以通过ControlNet的openPose改变人物姿态,让她的手伸出屏幕外
2. 手部优化lora
我个人也收藏了好几个手部优化的lora,有的时候是管用的,有的时候修复的手反而和画面不够融合;而且利用lora优化手,其lora本身很可能会侵入我的团体画面结构,乃至是改变画风
手部优化lora
3. ControlNet深度手部细化
ControlNet深度手部细化
4. ADetailer修手
ADetailer修手
5. 图生图手部重绘
总之,目前还没有解决手部困难的完美方案,只能是多多实验吧!
其他方式
实在实现AI写真,还有许多方式,但由于我没有亲自实验,就不再细写
- 1. 1\. EasyPhoto:据说是个非常厉害的插件,最少只要8张照片,就能完成AI写真,但我本人因为电脑配置问题,在训练模型那一步显存就扛不住了,所以没继续尝试
- 2. 2\. ComfyUI方式:以上内容都是基于WebUI的AI写真方式,我暂时还没尝试使用ComfyUI进行AI写真,后续准备尝试一下,使用ComfyUI之后,我的电脑甚至可以出SDXL图,很想知道以SDXL来出真人AI写真是什么体验,应该会非常惊艳!
复制代码 末了,如果大家对SD绘画感兴趣,可以相识一下我们的课程,顺便白嫖一些AI绘画的资料!!!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |