InstanceID:zero-shot identity-preserving generation in sconds

news2024/12/25 12:58:50

1.introduction

        个性化图像合成,挑战是生成能够准确保留人物的复杂身份细节的定制图像,这类任务通常称之为控ID型任务,在AI写真,虚拟试穿上都有应用,但是和虚拟试装还是有区别的,但技术路线上其实可以考虑复用。人脸ID涉及更微妙的语义,需要更高标准的细节和保真度。当前的个性化生成方法包括两类,1.需要微调的,dreambooth,textual inversion,lora;2.在推断中绕过微调,涉及构建大量领域特定数据,并为特征提取建立一个轻量级适配器,然后,该adapter利用cross-attention将这些特征整合到扩散生成过程中,ip-adapter是代表,采用跨cross-attention将文本和图像特征分离,允许将参考图像作为视觉提示注入其中。然而,这种主要依赖于clip的图像编码器的方法往往只产生弱对齐信号,无法创造高保真度的定制图像。

2.related work

2.1 ID preserving image generation

        现有工作主要可根据其对inference时微调的依赖程度分为两类,1.lora,向模型中插入最少数量的新权重,然后lora需要为每个新字符单独训练,2.无优化方法,Face0覆盖了clip空间中用投影人脸嵌入代替最后三个文本标记,并使用联合嵌入作为条件来引导扩散过程。photomarker采用类似方法,但通过微调图像编码器中的transformers层的一部分来增强其提取ID嵌入的能力。FaceStudio将人脸嵌入通过线性投影集成到clip视觉嵌入和clip文本嵌入中,然后将融合的引导嵌入融合到具有cross-attention的unet中。IP-Adapter-FaceID采用了人脸识别模型的人脸ID嵌入代替clip图像嵌入以保持ID的一致性。

3.Methods

        只给出一张参考ID图像,InstantID旨在生成自单一参考ID图像多种姿势或风格的定制图像,同时确保高保真度。

3.1 Methodology

包括三个关键组成部分:1.一种捕获文件语义脸部信息的ID嵌入;2.轻量级的adapter模块,具有解耦的cross-attention;3.IdentityNet,从参考脸部图像中编码详细特征,具有额外的空间控制。

ID embedding. Ip-Adapter,FaceStudio,Photomarker依赖于预训练的clip图像编码进行视觉提示提取,clip的固有限制在于其在弱对齐数据上进行训练,这意味着其编码特征主要捕获宽泛而模糊的语义信息,如构图,风格和颜色。这些特征可以作为文本嵌入的一般补充,但对于需要精确ID保留的任务来说,更强的语义和更高的保真度至关重要。如何有效的将身份特征注入到扩散模型中?

Image Adapter. 在预训练文本到图像扩散模型中的图像提示能力显著增强了文本提示,特别是对于那些用文本难以描述的内容,采用了一个类似于IP-Adapter的策略用于图像提示,引入一个轻量级的adapter模块,解耦的cross-attention,以支持图像作为提示,不同之处在于我们使用ID嵌入作为图像提示,而不是粗略对准的CLIP嵌入。

IdentityNet. 尽管将图像提示与文本提示结合起来,ip-adapter,但只提供了粗粒度的改进,对于保持ID生成图像是不够的,这种限制归因于预训练扩散模型的固有训练机制和属性,例如,当图像和文本提示在attention层之前连接时,模型在对扩散标记序列具有细粒度控制方面表现不佳。然而,在cross-attention中直接添加文本和图像标记会削弱由文本标记施加的控制。此外,试图增强图像标记的强度以实现更高的保真度可能会无意中损害文本标记的编辑能力。

        通过采用一种替代controlnet的方法来处理,通常利用空间信息作为可控模块的输入,与扩散模型中unet的设置保持一致,并在cross-attention层中包括文本作为条件元素,核心就是文本和图像都作为提示时,图像会损害文本的能力,因此单独增加了一个只有图像嵌入的unet模块。对controlnet的改进包括,1.仅使用了5个面部关键点作为条件输入,而非openpose面部关键点;2.取消了文本提示,并使用ID嵌入作为controlnet中cross-attention的条件,专注与ID相关的表示。在controlnet中空间控制是至关重要的,只用面部5个点,提供比详细关键点更普遍的约束。

