FaceChain开源虚拟试衣功能,打造更便捷高效的试衣新体验

c1f477a254681a58d705f8283b7c53eb.gif

7ef69526e55b3c6830d389cef1f26743.png

简介

虚拟试衣这个话题由来已久,电商行业兴起后,就有相关的研发讨论。由其所见即所得的属性,它可以进一步提升用户服装购买体验。它既可以为商家做商品展示服务,也可以为买家做上身体验服务,这让同时具备了 B 和 C 的两个用户属性。随着 AIGC 的兴起,虚拟试衣也取得了一定的突破,FaceChain 近期重点更新了虚拟试衣功能 & 效果图如下所示:

cbf4d6198af9dc57cd83112ea75869ce.png

根据是否需要对衣服做变形生成来划分,虚拟试衣又可分为形变保 ID 与非形变保 ID。其中非形变保 ID(局部保 ID)部分已开源,可以在 FaceChain(https://github.com/modelscope/FaceChain)开源项目中体验到,另外形变保 ID 正在研发中,预计 11 月底开源初版。截止目前 FaceChain 已有 6.1K star,它旨在打造以人物为中心的 AIGC 工具箱,目前其人物写真功能在线体验形态与入口丰富。主要有如下:

a.)万相写真馆在线体验:

https://tongyi.aliyun.com/wanxiang/app/portrait-gallery

b.)魔搭人物写真在线体验:

https://www.modelscope.cn/studios/CVstudio/cv_human_portrait/summary

c.)魔搭写真智能agent在线体验:

https://www.modelscope.cn/studios/CVstudio/FaceChain_agent_studio/summary

除以上体验入口外,该项目也可作为插件在 sdwebui 中集成,另外也在同步拓展 comfyui 的插件中。在功能层面,目前已有人物写真、虚拟试衣、sad talker 等功能,另有更多应用在拓展中。

5071dc45ecf32aeb60dc678e99e0fa4e.png

原理

虚拟试衣的基本模块为 sd、lora、controlnet、inpainting。除了相应基本模块外,还有一些特殊优化及超参设置,最后通过业务代码实现具象的功能。其详细架构图如下:

84e354cade0450cd5d2e8d915c211f70.png

另外 sd、lora、controlnet、inpainting 等基础模块原理如下:

a.)sd相应原理:

sd 是在 2022 年 diffusion 的技术上进行了 latent 低维特征域的加噪去噪技术迁移,大大加速了 diffusion 技术的相应生态发展。相应原理如下:sd 是一个基于 latent 的扩散模型,常规的扩散模型是基于 pixel 的生成模型,而 latent diffusion 是基于 latent 的生成模型,它先采用一个 autoencoder 将图像压缩到 latent 空间,然后基于文本引导用扩散模型对 latent 进行加噪与去噪过程,最后送入 autoencoder 的 decoder 模块就可以得到生成的图像。sd 模型的基本功能是文生图功能,输入一段文本或一系列提示词,输出对应的图像。

sd 模型的主体结构如下图所示,主要包括以下三部分:

  • autoencoder:encoder 将图像压缩到 latent 空间,而 decoder 将 latent 解码为图像;

  • CLIP text encoder:提取输入文本的 text embeddings,通过 cross attention 的方式送入扩散模型的 UNet 中;

  • UNet:扩散模型的主题,用于实现文本引导下的 latent 生成。

b6fc917d027501d32e562a65dd91bc91.png

▲ sd模型的基本结构示意图

b.)lora相应原理:

lora 是在 NLP 领域 LLM 大模型上提出的低秩权重矩阵 finetune 技术,此框架大大提升了大模型 finetune 的稳定性,目前其在 SD 上也有大规模的普及应用。相应原理如下:NLP 领域的一个重要范式是在通用域数据进行大规模预训练,然后在下游任务下 finetune。

前人研究表明,过参数化神经网络模型在训练后呈现低秩特性,因此原作者猜测,模型 finetune 过程中权重的变化同样具有低秩特性。因此 lora 通过将权重矩阵进行低秩分解间接训练神经网络的一些密集层,如下图所示。在 finetune 模型时固定原有参数,只训练低秩矩阵 A 与 B。

449c6330452bba6b4433b49c656207f5.png

▲ lora 的低秩分解示意图

通过引入 lora 在特定风格或人物的文生图任务中对 sd 模型进行 finetune,可以有效学习对应的风格或人物信息。相比于全参数微调(full-finetune),lora 更适用于基于少量数据的微调,因此也更适用于在人物写真中学习风格和人物信息。

c.)controlnet相应原理:

controlnet 是一种通过添加额外条件来控制扩散模型的神经网络结构,在 sd 中基于 controlnet 增加条件输入,如边缘映射、分割映射、pose 关键点等信息,可以使生成的图像在上述信息上更接近输入图像,从而增强 sd 图像生成结果的可控性。controlent 定义一组输入条件作为神经网络的额外输入,并通过零初始化的 1*1 卷积(zero convolution)以及原网络模块的可训练副本将其与原始输入进行交互,并将输出结果与原网络输出结果相加。

