【StableDiffusion】EasyPhoto:基于 SD WebUI 的艺术照生成插件来啦!_sd1.5版webui安装easy photo插件讲解

EasyPhoto 是一个基于 SD WebUI 的艺术照生成插件。支持低代码操作、自定义风格,让更多开发者灵活地开发自己的风格化艺术照生成应用。

项目地址: https://github.com/aigc-apps/sd-webui-EasyPhoto

背景介绍

最近,基于生成式AI技术批量产出真/像/美的个人写真应用非常受欢迎。同时,随着 Stable Diffusion 领域开源社区的快速发展,社区也涌现了类似 FaceChain 的开源项目,帮助开发者开发个性化的真人写真生成应用。越来越多开发者对这个方向投来关注,希望得到更多灵活的开发方式。

EasyPhoto项目介绍

作为FaceChain-Inpaint功能的开发团队,我们快速上线了一款基于 SD WebUI 插件生态的个性化写真生成开源插件 EasyPhoto。这款插件允许用户通过上传几张同一个人的照片,快速训练Lora模型,然后结合用户自定义的模板图片,生成 真/像/美的写真图片。

在这里插入图片描述

图1图1

项目地址: https://github.com/aigc-apps/sd-webui-EasyPhoto

欢迎大家多多提ISSUE,一同优化,让每个AIGCer都拥有自己的AI写真相机!

原理介绍

AI真人写真是一个基于 StableDiffusion和AI人脸相关技术,实现的定制化人像Lora模型训练和指定图像生成链路的集合,这里我们简单介绍我们在EasyPhoto中实现的相关技术,下图是EasyPhoto的生成链路介绍,
在这里插入图片描述

EasyPhoto整体分为训练和推理两个阶段, 下文图3详细展示了训练阶段,上图2展示了生成阶段。

EasyPhoto生成

EasyPhoto生成采用基于开源模型StableDiffusion + 人物定制Lora的方式 + ControlNet 的方式完成艺术照生成

  1. 使用人脸检测模型对输入的指定模板进行人脸检测(crop & warp)并结合数字分身进行模板替换。
  2. 采用FaceID模型挑选用户输入的最佳ID Photo和模板照片进行人脸融合(face fusion)。
  3. 使用融合后的图片作为基底图片,使用替换后的人脸作为control条件,加上数字分身对应的Lora,进行图到图局部重绘生成。
  4. 采用基于StableDiffusion + 超分的方式进一步在保持ID的前提下生成高清结果图。
EasyPhoto训练

在这里插入图片描述

图3图3

EasyPhoto训练采用了大量的人脸预处理技术,用于把用户上传的图片进行筛选和预处理,并引入相关验证和模型融合技术,参考图3.

  1. 采用FaceID和图像质量分数对所有图片进行聚类和评分,筛选非同ID照片。
  2. 采用人脸检测和主体分割,抠出1筛选后的人脸图片进行人脸检测抠图,并分割去除背景。
  3. 采用美肤模型优化部分低质量人脸,推升训练数据的图片质量。
  4. 采用单一标注的方案,对处理后的训练图片进行打标,并使用相关的Lora 训练。
  5. 训练过程中采用基于FaceID的验证步骤,间隔一定的step保存模型,并最后根据相似度融合模型。

我们将从在后续的章节简单介绍涉及到的相关技术的原理,更多细节也欢迎大家参考Repo的代码。(如果你已经对这一技术路线非常熟悉,欢迎直接跳到第三章 EasyPhoto & SDWebUI)

文图生成(SD/Control/Lora)
StableDiffusion

StableDiffusion作为Stability-AI开源图像生成模型,通常分为SD1.5/SD2.1/SDXL等版本, 是通过对海量的图像文本(LAION-5B)对进行训练结合文本引导的扩散模型(DiffusionModel),使用训练后的模型,通过对输入的文字进行特征提取,引导扩散模型在多次的迭代中生成高质量且符合输入语义的图像。感兴趣的同学可以参考 《stable diffusion原理解读通俗易懂,史诗级万字爆肝长文,…》, 下面的图像就是 stablediffusion 官网 Repo 贴出来的他们的效果。

