easyphoto 妙鸭相机

AIGC专栏7——EasyPhoto 人像训练与生成原理详解-CSDN博客如何训练一个高品质的人像Lora与应用高品质Lora的链路对于写真生成而言非常重要。由《LoRA: Low-Rank Adaptation of Large Language Models》 提出的一种基于低秩矩阵的对大参数模型进行少量参数微调训练的方法,广泛引用在各种大模型的下游使用中。目前对超过数十亿以上参数的具有强能力的大模型针对下游任务进行微调中会呈现出巨大开销。LoRA 建议冻结预训练模型的权重并在每个自注意力部分通过全连接的方式注入可训练层。https://blog.csdn.net/weixin_44791964/article/details/132922309

原作者的解释文档,说的非常详细,可以对着文档进行分析,分为两个阶段,一个是训练流程,一个是推理流程,整个过程还是很复杂的,这里面应该有很多可以优化的地方。在训练阶段,经过了图像预处理得到图像排序,再经过人像分割得到人像区域,使用lora训练,lora的结果通过img2img来验证;推理阶段,用用户上传的最正的图像作为参考图像,与模版图像的人脸融合图作为canny图,模板图与训练后产生的lora换脸,作为openpose图,在人脸融合图基础上进行多次lora和controlnet得到最终结果。

训练流程:

用户上传图片,会对图片进行预处理,再lora训练。

1.人像得分排序

人像排序包括:人脸特征向量,图像质量评分,人脸偏移角度。

人脸特征向量,利用retinaface检测脸,并对齐,使其成为标准脸,利用人脸特征提取模型curricularface提取特征量,先计算人像的平均特征,然后计算每一张图片和平均特征的相似程度,相似程度是0-1的相似度分数;图像质量评分;人脸偏移角度,计算双眼的旋转角度,眼睛连线相对于水平线的倾斜角,偏移角为0,得分为1,偏移角为90,得分为0-1,偏移角分数0-1,并选出最正的人像在推理时作为参考人像

人像排序:相似度分数与图像质量分数相乘,选出最高的topk个人像进行训练。

2.人像分割与修复

人脸分割,lora训练保留人像特征,因此只关注人脸区域即可,显著性分割取出背景,人脸检测选出人脸周围区域;GPEN进行人脸修复,并超分,ABPN人像美肤,产生了比较好的人像图。(lora的学习能力强,不仅能学到人像特征,还能学到模糊、噪声、不清晰等特征)

3.lora训练

kohya_ss的lora,同时训练text encoder和unet。lora模型融合,每100step保留一次lora权重,正常会训练800steps。使用一些模版图像进行img2img,保证出来的人像一定是正脸照。例如800steps,会产生800组验证结果和8个lora模型,使用验证结果与训练图片进行人脸特征向量提取,进行人脸相似度计算,然后选择其中最佳的几个lora模型进行融合,由于每组验证结果包含多张(4),会根据每组验证结果 被选中的比例 作为这个lora模型所占的比重。

推理流程:

1.初步重建

1.1 人脸融合 

reference photo是计算偏移角时选出的最正的人像,作为目标脸型进行人脸融合,人像重建是img2img完成,人脸融合算法用于提供一个比较好的基础图片,这样的结果就更像用户,在sd中提供canny。

1.2 人脸裁剪与放射变换

在完成训练后,可以获得一张与用户最为相似的图片,这张图片也是生成的,但是在训练的过程中会将所有的验证图片与训练图片进行人脸相似度比对。裁剪这个人像的图片并且进行放射变换,利用5个人脸关键点,将其贴到模版图像上,获得replaced image,这个图像会在下一步sd重建时使用,提供openpose。

1.3 stable diffusion重建 + 颜色转移

在1.1中完成人脸融合,下一步是使用lora重建,但是光用lora是不够的,还要结合controlnet,从推理图上人脸融合和放射变换似乎重合了,但是他们是提供不同的controlnet模式的。

使用1.1中的人脸融合图像的canny控制(防止人像崩坏)。

使用1.1中的人脸融合图像的颜色控制(使生成的颜色符合模版)。

