【论文阅读+复现】High-fidelity Person-centric Subject-to-Image Synthesis
以人物为中心的主体到图像的高保真合成,CVPR2024
code:CodeGoat24/Face-diffuser: [CVPR2024] Official implementation of High-fidelity Person-centric Subject-to-Image Synthesis.
paper:2311.10329
背景
-
研究问题:这篇文章要解决的问题是当前以人物为中心的图像生成方法在生成高保真人物图像时遇到的挑战。具体来说,这些方法在微调预训练的扩散模型时,会导致语义场景的先验知识丢失,并且在联合学习场景和人物生成时,会牺牲生成质量。

-
研究难点:该问题的研究难点包括:生成高质量的人物图像需要充分微调预训练模型,但这会导致模型忘记丰富的语义场景先验;此外,联合学习场景和人物生成也会导致生成质量下降。
-
相关工作:现有的以人物为中心的图像生成方法,如Fastcomposer和Subject-diffusion,虽然能够生成个性化图像,但在长时间训练后,模型会过拟合文本描述,忘记丰富的语义场景先验,导致生成质量下降。
方法
这篇论文提出了Face-diffuser,一种有效的协作生成管道,用于解决现有方法中的训练不平衡和质量妥协问题。具体来说,
-
预训练模型:首先,独立微调两个基于Stable Diffusion的预训练扩散模型,分别用于场景生成(TDM)和人物生成(SDM)。

-
采样过程:采样过程分为三个阶段:语义场景构建、人物-场景融合和人物增强。
- 语义场景构建:使用TDM构建初始语义场景。
- 人物-场景融合:通过一个新的高效机制——显著性自适应噪声融合(SNF),实现TDM和SDM的协作。SNF利用无分类器指导(CFG)响应,自动在显著性感知的方式下融合两个模型的预测噪声。
- 人物增强:使用SDM进一步细化生成的人物质量。
- 显著性自适应噪声融合(SNF):SNF的关键在于观察到无分类器指导响应与生成图像的显著性之间存在稳健的联系。具体公式如下:

其中,∅表示空条件,s表示指导权重,RT和RS分别表示语义场景条件和参考图像条件的噪声差异。
实验
- 数据集:使用FFHQ-face数据集进行训练,该数据集包含70,000个样本,其中60,000个用于训练,10,000个用于测试。另一个数据集是Single-benchmark数据集,包含15个主题,每个主题有30个文本提示。
- 训练配置:基于预训练的Stable Diffusion v1-5模型进行训练。SDM的图像编码器使用OpenAI的clip-vit-large-patch14视觉模型。对SDM进行450k步训练,对TDM进行250k步训练,使用4个NVIDIA A100 GPU,设置恒定学习率为1e-5,批量大小为8。
- 评估:使用身份保留(IP)和提示一致性(PC)两个指标评估单主题和多主题生成质量。IP通过MTCNN进行面部检测,并使用FaceNet计算面部相似度。PC通过CLIP-L/14图像-文本相似度进行评估。
结果
-
定量结果:Face-diffuser在单主题和多主题图像生成方面均表现出显著优势。与现有的最先进模型Fastcomposer相比,Face-diffuser在多主题生成方面的身份保留提高了0.132,提示一致性提高了0.084。
-
定性结果:Face-diffuser在生成与给定参考图像和语义场景一致的人物图像方面优于其他基线方法。例如,在生成一个男孩拿着纸的场景时,Fastcomposer和CustomDiffusion未能成功生成该场景。

-
对比分析:与Fastcomposer和Subject-diffusion的样本进行对比,Face-diffuser在高保真图像生成方面表现更优。

