一键解锁百变发型!上交联合Tiamat震撼发布Stable-Hair发型移植黑科技!

Stable-Hair 是一种基于扩散的新型发型转移方法,可以稳健地转移各种现实世界的发型。在各种具有挑战性的发型上实现了高度详细和高保真度的转移,效果令人印象深刻,同时保留了原始身份内容和结构。

相关链接

论文链接: https://arxiv.org/pdf/2407.14078

Github链接: https://xiaojiu-z.github.io/Stable-Hair.github.io/

论文阅读

Stable-Hair:通过扩散模型实现真实世界中的头发转移

摘要

目前的头发移植方法难以处理多样而复杂的发型,因此限制了它们在现实场景中的适用性。在本文中,我们提出了一种基于扩散的新型头发移植框架Stable-Hair,它可以将各种现实世界的发型稳健地移植到用户提供的脸上,以供虚拟试穿。为了实现这一目标,我们的 Stable-Hair 框架设计为两阶段管道。在第一阶段,我们训练秃头转换器和稳定扩散,以从用户提供的脸部图像中去除头发,从而得到秃头图像。在第二阶段,我们专门设计了三个模块:头发提取器、潜在身份网络和头发交叉注意层,以将目标发型以高度详细和高保真度移植到秃头图像中。具体来说,头发提取器经过训练,可以使用所需的发型对参考图像进行编码。为了保持源图像和迁移结果之间身份内容和背景的一致性,我们使用潜在身份网络对源图像进行编码。借助 U-Net 中的头发交叉注意层,我们可以准确而精确地将高度详细和高保真的发型转移到秃头图像中。大量实验表明,我们的方法在现有的头发转移方法中提供了最先进 (SOTA) 的结果。

背景

随着数字媒体和虚拟现实应用的日益普及,个性化虚拟化身和虚拟试穿系统已成为一个重要的研究领域。头发移植是该领域最具挑战性的任务之一。近年来,生成对抗网络 (GAN) 的进步推动了该领域的重大进展。然而,这些基于 GAN 的方法通常难以处理现实场景中遇到的多样而复杂的发型,这严重限制了它们在实际应用中的有效性。

方法

我们的 Stable-Hair 包含两个阶段,可实现高质量的头发转移。首先,将用户的输入源图像转换为秃头代理图像。此转换是使用预训练的稳定扩散 (SD) 模型与专门的秃头转换器结合完成的。在第二阶段,我们使用预训练的 SD 模型和头发提取器将参考头发转移到秃头代理图像上。头发提取器负责捕捉参考头发的复杂细节和特征。然后通过新添加的头发交叉注意层将这些特征注入 SD 模型。通过利用这两个阶段,我们的方法实现了高度详细和高保真的头发转移,产生自然且视觉上吸引人的效果。

在不同的设计方案中积累的色彩偏差。

合成训练数据:我们提出了一个自动化的数据生成管道来生成(原始图像,参考图像,秃顶代理图像)用于训练的三元组。该管道使用ChatGPT生成文本提示,使用stable Diffusion Inpainting模型生成参考图像,使用我们预训练的Bald转换器将原始图像转换为Bald代理图像。

效果展示

视觉比较

与其他方法相比,我们的方法实现了更精细和稳定的发型转换,而无需精确的面部对齐或明确的面具进行监督。

跨域传输

我们的方法非常稳健,能够跨不同领域转移发型,这是以前的方法无法实现的。这证明了我们的方法在发型转移领域取得了重大进展

更多结果

我们还提出了一系列额外的结果来证明我们的方法的稳健性和优越性。

结论

在本文中,我们介绍了 Stable-Hair,这是第一个使用扩散技术解决发型转换的框架。这种方法标志着一项重大进步,实现了以前无法实现的稳定且细粒度的真实世界发型转换。Stable-Hair 具有两阶段管道。第一阶段使用秃头转换器将源图像转换为秃头代理图像。第二阶段包括头发提取器、潜在身份网络和头发交叉注意层,以将目标发型准确地转移到秃头图像。头发提取器使用所需发型对参考图像进行编码,而潜在身份网络保留身份内容和背景一致性。U-Net 中的头发交叉注意层确保精确且高保真的发型转换。大量实验表明,Stable-Hair 实现了商业级发型转换能力,为该领域树立了新标准。

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

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