3.2 Training and Inference strategies

        训练中,仅优化Image Adapter和IdentityNet的参数,同时保持预训练扩散模型中参数不变,在人类主体的图像文本对上训练整个instantid,不随机丢弃文本和图像,因为已经在IdentityNet中移除了文本提示条件。

4.Experiments

        在Laion-face上训练,该数据集包括5000个图像文本对,此外收集了1000w张高质量人类图像,并利用blip2自动生成注释来进一步提高生成质量,专注于单人图像,预训练的人脸模型antelopev2,检测和提取人脸图像中的人脸ID嵌入。在原始人类图像上训练,而不是裁剪过的人脸数据集,训练中,只有Image Adapter和IdentityNet中的参数被更新,而预训练的文本到图像模型保持冻结状态,基于sdxl-1.0模型,并在48块H800(80G)上进行,每块卡的bs为2.

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

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

相关文章

python多进程卡死问题排查

文章目录 背景开发环境启动链路 问题排查pdb调试给文件加共享锁查看进程fdstrace追踪堆栈<br />GDB调试python安装gdb和python-dbgpython-dbg和python版本编译python3.9的dbg文件gdb调试 pytorch多进程卡死问题多进程的fork和spawn模式 其他解决方式使用fastapi自带的bac…

康耐视visionpro-CogDataAnalyTool工具详细说明

CogDataAnalyTool功能: 数据分析工具,统计数据的平均值、标准差、最大值及最小值等。 CogDataAnalyTool操作说明: ①.打开工具栏,双击或点击鼠标拖拽添加CogDataAnalyTool ②.添加通道:根据需要添加多个输入通道,可同时统计多个输入数据。 ③.打开结果栏,点击运行可获…

Linux的学习之路:3、基础指令(2)

一、echo指令 这个指令在上篇文章我也用了但是忘了说了&#xff0c;这个指令的大概用法就是把后面跟的文本等输出在显示器上&#xff0c;如下代码所示打印的“Hello Linux” [rootVM-24-9-centos ~]# echo "Hello Linux" Hello Linux二、输出重定向与输入重定向 着…

金融案例:构建高效统一的需求登记与管理方案

在金融行业数字化转型背景下&#xff0c;银行等金融机构面临着业务模式创新与数据应用的深度融合。业务上所需要的不再是单纯的数据&#xff0c;而是数据背后映射的业务趋势洞察&#xff0c;只有和业务相结合转化为业务度量指标&#xff0c;经过数据分析处理呈现为报表进行展示…

MybatisPlus学习总结

MybatisPlus.xmind 一、MybatisPlus快速入门 1.基本介绍 官网: 简介 | MyBatis-Plus MyBatis Plus是一个基于MyBatis的增强工具&#xff0c;它简化了MyBatis的使用&#xff0c;提供了一系列的增强功能&#xff0c;使开发更加方便快捷。 MyBatis Plus的主要特点包括&#xff…

SQL,group by分组后分别计算组内不同值的数量

SQL&#xff0c;group by分组后分别计算组内不同值的数量 如现有一张购物表shopping 先要求小明和小红分别买了多少笔和多少橡皮&#xff0c;形成以下格式 SELECT name,COUNT(*) FROM shopping GROUP BY name;SELECT name AS 姓名,SUM( CASE WHEN cargo 笔 THEN 1 ELSE 0 END)…

PyPy 通过采用即时编译技术,能够显著提升 Python 代码的执行效率。

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 提升 Python 代码性能至接近 C 语言速度&#xff0c;无需修改源代码。遵循 Python 之父吉多・范罗苏姆的建议&#xff1a;“如果你想让你的代码神奇地运行得更快&#xff0c;你应该试试用 PyPy。” Yo…

二维前缀和与二维差分的表示

前缀和&#xff1a; 上述图片是求范围内的总和的图和公式 上述图片是初始化前缀和数组的图和公式 差分&#xff1a; 上图是差分公式 #include<iostream> #include<climits> #include<algorithm> #include<cstring> #include<cstdio> #include&l…

基于视图能力的县域治理视频基座数字化、智慧化解决方案