结论
本文提出的Face-diffuser有效地解决了现有以人物为中心的图像生成方法中的训练不平衡和质量妥协问题。通过独立微调两个预训练扩散模型,并利用显著性自适应噪声融合机制,Face-diffuser能够在不同场景中生成高保真的人物图像。广泛的实验验证了Face-diffuser在生成高质量图像方面的有效性和鲁棒性。
- 打破训练不平衡和质量妥协:Face-diffuser提出了一种有效的协作生成管道,解决了现有以人为中心的图像生成方法中存在的训练不平衡和质量妥协问题。
- 独立模型和协作机制:开发了两个独立的预训练扩散模型(TDM和SDM),分别用于场景和人物生成,并提出了一种高效的协作机制——基于显著性的自适应噪声融合(SNF)。
- 三阶段采样过程:将采样过程分为三个阶段:语义场景构建、人物-场景融合和人物增强,确保每个阶段的任务明确且高效。
- 显著性自适应噪声融合:通过分类器自由指导(CFG)响应,自动在每一步中按显著性进行噪声空间的空间混合,充分利用每个模型的优势。
- 高质量图像生成:广泛的实验验证了Face-diffuser在生成描绘多个未见人物的多样场景的高保真图像方面的显著有效性和鲁棒性。
关键问题
问题1:Face-diffuser在生成高保真人物图像时,如何解决现有方法中的训练不平衡和质量妥协问题?
Face-diffuser通过独立微调两个预训练扩散模型来解决训练不平衡和质量妥协问题。具体来说,它开发了两个专门的预训练扩散模型:文本驱动扩散模型(TDM)和主体增强扩散模型(SDM)。TDM用于场景生成,而SDM用于人物生成。通过将采样过程分为三个阶段——语义场景构建、人物-场景融合和人物增强,Face-diffuser能够在不同阶段充分利用每个模型的优势。特别是,通过显著性自适应噪声融合(SNF)机制,Face-diffuser在人物-场景融合阶段实现了TDM和SDM的无缝协作,从而生成高保真的人物图像。
问题2:显著性自适应噪声融合(SNF)机制是如何实现TDM和SDM的有效协作的?
显著性自适应噪声融合(SNF)机制通过无分类器指导(CFG)响应来实现TDM和SDM的有效协作。具体步骤如下:
- 计算显著性图:首先,根据TDM和SDM的CFG响应计算两个显著性图ΩT和ΩS。这两个图分别表示语义场景条件和参考图像条件对每个像素的影响。
- 生成融合掩码:然后,通过比较这两个显著性图生成一个融合掩码M,该掩码决定了每个像素由哪个模型负责生成。
- 融合噪声:最后,根据融合掩码M,将TDM和SDM的预测噪声进行融合,得到最终的噪声ε^。公式如下:
![]()
其中,⊙表示Hadamard积。
问题3:Face-diffuser在实验中如何评估其生成的高质量图像?
Face-diffuser通过身份保留(IP)和提示一致性(PC)两个指标来评估其生成的高质量图像。具体评估方法如下:
- 身份保留(IP):通过MTCNN进行面部检测,并使用FaceNet计算参考图像和生成图像之间的面部相似度,从而评估身份保留能力。
- 提示一致性(PC):通过CLIP-L/14图像-文本相似度评估生成图像与给定文本提示的一致性。
此外,Face-diffuser还在单主题和多主题生成任务上进行了广泛的实验,并与现有的最先进模型(如Fastcomposer和Subject-diffusion)进行了对比,进一步验证了其生成高质量图像的有效性和鲁棒性。
相关文章:
【论文阅读+复现】High-fidelity Person-centric Subject-to-Image Synthesis
以人物为中心的主体到图像的高保真合成,CVPR2024 code:CodeGoat24/Face-diffuser: [CVPR2024] Official implementation of High-fidelity Person-centric Subject-to-Image Synthesis. paper:2311.10329 背景 研究问题:这篇文…...
Spring Boot 应用开发入门
一、Spring Boot简介 Spring Boot 是一个基于 Spring 框架的开源 Java 基础框架,它简化了基于 Spring 的应用开发。Spring Boot 提供了一种快速、便捷的方式来创建独立、生产级的基于 Spring 框架的应用程序。它通过提供一系列的“启动器”依赖,帮助开发…...
【C语言】字符串函数详解
文章目录 Ⅰ. strcpy -- 字符串拷贝1、函数介绍2、模拟实现 Ⅱ. strcat -- 字符串追加1、函数介绍2、模拟实现 Ⅲ. strcmp -- 字符串比较1、函数介绍2、模拟实现 Ⅳ. strncpy、strncat、strncmp -- 可限制操作长度Ⅴ. strlen -- 求字符串长度1、函数介绍2、模拟实现(…...
【Vim Masterclass 笔记14】S07L29 + L30:练习课08 —— Vim 文本对象同步练习(含点评课内容)
文章目录 L29 Exercise 08 - Text Objects1 训练目标2 操作指令2.1. 打开 textobjectspractice.txt 文件2.2. 单词对象练习 Word Objects2.3. 区块对象 ( ) 练习 Block Object ( )2.4. 引用字符串练习 Quoted Strings2.5. 区块对象 [ ] 练习 Block Object [ ]2.6. 区块对象 <…...
非PHP开源内容管理系统(CMS)一览
在现代网站开发中,内容管理系统(CMS)是不可或缺的工具。虽然许多广泛使用的CMS(如WordPress和Joomla)是基于PHP开发的,但其他编程语言同样诞生了许多优秀的开源CMS,适用于不同需求和技术栈的项目…...
WEB 攻防-通用漏-XSS 跨站脚本攻击-反射型/存储型/DOMBEEF-XSS
XSS跨站脚本攻击技术(一) XSS的定义 XSS攻击,全称为跨站脚本攻击,是指攻击者通过在网页中插入恶意脚本代码,当用户浏览该网页时,恶意脚本会被执行,从而达到攻击目的的一种安全漏洞。这些恶意脚…...
SQLAlchemy -批量插入时忽略重复
PostgreSQL 有一个很棒的INSERT() ON CONFLICT DO NOTHING子句,您可以将其与 SQLAlchemy 一起使用: from sqlalchemy.dialects.postgresql import insert session.execute(insert(MyTable).values(my_entries).on_conflict_do_nothing())MySQL 有类似的INSERT IGNORE子句,但…...
1月13日学习
[HITCON 2017]SSRFme 直接给了源代码,题目名称还是ssrf,那么该题大概率就是SSRF的漏洞,进行代码审计。 <?php// 检查是否存在 HTTP_X_FORWARDED_FOR 头,如果存在,则将其拆分为数组,并将第一个 IP 地址…...
Steam个人开发者注册备记
具体的注册过程有很多同志已经写过了,这里只写一点自己搞得有点费劲的地方。有点久了记得也不多了。 1.姓名用汉语拼音,参考护照上的,一般是Zhang Sanli这样的格式,姓一个单词,名字一个单词(不管1个字还是…...
django在线考试系统
Django在线考试系统是一种基于Django框架开发的在线考试平台,它提供了完整的在线考试解决方案。 一、系统概述 Django在线考试系统旨在为用户提供便捷、高效的在线考试环境,满足教育机构、企业、个人等不同场景下的考试需求。通过该系统,用…...
Laravel 中 Cache::remember 的基本用途
在 Laravel 中,Cache::remember 方法用于缓存数据,以提高应用程序的性能。当需要从数据库或其他较慢的数据源中检索数据时,可以使用 Cache::remember 来检查请求的数据是否已经被缓存。如果数据已缓存,则直接从缓存中读取…...
前端进程和线程及介绍
前端开发中经常涉及到进程和线程的概念,特别是在浏览器中。理解这两个概念对于理解浏览器的工作机制和前端性能优化非常重要。以下是详细介绍: 1. 什么是进程和线程? 进程: 是操作系统分配资源的基本单位。一个程序启动后…...
OpenGL —— 基于Qt的视频播放器 - ffmpeg硬解码,QOpenGL渲染yuv420p或nv12视频(附源码)
运行效果 工程说明 源码 vertex.glsl...
Vue Router
Vue Router4 匹配 Vue3;Vue Router3 匹配 Vue2。 Vue Router 是 Vue.js 官方的路由管理器。Vue Router 基于路由和组件的映射关系,监听页面路径的变化,渲染对应的组件。 安装: npm install vue-router。 基本使用: …...
【黑灰产】人工查档业务产业链
2024年“查档”类型泄露事件快速上涨,涉及电商、外卖、社交、快递等行业数据。 近年来,陆续关注到非法数据交易产业链中游频繁出现的“查档”数据泄露情况,例如通过一个手机号,就可以查询这个手机号相关的所有身份信息࿰…...
114周二复盘 (178)
1、打新包,测试 2、白天为打包开始冲刺,问题不少,一堆细节问题, 但还是傍晚打包,不到3分钟,1.77G。 速度超预期。 3、开始测试。 基本还是达到预期的,但还是很多问题。 好在打包速度很快&am…...
day10_Structured Steaming
文章目录 Structured Steaming一、结构化流介绍(了解)1、有界和无界数据2、基本介绍3、使用三大步骤(掌握)4.回顾sparkSQL的词频统计案例 二、结构化流的编程模型(掌握)1、数据结构2、读取数据源2.1 File Source2.2 Socket Source…...
Python的秘密基地--[章节11] Python 性能优化与多线程编程
第11章:Python 性能优化与多线程编程 在开发复杂系统时,性能优化和并发编程是不可忽视的重点。Python 提供了多种工具和技术用于优化代码性能,并通过多线程、多进程等方式实现并发处理。本章将探讨如何在 Python 中提升性能,并实…...
drawDB docker部属
docker pull xinsodev/drawdb docker run --name some-drawdb -p 3000:80 -d xinsodev/drawdb浏览器访问:http://192.168.31.135:3000/...
探索图像编辑的无限可能——Adobe Photoshop全解析
文章目录 前言一、PS的历史二、PS的应用场景三、PS的功能及工具用法四、图层的概念五、调整与滤镜六、创建蒙版七、绘制形状与路径八、实战练习结语 前言 在当今数字化的世界里,视觉内容无处不在,而创建和编辑这些内容的能力已经成为许多行业的核心技能…...
C++初阶-list的底层
目录 1.std::list实现的所有代码 2.list的简单介绍 2.1实现list的类 2.2_list_iterator的实现 2.2.1_list_iterator实现的原因和好处 2.2.2_list_iterator实现 2.3_list_node的实现 2.3.1. 避免递归的模板依赖 2.3.2. 内存布局一致性 2.3.3. 类型安全的替代方案 2.3.…...
调用支付宝接口响应40004 SYSTEM_ERROR问题排查
在对接支付宝API的时候,遇到了一些问题,记录一下排查过程。 Body:{"datadigital_fincloud_generalsaas_face_certify_initialize_response":{"msg":"Business Failed","code":"40004","sub_msg…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
java_网络服务相关_gateway_nacos_feign区别联系
1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...
Spring Boot 实现流式响应(兼容 2.7.x)
在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...
3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...
循环冗余码校验CRC码 算法步骤+详细实例计算
通信过程:(白话解释) 我们将原始待发送的消息称为 M M M,依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)(意思就是 G ( x ) G(x) G(x) 是已知的)࿰…...
微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
