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

news2024/12/24 8:25:56

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

  • 学习前言
  • 源码下载地址
  • 技术原理储备(SD/Control/Lora)
    • StableDiffusion
    • ControlNet
    • Lora
  • EasyPhoto插件简介
  • EasyPhoto插件安装
    • 安装方式一:Webui界面安装 (需要良好的网络)
    • 安装方式二:Git clone下载安装 (clone过程会提示安装进度)
    • 其它插件安装:Controlnet 安装
  • EasyPhoto训练
    • 上传图片
    • 参数设置
    • 开始训练
  • EasyPhoto预测
    • 模型选择
    • 模板选择

学习前言

在视觉方向的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可以删除已经上传的图片;
  • 右边是训练参数,初次训练可不做参数调整。

在这里插入图片描述

上传图片

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

参数设置

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

参数名含义
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。

开始训练

然后我们点击下方的开始训练,此时需要在上方填入一下User ID,比如 用户的名字,然后就可以开始训练了。
在这里插入图片描述
开始初次训练时会从oss上下载一部分权重,我们耐心等待即可,下载进度需要关注终端。
在这里插入图片描述
在自动预处理完成后,Lora模型开始训练,我们只需要耐心的等待训练完成即可!
在这里插入图片描述
终端显示成这样就已经训练完了,最后这步是在计算验证图像与用户图像之间的人脸 ID 差距,从而实现 Lora 融合,确保我们的 Lora 是用户的完美数字分身。
在这里插入图片描述

EasyPhoto预测

模型选择

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

模板选择

刷新完后选择刚刚训练的模型,然后选择对应的模板即可开始预测。初次预测需要下载一些modelscope的模型,耐心等待一下即可。预置的男生照片一般般,切到upload image,直接自己上传模板进行预测。

然后我们就可以获得预测结果了。
在这里插入图片描述

参数名含义
After Face Fusion Ratio第二次人脸融合的比例,越大代表越像
First Diffusion steps第一次Stable Diffusion的步数
First Diffusion denoising strength第一次Stable Diffusion重建的比例
Second Diffusion steps第二次Stable Diffusion的步数
Second Diffusion denoising strength第二次Stable Diffusion重建的比例
Crop Face Preprocess是否先裁剪人脸后再进行处理,适合大图
Apply Face Fusion Before是否进行第一次人脸融合
Apply Face Fusion After是否进行第一次人脸融合

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/972827.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux监测进程打开文件

分析问题过程中,追踪进程打开的文件可以在许多不同情况下有用,体现在以下几个方面: 故障排除和调试: 当程序出现问题、崩溃或异常行为时,追踪进程打开的文件可以帮助找出问题的根本原因。这有助于快速定位错误&#x…

深入解析 curl:掌握命令行的网络传输利器

当我们使用 curl 进行网络请求时,了解如何有效地使用参数是非常重要的。curl 提供了许多参数,用于控制请求的行为和配置。在这篇博客文章中,我们将详细解释一些常用的 curl 参数,帮助你更好地理解如何利用这个强大的工具。 什么是…

兵者多诡(HCTF2016)

环境:https://github.com/MartinxMax/CTFer_Zero_one 题目简介 解题过程 登录首页 提交png图片上传抓包,可以看到是向upload文件提交数据 在fp参数中尝试伪协议读取home.php文件 http://127.0.0.1:88/HCTF2016-LFI/home.php?fpphp://filter/readconvert.base64…

将YOLO数据集按照指定比例划分(训练集、验证集、测试集)的详细教程

1.将训练集、验证集、测试集按照7:2:1随机划分 1.项目准备 1.在项目下新建一个py文件,名字就叫做splitDataset1.py 2.将自己需要划分的原数据集就放在项目文件夹下面 以我的为例,我的原数据集名字叫做hatDataXml 里面的JPEGImages装的是图片 Annota…

【物联网】磁介质存储设备——机械硬盘

磁介质存储设备是一种使用磁性材料作为存储介质的设备,用于存储和读取数据。常见的磁介质存储设备包括硬盘驱动器(HDD)、软盘驱动器和磁带。 文章目录 一、机械硬盘存储器的基本结构与分类1.1 基本结构1.2 分类 二、硬盘的信息分布三、机械硬…

计算机网络的故事——HTTP报文内的HTTP信息

HTTP报文内的HTTP信息 文章目录 HTTP报文内的HTTP信息一、HTTP 报文二、请求报文及响应报文的结构三、编码提升传输速率 一、HTTP 报文 HTTP报文是由多行(CRLF作换行符)数据构成的字符串文本,HTTP报文可以分为报文首部和报文主体两部分&…

Android ChatCPT集成

准备工作 ChatGPT账号(openai) 集成好网络框架(默认使用Retrofit) 接入 选择modele 这里使用的是 「https://api.openai.com/v1/chat/completions」 创建API Keys 运行效果 POST https://api.openai.com/v1/chat/completions Content-Type: application/json Content-Length:…