相关文章

案例实践 | 基于长安链的福建省气象综合治理区块链平台

案例名称-【福建省气象综合治理区块链平台】 ■ 实施单位 福建福链科技有限公司 ■ 业主单位 福建省气象信息中心 ■ 上线时间 2023年10月 ■ 用户群体 福建省气象、防灾减灾相关单位 ■ 用户规模 全省2100余个气象站、气象局以及防灾减灾部门 案例背景与解决痛点 …

跟代码执行流程,读Megatron源码(四)megatron初始化脚本initialize.py之initialize_megatron()分布式环境初始化

在前文中,我们讲述了pretrain函数的执行流程,其首要步骤是megatron分组的初始化与环境的配置。本文将深入initialize_megatron函数源码,剖析其初始化分布式训练环境的内部机制。 注:在此假设读者具备3D并行相关知识 一. initiali…

【MARL】MADDPG + attention 实现(+论文解读)

文章目录 前言注意力机制论文里的attention回顾知识-MADDPG讲解1.Q的定义2.Q的恒等式3.论文里的attention4.好处 实现 和 修改结果展示原论文代码 翻改版修改后原maddpg代码 前言 导师让在MADDPG上加一个注意力机制,试了很多种,下面的参考的论文的效果最…

C++——保持原有库头文件不变的情况下,成功编译运行工程

问:想要保持原来库方式,应该怎么操作呢? 答:如果想保持原来的方式,则只需要将 库所在路径 tracker/detector/rknn_model_zoo/utils 加入到 工程库包含中即可。

基于jeecgboot-vue3的Flowable流程-自定义业务表单流程历史信息显示

因为这个项目license问题无法开源&#xff0c;更多技术支持与服务请加入我的知识星球。 1、对于自定义业务表单的流程历史记录信息做了调整&#xff0c;增加显示自定义业务表单 <el-tab-pane label"表单信息" name"form"><div v-if"customF…

ESP32开发进阶:OLED屏幕显示旋转的3D模型

一、硬件接线 我选择的是最常见的一块板子&#xff1a;ESP-WROOM-32&#xff0c;硬件接线如下&#xff1a; 21 - SDA 22 - SCL 二、Arduino端代码 我们使用Arduino和Adafruit SSD1306库在OLED显示屏上绘制和旋转一个3D立方体。 首先&#xff0c;定义立方体顶点和…

CSS(七)——CSS 列表和CSS Table(表格)

目录 CSS 列表 列表 作为列表项标记的图像 列表 - 简写属性 移除默认设置 所有的CSS列表属性 CSS 表格 表格边框 折叠边框&#xff08;border-collapse&#xff09; 表格宽度和高度 表格文字对齐 表格填充 表格颜色 CSS 列表 CSS 列表属性作用如下&#xff1a; 设…

C#开发的全屏图片切换效果应用 - 开源研究系列文章 - 个人小作品

这天无聊&#xff0c;想到上次开发的图片显示软件《 PhotoNet看图软件 》&#xff0c;然后想到开发一个全屏图片切换效果的应用&#xff0c;类似于屏幕保护程序&#xff0c;于是就写了此博文。这个应用比较简单&#xff0c;主要是全屏切换换图片效果的问题。 1、 项目目录&…

【Vue3】watch 监视 ref 定义的数据

【Vue3】watch 监视 ref 定义的数据 背景简介开发环境开发步骤及源码参数说明 背景 随着年龄的增长&#xff0c;很多曾经烂熟于心的技术原理已被岁月摩擦得愈发模糊起来&#xff0c;技术出身的人总是很难放下一些执念&#xff0c;遂将这些知识整理成文&#xff0c;以纪念曾经努…

【C++进阶学习】第八弹——红黑树的原理与实现——探讨树形结构存储的最优解