使用1.2中replaced image的openpose+face openpose控制(使眼睛与轮廓更像本人)。

使用训练的lora。

使用mask对人脸区域进行重建。

2.边缘完善

2.1 人脸融合

再进行一次人脸融合以提升人脸的相似度。

2.2 stable diffusion重建

初步重建后可以获得一个不错的人像,但可能存在边缘上的问题,因此还设立了二次重建用于进行边缘完善,依然是lora+controlnet,但和初步重建不同,重建的是非人脸区域。

使用1.1中的人脸融合图像的tile控制(防止颜色过于失真)。

使用1.1中的canny控制(防止人脸崩坏)。

使用训练的lora。

使用mask对人像周围区域进行重建。

3.后处理

人像美肤和超分。

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

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

相关文章

基于Spring boot轻松实现一个多数据源框架

Spring Boot 提供了 Data JPA 的包&#xff0c;允许你使用类似 ORM 的接口连接到 RDMS。它很容易使用和实现&#xff0c;只需要在 pom.xml 中添加一个条目&#xff08;如果使用的是 Maven&#xff0c;Gradle 则是在 build.gradle 文件中&#xff09;。 <dependencies>&l…

C语言基于AVL树实现简单的文件数据库

目录 前言一、设计思路二、文件存储格式三、数据库操作3.1. 数据库结构3.2. 数据库初始化3.3. 插入3.4. 删除3.5. 修改3.6. 查询3.7. 清空 四、示例代码 前言 之前介绍了C语言实现AVL树&#xff0c; 本文是对AVL树的一个简单应用&#xff0c;在资源偏紧张的硬件设备中可以使用…

BAT030:按列表名单将路径a下的文件夹批量复制到路径b

引言&#xff1a;编写批处理程序&#xff0c;实现按列表名单将路径a下的文件夹批量复制到路径b。 一、新建Windows批处理文件 参考博客&#xff1a; CSDNhttps://mp.csdn.net/mp_blog/creation/editor/132137544 二、写入批处理代码 1.右键新建的批处理文件&#xff0c;点击…

Minio 文件上传(后端处理同文件判断,同一文件秒传)

记录minio 文件上传 MinIO提供多个语言版本SDK的支持&#xff0c;下边找到java版本的文档&#xff1a; 地址&#xff1a;https://docs.min.io/docs/java-client-quickstart-guide.html maven依赖如下&#xff1a; XML <dependency><groupId>io.minio</groupId…

Flask Web 安装bootstrap失败pip install bootstrap

失败原因&#xff1a;网速太慢了 把公共wifi换成手机热点&#xff0c;成功&#xff1a;&#xff09; &#x1f603; 更新&#xff1a;开了手机热点还是报下面的错&#xff0c;但是把科学上网关了&#xff0c;就成功了&#xff0c;反正就是网络问题

基于nodejs+vue 衣服穿搭推荐系统

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

分布式链路追踪系统Skywalking的部署和应用

一&#xff0c;背景 随着业务的扩张, 系统变得越来越复杂, 由前端、app、api,微服务,数据库,缓存,消息队列,关系数据库, 列式数据库等构成了繁杂的分布式网络. 当出现一个调用失败的问题时,要定位异常在哪个服务,需要进入每一个服务里看日志, 这个过程的复杂度和工作量是不可想…

【XSS_MSN】基于GCN的web攻击Payload识别与可解释性分析

原文标题&#xff1a;Web Attack Payload Identification and Interpretability Analysis Based on Graph Convolutional Network 原文链接&#xff1a;https://ieeexplore.ieee.org/document/10076547/ 作者单位&#xff1a;四川大学网络安全学院 相似原理论文&#xff1…

字节码增强技术-ASM

概述 在Java中一般是用javac命令编译源代码为字节码文件&#xff0c;一个.java文件从编译到运行的示例如图所示: 使用字节码的好处&#xff1a;一处编译&#xff0c;到处运行。java 就是典型的使用字节码作为中间语言&#xff0c;在一个地方编译了源码&#xff0c;拿着.class …

