【AIGC】FaceChain:发挥生成式内容的无限可能性

基于图像生成的个性化肖像框架

摘要

FaceChaine提供了一系列的生成方案,通过少量的图像输入,就能生成逼真的个性化肖像。它是一个个性化肖像生成框架,包含丰富的人脸感知相关的模型,例如人脸检测,深度人脸向量提取,人脸属性分析等等。输入主要的肖像生成功能,社区还包括虚拟试穿,2D数字人功能

介绍

        最近的一些工作都聚焦于使用少量的图像再基础模型的基础上去做微调,让微调网络记住某个特定人物身份信息。这样就可以结合提示词在大模型的基础上得到更多新样式的高保真图像。

        目前人物为主的个性化肖像文生图方法主要分两种:1.基于lora,2基于人脸身份。现有方法普遍存在的缺陷:1.面部形状和面部特征位置与输入人脸图像不同;2.合成人脸会存在扭曲或者损坏的情况。将两个lora注入到基础模型当中,一个作为风格影响,一个作为身份影响。

架构

该架构主要构建在stable diffusion模型上。采用了Lora技术,是一个有效的参数化策略,用来微调Stable Diffusion模型。FaceChain提供了一系列人脸相关的感知模型来做预处理,确保人脸图片符合Lora训练的标准。

 个性化肖像生成的PipeLine架构解析

训练过程

        输入数张一致性人物的图片,通过关键点检测,然后进行旋转增强,对图片进行人物属性分析,对面部进行美肤,并对人物属性打标签,送入stable diffusion进行微调,得到人物Lora.

推理过程

        将在线训练的人物Lora和离线训练好的风格Lora合并进基础模型,这样通过特定提示词,可以生成特定人物特定风格的人物肖像图像,对生成的图像与指定中模板的脸部进行人脸融合,这样就可以得到模板样式的肖像图,对生成的图片进行人脸识别找出与输入人脸图最相似的一些图像作为最终输出。

数据处理

人脸提取

图片旋转。参考https://modelscope.cn/models/ Cherrytest/rot_bgr

人脸旋转。将人脸扭正,具体算法是通过两组点进行最小二乘法回归得到旋转矩阵,由于模板的五个点和检测的五个点会存在大小差异,所以在进行最小二乘之前需要对两组点进行归一化。参考https://modelscope. cn/models/damo/cv_ddsar_face-detection_ iclr23-damofd

人脸区域裁剪并进行分割。通过人脸检测模型确定人脸的检测框,确保人脸框占比索要裁剪的区域的0.35-0.45.然后通过分割模型拿到脸部掩码。参考 https://modelscope.cn/models/ damo/cv_resnet101_image-multiple-humanparsing


 皮肤修饰。提高人脸皮肤的质量,为Lora他创造更好的训练素材。https://modelscope.cn/models/ damo/cv_unet_skin-retouching

打标签

1.对每一张图打上特定的标签,具体是针对图像独有的特性,比如人物表情,配饰等

2.删除与人物身份绑定的特征,如眼睛,嘴唇,耳朵。

3.指定一个触发词,当该词被填入时,就可以触发生成某个特定身份的肖像。

具体做法就是先使用反推提示词模型,对图片进行反推,然后将与身份相关的提示词去除,最后通过一个性别与年龄预测模型,将提示词作为触发词合并进总体的提示词中。参考https:// modelscope.cn/models/damo/cv_resnet34_ face-attribute-recognition_fairface

模型训练

超参数Lora的秩为32,LR为1e-4,开启cosine with restarts schedule,训练20轮。使用8bit AdamW优化器,节省显存。

模型推理

先通过stable diffusion将两个Lora模型合并,风格模型和人物模型权重分别为0.25和1.然后通过facefusion提升人脸的相似度和质量,具体做法就是在训练数据集中挑选一张最好的人脸模板与生成的图像进行人脸融合。最终通过人脸识别模型挑选出一些与原始人脸比较像的图片作为最终生成结果。

模型后处理

模板人脸选择。人脸模板选择模型参考https://www.modelscope.cn/models/damo/ cv_manual_face-quality-assessment_fqa

