AIGC专栏5——EasyPhoto AI写真照片生成器 sd-webui插件介绍、安装与使用

本文主要是介绍AIGC专栏5——EasyPhoto AI写真照片生成器 sd-webui插件介绍、安装与使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

AIGC专栏5——EasyPhoto AI写真照片生成器 插件安装与使用

  • 学习前言
  • 源码下载地址
  • 技术原理储备(SD/Control/Lora)
    • StableDiffusion
    • ControlNet
    • Lora
  • EasyPhoto插件简介
  • EasyPhoto插件安装
    • 安装方式一:Webui界面安装 (需要良好的网络)
    • 安装方式二:Git clone下载安装 (clone过程会提示安装进度)
    • 其它插件安装:Controlnet 安装
  • EasyPhoto训练
    • 1、上传图片(Upload photos)
    • 2、参数设置(Adanced Options)
      • a、默认参数解析
      • b、开启或者关闭验证
    • 3、开始训练(Start Training)
      • a、填入User ID
      • b、下载权重
      • c、开始训练
      • d、得分检查
  • EasyPhoto预测
    • 1、User ID选择
    • 2、模板选择
      • a、预设模板(template image)
      • b、上传模板(upload image)
      • c、上传多图批量预测(upload dir)
    • 3、高级选项(Advanced Options,参数设置)
    • 4、单人预测
    • 5、多人预测
      • a、Num of Faceid设置
      • b、选择User ID
  • 训练加速与预测加速
  • 常见问题汇总

学习前言

在视觉方向的AIGC领域,AI写真是一个靠谱且经过验证的落地方案,随着StableDiffusion领域开源社区的快速发展,社区也涌现了类似 FaceChain 这样基于 Modelscope开源社区结合 diffusers 的开源项目,用于指导用户快速开发个人写真。

然而对于大量使用SDWebUI的 AIGC 同学们,短时间内却没有一个效果足够好的开源插件,去适配真人写真这一功能。

对于AI写真而言,需要注意两个方向的重点,一个是一定要和用户像,另外一个是一定要真实

最近我参与了一个EasyPhoto的项目,可以根据模板图像生成对应的用户写真,借助Stable Diffusion与Lora的强大生成能力,生成图片可以做到较为相似且真实,近期也开源了出来。
在这里插入图片描述

源码下载地址

https://github.com/aigc-apps/sd-webui-EasyPhoto

麻烦各位朋友点个Star,这对我来讲还是很重要的!

技术原理储备(SD/Control/Lora)

StableDiffusion

StableDiffusion作为Stability-AI开源图像生成模型,通常分为SD1.5/SD2.1/SDXL等版本, 是通过对海量的图像文本对进行训练结合文本引导的扩散模型,使用训练后的模型,通过对输入的文字进行特征提取,引导扩散模型在多次的迭代中生成高质量且符合输入语义的图像。下面的图像就是Stable Diffusion官网贴出来的他们的效果。

EasyPhoto AI基于StableDiffusion丰富的开源社区与强大的生成能力,进而生成逼真且自然的AI写真。
在这里插入图片描述

ControlNet

ControlNet是《Adding Conditional Control to Text-to-Image Diffusion Models》提出的通过添加部分训练过的参数,对StableDiffsion模型进行扩展,用于处理一些额外的输入信号,例如骨架图/边缘图/深度图/人体姿态图等等输入,从而完成利用这些额外输入的信号,引导扩散模型生成与信号相关的图像内容。例如我们在官方 Repo 可以看到的,使用Canny边缘作为信号,控制输出的小狗。

EasyPhoto 基于多Controlnet强大的控制能力,在保留原模板特点的情况下(如颜色、光照、轮廓),生成非常自然写真图像。
在这里插入图片描述

Lora

由《LoRA: Low-Rank Adaptation of Large Language Models》 提出的一种基于低秩矩阵的对大参数模型进行少量参数微调训练的方法,广泛引用在各种大模型的下游使用中。AI真人写真需要保证最后生成的图像和我们想要生成的人是相像的,这就需要我们使用Lora 技术,对输入的少量图片,进行一个简单的训练,从而使得我们可以得到一个小的指定人脸(Face id)的模型。

EasyPhoto插件简介

EasyPhoto是一款Webui UI插件,用于生成AI肖像画,该代码可用于训练与用户相关的数字分身。建议使用 5 到 20 张肖像图片进行训练,最好是半身照片且不要佩戴眼镜(少量可以接受)。训练完成后,EasyPhoto可以在推理部分生成图像。EasyPhoto支持使用预设模板图片与上传自己的图片进行推理。