由于两个 zero convolution 的初始化为 0,因此训练第一步的输出结果与不添加 controlnet 的输出结果一致。该方法可以使得神经网络在特定任务中进行高效 finetune 以提高其性能。在 sd 模型中,controlnet 控制 UNet 的每个层级,使用与 sd 相同的 12 个编码 block 以及一个 middle block,并在输出部分增加 12 个 skip-connections 以及一个 middle block 至 UNet,具体结构如下图所示。

b23d3cecdfa5bc8bc9766e2a95ec889f.png

▲ 应用于 sd 模型的 controlnet 结构示意图

d.)inpainting相应原理:

在 sd 中,图像 inpainting 功能是文生图功能的一个扩展:给定模板图像、重绘区域和输入文本,即可根据输入文本的引导生成重绘区域的内容。不同于文生图功能,图像 inpainting 的初始 latent 不是一个随机噪音,而是由模板图像经过 autoencoder 编码之后的 latent 添加高斯噪音得到,其中高斯噪音的比例通过 strength 参数进行控制。

而后对上述初始 latent 进行去噪,为了保证只修改重绘区域以内的内容,在去噪过程的每一步,都将 sd 预测的 noisylatent 在重绘区域外的部分用模板图像相同加噪程度的 noisy latent 替换。这样既能保证重绘区域以外的部分不发生变化,又可以在每一步去噪过程中实现重绘区域内外 latent 的交互,从而保证生成结果的整体自然性。

2f26a9f8a057b757800ea53d639aef2d.png

规划

目前 FaceChain 的整体规划主要有四个维度:a.)真人写真风格,b.)虚拟写真风格,c.)应用拓展,d.)生态拓展。正在进行 comfyui 插件的研发中。

更多阅读

a340631cae12eadbba7abc63f3683905.png

9ec44ba1fe7c12e574ec2033e0ad4b0b.png

d3056e2612b8f05406e2ce4be4f40347.png

d935a34e2635ee3d859837f51a2550f9.gif

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算

📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿

aff0a5ec2f7a63d3c90f6256879b1876.png

△长按添加PaperWeekly小编

🔍

现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧

·

·

311f8a6f66772bf6fe14ff8b14776667.jpeg

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

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

相关文章

降级python

起因: python版本过高不能下载一个包,需要降级 首先使用 python --version 查看python版本 然后conda install python3.10 python3.10会下载到这个目录下(这个千万别找错) 然后更换路径 alias python/home/zky/.conda/envs/c…

QML 仪表盘小示例

本次项目已发布在CSDN->GitCode,下载方便,安全,可在我主页进行下载即可,后面的项目和素材都会发布这个平台。 个人主页:https://gitcode.com/user/m0_45463480怎么下载:在项目中点击克隆,windows:zip linux:tar.gz tar # .pro TEMPLATE = appTARGET = dialcontrol​#…

基于PHP + MySQL实现的文章内容管理系统源码+数据库,采用前后端分离的模板和标签化方式

文章内容管理系统 dc-article是一个通用的文章内容管理系统,基于开源的caozha-admin开发,采用前后端分离的模板和标签化方式,支持文章内容管理、栏目分类管理、评论管理、友情链接管理、碎片管理、远程图片获取器等功能。可以使用本系统很轻…

【实战Flask API项目指南】之七 用JWT进行用户认证与授权

实战Flask API项目指南之 用JWT进行用户认证与授权 本系列文章将带你深入探索实战Flask API项目指南,通过跟随小菜的学习之旅,你将逐步掌握 Flask 在实际项目中的应用。让我们一起踏上这个精彩的学习之旅吧! 前言 当小菜踏入Flask后端开发…

Linux常用指令(一)——目录操作

Linux目录操作 1.1 目录切换 cd1.2 目录查看 ls1.3 创建目录 mkdir1.4 删除目录 rm1.5 复制目录 cp1.6 删除目录 rm1.7 搜索目录 find1.8 查看当前所在目录 pwd 更加完整的Linux常用指令 1.1 目录切换 cd # 切换到根目录 cd / # 切换到根目录的usr目录 cd /usr # 返回上一级目…

80个10倍提升Excel技能的ChatGPT提示

你是否厌倦了在使用Excel时感觉像个新手?你是否想将你的技能提升到更高的水平,成为真正的Excel大师?嗯,如果你正在使用ChatGPT,那么成为Excel专家简直易如反掌。 你只需要了解一些最有用的Excel提示,就能在…

CNN(卷积神经网络)、RNN(循环神经网络)和GCN(图卷积神经网络)

CNN(卷积神经网络): 区别:CNN主要适用于处理网格状数据,如图像或其他二维数据。它通过卷积层、池化层和全连接层来提取和学习输入数据的特征。卷积层使用卷积操作来捕捉局部的空间结构,池化层用于降低特征图…