ControlNet/Lora

针对使用文本控制的StableDiffusion模型,如何对生成的图像内容进行更好的控制,一直是学术界和工业界试图解决的问题,本小节介绍的ControlNet和Lora就是常用的两种技术。也是图2中使用的部分技术,用于控制边缘连贯性和指定ID生成。

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

图4图4

我们在图2中看到 StableDiffusion有2个输入,其中一个部分就是用于控制边缘连贯性和脸型提示的ControlNet,我们使用了部分的Canny边缘和OpenPose人体姿态。

Lora :由《LoRA: Low-Rank Adaptation of Large Language Models》 提出的一种基于低秩矩阵的对大参数模型进行少量参数微调训练的方法,广泛引用在各种大模型的下游使用中。AI真人写真需要保证最后生成的图像和我们想要生成的人是相像的,这就需要我们使用Lora 技术,对输入的少量图片,进行一个简单的训练,从而使得我们可以得到一个小的指定人脸(ID)的模型。当然这一技术也可以广泛用于,风格,物品等其他指定形象的Lora模型训练,大家可以在civitai.com等相关网页上寻找自己想要的Lora模型。

人脸相关AI模型

针对AI写真这一特定领域,如何使用尽量少的图片,快速的训练出又真实又相像的人脸Lora模型,是我们能够产出高质量AI写真的关键,网络上也有大量的文章和视频资料为大家介绍如何训练。这里我们介绍一些在这个过程中,我们使用的开源AI模型,用于提升最后人脸Lora训练的效果。

在这个过程中我们大量的使用了 ModelScope 和其他Github的开源模型,用于完成如下的人脸功能

在这里插入图片描述

EasyPhoto & SDWebUI

SDWebUI [Repo]是社区最常用的StableDiffusion开发工具,从年初开源至今,已在Github 拥有100k 的star,我们提到的文图生成/ControlNet/Lora等功能,都被社区开发者贡献到这一工具中,用于大家快速部署一个可以调试的文图生成服务,所以我们也在SDWebUI下实现了EasyPhoto插件,将上述原理提到的 人脸预处理/训练/艺术照生成全部集成到了这一插件中。

项目地址:https://github.com/aigc-apps/sd-webui-EasyPhoto

用户可以参考SDWebUI的插件使用方式进行安装使用。

EasyPhoto插件简介

EasyPhoto是一款Webui UI插件,用于生成AI肖像画,该代码可用于训练与用户相关的数字分身。

  • 建议使用 5 到 20 张肖像图片进行训练,最好是半身照片且不要佩戴眼镜(少量可以接受)。
  • 训练完成后,EasyPhoto可以在推理部分生成图像。
  • EasyPhoto支持使用预设模板图片与上传自己的图片进行推理。

图1, 图5这些是插件的生成结果,从生成结果来看,插件的生成效果还是非常不错的:
在这里插入图片描述

图5图5

每个图片背后都有一个模板,EasyPhoto会对模板进行修改使其符合用户的特征。在EasyPhoto插件中,Inference侧已经预置了一些模板,可以用插件预置的模板进行体验;另外,EasyPhoto同样可以自定义模板,在Inference侧有另外一个tab页面,可以用于上传自定义的模板。如下图所示。

在这里插入图片描述

图6图6

而在Inference预测前,我们需要进行训练,训练需要上传一定数量的用户个人照片,训练的产出是一个Lora模型。该Lora模型会用于Inference预测。

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

安装方式一: SDWebUI界面安装

网络良好的情况下!!!在SDWebUI中跳转到Extentions,然后选择install from URL。输入https://github.com/aigc-apps/sd-webui-EasyPhoto,点击下方的install即可安装。

在安装过程中,会自动安装依赖包,这个需要耐心等待一下。安装完需要重启WebUI。
在这里插入图片描述

图7图7

安装方式二:源码安装

如果你想要使用项目源码安装,直接进入到Webui的extensions文件夹,打开git工具,git clone即可。下载完成后,重新启动webui,便会检查需要的环境库并且安装。

在这里插入图片描述

图8图8