RHCA之路---EX280(8)

RHCA之路—EX280(8) 1. 题目 On master.lab.example.com using the template file in http://materials.example.com/exam280/gogs as a basis, install an application in the ditto project according to the following requirements: All of the registry entries must poi…

AndroidTV端:酒店扫码认证投屏DLNA

被老板叼了几次了,最近实在忍不了,准备离职; 但是担心离职后长时间没有办法找到工作 就想贡献一套平时琢磨出来的程序,请各位有能力的话带我熬过这凛冽的寒冬。 目前写出来的,有三个端:安卓TV端&#xf…

Kali之BurpSuite_pro安装配置

文章目录 配置jdk环境安装BurpSuitePro设置快捷方式启动方式 BurpSuite2021专业版本地址: 下载链接:https://pan.baidu.com/s/1PjzcukRDoc_ZFjrNxI8UjA 提取码:nwm7 我的安装工具都在/home/kali/tools/ 解压后我放在burpsuite_pro目录下 把j…

Harbor 私人(企业)docker镜像仓库部署

目录 一、资源下载二、配置前准备三、配置harbor.yml文件四、安装五、上传镜像到Harbor docker镜像仓库 一、资源下载 在GitHub上可以找到相关的下载:https://github.com/goharbor/harbor/releases 或者Linux直接wget: ┌──(root㉿kali)-[~] └─# w…

飞行动力学 - 第17节-航向静稳定性 之 基础点摘要

飞行动力学 - 第17节-航向静稳定性 之 基础点摘要 1. 航向静稳定性2. 航向静稳定性的组成3. 参考资料 1. 航向静稳定性 飞机受到侧滑扰动后,如果能产生使机头指向原来方向的力矩,抵消侧滑,则称为航向静稳定性。 2. 航向静稳定性的组成 飞机…

vue3+ts+vite项目引入echarts

概述 技术栈:Vue3 Ts Vite Echarts 简介: 图文详解,教你如何在Vue3项目中引入Echarts,封装Echarts组件,并实现常用Echarts图例 文章目录 概述一、先看效果1.1 静态效果1.2 动态效果 二、话不多数,引入 …

三步搭建个人网站并发布上线【内网穿透】

三步搭建个人网站并发布上线【内网穿透】 文章目录 三步搭建个人网站并发布上线【内网穿透】前言一、在本地电脑上制作一个网站二、使用WordPress建立网站三、通过cpolar建立的数据隧道发布到公网上 前言 在这个个性飞扬的时代,每个人都希望拥有表现自我的平台&…

C++(QT)画图行车

通过鼠标在窗口上点击形成多个点的连线,绘制一辆汽车沿着绘制的连线轨迹前进。要求连线点数大于20.可以通过清除按钮清除已经绘制的连线,并可以重新绘制一条轨迹连线。当车辆行驶到轨迹终点时,自动停止。(汽车实在可用方块代替&am…

[羊城杯 2023] web

文章目录 D0nt pl4y g4m3!!! D0n’t pl4y g4m3!!! 打开题目&#xff0c;可以判断这里为php Development Server 启动的服务 查询得知&#xff0c;存在 PHP<7.4.21 Development Server源码泄露漏洞(参考文章) 抓包&#xff0c;构造payload 得到源码 class Pro{private $ex…

Linux创建新文件的几种方式

第一种是 vi 文件名&#xff0c;然后进入vi编辑&#xff0c;完了之后保存退出&#xff1b;然后ls看一下&#xff0c;文件有了&#xff1b; 在终端输入 cat > 文件名&#xff0c;这没用过&#xff1b;输入以后回车&#xff0c;不会退出命令&#xff1b;输入一行文字&#xff…

基于Jetson Nano的并行图像滤波算法优化与部署

基于 Jetson Nano 的并行图像滤波算法优化 我们实现了基于 GPU (CUDA) 和 CPU (PThread) 的卷积算法&#xff0c;在此基础之上&#xff0c;我们进一步实现 Sobel、Laplacian、均值和高斯滤波器&#xff0c;它们可以被用于图像处理&#xff0c;一个典型的应用场景就是图像降噪。…

nc细节点

nc细节点 1.每个新home都要替换这个xml文件 2.新建的自定义档案所在的路径 3.在已经发布好的单据上新加一个表体时生成Java源代码的注意事项 可以重新生成Java源代码到其他路径位置上&#xff0c;然后再去生成的路径上把新加的表体VO拿到工作空间里面就可以了 4.rest.proper…

什么是手术麻醉系统?

一、手术麻醉系统的主要作用 手术麻醉系统能更好、更准确地记录和管理手术与麻醉的临床信息&#xff0c;提高医生和麻醉师的工作效率。它主要用于病人手术与麻醉的申请、审批、安排&#xff0c;精确记录病人在手术过程中的术中医嘱、术中费用等信息&#xff0c;追踪生命体征等…