这些是插件的生成结果,从生成结果来看,插件的生成效果还是非常不错的:
在这里插入图片描述
在这里插入图片描述
每个图片背后都有一个模板,EasyPhoto会对模板进行修改使其符合用户的特征。
在EasyPhoto插件中,Inference侧已经预置了一些模板,可以用插件预置的模板进行体验;另外,EasyPhoto同样可以自定义模板,在Inference侧有另外一个tab页面,可以用于上传自定义的模板。如下图所示。
在这里插入图片描述
而在Inference预测前,我们需要进行训练,训练需要上传一定数量的用户个人照片,训练的产出是一个Lora模型。该Lora模型会用于Inference预测。

总结而言,EasyPhoto的执行流程非常简单:
1、上传用户图片,训练一个与用户相关的Lora模型;
2、选择模板进行预测,获得预测结果。

EasyPhoto插件安装

安装方式一:Webui界面安装 (需要良好的网络)

安装过程较为简单,网络良好的情况下,跳转到Extentions,然后选择install from URL。
输入https://github.com/aigc-apps/sd-webui-EasyPhoto,点击下方的install即可安装,在安装过程中,会自动安装依赖包,这个需要耐心等待一下。安装完需要重启WebUI。
在这里插入图片描述

安装方式二:Git clone下载安装 (clone过程会提示安装进度)

直接进入到Webui的extensions文件夹,打开git工具,git clone即可。
下载完成后,重新启动webui,便会检查需要的环境库并且安装。
在这里插入图片描述

其它插件安装:Controlnet 安装

我们需要使用 Controlnet 进行推理。相关软件源是Mikubill/sd-webui-controlnet。在使用 EasyPhoto 之前,您需要安装这个软件源。

此外,我们至少需要三个 Controlnets 用于推理。因此,您需要设置 Multi ControlNet: Max models amount (requires restart)
在这里插入图片描述

EasyPhoto训练

EasyPhoto训练界面如下:

  • 左边是训练图片,直接点击Upload Photos即可上传图片,点击Clear Photos可以删除已经上传的图片;
  • 右边是训练参数,初次训练可不做参数调整。

在这里插入图片描述

1、上传图片(Upload photos)

点击Upload Photos后即可开始上传图片,在此处我们最好上传5-15张图片、包含不同角度、不同光照的情况;而我这里用了7张,最好有一些图片是不包括眼镜的,如果都是眼镜,生成结果里面有容易会生成眼镜
在这里插入图片描述
上传完成后,我们就可以在界面上看到已经上传的图像啦!
在这里插入图片描述

2、参数设置(Adanced Options)

a、默认参数解析

然后我们来看右边的参数设置部分,这里参数可调节的量还是比较多的,初次训练不做调整,每个参数的解析如下:

参数名含义
resolution训练时喂入网络的图片大小,默认值为512
validation & save steps验证图片与保存中间权重的steps数,默认值为100,代表每100步验证一次图片并保存权重
max train steps最大训练步数,默认值为800
max steps per photos每张图片的最大训练次数,默认为200
train batch size训练的批次大小,默认值为1
gradient accumulationsteps是否进行梯度累计,默认值为4,结合train batch size来看,每个Step相当于喂入四张图片
dataloader num workers数据加载的works数量,windows下不生效,因为设置了会报错,Linux正常设置
learning rate训练Lora的学习率,默认为1e-4
rank Lora权重的特征长度,默认为128
network alphaLora训练的正则化参数,一般为rank的二分之一,默认为64

最终训练步数的计算公式也比较简单,Final training step = Min(photo_num * max_steps_per_photos, max_train_steps)。

简单来理解就是:
图片数量少的时候,训练步数为photo_num * max_steps_per_photos。
图片数量多的时候,训练步数为max_train_steps。

b、开启或者关闭验证

EasyPhoto在训练时默认会对训练过程进行验证,然后根据 训练过程中的验证结果,进行最优秀的几个Lora进行融合。

但这个 验证 在显存不足时容易导致 卡住,并且因为验证的频次较多,会影响一定的训练速度,如果机器的配置不足,可以尝试关闭验证来加快训练速度。

在这里插入图片描述

3、开始训练(Start Training)

a、填入User ID

然后我们点击下方的开始训练,此时需要在上方填入一下User ID,比如 用户的名字,然后就可以开始训练了。
在这里插入图片描述

b、下载权重

开始初次训练时会从oss上下载一部分权重,我们耐心等待即可,大概需要下载10G左右的资源,下载进度需要关注终端。
在这里插入图片描述

c、开始训练

在自动预处理完成后,Lora模型开始训练,我们只需要耐心的等待训练完成即可!
在这里插入图片描述

d、得分检查

