ToB企服应用市场:ToB评测及商务社交产业平台

标题: AI写真教程:Stable Diffusion-我用AI给自己做了个写真,结果惊艳了所有人 [打印本页]

作者: 星球的眼睛    时间: 2025-1-8 13:38
标题: AI写真教程:Stable Diffusion-我用AI给自己做了个写真,结果惊艳了所有人
大家好我是极客菌!现在要拍摄一组写真,需要服装、道具、灯光、场地、布景、拍摄、后期
等过程。整个过程需要同一才华形成好的写真效果。现在有了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++ 生成工具

     2. 安装insightface

     以下换脸示例中,我们就以马斯克的一张网图为原型进行换脸更换

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. 1\. 文生图
  2. 2. 我们用以下咒语先画一个帅哥出来
复制代码

  1. best quality,masterpiece,  
  2. 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. 1.     2. 图生图
  2. 2.     文生图如此,那图生图其实也大同小异,我们随便从网络抓一个帅哥图片
复制代码


  1. 然后调整我们的SD参数
  2. ![](https://img-blog.csdnimg.cn/img_convert/208bf461ea844769ba6ba51ebce4d1b1.png)
  3. SD参数
  4. `按照普通的图生图模式,把重绘幅度拉低到0.3-0.6之间就行,当然最重要的还是启动roop换脸插件` 于是,我们最终得到这样的融合图片
  5. ![](https://img-blog.csdnimg.cn/img_convert/8bf82af5e4d92ddaa6b1a35d0344fcc9.png)
  6. 网络帅哥+马斯克
复制代码


进阶利用

上面流程中,我们利用默认参数即可,实在它的界面上还有一些可调整的参数
  1. 1. 逗号分割的面部编号 即我们可以选择替换图片中的第几个人脸,从左往右从0开始(比如我们图片有两个人,我们要替换右边的人脸,则填1),非常适合多人脸替换,我们可以挨个进行替换
  2. 2. 面部修复/面部修复强度 可以选择面部修复算法为CodeFormer或GFPGAN
复制代码
• CodeFormer:对输入图片均有增强效果,如头发,脖子,衣领,脸部,修复有有纹理效果,更靠近真实。适合男士脸部
• GFPGAN:修复后的图片比较光滑,有磨皮效果。适合密斯脸部
  1. 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会根据你的提示词的内容、关系、以及权重等,来决定它会如何进行降噪出图。一般来说提示词分为几个部分
  1. 1.     1. 画质画风词
复制代码
  画质词 :(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 水墨画
  1. 1. 2\. 画面主体描述
复制代码
  人物、年龄、发型,头发颜色感情表情,衣服装束,正在干什么
  1. 1.     3. 环境/场景/灯光/构图
复制代码
  比如下雨天的咖啡厅,正面视觉、人物特写
  1. 1.     4. Lora(如果需要)
复制代码
  加载lora、hypernetwork等触发内容
  1. 1.     5. 负面提示词
复制代码
负面提示词基本可以通用,包括一些低画质,多手多脚之类的
   负面词: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不适合在公开场合出现的图片
  我们利用以下提示词来画一个国风汉服写实美女

  1. best quality,masterpiece,absurdres,Highly detailed,ultra-fine painting,extreme detail description,Professional,  
  2. 1girl,full body,hair ornament,holding,necklace,orange with white chest pleated skirt,red waistband,red with white waistband,tang style outfits,transparent background,  
  3. hanfu,tang style outfits,
复制代码


4. 其他参数

这里的许多参数都还有各自能继续穷究的点,本日重点不在这,就先略过了,有必要可以出文单独分析
  1. 1. 采样方法:不同的采样方法适用于不同画风
  2. 2. 迭代步数:理论上迭代步数越高,画面越精细,出图时间也越长,但也和采样方法对应,有的采样方法可以在很少的步数内就出图,后续增加的迭代步数所换来的收益就不大了
  3. 3. 高分辨率修复:开启高分辨率修复可以让SD对图像进行二次高清重绘放大
  4. 4. 4\. 放大算法:不同的放大算法有不同放大效果,一般写实画风推荐4x-UltralSharp或8x_NMKD_Superscale_150000_G,动漫画风推荐R-ESRGAN 4x Anime6B
  5. 5. 宽高:定义出图尺寸,一般需要参考大模型作者或lora作者给出的参考尺寸,需要更大尺寸图片可以再通过后期放大
  6. 6. 随机种子数:方便重现出图
复制代码
最终我以如下参数(图中标注为关键参数),来绘制一张国风汉服美女图

参数

国风美女
四、lora模型训练

学会绘制美女之后,下一步我们就需要利用自己训练的lora模型去和绘制的美女融合了,那么我们就需要学习如何训练lora模型
训练步骤

训练一个自己的lora模型分为几个步骤
  1. 1. 1\. 准备数据集:准备好需要训练的lora的数据来源
  2. 2. 2\. 图片预处理:如果是炼制人物脸部lora,那么尽量让画面纯净,仅包含人物上半身,且只有想要训练的人脸
  3. 3. 3\. 数据集打标签:这一步的作用是告诉AI你的图片包含什么元素
复制代码
  对于标签:如果你想保存人物的某个特性,就删掉对应标签,这样AI就会认为这个人就是这个特性;如果你想机动调整某个特性,那就要把这个特性打上标签。举个例子:如果你有红色头发,你不打红色头发标签,那么炼制的lora模型很大概率会不停出红头发,即保存了这个特性
  1. 1. 4\. 开始训练:这个过程的时间长短,取决于你的电脑配置
  2. 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. **1\. 选择大模型,训练风格,召唤词**
  2. 2. 根据自己的需求,来选择大模型和风格
复制代码

选择
  1. 1. **2\. 上传数据集图片**
  2. 2. 上传训练数据集,训练人物lora尽量为半身像,最好包含人物各个角度的照片
复制代码

上传数据集图片
  1. 1. **3\. 设置预处理参数**
  2. 2. 设置训练分辨率(1.5模型一般默认为512x512),模式以及是否勾选脸部加强(训练人物脸部lora要勾选)
复制代码

上传数据集图片
  1. 1. **4\. 数据集打标签**
复制代码
点击预处置处罚之后,炼丹炉会对图片进行人脸辨认和裁剪,以及自动打标签

预处置处罚
我们需要对标签再做一遍筛选,看看AI辨认的标签是否正确,进行一遍校正

  1. 1. **5\. 开始训练**
  2. 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时,利用参数更换

  1. <lora:iris_20240125002809-MODEL:STRENGTH>
复制代码


而且在最下方选择利用XYZ脚本进行出图

XYZ参数
配置正向提示词加入“银色头发”,这样,我们能测试lora的泛化水平

  1. (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即可

  1. best quality,masterpiece,absurdres,Highly detailed,ultra-fine painting,extreme detail description,Professional,  
  2. 1girl,full body,hair ornament,holding,necklace,orange with white chest pleated skirt,red waistband,red with white waistband,tang style outfits,transparent background,  
  3. <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,我们再试一次

  1. best quality,masterpiece,absurdres,Highly detailed,ultra-fine painting,extreme detail description,Professional,  
  2. 1girl,full body,hair ornament,holding,necklace,orange with white chest pleated skirt,red waistband,red with white waistband,tang style outfits,transparent background,  
  3. hanfu,tang style outfits,
复制代码



文生图+lora换脸
这样一来,这个美女就和原型很像了,但是你可能也发现了,原型的人物脸型更饱满,而这个美女,是个很显着的锥子脸,虽然更悦目了,但是相似度也就降低了,那这个我们有办法解决吗?
当然了,如果对方要求,我就是想要锥子脸,那么到这一步,就够了
3. lora文生图+lora换脸

解决脸型问题,实在也不难,还记得我们之前去掉了提示词中的人物lora的引用吗?实在只要这里也引用lora,情况就会好许多。起首,我们在文生图时,就以我们的人物lora为基准出图,那么脸型一定是相像的,其次,我们再利用ADetailer进行lora换脸,相称于对自己的脸型再做一次换脸,那它的融合度一定是更高的

  1. best quality,masterpiece,absurdres,Highly detailed,ultra-fine painting,extreme detail description,Professional,  
  2. 1girl,full body,hair ornament,holding,necklace,orange with white chest pleated skirt,red waistband,red with white waistband,tang style outfits,transparent background,  
  3. <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算法的通病,很难彻底解决,尽管我们会在负面提示词加许多防止手部崩坏的提示词

  1. 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. 1\. EasyPhoto:据说是个非常厉害的插件,最少只要8张照片,就能完成AI写真,但我本人因为电脑配置问题,在训练模型那一步显存就扛不住了,所以没继续尝试
  2. 2. 2\. ComfyUI方式:以上内容都是基于WebUI的AI写真方式,我暂时还没尝试使用ComfyUI进行AI写真,后续准备尝试一下,使用ComfyUI之后,我的电脑甚至可以出SDXL图,很想知道以SDXL来出真人AI写真是什么体验,应该会非常惊艳!
复制代码
末了,如果大家对SD绘画感兴趣,可以相识一下我们的课程,顺便白嫖一些AI绘画的资料!!!


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4