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后端开发…

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

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

【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…

【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…

笔记软件 Keep It mac v2.3.3中文版新增功能

Keep It mac是一款专为 Mac、iPad 和 iPhone 设计的笔记和信息管理应用程序。它允许用户在一个地方组织和管理他们的笔记、网络链接、PDF、图像和其他类型的内容。Keep It 还具有标记、搜索、突出显示、编辑和跨设备同步功能。 Keep It for mac更新日志 修复了更改注释或富文本…

Nacos-2.2.2源码修改集成高斯数据库GaussDB,postresql

一 &#xff0c;下载代码 Release 2.2.2 (Apr 11, 2023) alibaba/nacos GitHub 二&#xff0c; 执行打包 mvn -Prelease-nacos -Dmaven.test.skiptrue -Drat.skiptrue clean install -U 或 mvn -Prelease-nacos ‘-Dmaven.test.skiptrue’ ‘-Drat.skiptrue’ clean instal…

【H.264】RTP h264 码流 实例解析分析 3 : webrtc

【srs】SRS检测IBMF还是annexb 【H.264】RTP h264 码流 实例解析分析 2 : mediasoup收包 mediasoup 并没完整解析rtp包的内容,可能与mediasoup 只需要转发,不需要解码有关系。 webrtc 本身都是全的。 m98代码,先说关键: webrtc的VideoRtpDepacketizer 第一:对RTPVideoType…