【C++心愿便利店】No.11---C++之string语法指南

文章目录 前言一、 为什么学习string类二、标准库中的string类 前言 👧个人主页:小沈YO. 😚小编介绍:欢迎来到我的乱七八糟小星球🌝 📋专栏:C 心愿便利店 🔑本章内容:str…

NSSCTF第10页(3)

[LitCTF 2023]彩蛋 第一题&#xff1a; LitCTF{First_t0_The_k3y! (1/?) 第三题&#xff1a; <?php // 第三个彩蛋&#xff01;(看过头号玩家么&#xff1f;) // R3ady_Pl4yer_000ne (3/?) ?> 第六题&#xff1a; wow 你找到了第二个彩蛋哦~ _S0_ne3t? (2/?) 第七题…

vue3+element Plus实现弹框的拖拽、可点击底层页面功能

1、template部分 <el-dialog:modal"false"v-model"dialogVisible"title""width"30%"draggable:close-on-click-modal"false"class"message-dialog"> </el-dialog> 必须加的属性 modal:是否去掉遮罩层…

多线程JUC 第2季 多线程的内存模型

一 内存模型 1.1 概述 在hotspot虚拟机里&#xff0c;对象在堆内存中的存储布局可以划分为3个部分&#xff1a;对象头&#xff1b;实例数据&#xff0c;对齐填充。如下所示&#xff1a;

3、Sentinel 动态限流规则

Sentinel 的理念是开发者只需要关注资源的定义&#xff0c;当资源定义成功后可以动态增加各种流控降级规则。Sentinel 提供两种方式修改规则&#xff1a; • 通过 API 直接修改 (loadRules) • 通过 DataSource 适配不同数据源修改 通过 API 修改比较直观&#xff0c;可以通…

Rust语言和curl库编写程序

这是一个使用Rust语言和curl库编写的爬虫程序&#xff0c;用于爬取视频。 use std::env; use std::net::TcpStream; use std::io::{BufReader, BufWriter}; ​ fn main() {// 获取命令行参数let args: Vec<String> env::args().collect();let proxy_host args[1].clon…

react_15

动态菜单 图标要独立安装依赖 npm install ant-design/icons 图标组件&#xff0c;用来将字符串图标转换为标签图标 import * as icons from "ant-design/icons"; interface Module {[p: string]: any; } const all: Module icons; export default function Ico…

【PyTorch 卷积】实战自定义的图片归类

前言 卷积神经网络是一类包含卷积计算且具有深度结构的前馈神经网络&#xff0c;是深度学习的代表算法之一&#xff0c;它通过卷积层、池化层、全连接层等结构&#xff0c;可以有效地处理如时间序列和图片数据等。关于卷积的概念网络上也比较多&#xff0c;这里就不一一描述了。…

【强化学习】17 ——DDPG(Deep Deterministic Policy Gradient)

文章目录 前言DDPG特点 随机策略与确定性策略DDPG&#xff1a;深度确定性策略梯度伪代码代码实践 前言 之前的章节介绍了基于策略梯度的算法 REINFORCE、Actor-Critic 以及两个改进算法——TRPO 和 PPO。这类算法有一个共同的特点&#xff1a;它们都是在线策略算法&#xff0c…

【踩坑及思考】浏览器存储 cookie 最大值超过 4kb,或 http 头 cookie 超过限制值

背景 本地生产环境&#xff1a;超过最大值 cookie token 不存储&#xff1b;客户生产环境&#xff1a;打开系统空白&#xff0c;且控制台报 http 400 错误&#xff1b; 出现了两种现象 现象一&#xff1a;浏览器对大于 4kb 的 cookie 值不存储 导致用户名密码登录&#xff…

解决问题 [Vue warn]: Missing required prop: “index“

vue项目控制台报错 [Vue warn]: Missing required prop: “index” 出现这个报错原因是<el-submenu></el-submenu>标签中缺少index属性&#xff0c;需要加上才能不报错 解决办法是&#xff1a; <el-submenu index""></el-submenu>

linux 下 物理迁移 mysql 数据库 不能启动问题

1、授权问题 # chown -R 777 /app/db/mysql 2、/etc/my.cnf配置问题 [mysqld] basedir/app/db/mysql datadir/app/db/mysql/data socket/app/db/mysql/mysql.sock.lock innodb_buffer_pool_size128M innodb_force_recovery 1 symbolic-links0 [mysqld_safe] log-error/app/…

linux驱动开发环境搭建

使用的是parallel 创建的ubuntu 16.04 ubuntu20.04虚拟机 源码准备 # 先查看本机版本 $ uname -r 5.15.0-86-generic# 搜索相关源码 $ sudo apt-cache search linux-source [sudo] password for showme: linux-source - Linux kernel source with Ubuntu patches linux-sourc…