人脸融合。参考https:// www.modelscope.cn/models/damo/cv_unetimage-face-fusion_damo

相似度排名。 最终生成结果需要跟原始人脸做对比进行评分,找出最像的一些图片作为最终结果。相似度评估模型参考https://www.modelscope. cn/models/damo/cv_ir_face-recognitionood_rts

 重绘。主要就是通过重绘可以将人脸区域重新绘制为想要的肖像。

 使用原始的重绘存在一些问题(使用controlnet控制pose)

1.指定人物的人脸形状和标准模板的人脸形状不兼容,使用controlnet提取的时模板人脸的形状,这会导致生成特定身份的人脸变形。

2.重绘的掩码会导致原始图片与人脸区域有明显违和感。

3.多种条件相会结合会产生影响。

为了保证重绘人脸区域和原始图片交界处的真实感,对重绘添加了很多组件。

第一步文生图推理

引入了68个脸部标志点作为脸部pose引导条件,还有脸部变形算法,生成最终的关键点pose。

在文生图推理中只使用骨骼姿态作为引导条件。保证人脸的整体位置和身份特征。使用了生成的面部特征的68个关键点和模板的68个面部关键点求仿射变换矩阵M。这样才能既保证人脸不变形,与模板pose也保持一致。

第二次文生图推理

使用人脸分割模型分割出人脸区域并适当扩展来处理人脸变形。为了解决重绘得到的伪影,使用了多种控制组合,1.面部68个关键点pose;2使用模板的canny controlnet外部边缘保证和谐的边缘;3使用一个比较大重绘强度。两个推理过程都用到了人脸融合技术(facefusion)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【算法】合并两个有序链表(easy)——递归算法

题解:合并两个有序链表(easy)——递归求解 目录 1.题目2.题解3.参考代码4.总结 1.题目 题目链接:LINK 2.题解 本题有两种解法, 一是用循环去处理 链接:【刷题记录】合并两个有序数组、移除元素二是用递归去处理 将在下面中说…

23、linux系统文件和日志分析

linux文件系统与日志分析 文件时存储在硬盘上的,硬盘上的最小存储单位是扇区,每个扇区大大小是512字节。 inode:元信息(文件的属性 权限,创建者,创建日期等) block:块&#xff0c…

Java 22的FFM API,比起Java 21的虚拟线程

哪个对Java未来的发展影响更大?两个 Java 版本中的重要特性:Java 21 的虚拟线程和 Java 22 的 FFM API。我这里有一套编程入门教程,不仅包含了详细的视频讲解,项目实战。如果你渴望学习编程,不妨点个关注,给…

fintuning chatglm3

chatglm3介绍 ChatGLM3-6B 是 ChatGLM 系列最新一代的开源模型,在保留了前两代模型对话流畅、部署门槛低等众多优秀特性的基础上,ChatGLM3-6B 引入了如下特性: 更强大的基础模型: ChatGLM3-6B 的基础模型 ChatGLM3-6B-Base 采用…

2、浮动的用法特点,解决父元素高度塌陷解决

一、浮动 用法:浮动就是使用float样式,使元素脱离文档流。属性值有三个:none默认left right 特点: 常用于文字环绕图片浮动的元素脱离文档流影响其他元素排列造成父元素高度塌陷 1、一旦元素设置了浮动,元素就会脱离…

【教程】20个高级 Python 函数,让你编程更高效

在Python的编程世界中,函数是我们编写代码的重要工具之一。除了常见的内置函数外,Python还提供了许多强大而有趣的高级函数,它们可以帮助我们简化代码、提升效率,甚至在某些情况下让编程变得更加有趣。让我们一起来探索这些高级函数的奇妙之处吧! 1.enumerate() – 枚举函…

VBA字典与数组第十五讲:多行多列数组与同列数单行数组间的运算规则

《VBA数组与字典方案》教程(10144533)是我推出的第三套教程,目前已经是第二版修订了。这套教程定位于中级,字典是VBA的精华,我要求学员必学。7.1.3.9教程和手册掌握后,可以解决大多数工作中遇到的实际问题。…

【Intro】Heterogeneous Graph Attention Network(HAN)