二叉搜索树&#xff1a;【C进阶学习】第五弹——二叉搜索树——二叉树进阶及set和map的铺垫-CSDN博客 AVL树&#xff1a; ​​​​​​【C进阶学习】第七弹——AVL树——树形结构存储数据的经典模块-CSDN博客 前言&#xff1a; 在前面&#xff0c;我们已经学习了二叉搜索树和…

PCIe 6.0为什么需要14-bit tag

1.TLP中的tag是什么 在PCIe TLP&#xff08;Transaction Layer Packet&#xff09;中&#xff0c;tag是分配给特定Non-Posted Request的编号&#xff0c;协议要求CPL/CPLD中的tag 与对应non-post request TLP中的tag保持一致&#xff0c;因此Requester可以使用tag来识别CPL…

免费【2024】springboot 趵突泉景区的智慧导游小程序

博主介绍&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌ 技术范围&#xff1a;SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化…

十、SpringBoot 统⼀功能处理【拦截器、统一数据返回格式、统一异常处理】

十、SpringBoot 统⼀功能处理 1. 拦截器【HandlerInterceptor、WebMvcConfig】1.1 拦截器快速⼊⻔⾃定义拦截器&#xff1a;实现HandlerInterceptor接⼝&#xff0c;并重写其所有⽅法注册配置拦截器&#xff1a;实现WebMvcConfigurer接⼝&#xff0c;并重写addInterceptors⽅法…

堆(c++)

堆是计算机科学中一类特殊的数据结构的统称。堆通常是一个可以被看做一棵树的数组对象。 堆总是满足下列性质&#xff1a; 堆中某个节点的值总是不大于或不小于其父节点的值&#xff1b;堆总是一棵完全二叉树。 常见的堆有二叉堆、斐波那契堆等。 堆是非线性数据结构&#…

初识C++ · map和set的使用

目录 前言&#xff1a; 1 set 2 map 前言&#xff1a; 在前面阶段&#xff0c;我们已经学习了stl里面的部分容器&#xff0c;比如vector,list,deque等&#xff0c;这些容器都被称为序列式容器&#xff0c;也就是每个值之间式没有关联的&#xff0c;那么今天介绍的容器&…

IGV.js | 载入自己下载的gtf文件

1.安装 htslib-1.20 https://www.htslib.org/doc/tabix.html J3$ cd ~/Downloads/ $ wget https://github.com/samtools/htslib/releases/download/1.20/htslib-1.20.tar.bz2 $ tar jxvf htslib-1.20.tar.bz2编译安装&#xff1a; $ cd htslib-1.20/ $ ./configure --prefix/…

vue的三大核心知识点

响应式&#xff1a; 监听data属性getter setter(包括数组)模板编译&#xff1a; 模板到render函数再到vnodevdom&#xff1a; patch(elem, vnode)和patch(vnode, newVnode) vue组件初次渲染过程 解析模板为render函数&#xff08;或在开发环境已完成&#xff0c;vue-loader&a…

WIX Toolset 3.11 对本地化的支持方案

1.准备主题文件和本地化文件 WIX Toolset种主题文件为xml文件&#xff0c;负责配置控件的布局&#xff0c; 本地化文件为wxl文件&#xff0c;负责配置待加载的字符串&#xff0c;主题文件根据ID加载需要显示的文字内容。考虑到英文和中文字符长度大小不一&#xff0c;所以这里…

渗透测试——prime1靶场实战演练{常用工具}端口转发

文章目录 概要信息搜集 概要 靶机地址&#xff1a;https://www.vulnhub.com/entry/prime-1,358 信息搜集 nmap 扫网段存活ip及端口 找到除了网关外的ip&#xff0c;开放了80端口&#xff0c;登上去看看 是一个网站&#xff0c;直接上科技扫一扫目录 python dirsearch.py -u …

尝试带你理解 - 进程地址空间,写时拷贝

序言 在上一篇文章 进程概念以及进程状态&#xff0c;我们提到了 fork 函数&#xff0c;该函数可以帮我们创建一个子进程。在使用 fork 函数时&#xff0c;我们会发现一些奇怪的现象&#xff0c;举个栗子&#xff1a; 1 #include <stdio.h>2 #include <unistd.h>3 …