终端显示成这样就已经训练完了,最后这步是在计算验证图像与用户图像之间的人脸 ID 相似性,从而实现 Lora 融合,确保我们的 Lora 是用户的完美数字分身。

一般来讲这个得分相似性在0.50以上是正常的情况,如果得分在0.10以下则需要检查一下环境,可能因为环境不对导致模型并未训练。
在这里插入图片描述

EasyPhoto预测

1、User ID选择

训练完后,我们需要将tab页转到Inference。由于Gradio的特性,刚训练好的模型不会自动刷新,可以点击Used id旁的蓝色旋转按钮进行模型刷新。

刷新完后选择刚刚训练的模型,然后选择对应的模板即可开始预测。
在这里插入图片描述

2、模板选择

a、预设模板(template image)

EasyPhoto仓库中预设了一些模板,template image中直接点击,即可选择模版进行预测。
在这里插入图片描述

b、上传模板(upload image)

预设模板的内容比较有限,可以切到upload image,直接自己上传模板进行预测。
在这里插入图片描述

c、上传多图批量预测(upload dir)

点击upload dir可以上传多图进行批量预测,上传完成后,点击Start Generation即可批量生成。

批量生成时间较久,请耐心等待。
在这里插入图片描述

3、高级选项(Advanced Options,参数设置)

高级选项中包含预测中各个能够设置的参数,大概有下面这么几个,请各位同学按情况进行调整

参数名参数解释调整后的影响
Additional Prompt正向提示词,会传入Stable Diffusion模型进行预测。可以根据自身希望增加的元素调整prompt词。
Seed种子值。用于保证结果的可复现性,为-1时会随机选择一个种子数。
Face Fusion Ratio Before第一次人脸融合的强度。调节后会影响人物相似度,一般来讲,值越大与训练人物的相似度越高。
Face Fusion Ratio After第二次人脸融合的强度。调节后会影响人物相似度,一般来讲,值越大与训练人物的相似度越高。
First Diffusion steps第一次进行Stable Diffusion的总步数。第一次Diffusion主要进行人像区域的调整,使得人像更自然。调节后会影响图片质量与出图速度,一般值越大图片质量越高,出图越慢。
First Diffusion denoising strength第一次进行Stable Diffusion的重绘比例。调节后会影响图片的重绘比例与出图速度,一般值越大,人像变动越大。
Second Diffusion steps第二次进行Stable Diffusion的总步数。 第二次Diffusion主要进行人像周围区域的调整,使得图片更和谐。调节后会影响图片质量与出图速度,一般值越大图片质量越高,出图越慢。
Second Diffusion denoising strength第二次进行Stable Diffusion的重绘比例。调节后会影响图片的重绘比例与出图速度,一般值越大,人像周围变动越大。
Crop Face Preprocess是否对人像裁剪后再处理。推荐开启,假设输入的是大图,会对人像区域先做裁剪后再进行人像调整,调整结果更精细。
Apply Face Fusion Before是否进行第一次人脸融合。调节后会影响是否进行第一次人脸融合,会影响人像的相似度。
Apply Face Fusion After是否进行第二次人脸融合。调节后会影响是否进行第二次人脸融合,会影响人像的相似度。 如果感觉人像发虚则取消该次融合。
Apply color shift first是否进行第一次DIffusion后的色彩校正。调节后会影响图片的人像自然程度。
Apply color shift last是否进行第二次DIffusion后的色彩校正。调节后会影响图片的人像自然程度。
Background Restore是否进行背景的重建。开启后可以对人像区域外背景进行重建,在使用动漫化模型时,可以让整个图片更和谐。

4、单人预测

选择完user id与模版后,点击start generation即可开始预测。初次预测需要下载一些modelscope的模型,耐心等待一下即可。

等待一段时间后,我们就可以获得预测结果了。

5、多人预测

a、Num of Faceid设置

多人预测需要首先设置Num of Faceid,将其设置为需要设置的人数,如画面上有两个人则设置为2:

b、选择User ID

首先是替换多个人像的情况,User ID与图片上人像从左到右对应,如下图所示:
在这里插入图片描述
然后是替换多个人像中单个人像的情况,User ID同样与图片上人像从左到右对应,但需要跳过的人像则使用none即可:

在这里插入图片描述

训练加速与预测加速

训练加速参考:
https://github.com/aigc-apps/sd-webui-EasyPhoto/wiki/%E8%BF%9B%E9%98%B6%E6%96%87%E6%A1%A3%E2%80%90%E8%AE%AD%E7%BB%83%E5%8A%A0%E9%80%9F

预测加速参考:
https://github.com/aigc-apps/sd-webui-EasyPhoto/wiki/%E8%BF%9B%E9%98%B6%E6%96%87%E6%A1%A3%E2%80%90%E6%8E%A8%E7%90%86%E5%8A%A0%E9%80%9F