论文链接:https://arxiv.org/pdf/1903.07293 Abstract 异构性和丰富的语义信息给面向异构图的图形神经网络设计带来了巨大的挑战。 -> 一种基于分层注意的异构图神经网络,包括节点级注意和语义级注意。具体来说,节点级关注旨在学习节点…

Anolis OS 8.9安装Linux 服务器运维管理面板“1Panel”

一、简介 1.Linux 服务器运维管理面板“1Panel” 使用go语言编写 2.很多的项目的应用都是采用 docker 技术来实现,这让 Linux 服务器的运维管理更简单、更安全。 3.1Panel 采纳最新的前端技术,并通过精心设计的UX 交互,为用户提供更好的用户…

从0开始学统计-什么是回归?

1.什么是回归? 回归(Regression)是统计学中一种用于探索变量之间关系的分析方法。它主要用于预测一个或多个自变量(输入变量)与因变量(输出变量)之间的关系。在回归分析中,我们尝试根…

数学建模--特殊的图

目录 1.二部图 (1)简单认识 (2)定义 (3)判定定理 (4)定理理解 2.匹配问题 (1)匹配 (2)完备&&完美匹配 (3…

力扣20 有效的括号

给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有一个对应的相同类型的左括…

Linux线程:线程分离

目录 一、什么是线程分离 1.1pthread_detach 1.2pthread线程库存在的意义 1.3__thread线程的局部存储 1.4系统调用clone 一、什么是线程分离 1.1pthread_detach 默认情况下,新创建的线程是joinable的,线程退出后,需要对其进行pthread_joi…

视频SK配置教程

视频SK配置教程 提供的pika接口服务(国外的,所以要反代),创建一个pika账号并开通pika套餐 反向配置教程 https://blog.csdn.net/u012241616/article/details/139391954?spm1001.2014.3001.5502 1、进入站点后台->功能->…

ubuntu使用

使用ubuntu 安装ubuntu ubuntu的镜像 : http://mirrors.aliyun.com/ubuntu-releases/ 进入 vmware https://www.vmware.com/products/workstation-player/workstation-player-evaluation.html 点击 创建 浏览 找到 系统镜像文件, 我把它放在了 vmware文件下 设置好信息 , 记…

【GIS系列】挑战千万级数据:Java和Elasticsearch在GIS中的叠加分析实践

作者:后端小肥肠 创作不易,未经允许严禁转载。 目录 1. 前言 2. 叠加分析场景方案对比 2.1. Geotools 2.2. PostGIS 2.3. Elasticsearch 3. 基于ElastcSearch实现叠加分析代码实践 3.1. 开发环境搭建 3.1.1. 所需版本和工具 3.1.2. pom依赖 3.…

基于数据驱动的自适应性小波构造(MATLAB)

以地震领域为例,时频变换能够刻画地震资料的时频特征,进而辅助地质构造解释。在各种时频分析工具中,连续小波变换CWT是描述地震资料时频特征的常用工具。选择合适的基小波是CWT的关键问题。对于不同类型的信号前人有针对性的设计了许多基小波…

Virtualbox中对SD卡进行格式化和分区

系统:Ubuntu 22.04.4 LTS 方法一:在虚拟机的ubuntu系统中使用fdisk命令方式分区,具体请参考: imx6ull - 制作烧录SD卡-CSDN博客 方法二:使用Ubuntu自带GUI工具Disks Disks相比命令行工具更加简单无脑,用…

esp8266刷micropython固件

硬件&#xff1a;ESP-01 1M FLASH 乐鑫官方刷写工具&#xff1a;https://www.espressif.com.cn/sites/default/files/tools/flash_download_tool_3.9.6_2.zip 最新micropython固件: flash<512:https://micropython.org/resources/firmware/ESP8266_GENERIC-FLASH_512K-20…

【智能制造1005】智能制造试点企业名单及工具变量数据,助力深入研究!

今天给大家分享的是国内顶级期刊金融研究2022年发表的论文《智能制造赋能企业创新了吗&#xff1f;——基于中国智能制造试点项目的准自然实验》使用到的重要数据集——智能制造试点企业名单以及该政策对应的工具变量数据。该论文以中国智能制造示范项目的推广为准自然实验&…