TCP/IP模型五层协议

TCP/IP模型五层协议 认识协议 约定双方进行的一种约定 协议分层 降低了学习和维护的成本&#xff08;封装&#xff09;灵活的针对这里的某一层协议进行替换 四/五层协议 五层协议的作用 应用层 应用层常见协议 应用层常见协议概览 基于TCP的协议 HTTP&#xff08;超…

AI绘画的魅力与未来:人工智能如何重塑艺术创作

随着人工智能&#xff08;AI&#xff09;技术的不断进步&#xff0c;AI绘画已经成为艺术与技术交汇的新领域。通过深度学习、神经网络等先进技术&#xff0c;AI不仅能理解和模拟人类艺术家的创作风格&#xff0c;还能生成令人惊叹的原创艺术作品。本文旨在探讨AI绘画的现状、挑…

ChatGPT AIGC自动生成多条件复杂计算函数

在Excel中经常会遇到多条件判断,根据不同的条件与内容显示不同的值。 例如: 需要给每个员工根据入职年限,员工等级,满意度等维度给员工发年终奖。 这在职场办公过程中经常要面临的一个问题。如销售额达到多少,取多少提成,如学生成绩在什么区间是设置为优秀还是良好等一…

python 对图片增加边框,logo贴图,获取图片exif参数,填写图片文本内容

完整代码 # 找到个可以下载免费字体的网站https://font.chi删除我naz.com/mi删除我anfei.html from PIL import Image, ImageDraw, ImageFont import exifreaddef photo_exif(image_path):f open(image_path, rb)tags exifread.process_file(f)# 打印所有照片信息&#xff0…

2023CRM排行:深度对比16款CRM

客户关系管理系统&#xff08;CRM&#xff09;作为数字化转型的重要载体&#xff0c;选择一个优秀的CRM系统将为企业未来健康增长保障。市场上CRM软件众多&#xff0c;但很难分清哪个适合自己&#xff0c;最近赶在公司选型&#xff0c;我对市场所有软件进行了一个调研&#xff…

单点登录是什么?

单点登录&#xff08;Single Sign On, SSO&#xff09;是指在同一帐号平台下的多个应用系统中&#xff0c;用户只需登录一次&#xff0c;即可访问所有相互信任的应用系统。 单点登录的本质就是在多个应用系统中共享登录状态。如果用户的登录状态是记录在 Session 中的&#xff…

异或运算.

相同为0&#xff0c;不同为1。 1 ^ 10 0 ^ 00 1 ^ 01 0 ^ 11性质&#xff1a; 0 ^ N N N ^ N 0交换、结合 a ^ b b ^ a&#xff1b; (a ^ b) ^ c a ^ (b ^ c)&#xff1b; 因此异或全部的元素的结果就是那个只出现1次的元素。 实现两个值的交换&#xff0c;而不必使…

C的魅力在于指针

原有的adrv9025 代理框架很好用,在其原有的平台上做改进

Python特征分析重要性的常用方法

前言 特征重要性分析用于了解每个特征(变量或输入)对于做出预测的有用性或价值。目标是确定对模型输出影响最大的最重要的特征&#xff0c;它是机器学习中经常使用的一种方法。 为什么特征重要性分析很重要? 如果有一个包含数十个甚至数百个特征的数据集&#xff0c;每个特征…

C#冒泡排序算法

冒泡排序实现原理 冒泡排序是一种简单的排序算法&#xff0c;其原理如下&#xff1a; 从待排序的数组的第一个元素开始&#xff0c;依次比较相邻的两个元素。 如果前面的元素大于后面的元素&#xff08;升序排序&#xff09;&#xff0c;则交换这两个元素的位置&#xff0c;使…

汽车屏类产品(四):仪表Cluster

###前言 仪表Cluster/仪表盘Dashboard,作为伴随汽车诞生就存在的一个主要零部件之一,从机械到电子到数字,可以说也是逐渐发展到现在的。 目前的主流框图如下,中间processor就是主控芯片,可能有buttons/switches,有display显示屏+backlight背光,有audio->speake…