常见问题汇总

常见问题汇总参考:
https://github.com/aigc-apps/sd-webui-EasyPhoto/wiki/FAQ

这篇关于AIGC专栏5——EasyPhoto AI写真照片生成器 sd-webui插件介绍、安装与使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/695780

相关文章

C语言中联合体union的使用

本文编辑整理自: http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=179471 一、前言 “联合体”(union)与“结构体”(struct)有一些相似之处。但两者有本质上的不同。在结构体中,各成员有各自的内存空间, 一个结构变量的总长度是各成员长度之和。而在“联合”中,各成员共享一段内存空间, 一个联合变量

ESP32 esp-idf esp-adf环境安装及.a库创建与编译

简介 ESP32 功能丰富的 Wi-Fi & 蓝牙 MCU, 适用于多样的物联网应用。使用freertos操作系统。 ESP-IDF 官方物联网开发框架。 ESP-ADF 官方音频开发框架。 文档参照 https://espressif-docs.readthedocs-hosted.com/projects/esp-adf/zh-cn/latest/get-started/index

揭秘未来艺术:AI绘画工具全面介绍

📑前言 随着科技的飞速发展,人工智能(AI)已经逐渐渗透到我们生活的方方面面。在艺术创作领域,AI技术同样展现出了其独特的魅力。今天,我们就来一起探索这个神秘而引人入胜的领域,深入了解AI绘画工具的奥秘及其为艺术创作带来的革命性变革。 一、AI绘画工具的崛起 1.1 颠覆传统绘画模式 在过去,绘画是艺术家们通过手中的画笔,蘸取颜料,在画布上自由挥洒的创造性过程。然而,随着AI绘画工

Linux 安装、配置Tomcat 的HTTPS

Linux 安装 、配置Tomcat的HTTPS 安装Tomcat 这里选择的是 tomcat 10.X ,需要Java 11及更高版本 Binary Distributions ->Core->选择 tar.gz包 下载、上传到内网服务器 /opt 目录tar -xzf 解压将解压的根目录改名为 tomat-10 并移动到 /opt 下, 形成个人习惯的路径 /opt/tomcat-10

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

一份LLM资源清单围观技术大佬的日常;手把手教你在美国搭建「百万卡」AI数据中心;为啥大模型做不好简单的数学计算? | ShowMeAI日报

👀日报&周刊合集 | 🎡ShowMeAI官网 | 🧡 点赞关注评论拜托啦! 1. 为啥大模型做不好简单的数学计算?从大模型高考数学成绩不及格说起 司南评测体系 OpenCompass 选取 7 个大模型 (6 个开源模型+ GPT-4o),组织参与了 2024 年高考「新课标I卷」的语文、数学、英语考试,然后由经验丰富的判卷老师评判得分。 结果如上图所

Vim使用基础篇

本文内容大部分来自 vimtutor,自带的教程的总结。在终端输入vimtutor 即可进入教程。 先总结一下,然后再分别介绍正常模式,插入模式,和可视模式三种模式下的命令。 目录 看完以后的汇总 1.正常模式(Normal模式) 1.移动光标 2.删除 3.【:】输入符 4.撤销 5.替换 6.重复命令【. ; ,】 7.复制粘贴 8.缩进 2.插入模式 INSERT

AI儿童绘本创作

之前分享过AI儿童绘画的项目,但是主要问题是角色一致要花费很长的时间! 今天发现了这款,非常奈斯! 只需输入故事主题、风格、模板,软件就会自动创作故事内容,自动生成插画配图,自动根据模板生成成品,测试效果如下图。 变现方式:生成儿童绘本发布到各平台,吸引宝妈群体进私域。  百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全

VMware9.0详细安装

双击VMware-workstation-full-9.0.0-812388.exe文件: 直接点Next; 这里,我选择了Typical(标准安装)。 因为服务器上只要C盘,所以我选择安装在C盘下的vmware文件夹下面,然后点击Next; 这里我把√取消了,每次启动不检查更新。然后Next; 点击Next; 创建快捷方式等,点击Next; 继续Cont

Lipowerline5.0 雷达电力应用软件下载使用

1.配网数据处理分析 针对配网线路点云数据,优化了分类算法,支持杆塔、导线、交跨线、建筑物、地面点和其他线路的自动分类;一键生成危险点报告和交跨报告;还能生成点云数据采集航线和自主巡检航线。 获取软件安装包联系邮箱:2895356150@qq.com,资源源于网络,本介绍用于学习使用,如有侵权请您联系删除! 2.新增快速版,简洁易上手 支持快速版和专业版切换使用,快速版界面简洁,保留主