一、方案背景 县域治理方案是我国地方治理体系的重要组成部分&#xff0c;对于促进县域经济社会发展、维护社会稳定、推进全面深化改革具有重要意义。随着科技的不断进步&#xff0c;视频监管已经成为了现代社会治理的重要手段之一。县域治理视频监管方案是通过视频监控、数据…

SpringBoot国际化配置流程(超详细)

前言 最新第一次在做SpringBoot的国际化&#xff0c;网上搜了很多相关的资料&#xff0c;都是一些简单的使用例子&#xff0c;达不到在实际项目中使用的要求&#xff0c;因此本次将结合查询的资料以及自己的实践整理出SpringBoot配置国际化的流程。 SpringBoot国际化 "i…

关于svn安装报错2503问题的解决方法

问题&#xff1a; SVN在安装时&#xff0c;一直报错&#xff0c;安装失败 The installer has encountered an unexpected error installing this package.The error code is 2503 权限问题&#xff0c;右键以管理员权限运行。如果你也是像我一样&#xff0c;右键没有以管理员…

springboot 使用@profiles.active@多配置文件切换

项目配置文件结构&#xff1a; 主配置文件内容&#xff1a; pom配置文件&#xff1a; <profiles><profile><id>dev</id><properties><profiles.active>dev</profiles.active></properties></profile><profile>…

43 带 fixed 列的 el-table 不兼容于 sortablejs

前言 这是一个基于 sortablejs 来实现的 el-table 的拖拽功能的基础实现 然后 这个过程中遇到的一个比较特殊的问题是, 关于 el-table-column 的 fixed 的属性, 对于 sortablejs 这边来定位目标选择列 影响的一个问题 在基础的用例中, 使用 “.el-table__body-wrapper tbo…

数组的常见算法

数组的常见算法 数值型数组特征值统计 这里的特征值涉及到&#xff1a;平均值、最大值、最小值、总和等 举例1&#xff1a;数组统计&#xff1a;求总和、均值 public class TestArrayElementSum {public static void main(String[] args) {int[] arr {4,5,6,1,9};//求总和、…

污水处理迈入3D可视化新时代:智慧环保触手可及

在科技日新月异的今天&#xff0c;环保事业也迎来了前所未有的发展机遇。污水处理作为环保领域的重要组成部分&#xff0c;其技术的革新与进步&#xff0c;对于保护水资源、维护生态平衡具有重要意义。 传统的污水处理机组往往存在着操作复杂、监控困难等问题&#xff0c;使得污…

2024年【熔化焊接与热切割】报名考试及熔化焊接与热切割模拟试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 熔化焊接与热切割报名考试考前必练&#xff01;安全生产模拟考试一点通每个月更新熔化焊接与热切割模拟试题题目及答案&#xff01;多做几遍&#xff0c;其实通过熔化焊接与热切割作业考试题库很简单。 1、【单选题】…

ORA-04031 错误分析及处理方法

一、问题描述 使用普通用户登录数据库报ORA-04031错误 $ sqlplus / as sysdbaSQL*Plus: Release 11.2.0.1.0 Production on Mon Mar 25 09:14:59 2024Copyright (c) 1982, 2009, Oracle. All rights reserved.Connected to: Oracle Database 11g Enterprise Edition Releas…

学点儿Java_Day12_IO流

1 IO介绍以及分类 IO: Input Output 流是一组有顺序的&#xff0c;有起点和终点的字节集合&#xff0c;是对数据传输的总称或抽象。即数据在两设备间的传输称为流&#xff0c;流的本质是数据传输&#xff0c;根据数据传输特性将流抽象为各种类&#xff0c;方便更直观的进行数据…

详细分析Linux中的core dump异常(附 Demo排查)

目录 1. 基本知识2. 进阶知识3. Demo4. 彩蛋 1. 基本知识 Core dump 是指在程序异常终止时&#xff0c;操作系统将程序的内存映像保存到磁盘上的一种机制。 在 Linux 系统中&#xff0c;core dump 提供了一种调试程序错误的重要方式&#xff0c;它记录了程序在崩溃时的内存状态…

文献学习(自备)

收官大作&#xff0c;多组学融合的新套路发NC&#xff01;&#xff01; - 知乎 (zhihu.com) Hofbauer cell function in the term placenta associates with adult cardiovascular and depressive outcomes | Nature Communications 病理性胎盘炎症会增加几种成人疾病的风险&a…