其他安装项:ControlNet

EasyPhoto需要SDWebUI支持ControlNet,具体使用的相关插件是Mikubill/sd-webui-controlnet。在使用 EasyPhoto 之前,您需要安装这个软件源。

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

图9图9

EasyPhoto训练

EasyPhoto训练包含如下2个步骤 1. 上传个人图片 2. 调整训练参数 3点击训练并设置ID, 整体界面如下
在这里插入图片描述

图10图10

上传训练图片

左边是训练图片,点击Upload Photos即可上传图片,点击Clear Photos可以删除已经上传的图片

调整训练参数

上传完图片后,右边是训练参数,初次训练可不做参数调整。
在这里插入图片描述

图11图11

这里我们也对参数进行一个介绍

在这里插入图片描述

根据上述表格最终训练步数的计算公式也比较简单。

在这里插入图片描述

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

训练&设置ID

完成设置后,点击下方的开始训练,此时需要在上方填入一下User ID,比如 用户的名字,然后就可以开始训练了。

在这里插入图片描述

图12图12

观察训练

初次训练时会从我们预备的oss(公用)上下载一部分预训练模型的权重,我们耐心等待即可,下载进度需要关注终端。

在这里插入图片描述

图13图13

训练正常开始的相关log
在这里插入图片描述

图14图14

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

在这里插入图片描述

图15图15

EasyPhoto预测

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

在这里插入图片描述

图16图16

  • 刷新完后选择刚刚训练的模型,然后选择对应的模板即可开始预测。
  • 初次预测需要下载一些modelscope的模型,耐心等待一下即可。

预置了部分模板,也可以切到upload image,直接自己上传模板进行预测。然后我们就可以获得预测结果了。

在这里插入图片描述

图17图17

预测参数说明

关于预测界面的部分参数说明

在这里插入图片描述

写在最后

EasyPhoto全部使用来自开源社区的模型和相关技术,旨在探讨StableDiffusion在AIGC X 真人写真领域的技术和相关应用

关于AI绘画技术储备

学好 AI绘画 不论是就业还是做副业赚钱都不错,但要学会 AI绘画 还是要有一个学习规划。最后大家分享一份全套的 AI绘画 学习资料,给那些想学习 AI绘画 的小伙伴们一点帮助!

对于0基础小白入门:

如果你是零基础小白,想快速入门AI绘画是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。

二方面是可以找到适合自己的学习方案

包括:stable diffusion安装包、stable diffusion0基础入门全套PDF,视频学习教程。带你从零基础系统性的学好AI绘画!

需要的可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费

在这里插入图片描述

1.stable diffusion安装包 (全套教程文末领取哈

随着技术的迭代,目前 Stable Diffusion 已经能够生成非常艺术化的图片了,完全有赶超人类的架势,已经有不少工作被这类服务替代,比如制作一个 logo 图片,画一张虚拟老婆照片,画质堪比相机。

最新 Stable Diffusion 除了有win多个版本,就算说底端的显卡也能玩了哦!此外还带来了Mac版本,仅支持macOS 12.3或更高版本。

在这里插入图片描述

2.stable diffusion视频合集

我们在学习的时候,往往书籍代码难以理解,阅读困难,这时候视频教程教程是就很适合了,生动形象加上案例实战,一步步带你入门stable diffusion,科学有趣才能更方便的学习下去。

在这里插入图片描述

3.stable diffusion模型下载

stable diffusion往往一开始使用时图片等无法达到理想的生成效果,这时则需要通过使用大量训练数据,调整模型的超参数(如学习率、训练轮数、模型大小等),可以使得模型更好地适应数据集,并生成更加真实、准确、高质量的图像。

在这里插入图片描述

4.stable diffusion提示词

提示词是构建由文本到图像模型解释和理解的单词的过程。可以把它理解为你告诉 AI 模型要画什么而需要说的语言,整个SD学习过程中都离不开这本提示词手册。

在这里插入图片描述

5.AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

这份完整版的学习资料已经上传优快云,朋友们如果需要可以微信扫描下方优快云官方认证二维码免费领取【保证100%免费】

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值